[英]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
作为你的条目。
代码说明:
:=
) 变量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.