2012.11.13 11:13:17 Zamok v1.4.1 EURUSD,M15: zero divide
Такое сообщение если не указать вторую пару. Может как то сделать, чтобы советник не делился на 0, а сообщал: "Типа вы не указали вторую пару". ))
2012.11.19 12:15:01 '19015794': order sell 0.10 GBPUSD opening at 1.59148 sl: 0.00000 tp: 0.00000 failed [Not enough money]
а на счету бабло есть. Счет демо денех 3000 нач лот 0.1
Вообще не шевелится вторые сутки, Норд 4-знак, демо 5000 денег, не пишет ошибок в журнал, не совершает действий, просто висит в памяти и всё...
Может я в настройках накосячил, как понял из описания так и настроил:
2012.11.21 20:37:44 Zamok v1.4.1 AUDUSD,H1 inputs: Magic=777; C_валютой="NZDUSD"; Обратная_корреляция=false; Оптимизировать='2012.11.01 00:00'; Оптимизировать_каждые=30; ma_method=1; applied_price=5; Lot=0.1; Профит="50$"; Минимум=10; Стоп="50$";
Всем привет. Хочу пока по мелочи автору предложить коррективы. В прошлой теме уже поднималась тема об ошибке закрытия ордеров, в этой версии исправления я так и не заметил - по прежнему Invalid Ticket. Корректно было бы переписать функцию так:
void CLOSEORDER() { for (int i=0; i<OrdersTotal(); i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true) { if (Magic == OrderMagicNumber()) { if (OrderType() == OP_BUY) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),3,CLR_NONE); if (OrderType() == OP_SELL) OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),3,CLR_NONE); } } } closs = 1; }
Теперь более важное. Автоматическая оптимизация абсолютно неверно реализована.
if (Seconds() == 30) time = time+1;
В исходной версии предлагается отсчитывать интервал оптимизации по 30-й секунде каждой минуты. Это неправильно, так как не всегда тик приходит именно в 30-ю секунду, я уже не говорю про 4-х знаки. Поэтому зачастую автоматическая оптимизация у многих и не работает. Предлагаю реализовать так, это исправляем
int start() { osnval = Symbol(); Бары_оптимизации = iBarShift(osnval,0,Оптимизировать,FALSE); if (Seconds() == 30) time = time+1; if (time >= Оптимизировать_каждые && C_валютой != "Валюта" && vkl == 0) { opt = 0; time = 0; } for (int k=0; k<ObjectsTotal(); k++) { if (ObjectGet(ObjectName(k),OBJPROP_ARROWCODE) == SYMBOL_THUMBSDOWN) ploho = true; if (ObjectGet(ObjectName(k),OBJPROP_ARROWCODE) == SYMBOL_STOPSIGN) sstop = true; } if (((ploho == true && sstop == true) || opt == 0) && C_валютой != "Валюта") { rek_period = 0; punn = 0; optimizator(); ObjectsDeleteAll(EMPTY, OBJ_ARROW); ploho = FALSE; sstop = FALSE; opt = 1; }на это:
int start() { osnval = Symbol(); Бары_оптимизации = iBarShift(osnval,0,Оптимизировать,FALSE); if ((TimeCurrent()-time)/60 >= Оптимизировать_каждые && C_валютой != "Валюта" && vkl == 0) { time = TimeCurrent(); rek_period = 0; punn = 0; optimizator(); opt = 1; }Теперь полностью отпадает необходимость в ручной оптимизации, поэтому я ее убрал.
Я смотрю, тема умерла полностью. Что ж, жаль....
Вероятно народ ещё тестит и пока нечего сказать им. Или у всех данный советник прекрасно работает и они просто молча зарабатывают :)
В предыдущем ответе я жаловался что советник у меня не работает, потом открыл демо-счёт в другом ДЦ, где мин. лот 0,01 с шагом 0,01 и советник у меня заработал, неполадки возникали из-за расчёта лота слишком мелким шагом, начальный лот например 0,1 а советник для второй валюты пытался открыть позицию лотом 0,12 не проверяя, а допускает ли этот ДЦ такой размер лота и какой у него минимальный лот, да и в журнал ничего не писал (просто предполагаю, может и по другим причинам не работал, факт что сейчас на пятизнаке с минимальными значениями 0,01 движение есть).
Теперь другая неполадка, в общем она и в прошлой версии была, в чём причина, не знаю: открывает две позиции, по основной паре и по дополнительной, а закрывает только вторую, да и ту в убыток, а по основной паре позиция остаётя, пока руками не закрою. Может это только у меня такой "баг"?
Теперь другая неполадка, в общем она и в прошлой версии была, в чём причина, не знаю: открывает две позиции, по основной паре и по дополнительной, а закрывает только вторую, да и ту в убыток, а по основной паре позиция остаётя, пока руками не закрою. Может это только у меня такой "баг"?
Нужно удалить строки:
if(vkl!=0 && (Стоп=="0$" || Стоп=="0%") ) { if(ma_osnval>MarketInfo(osnval,MODE_ASK) && ma_C_валютой<MarketInfo(C_валютой,MODE_BID) && var==2) {CLOSEORDER();} if(ma_osnval<MarketInfo(osnval,MODE_BID) && ma_C_валютой>MarketInfo(C_валютой,MODE_ASK) && var==1) {CLOSEORDER();} } и if(vkl!=0 && (Стоп=="0$" || Стоп=="0%")) { if(ma_osnval>MarketInfo(osnval,MODE_ASK) && ma_C_валютой>MarketInfo(C_валютой,MODE_ASK) && var==2) {CLOSEORDER();} if(ma_osnval<MarketInfo(osnval,MODE_BID) && ma_C_валютой<MarketInfo(C_валютой,MODE_BID) && var==1) {CLOSEORDER();} }
vicmos:
Нужно удалить строки:
Это если стопов не ставить, я ставлю и TP, и SL, вариант с $, не удалять же условия выхода полностью, тогда вообще закрывать ничего не будет :)
Теперь другая неполадка, в общем она и в прошлой версии была, в чём причина, не знаю: открывает две позиции, по основной паре и по дополнительной, а закрывает только вторую, да и ту в убыток, а по основной паре позиция остаётя, пока руками не закрою. Может это только у меня такой "баг"?
vicmos:
Нужно удалить строки:
Это если стопов не ставить, я ставлю и TP, и SL, вариант с $, не удалять же условия выхода полностью, тогда вообще закрывать ничего не будет :)
У меня ни разу такой ошибки не было, закрывало все нормально, и стопов я не ставил, закрытие у меня по сигналу. В своей версии я те строки со стопами и тралами позже убрал, по наблюдениям закрытие по сигналу намного эффективней.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Zamok v1.4.1:
Author: Basic1975