George-on-Don:
для продажи res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Ask-TakeProfit*Point,"", MAGICMA,0,Red);
для покупки res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Bid+TakeProfit*Point,"", MAGICMA,0,Blue);
остальное пока не проверял))))
Ошибку поняла, спасибо, но это всего лишь ошибка, касающаяся
правильного выставления стопордеров... Очень жду еще помощидля продажи res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Ask-TakeProfit*Point,"", MAGICMA,0,Red);
для покупки res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Bid+TakeProfit*Point,"", MAGICMA,0,Blue);
остальное пока не проверял))))
George-on-Don, неужто уже день защитника отечества празднуете? ;-) Тогда заранее Вас с праздником!
))у меня с вашими условниями тестируется даже эквити выдал)) вон
какую))) - спсибо за поздравления)))
Файлы:
testergraph_2_.jpg
9 kb
Явная ошибка в том, что нельзя вот так вот сравнивать цены:
Если нужно сравнивать пересечение мувингом текущей цены, то лучше сделать так:
Надо искать касания/пересечения на основе как минимум двух точек, а лучше еще сделать контрольную проверку за пару баров назад, чтобы удостовериться в реальности пересечения. Ведь иногда на флете(рынок идет горизонтально) мувинги практически ложаться на цену, выдавая множество ошибочных сигналов.
MarketInfo(Symbol(),MODE_BID)==ma
Если нужно сравнивать пересечение мувингом текущей цены, то лучше сделать так:
if( (Close[0]>=ma && Close[1]<=ma) || // пересечение мувингом цены снизу вверх (Close[0]<=ma && Close[1]>=ma) ) // пересечение мувингом цены cверху вниз { // что то делаем }
Надо искать касания/пересечения на основе как минимум двух точек, а лучше еще сделать контрольную проверку за пару баров назад, чтобы удостовериться в реальности пересечения. Ведь иногда на флете(рынок идет горизонтально) мувинги практически ложаться на цену, выдавая множество ошибочных сигналов.
Renat:
Явная ошибка в том, что нельзя вот так вот сравнивать цены:
Если нужно сравнивать пересечение мувингом текущей цены, то лучше сделать так:
Надо искать касания/пересечения на основе как минимум двух точек, а лучше еще сделать контрольную проверку за пару баров назад, чтобы удостовериться в реальности пересечения. Ведь иногда на флете(рынок идет горизонтально) мувинги практически ложаться на цену, выдавая множество ошибочных сигналов.
Спасибо, Renat, все ясно :) Все получилось. Именно в этом и была загвоздка.
Только, кажется, Вы немного описались в комментариях- пересечение
цены снизу вверх и сверху вниз поменять местами нужно.Явная ошибка в том, что нельзя вот так вот сравнивать цены:
MarketInfo(Symbol(),MODE_BID)==ma
Если нужно сравнивать пересечение мувингом текущей цены, то лучше сделать так:
if( (Close[0]>=ma && Close[1]<=ma) || // пересечение мувингом цены снизу вверх (Close[0]<=ma && Close[1]>=ma) ) // пересечение мувингом цены cверху вниз { // что то делаем }
Надо искать касания/пересечения на основе как минимум двух точек, а лучше еще сделать контрольную проверку за пару баров назад, чтобы удостовериться в реальности пересечения. Ведь иногда на флете(рынок идет горизонтально) мувинги практически ложаться на цену, выдавая множество ошибочных сигналов.
Совет по поводу проверки касания за пару баров назад учла :)
George-on-Don:
))у меня с вашими условниями тестируется даже эквити выдал)) вон какую))) - спсибо за поздравления)))
Довольно странно, что у вас получилось...Никак не могу понять как так вышло. У меня до изменения кода по совету Renata после тестирования депозит оставалсся прежним, так как позиции просто не открывались. ))у меня с вашими условниями тестируется даже эквити выдал)) вон какую))) - спсибо за поздравления)))
Думаю, тему можно закрыть. Спасибо, ребят, за помощь
2 Renat - а что close[0]- это последний тик?
Aikon:
Думаю, тему можно закрыть. Спасибо, ребят, за помощь
) на тесте-истории у меня работает- на реальных котировках пока
не пробовал))
George-on-Don:
))у меня с вашими условниями тестируется даже эквити выдал)) вон какую))) - спсибо за поздравления)))
Довольно странно, что у вас получилось...Никак не могу понять
как так вышло. У меня до изменения кода по совету Renata после тестирования
депозит оставалсся прежним, так как позиции просто не открывались.
))у меня с вашими условниями тестируется даже эквити выдал)) вон какую))) - спсибо за поздравления)))
Думаю, тему можно закрыть. Спасибо, ребят, за помощь
George-on-Don:
2 Renat - а что close[0]- это последний тик?
а какие есть ещё варианты? =)
2 Renat - а что close[0]- это последний тик?
komposter:
)) еще не придумал другие))
George-on-Don:
2 Renat - а что close[0]- это последний тик?
а какие есть ещё варианты? =)2 Renat - а что close[0]- это последний тик?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нужна программка для нахождения оптимального параметра мувинга для определенного таймфрейма и инструмента методом тестирования на истории.
Немного видоизменила под себя советник МЕТАКВОТСА. То есть закрытие происходит исключительно по S\L или T\P. Все нормально работает.
Теперь пытаюсь написать код таким образом, чтобы открытие происходило при первом касании мувинга и цены не дожидаясь закрытия бара, то есть проверка должна происходить на каждом тике, а не на первом тике нового бара, как в совенике Метаквотса. buy, если MA > Сlose на предыдущем баре и Аск=МА, sell - соответственно MA<Close[1] и Бид=МА. Все компилируется без ошибок, тестер даже чтото пытается тестировать, но позиции не открываются. Ребят, может что-то не учла, или какой-то момент не правильно понимаю? Вот часть кода:
С уважением, Aikon