PineScript: покупать в определенное время выше дневного максимума

Я пишу стратегию тестирования на истории, чтобы покупать в определенное время каждый день выше максимума этого дня.

Я написал стратегию pinescript. Смотри ниже. Я ограничил его до августа месяца этого года. Это применяется на 5-метровой диаграмме.

//@version=4
strategy("bnf2")

entryTime = year == 2019 and month == 8 and hour == 14 and minute == 0
exitTime = year == 2019 and month == 8 and hour == 15 and minute == 15

strategy.entry("bnf-long", strategy.long, 20, stop= high, when=entryTime)
strategy.close("bnf-long", when = exitTime)
plot(strategy.equity)

Я подозреваю, что «стоп = максимум» вызывает проблему, поскольку максимум пока не определен как максимум этого дня.

Какие изменения мне нужно внести в сценарий, чтобы добиться этого?


person supernova    schedule 16.08.2019    source источник


Ответы (1)


Это позволит покупать после 14:00, но только тогда, когда закрытие пробьет максимум текущего дня. На графике нанесены маркеры, которые помогут вам увидеть, когда возникают условия.

//@version=4
strategy("bnf2", overlay=true)

// Keep track of current day's high.
var dayHigh = 0.0
dayHigh := change(dayofweek) ? high : max(high, dayHigh)

entryTime = year == 2019 and month == 8 and hour == 14 and close > dayHigh[1]
exitTime = year == 2019 and month == 8 and hour == 15 and minute == 15
strategy.entry("bnf-long", strategy.long, 20, when = entryTime)
strategy.close("bnf-long", when = exitTime)
plot(dayHigh)
plotshape(entryTime, style = shape.triangleup, color = color.lime, location = location.belowbar, size = size.normal)
plotshape(exitTime, style = shape.triangledown, color = color.red, location = location.abovebar, size = size.normal)
// plot(strategy.equity)
person PineCoders-LucF    schedule 19.08.2019
comment
Спасибо. Кажется, это привело меня в правильном направлении. Но, похоже, он все еще не делает то, что я хочу. Он входит в 14:00. Но не всегда закрывает ордер в 15:15 независимо от убытка/прибыли. Кажется, перенос позиции на следующий день. Есть ли что-то еще, что мне нужно сделать, так как это внутридневная сделка? - person supernova; 24.08.2019
comment
Вместо этого вы можете попробовать использовать exitTime = year == 2019 and month == 8 and hour == 15 and minute >= 15, но без конкретного примера выхода, который не срабатывает правильно, его трудно диагностировать. Ссылка на схему не помешала бы. - person PineCoders-LucF; 25.08.2019