У меня проблемы со следующим:
Я ввожу стратегию, которая закрывается после закрытия ema, но минимум (любого данного бара после входа) ниже, чем ema (low
Я не могу понять, как сделать «любой данный бар после входа».Я полагаю, что скрипт должен каким-то образом хранить значение предыдущего бара, если он истинный, но тогда возникает проблема со сценариями, когда стратегия фактически началась.Любая помощь будет оценена!
PS.Как видите, я не кодер, и это, вероятно, трудно понять.Я действительно извиняюсь за это и благодарю вас за потраченное время.
Михаил
Я попытался указать, когда условие входа включено с policy.position_avg_price> 0, добавив к нему необходимые условия:
h = nz(strategy.position_avg_price) > 0 and not
crossunder(close,ema(close,length)) and
crossunder(low,ema(close,length)) ? 1 : 0
rightborder = barstate.islast // treat the last bar (most recent bar)
as the right edge of the lookback window range
// if examining the last bar (newest bar, rightborder is true)
// set variable "val" to the previous value of series variable "h"
// else set to na so nothing is plotted
val = rightborder ? h[1] : na
Но без успеха ...
scalp = b and c and d and e and f and g ? 1 : 0 // scalp is main
variable, if 1 the strategy is entered//
if (scalp)
strategy.entry("Short", strategy.short, when = scalp) // entry of
strategy
if (crossunder(close,ema(close,length))) // usual close of strategy
strategy.close("Short")
if (not crossunder(close,ema(close,length)) and
crossunder(low,ema(close,length))) // attempt for a better exit!
strategy.close("Short")
После работы над предложением Микки:
///Entry
if entry_on == 0 and scalp
strategy.entry("Short", strategy.short)
entry_on := 1
///Desired exit
if entry_on == 1 and crossunder(close,ema(close,length))
strategy.close("Short")
entry_on := 0
/// Risk mitigation - 1 - Additional risk mitigation (when close > ema but
low < ema of any given candle after entry -> exit at breakeven)
if entry_on == 1 and close > ema(close, length) and low < ema(close, length)
entry_on := 2
if entry_on == 2 and crossover(close,strategy.position_avg_price)
strategy.close("Short")
entry_on := 0
/// Risk mitigation - 2 - exit 15 bars after entry if not desired exit or
risk mitigation - 1
if entry_on == 1 and scalp[15]
strategy.close("Short")
entry_on := 0