我试图创造一种策略,如果MA200在1小时内价格低于价格,它就会购买。该策略销售的前提是: MA200在1小时内超越价格,MA9高于1周的价格,MA200高于4小时的价格。然而,它没有正常工作,更大的时间框架的情节扭曲了图表到我看不到烛台的地方。
strategy('Multi Time-Frame Analysis',
overlay=true,
initial_capital=1000,
default_qty_value=30,
default_qty_type=strategy.percent_of_equity,
commission_type=strategy.commission.percent,
commission_value=0.1)
timePeriod = time >= timestamp(syminfo.timezone, 2022, 6, 24, 02, 09)
notInTrade = strategy.position_size <= 0
buyCondition1 = ta.ema(close, 200) //< close //1 hour
buyFrame1Hour = request.security("BTC", "60", buyCondition1 < close)
plot(buyCondition1, color = color.purple)
if (buyFrame1Hour and notInTrade and timePeriod)
strategy.entry("Long", strategy.long)
//when = buyCondition1
sellCondition1 = ta.ema(close, 200) //1 hour
sellCondition2 = ta.ema(close, 9) //1 week
sellCondition3 = ta.ema(close, 200) //4 hours
timeFrame1Hour = request.security("BTC", "60", sellCondition1) //1 hour
timeFrame1Week = request.security("BTC", "1W", sellCondition2) //1 week
timeFrame4Hour = request.security("BTC", "240", sellCondition3) //4 hours
//plot(timeFrame1Hour, color = color.red)
//plot(timeFrame1Week, color = color.blue)
//plot(timeFrame4Hour, color = color.green)
if (timeFrame1Hour and timeFrame1Week and timeFrame4Hour and notInTrade and timePeriod)
strategy.exit(id = "stoploss", stop = PriceStop, limit = takeProfit)发布于 2022-07-21 13:50:03
你是如何产生条件的,这似乎是有问题的。买卖应检查交叉和交叉200 1H EMA。下面的例子
//@version=5
strategy('Multi Time-Frame Analysis', overlay=true)
buyCondition1 = ta.crossunder(ta.ema(close, 200),close) //1 hour
expr=ta.ema(close,200)
ema200 = request.security(syminfo.tickerid, "60", expr)
buyFrame1Hour = ta.crossunder(ema200,close)
plot(ema200, color = color.purple)
if (buyFrame1Hour )
strategy.entry("Long", strategy.long)
sellCondition2 = (ta.ema(close, 9)>close) //1 week
sellCondition3 = (ta.ema(close, 200)>close) //4 hours
timeFrame1Hour = ta.crossover(ema200,close) //1 hour
timeFrame1Week = request.security(syminfo.tickerid, "1W", sellCondition2) //1 week
timeFrame4Hour = request.security(syminfo.tickerid, "240", sellCondition3) //4 hours
if (timeFrame1Hour and timeFrame1Week and timeFrame4Hour)
strategy.entry("Short",strategy.short)https://stackoverflow.com/questions/73066901
复制相似问题