Я не знаю, почему trading View не может протестировать этот код

#performance #pine-script #algorithmic-trading #back-testing

#Производительность #pine-script #алгоритмическая торговля #обратное тестирование

Вопрос:

Я создал этот код на pine, и я думал, что он будет работать, но это не так. У меня нет ошибок в соответствии с ними, но когда я добавляю код на график, я не могу видеть, где он покупает и продает. Кроме того, когда я пытаюсь протестировать стратегию, это не позволяет мне протестировать ее. Он не показывает никаких данных.

 //@version=4
strategy("Bushiri project",default_qty_type=strategy.percent_of_equity, default_qty_value=2, pyramiding=5, initial_capital=1000, overlay=true)
// MTF analysis
len = input(8, minval=1, title="Length")
src = input(close, title="Source")
out = sma(src, len)
res = input(title="Resolution", type=input.resolution, defval="1D")
s1 = security(syminfo.tickerid, res, out, gaps=true)
plot(s1, color=color.blue)
len2 = input(21, minval=1, title="Length2")
src2 = input(close, title="Source2")
out2 = sma(src, len2)
res2 = input(title="Resolution2", type=input.resolution, defval="1D")
s2 = security(syminfo.tickerid, res2, out2, gaps=true)
plot(s2, color=color.yellow)

//Ema inputs 
fastemaLength= input(50, title="EMA Length", minval=1, maxval=200)
slowemaLength= input(200, title="EMA Length", minval=1, maxval=200)

//values 
fastemaVal=ema(close, fastemaLength)
slowemaVal=ema(close, slowemaLength)

//plot values 
plot(fastemaVal, title="EMA", color=color.red,  transp=2)
plot(slowemaVal, title="EMA", color=color.green,  transp=2)

// Entry requirement
dcross= s1>s2
ecross=crossover(fastemaVal, slowemaVal)
if(ecross and dcross) 
   strategy.entry(id="enterbuy", long=true, stop=20, comment="BUY")

//exit requirement
dcross1=s1>s2
ecross1=crossunder(fastemaVal, slowemaVal)
if(ecross1 and dcross1)
   strategy.close(id="enterbuy", comment="EXIT")
 

Комментарии:

1. Ваш скрипт работает. Он просто генерирует ОЧЕНЬ мало сделок. Я протестировал его на дневном графике AAPL, и он произвел 1 длинный вход в 2012-03-13 по цене 20 долларов.

Ответ №1:

Возможно, вы упустили из виду тот факт, что stop = 20 в ‘strategy.entry(id=»enterbuy», long= true, stop = 20, comment=»BUY»)’ разместит ордер по цене 20. Если вы попробуете это на eurusd, вы никогда не разместите сделку, потому что цена никогда не достигнет цены 20. Другое дело, что, как сказал Бьорн Мистиен, этот скрипт редко размещает сделки. Условие для strategy.entry выполняется редко (в частности, dcross и dcross1), и оба ecross1 и dcross1 должны быть истинными, чтобы также закрыть сделку. Возможно, вы заключили сделку, но она не закрывается. Посмотрите на свой список сделок. Также не забудьте добавить скрипт на график, нажав «добавить на график» в редакторе pine

Комментарии:

1. Я нашел способ это исправить, но мне интересно, есть ли у меня способ торговать им на более низких временных рамках, чем ежедневно? Потому что на более низких временных рамках пересечения происходят чаще, но я не знаю, как заставить pine учитывать / вычислять dcross и dcross1 на более низких временных рамках !? Есть идеи !?