繁体   English   中英

根据先前蜡烛的数量查找最高或最低价格 - Pinescript

[英]Find the highest or the lowest price based on the number of previous candles - Pinescript

我正在根据之前的蜡烛数量(14 根蜡烛)寻找最高或最低价格,并计算出从入场到最高价的多头订单或空头订单最低价的止损价格。 但是当包含在图表中时,止损和止盈不正确(附上链接)。

插图

我的脚本:

//最高高点或最低低点的价格是基于之前的14支蜡烛

最高 = ta.highest(高,14)

最低 = ta.lowest(low, 14)

//计算收盘价到最高价或最低价的价格区间做止损

stoplossLong = 最高 - 收盘

stoplossShort = 收盘价 - 最低

// 多头和空头的 TP 和 SL

longstoppercent = float(strategy.position_avg_price - stoplossLong)

longtakeprofitpercentTP1 = float(strategy.position_avg_price + stoplossLong*1.5)

longtakeprofitpercentTP2 = float(strategy.position_avg_price + stoplossLong*3)

shortstoppercent = float(strategy.position_avg_price + stoplossShort)

shorttakeprofitpercentTP1 = float(strategy.position_avg_price - stoplossShort*1.5)

shorttakeprofitpercentTP2 = float(strategy.position_avg_price - stoplossShort*3)

我想,你的问题是没有找到过去 14 个柱的最高和最低。 我建议通过绘制最高和最低来检查这一点。

我认为您的问题在于您的计算或策略测试器部分。

var float long_sl_dist = 0.0
var float short_sl_dist = 0.0
var float long_tp1 = 0.0
var float long_tp2 = 0.0
var float short_tp1 = 0.0
var float short_tp2 = 0.0

// highest high and lowest low.
highest = ta.highest (high, 14)
lowest = ta.lowest(low, 14)

if condition //sample condition, for the showcase image
    // distance of higest/lowest to close (entry).
    long_sl_dist := math.abs(highest - close)
    short_sl_dist := math.abs(close - lowest)
    
    // stop loss and take profit.
    long_tp1 := close + (long_sl_dist*1.5)
    long_tp2 := close + (long_sl_dist*3.0)
    
    short_tp1 := close - (short_sl_dist*1.5)
    short_tp2 := close - (short_sl_dist*3.0)

展示柜

使差异绝对化( math.abs() )是我通常做的事情,因为在某些市场中可能存在错误,差异可能是负数,这很糟糕

我真的不明白,为什么你使用strategy.position_avg_price变量,因为这是你在止损/获利之外需要的东西。

我用close作为你的条目。

代码说明:

  • 变量声明开头
  • 定义最高/最低
  • 当 Condition 为真时,设置 ( := ) 变量
  • close 是入口,其余的不言自明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM