0
if(StopLoss==0) Mode();

Если стоп в параметрах поставить в 0, тогда стоп будет ставится на макс или мин предыдущего дня
avatar

Fargo

  • 29 декабря 2015, 15:46
0
Сливает — если запустить не со 2-го февраля, а с начала года — то слив почти сразу. Если взять малый лот и большое депо, то топчется на месте.
Вот по евре с начала года депо 10000, лот 0,1


А для тестера — это если посмотреть код совы… Никаких обработок ошибок, проверок торговых условий, ожиданий в случае ошибки.
так пишут обычно для тестера, что бы проверить саму идею.
К примеру, если в момент открытия ордера будут реквоты и задержки с исполнениями, то сов будет долбить сервер запросами на открытие на каждом тике.
И это приведет в конечном итоге к временному бану на счете. *pardon* 
avatar

Fargo

  • 25 декабря 2015, 13:26
0
А смысл? Если он написан для тестера и все равно сливает
avatar

Fargo

  • 25 декабря 2015, 12:02
+1
+++PANAH13-7 и +++CLOSING — юзают Snake и T3_clean. Причем последний (из архива) при компилировании на современном билде нужно править.
avatar

Fargo

  • 25 декабря 2015, 00:32
+1
Да не надо ее переписывать. Там все нормально по моему

Просто сделай так
void ModeStop()
  {
   bool m;
   double StopBuy=NormalizeDouble(FindLastBuyPrice()-StopLoss*Point,Digits);
   double StopSell=NormalizeDouble(FindLastSellPrice()+Delta*Point,Digits);
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol())
           {            
            if(OrderType()==OP_BUY)
              {
               
               if(OrderStopLoss()==0) m=OrderModify(OrderTicket(),OrderOpenPrice(),StopBuy,OrderTakeProfit(),0,Yellow);
               
              }

            if(OrderType()==OP_SELL)
              {
               if(OrderStopLoss()==0) m=OrderModify(OrderTicket(),OrderOpenPrice(),StopSell,OrderTakeProfit(),0,Yellow);
              }
           }
        }
     }
   return;
  }
avatar

Fargo

  • 17 декабря 2015, 18:37
0
Да не надо ее переписывать. Там все нормально по моему
avatar

Fargo

  • 17 декабря 2015, 18:33
+1
Попробуй вот так
if(OrderType()==OP_BUY)
              {
               Print(StringConcatenate("1  ",OrderTicket()));
               if(OrderStopLoss()==0) m=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(FindLastBuyPrice()-StopLoss*Point,Digits),OrderTakeProfit(),0,Yellow);
               Print(StringConcatenate("2  ",OrderTicket()));
              }


Что напишет?
avatar

Fargo

  • 17 декабря 2015, 18:30
0
Это я уже вкурил. Просто не видел явной проверки на соответствие стопа нужному значению
А проверку на нулевость упустил *pardon* 
avatar

Fargo

  • 17 декабря 2015, 18:16
0
Слушай а выборка ордеров не сбивается случаем?
Смотри, в 1-м цикле OrderSelect — позиционирует на очередном ордере и вызывается фунция в которой запускается свой цикл с селектами, возвращается значение и потом идет обращение за номером ордера.
А селект то после функции стоит на последнем ордере, одном и том же. Да и с точки производительности вызывать внутренний цикл для получения одного и того же значения не комильфо…
avatar

Fargo

  • 17 декабря 2015, 18:14
0
Взято с форума mql4.com
Читаем HELP!!!
Что значит ошибка с номером 1 при модификации ордера? Читаем:
ERR_NO_RESULT — OrderModify пытается изменить уже
установленные значения такими же значениями. Необходимо изменить одно или
несколько значений и повторить попытку.

Т.е. при «трале» Вы пытаетесь менять уровень стопа сам на себя. Откуда такое может быть? Из операций предварительного сравнения цен перед проведением модификации ордера!
Вы сравниваете ненормализованные цены и получаете результат — цены неравны. Пытаетесь произвести модификацию (при ней цены нормализуются принудительно) и получаете ответ что новая цена уже и так равна старой — менять нечего.
Отсюда вывод — всегда нормализуйте цены в операциях сравнения!!!


Может здесь собака порылась? :) 
avatar

Fargo

  • 17 декабря 2015, 17:29
0
У тебя компилятор пропускает такое
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)


У меня всегда ругается если условия не возьму в скобочки

if((OrderSymbol()==Symbol()) && (OrderType()==OP_BUY))
avatar

Fargo

  • 17 декабря 2015, 17:07
0
Эээ… *spokuha* 

if(oticket>ticketNumber)

Андрей, а почему сравниваешь тикеты ордеров, а не цены открытия?
если есть 10 бай ордеров стоп устанавливается от самого нижнего ордера на заданном количестве пунктов, селл от верхнего.


Самый последний, может и не быть самым нижним/верхним… *pardon* 
avatar

Fargo

  • 17 декабря 2015, 16:14
0
Насколько я понимаю — false — т.к. команды на прекращение работы не было. Терминал ждет восстановления коннекта. Цикл будет крутится если не будет фатальной ошибки в теле самого цикла. Как то так…

ПС: Возможно заказчик имел в виду именно советник. Т.к. возможно, для него (как и для многих не специалистов) нет разницы между скриптом и советником. Этот вопрос остался не выясненным.
avatar

Fargo

  • 16 декабря 2015, 00:42
+2
Кидаешь на график две МАшки с периодом = 1, одну применяешь к хай, другую к лоу.
Задаешь любимые цвета для каждой…
В настройках графика отображение — линия, цвет линии такой же как у фона… И, вуаля!
avatar

Fargo

  • 15 декабря 2015, 23:17
0
Это я для Oxy написал. Промазал что ли *think* 

А Sleep в данном случае нещь просто необходимая, ее нельзя выбрасывать
avatar

Fargo

  • 15 декабря 2015, 22:41
0
*yes*  Если точнее, текущие цены, проверяются чуть менее, чем десять раз в секунду

Прошу прощения за занудство… *stesnitelno* 
avatar

Fargo

  • 15 декабря 2015, 22:10
0
Привет! При чем здесь задержка Sleep?
В скрипте запускается бесконечный цикл while(!IsStopped())
Так что в любом билде работать будет.
avatar

Fargo

  • 15 декабря 2015, 22:05
0
Провокации продолжаются…
СИМФЕРОПОЛЬ, 14 дек – РИА Новости. Неустановленное торговое судно под турецким флагом в нарушение международных правил препятствовало перемещению буровой установки «Черноморнефтегаза», сторожевой катер Погранслужбы ФСБ РФ и ракетный катер ЧФ принудили судно изменить курс, сообщила в понедельник пресс-служба предприятия.

РИА Новости ria.ru/defense_safety/20151214/1341779657.html#ixzz3uIK6cWdl
avatar

Fargo

  • 14 декабря 2015, 14:44
0
Я, не я, и хата не моя…

Владелец турецкого сейнера (рыбопромышленное судно) рассказал CNN Turk, что в момент инцидента в Эгейском море турецкое судно находилось на расстоянии 2 км от российского корабля.

«Мы проходили по нашему маршруту. Мы даже не знали, что это российский корабль. Мы посчитали, что это корабль НАТО. Около 8:30 мы прошли мимо него. Мы не слышали выстрелов», — цитирует капитана судна по имени Музаффар издание Hurriyet.

Подробнее на РБК:
www.rbc.ru/politics/13/12/2015/566da80f9a79475091b2210d?utm_source=gismeteo&utm_medium=news&utm_campaign=gism_top3
avatar

Fargo

  • 14 декабря 2015, 10:03
0
Смотрели не 216 человек, а просмотров 216 — а это как говорят в Одессе, две большие разницы
avatar

Fargo

  • 10 декабря 2015, 10:56
Начать торговлю с Альпари