0
Ким дотошный мужик и местами от бога. Но в этом коде он упускает одну важную деталь. Попробую объяснить коротко. Код отправляет заявку на окрытие ордера, потом проверяет на наличие ошибок, если ошибок нет, модифицирует ордер (раньше можно было отправить заявку, а потом только вставить туда стоп и прибыль), если есть ошибки, то просто паузы, иногда Алерт. И всё. То есть повторной отправки ордера тут нету. Возможно есть потом, но не тут.

Этот кад похож на беседу брокера и купца:
— ты примешь заявку?
— нет.
— ну тогда попью чая.
avatar

axe44

  • 5 августа 2020, 15:19
0
Ха-ха. Он мне спасибо говорил за найденные ошибки
avatar

axe44

  • 5 августа 2020, 12:20
0
Андрей, я знаю что моими кодами иногда пользуешься. Может завершим написание кода?
avatar

axe44

  • 5 августа 2020, 11:37
0
У меня всё по факту
avatar

axe44

  • 5 августа 2020, 11:35
0
*wall*  вот бы ещё эту функцию docs.mql4.com/ru/trading/orderopentime прикрутить как надо к R2-D2 *boss* , что бы возвращал хотя бы время последнего ордера в часах для тотального контроля.
avatar

axe44

  • 5 августа 2020, 10:50
0
Весь смысл этого в том что если два робота выставили заявку на открытие, брокер обработает в любом случаи только одну. Теперь вопрос: как понять, что 1. Заявка обработана; 2. Заявка ещё в обработке; заявка не принята; 3. Брокер послал куда подальше, так как у него новости и класть он хотел на то, что ты захотел закрыть ордер или заработать.
Ответ очевиден: вызвать код ошибки. Теперь очень интересно как понять двум роботам по чьей заявке выскочила ошибка? К ошибке меджик номер не прикручен, и повторный вызов ошибки выдаёт в любом случаи круглый ноль. Вот не задача, что им двоим делать? А если их пять?
Более того интересный факт, я часто замечал, что и закрытие ордеров не всегда гладко проходит.
И для статистики: у типа *tipatogo*  брокера Альпари при выходе новостей заявки не обрабатываются по 3 часа иногда, и *tipatogo*  брокера Форекс клуб заявки утром обрабатываются часто по 5 минут, если обрабатываются.
Если поставить цикл отправлять заявки до результата, может закончиться депозит.

Как бы это проблема, и я пытаюсь её решить и совместно написать код безотказного выставления ордера
avatar

axe44

  • 5 августа 2020, 10:28
0
*think*  С этим вызовом кода ошибки *crazy*  полный дом непоняток.
При первом же вызове ошибки второй робот даже при ошибке получает информацию о её отсутствии… Теперь понятно что одну функцию и МТ4 можно выкинуть — это меджик *shock* , ни и что теперь один терминал — один робот *spokuha* .
Кто не согласен?
avatar

axe44

  • 5 августа 2020, 07:40
0
Если ошибка не учтена, по крайней мере напечатается…
avatar

axe44

  • 4 августа 2020, 21:51
0
запускаетЬся… граматей…
впринципе и ошибку 128 дважды вписал…
ну… вроде сам и исправился
avatar

axe44

  • 4 августа 2020, 21:49
0
После выставления ордера запускаеться блок поиска ошибок. Поправьте код если не верный…
<code>

   r=OrderSend(NULL,type,lot,NormalizeDouble(price,Digits),Slip,sl,tp," Момент ",Magic,TimeCurrent()+Expir*60*60,clr);//
   Sleep (5000);
   
   co=GetLastError();
   if (co==0)Alot=0;
   if (r==0)
   {if ( co==128||co==4||co==6||co==129||co==128||co==135||co==136||co==137||co==138||co==141||co==146||co==4107)
   PutOrder(type,price, stoploss, takeprofit, Alot);
   if(co!=0)Print("Текущая ошибка ", co,", Модель: ",Magic);
   }
</code>
avatar

axe44

  • 4 августа 2020, 21:41
0
*drinks*  Только как это решает вопрос например с ошибкой «время запроса истекло и ордер не выставился?
Повторный запрос я реализовал через функцию PutOrderReal(type,price); прямо в функции PutOrderReal(...). Но там ещё одна проблемка. Допустим в одно и тот же момент два советника на разных графиках одновременно выставляю ордера, соотвествеено два запроса никак не обработаются и у двух советников выскакивает ошибка „ордер не принят“. Получается что два робота спамят потом ордерами?
avatar

axe44

  • 4 августа 2020, 21:35
0
При вызове номера ошибки, номер обнуляется. Если робот ничего не делал, соответсвенно должен быть ноль. Там такая система запутанная…
avatar

axe44

  • 4 августа 2020, 20:19
0
При вызове ошибки меджик не учитывается… беда короче
avatar

axe44

  • 4 августа 2020, 17:47
0
Просто обычный вызов команды «PutOrder(int type, double price, double stoploss, double takeprofit);» продблемы не решает
avatar

axe44

  • 4 августа 2020, 16:34
0
Появился вопрос по сделкам " а реальные они ". Говорю: — реальные

avatar

axe44

  • 3 августа 2020, 20:39
0
Там 10 сняли с карты за авторизацию на счёт. Кто знает, поймёт
avatar

axe44

  • 3 августа 2020, 17:33
0
Произошла интересная ситуация и оказалось что на счёте за интернет нету денег. Пришлось снять 10 баксов. На всякий случай показываю что было на счёте и через минут 10 покажу что осталось. Просто делайте правильные выводы. Спасибо.
avatar

axe44

  • 3 августа 2020, 17:16
0
Конечно можно. Почему бы нет? Главное ждите хорошо
avatar

axe44

  • 2 августа 2020, 15:23
0
Мне кажется у тебя нету планки по просадки. Причём от слова вообще. От сюда и проблемище.
Когда у тебя скажем сделок на триста есть максимальная просадка в 50% и общей прибылью в 60%, то начинаешь понимать какой размер лота ставить что бы не обнулить кошелёк.
Вот скажем 4% в день нормальная просадка? Когда достигается, ставь себе паузу в неделю и смотри где ошибся. Это нормальная практика. Все так делают.
avatar

axe44

  • 1 августа 2020, 09:23