Небольшая помощь? - страница 3

 
deVries:

Поместите SMA с теми же настройками на график вашего советника и посмотрите, что у вас получилось ...

делаю это и нахожусь в точке:

SMA6(со сдвигом)>SMA21 => ордер на покупку, код печатает SMA6(со сдвигом)=0, следовательно SMA6(ws)<SMA21 и таким образом продажа?

 
j.w.msb:

делаю это и нахожусь в точке:

SMA6(со сдвигом)>SMA21 => ордер на покупку, код печатает SMA6(со сдвигом)=0 следовательно SMA6(ws)<SMA21 и соответственно продажа?



SMA6(со сдвигом -3 )>SMA21 это когда-либо будет происходить на баре 0

сфотографируйте свой график и покажите мне, происходит ли такое вообще?

Также поможет окно данных (Ctrl + D), наведите указатель мыши на график и проверьте значения.

 

https://www.mql5.com/en/charts/926555/eurusd-m1-easy-forex

Как здесь? Сдвиг уже произошел и SMA6<SMA21 (хотя у меня такое чувство, что я невероятно глуп...) Простите меня за медлительность, но в любой момент времени я сравниваю текущую SMA21 с SMA6 3 барра назад, не так ли? Я не вижу причин, почему они не могут пересечься :s

 
j.w.msb:

https://www.mql5.com/en/charts/926555/eurusd-m1-easy-forex

Как здесь? Сдвиг уже произошел и SMA6<SMA21 (хотя у меня такое чувство, что я невероятно глуп...) Простите меня за медлительность, но в любой момент времени я сравниваю текущую SMA21 с SMA6 3 барра назад, не так ли? Я не вижу причин, почему они не могут пересечься :s


Нет, это картинка, где у вас есть время 13:00, и есть более 3 баров с более поздним временем.

Возьмем в качестве примера картинку, где мы видим последний сформированный бар и ни одного бара после него.

Поместите скользящие средние на график, как вы закодировали в своем советнике, и удерживайте мышь, указывая на последний бар.

 

... мой сдвиг был в неправильном положении, не так ли... так iMA(Symbol(),0,6,0,MODE_SMA,PRICE_CLOSE,-3) это то, к чему я стремился? и нет, я был глуп, они не могут пересечься на 0 баре просто потому, что SMA6 находится на 3 бара позади, так как же мне использовать это?

 
j.w.msb:

... мой сдвиг был в неправильном положении, не так ли... так iMA(Symbol(),0,6,0,MODE_SMA,PRICE_CLOSE,-3) это то, к чему я стремился? И нет, я был глупцом, они не могут пересечься на баре 0 просто потому, что SMA6 находится на 3 бара позади, так как же мне это использовать?


double SMA6=iMA(Symbol(),0,6,-3,MODE_SMA,PRICE_CLOSE,0);       //ma_shift

означает, что ma сдвинута на 3 бара влево (в прошлое), нет значения на баре 0 и никогда не будет

 iMA(Symbol(),0,6,0,MODE_SMA,PRICE_CLOSE,-3)     //shift

также вы не увидите ни одного бара с отрицательным числом, мы не можем знать, что произойдет в будущем.

поэтому не рассчитывайте отрицательный ma_shift и не используйте отрицательные барные числа.

 

сделайте SMA6 = iMA(Symbol(),0,6,0,MODE_SMA,PRICE_CLOSE,0) на данный момент.

сделайте тест в strategytester и поместите его также на демо-счет с низким периодом, чтобы он торговал часто M5 достаточно хорош для тестирования

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

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

увидимся в следующем посте....

 

Работает на 5-минутном таймфрейме с:

//-----Indicators on the current timeframe----------------------------+
double SMA6=iMA(Symbol(),0,6,0,MODE_SMA,PRICE_CLOSE,0);
Print("SMA6 is ",SMA6);
double SMA21=iMA(Symbol(),0,21,0,MODE_SMA,PRICE_CLOSE,0);
Print("SMA21 is ",SMA21);                                    
//----Indicators on a higher timeframe--------------------------------+
double RSI=iRSI(Symbol(),1440,14,PRICE_CLOSE,0);
Print("RSI is ",RSI);                                                                   
//----Indicators on a lower timeframe---------------------------------+

Работает отлично и торгует, как и ожидалось, без проблем.

2013.10.24 14:52:33 2013.09.10 20:10 SMATrader1-1-0 GBPJPY,M5: close #5 sell 0.07 GBPJPY at 157.797 sl: 159.797 at price 157.909
2013.10.24 14:52:33 2013.09.10 20:15 SMATrader1-1-0 GBPJPY,M5: SMA6 равна 157.809
2013.10.24 14:52:33 2013.09.10 20:15 SMATrader1-1-0 GBPJPY,M5: SMA21 - 157.8063
2013.10.24 14:52:33 2013.09.10 20:15 SMATrader1-1-0 GBPJPY,M5: RSI равен 69.3519
2013.10.24 14:52:33 2013.09.10 20:15 SMATrader1-1-0 GBPJPY,M5: open #6 buy 0.07 GBPJPY at 157.893 sl: 155.893 ok

и т.д.

Я не вижу никаких ошибок?

 
j.w.msb:

Работает на 5-минутном таймфрейме с:

Работает отлично и торгует, как и ожидалось, без проблем.

2013.10.24 14:52:33 2013.09.10 20:10 SMATrader1-1-0 GBPJPY,M5: close #5 sell 0.07 GBPJPY at 157.797 sl: 159.797 at price 157.909
2013.10.24 14:52:33 2013.09.10 20:15 SMATrader1-1-0 GBPJPY,M5: SMA6 равна 157.809
2013.10.24 14:52:33 2013.09.10 20:15 SMATrader1-1-0 GBPJPY,M5: SMA21 - 157.8063
2013.10.24 14:52:33 2013.09.10 20:15 SMATrader1-1-0 GBPJPY,M5: RSI равен 69.3519
2013.10.24 14:52:33 2013.09.10 20:15 SMATrader1-1-0 GBPJPY,M5: open #6 buy 0.07 GBPJPY at 157.893 sl: 155.893 ok

и т.д.

Я не вижу никаких ошибок?

Ваш журнал станет очень большим, если вы совершите много сделок... особенно в тестере стратегий, не удаляйте отладочные принты, включайте и выключайте их по схеме, подобной той, которую использую я.
 
//-----Indicators on the current timeframe----------------------------+
double SMA6=iMA(Symbol(),0,6,0,MODE_SMA,PRICE_CLOSE,0);
//Print("SMA6 is ",SMA6);
double SMA21=iMA(Symbol(),0,21,0,MODE_SMA,PRICE_CLOSE,0);
//Print("SMA21 is ",SMA21);                                    
//----Indicators on a higher timeframe--------------------------------+
double RSI=iRSI(Symbol(),1440,14,PRICE_CLOSE,0);
//Print("RSI is ",RSI);                                                                   
//----Indicators on a lower timeframe---------------------------------+

вы видели, что здесь нет ошибок, вам не нужны printstatements здесь

в strategytester ваша программа может работать хорошо,

но как она работает на вашем демо-счете?

Причина обращения: