Я пытался генерировать оповещения на основе нижеприведенного исследования. Оповещения генерируются, но они отличаются от сигналов стратегии. Сегодня я генерировал сигналы для TCS. Согласно Стратегии , сегодня совершено 5 сделок , но при приближении к Оповещениям я получил почти 12-15 сигналов . Я не знаю, где мне не хватает. Если кто-нибудь знает об этом, пожалуйста, помогите мне.
Для справки, я прилагаю снимок
1.Результаты
2. Состояние оповещения
Это исследование
//@version=4
study("Study1_v4", overlay=true)
tim=input('30')
//160
isSession = input(defval = true, title = "Apply Trading Session", type = input.bool)
sess = input(defval = "0935-1500", title="Trading Session")
t = time(timeframe.period, sess)
sessionOpen = isSession ? (na(t) ? false : true):true
startYear = input(defval = 2020, title = "From Year", type = input.integer)
startMonth = input(defval = 1, title = "From Month", type = input.integer )
startDay = input(defval = 1, title = "From Day", type = input.integer)
endYear = input(defval = 2112, title = "To Year", type = input.integer)
endMonth = input(defval = 1, title = "To Month", type = input.integer)
endDay = input(defval = 1, title = "To Day", type = input.integer)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(startYear, startMonth, startDay, 00, 00) // backtest start window
finish = timestamp(endYear, endMonth, endDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
longCondition = (crossover(security(syminfo.tickerid, tim, close,barmerge.gaps_off,barmerge.lookahead_on),security(syminfo.tickerid, tim, open,barmerge.gaps_off,barmerge.lookahead_on)) and sessionOpen and window())
shortCondition = (crossunder(security(syminfo.tickerid, tim, close,barmerge.gaps_off,barmerge.lookahead_on),security(syminfo.tickerid, tim, open,barmerge.gaps_off,barmerge.lookahead_on)) and sessionOpen and window())
val = 0
if (longCondition)
val := 1
if (shortCondition)
val := -1
//if(not sessionOpen)
// val := -3
plot(val, title="type", color=color.black)
//defining plots above are required only for the purpose of passing dynamic variables to alerts. Their color is set to 'na' so that they don't display on the screen.
alertcondition(val !=0 or not sessionOpen, title='Alert', message='{{ticker}}, price = {{close}} OrderType={{plot("type")}} at time = {{time}}')
Это стратегия
//@version=4
strategy("Strategy1_v4", overlay=true,process_orders_on_close=true)
tim=input('30')
//160
isSession = input(defval = true, title = "Apply Trading Session", type = input.bool)
sess = input(defval = "0935-1500", title="Trading Session")
t = time(timeframe.period, sess)
sessionOpen = isSession ? (na(t) ? false : true):true
startYear = input(defval = 2020, title = "From Year", type = input.integer)
startMonth = input(defval = 1, title = "From Month", type = input.integer )
startDay = input(defval = 1, title = "From Day", type = input.integer)
endYear = input(defval = 2112, title = "To Year", type = input.integer)
endMonth = input(defval = 1, title = "To Month", type = input.integer)
endDay = input(defval = 1, title = "To Day", type = input.integer)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(startYear, startMonth, startDay, 00, 00) // backtest start window
finish = timestamp(endYear, endMonth, endDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
longCondition = (crossover(security(syminfo.tickerid, tim, close,barmerge.gaps_off,barmerge.lookahead_on),security(syminfo.tickerid, tim, open,barmerge.gaps_off,barmerge.lookahead_on)) and sessionOpen and window())
shortCondition = (crossunder(security(syminfo.tickerid, tim, close,barmerge.gaps_off,barmerge.lookahead_on),security(syminfo.tickerid, tim, open,barmerge.gaps_off,barmerge.lookahead_on)) and sessionOpen and window())
val = 0
if (longCondition)
val := 1
strategy.entry("long", strategy.long)
if (shortCondition)
val := -1
strategy.entry("short", strategy.short)
//if(not sessionOpen)
// val := -3
strategy.close_all(when = not sessionOpen)
plot(val, title="type", color=color.red)