А можно сделать советник на прорыв азиатской сессии? т.е. за минуту до закрытия Азии выставляются два ордера BS/SS на заданном расстоянии и заданных TP/SL
Конечно, в коде условие выставления ордеров по времени нужно сделать так:
if (Hour()==0 && Minute() == 59 && exposed == false){
lot = calc_lot(sym);
DeleteOrder();
OpenOrderBuy (sym, lot, DIF, SL, TP);
OpenOrderSell (sym, lot, DIF, SL, TP);
exposed = true;
}
if (Minute()==0) exposed = false;
Только часы задайте какие вам нужны. Всё остальное есть в настройках.
Я в программировании ни бум-бум.
Можно абзац целиком со строки " int start(){ " и далее до конца, чтобы только скопировать, а то я запутался в if.
Я в программировании ни бум-бум.
Можно абзац целиком со строки " int start(){ " и далее до конца, чтобы только скопировать, а то я запутался в if.
Замени:
if (Hour()==0 && exposed == false){ double lot = calc_lot(sym); DeleteOrder(); OpenOrderBuy (sym, lot, DIF, SL, TP); OpenOrderSell (sym, lot, DIF, SL, TP); exposed = true; }
if (Hour()==23) exposed = false;
на то что писал раньше, там где hour()==0 поставь нужное тебе время по Гринвичу. собственно условие первого if и обрабатывает во сколько устанавливать ордера.
во 2м if - Minute не должно совпадать с первым, а так - всё равно что туда поставишь
Эта подпрограмма может работать с ошибками.
void DeleteOrder (){ // Delete Open Stop Orders int _total=OrdersTotal(); for(int _pos=0;_pos<_total;_pos++){ OrderSelect(_pos, SELECT_BY_POS, MODE_TRADES); if (OrderType()>1 && OrderMagicNumber() == MagicNumber) OrderDelete(OrderTicket()); }
for(int _pos=_total-1;_pos>=0;_pos--){
Так будет корректнее.
В процессе удаления ордеров на ходу меняется значение OrdersTotal(). Это полбеды. Но еще и нумерация оставшихся не удаленных ордеров тоже меняется. Как меняется - неизвестно.
Поэтому программа может обойти и не удалить какие-то ордера. Набивал себе шишки на этом. Теперь только по убыванию номеров пишу :)
for(int _pos=_total-1;_pos>=0;_pos--){
Взамен дам совет как улучшить работу советника на 20-30 процентов.
extern int x1 = 7;
extern int x2 = 6;
if (Hour()==x1 && exposed == false){
if (Hour()==x2) exposed = false;
Не надо морочить мозги с сессиями. Валюта на тестере сама подскажет когда входить в рынок.
В ту версию советника, которая скачивается уже внесли предложенные участниками форума поправки?
Кто-нибудь торгует с этим советником сейчас? Как результаты?
При настройках, которые вы указали в заголовке за 2013 год у меня выходит совсем другие результаты
Ну и вот такое получилось; просто красиво :)
PS Очень бы хотелось, чтобы была добавлена функция установки фиксированного лота.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
breakdown:
Author: arist0