संसाधन लोड हो रहा है... लोड करना...

टीवी स्क्रिप्ट समीक्षा कोई सौदा नहीं

लेखक:hyc1743, बनाया गयाः 2024-07-26 12:13:39, अद्यतनः 2024-07-30 16:36:42

यह पाइन स्क्रिप्ट टीवी पर ठीक से दिखाई दे रही है और ट्रेडों को बंद कर सकती है, इसके साथ ही रिट्रीट का परिणाम भी है, एफएमजेड प्लेटफॉर्म पर रीट्रीट करने के लिए कोई प्रतिक्रिया नहीं, कोई त्रुटि नहीं है लेकिन कोई लेनदेन नहीं है।

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

// © SpeculatioEMA + ADX Strategy with Partial Take Profit$0nLab

//@version=5

strategy("分仓止盈 ADX+Vegas", pyramiding=5)

//--------------------------------------------------5EMA settings----------------------------------------------------

//设置用户设定(set user input)

group1 = "EMA1"
group2 = "EMA2"
group3 = "EMA3"
group4 = "EMA4"
group5 = "EMA5"

enableEMA1 = input.bool(false, "Disable EMA1", tooltip="禁用此条EMA", group=group1)
enableEMA2 = input.bool(false, "Disable EMA2", tooltip="禁用此条EMA", group=group2)
enableEMA3 = input.bool(false, "Disable EMA3", tooltip="禁用此条EMA", group=group3)
enableEMA4 = input.bool(false, "Disable EMA4", tooltip="禁用此条EMA", group=group4)
enableEMA5 = input.bool(false, "Disable EMA5", tooltip="禁用此条EMA", group=group5)

Length1 = input.int(12, "EMA Length 1", tooltip="请输入恰当的EMA长度", group=group1)
Length2 = input.int(144, "EMA Length 2", tooltip="请输入恰当的EMA长度", group=group2)
Length3 = input.int(169, "EMA Length 3", tooltip="请输入恰当的EMA长度", group=group3)
Length4 = input.int(576, "EMA Length 4", tooltip="请输入恰当的EMA长度", group=group4)
Length5 = input.int(676, "EMA Length 5", tooltip="请输入恰当的EMA长度", group=group5)

//计算ema值(get ema values)

emaValue1 = ta.ema(close, Length1)
if enableEMA1
    emaValue1 := na

emaValue2 = ta.ema(close, Length2)
if enableEMA2
    emaValue2 := na

emaValue3 = ta.ema(close, Length3)
if enableEMA3
    emaValue3 := na

emaValue4 = ta.ema(close, Length4)
if enableEMA4
    emaValue4 := na

emaValue5 = ta.ema(close, Length5)
if enableEMA5
    emaValue5 := na

//绘出(draw onto the chart)

plot(emaValue1, "EMA1", color=color.yellow, force_overlay=true)
plot(emaValue2, "EMA2", color=color.white, force_overlay=true)
plot(emaValue3, "EMA3", color=color.white, force_overlay=true)
plot(emaValue4, "EMA4", color=#fb406c, force_overlay=true)
plot(emaValue5, "EMA5", color=#fb406c, force_overlay=true)

//-----------------------------------------------------------adx settings----------------------------------------------------

len = input(14, "Length")
th = input(30, "Threshold")

TrueRange = math.max(math.max(high - low, math.abs(high - nz(close[1]))), math.abs(low - nz(close[1])))

high_change = ta.change(high)
low_change = ta.change(low)

DirectionalMovementPlus = high_change > low_change ? math.max(high_change, 0) : 0
DirectionalMovementMinus = low_change > high_change ? math.max(-low_change, 0) : 0

var SmoothedTrueRange = 0.0
SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1]) / len) + TrueRange

var SmoothedDirectionalMovementPlus = 0.0
SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1]) / len) + DirectionalMovementPlus

var SmoothedDirectionalMovementMinus = 0.0
SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1]) / len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = math.abs(DIPlus - DIMinus) / (DIPlus + DIMinus) * 100
ADX = ta.sma(DX, len)

plot(ADX, color=color.aqua, title="ADX")
hline(th, "Threshold", color=color.white)

//----------------------------------------------------------STRATEGY settings---------------------------------------------------------

//vegas过滤器
vegasLong = math.min(emaValue2, emaValue3) > math.max(emaValue4, emaValue5)
vegasShort = math.max(emaValue2, emaValue3) < math.min(emaValue4, emaValue5)

//蜡烛过滤器
lowDis = math.abs(low - math.max(emaValue2, emaValue3))
highDis = math.abs(math.min(emaValue2, emaValue3) - high)
baseDis = math.abs(emaValue2 - emaValue3)
longCandle = lowDis <= baseDis
shortCandle = highDis <= baseDis

//设置储存变量
var float t_target1 = na
var float t_target3 = na
var float t_stop = na
var longTrade = 0
var shortTrade = 0

//设置买入卖出信号
longSignal = vegasLong and longCandle and longTrade <= 1 and not longCandle[1] and ADX > th
shortSignal = vegasShort and shortCandle and shortTrade <= 1 and not shortCandle[1] and ADX > th

//设置止损点位
rr1 = input.float(1, "Risk Reward 1", tooltip="改变风险回报比 1")
rr2 = input.float(2, "Risk Reward 2", tooltip="改变风险回报比 2")

longStop = ta.lowest(low, 30)
shortStop = ta.highest(high, 30)
longDistance = close - longStop
shortDistance = shortStop - close
longTarget1 = close + (longDistance * rr1)
longTarget3 = close + (longDistance * rr2)
shortTarget1 = close - (shortDistance * rr1)
shortTarget3 = close - (shortDistance * rr2)

//设置入场条件
rpt = input.float(1, "Risk Per Trade%", tooltip="设定单笔交易风险(%)")

if longSignal and barstate.isconfirmed
    t_stop := longStop
    t_target1 := longTarget1
    t_target3 := longTarget3
    longTrade += 1
    shortTrade := 0
    positionSize = math.floor((strategy.equity * (rpt / 100)) / (close - t_stop))
    strategy.entry(id="Long", direction=strategy.long, qty=positionSize)

if shortSignal and barstate.isconfirmed
    t_stop := shortStop
    t_target1 := shortTarget1
    t_target3 := shortTarget3
    longTrade := 0
    shortTrade += 1
    positionSize = math.floor((strategy.equity * (rpt / 100)) / (t_stop - close))
    strategy.entry(id="Short", direction=strategy.short, qty=positionSize)

//设置出场条件
if strategy.position_size > 0
    strategy.exit("Long Exit 1", "Long", limit=t_target1, stop=t_stop, qty_percent=50)
    strategy.exit("Long Exit 3", "Long", limit=t_target3, stop=t_stop)

if strategy.position_size < 0
    strategy.exit("Short Exit 1", "Short", limit=t_target1, stop=t_stop, qty_percent=50)
    strategy.exit("Short Exit 3", "Short", limit=t_target3, stop=t_stop)

plotshape(longSignal, "Long Signal", shape.triangleup, location.abovebar, color.green, force_overlay=true)
plotshape(shortSignal, "Short Signal", shape.triangleup, location.abovebar, color.red, force_overlay=true)

plot(strategy.position_size != 0 ? t_stop : na, style=plot.style_linebr, force_overlay=true, color=color.red)
plot(strategy.position_size != 0 ? t_target1 : na, style=plot.style_linebr, force_overlay=true, color=color.green)
plot(strategy.position_size != 0 ? t_target3 : na, style=plot.style_linebr, force_overlay=true, color=color.blue)

अधिक

आविष्कारक मात्रा - छोटे सपनेनमस्कार, कृपया एक बार फिर से कोड भेजें और कोड को पेस्ट करेंः ` ` कोड ` ` ध्यान दें। यह प्रतीक नहीं है। अन्यथा कोड को फॉर्मेट नहीं किया गया है और इसका परीक्षण नहीं किया जा सकता है।