Type/to search
6
Follow
4
Followers
Kiểm tra ngược kịch bản TV mà không cần giao dịch
Help
Created 2024-07-26 12:13:39  Updated 2024-07-30 16:36:42
 1
 1184

Kịch bản Pine này hiển thị bình thường trên TV và có thể mở và đóng kho, cũng có kết quả phản hồi, không có phản ứng, không báo lỗi nhưng cũng không có giao dịch

// 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)
Related Recommendations
Comment
All comments (1)

    您好,可以再发一下代码,贴代码格式为:

    ```
    代码
    ```

    注意是符号`
    不是符号'

    否则代码是没格式的,没法测试。

    2 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)