0
Выступаю поручителем. :) 
avatar

GAWroch

  • 13 ноября 2020, 08:56
0
Спасибо за пояснение! ))
avatar

GAWroch

  • 2 ноября 2020, 22:40
0
Разрешите поинтересоваться. Активировались оба ордера, и бай, и селл. Третий ордер выставляется по какой цене, по цене первого?
avatar

GAWroch

  • 2 ноября 2020, 20:37
0
253 строка кода: if(OrderSymbol()==Symbol()). Попробуй добавить && OrderMagicNumber()==Magic. ))
avatar

GAWroch

  • 31 октября 2020, 23:26
0
Нет доступа к файлу. Может напряжешься уже и корректно сформулируешь свою просьбу!?
avatar

GAWroch

  • 31 октября 2020, 14:37
0
Если путанница возникает при модификации ордеров поправьте строку 249 " if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)".
Это в той версии совы, которую нашёл. Ваша версия не прикрепилась к запросу.
avatar

GAWroch

  • 30 октября 2020, 10:01
0
Очень часто советники работают на основе сигналов от тех-или иных индикаторов. У вас в папке «Indicators» нет нужного советнику индикатора. Вложите файл индикатора, перезапустите терминал и всё должно заработать! )
avatar

GAWroch

  • 28 сентября 2020, 19:35
+1


Удобный бот. Чуть добавил функционала, может кому пригодится.
www.opentraders.ru/downloads/2566/
avatar

GAWroch

  • 11 февраля 2020, 10:49
+1
Чисто полюбопытствовал по золоту. Настройки по умолчанию, ничего не менял.
avatar

GAWroch

  • 9 января 2020, 18:27
0
Типа того. Я думаю Андрею не составит особых проблем написать подобный.
avatar

GAWroch

  • 9 января 2020, 17:16
0
Сов забавный! ))) Засекает резкие движения цены и по ходу движения выставляет отложки со сроком жизни примерно 30 сек. Сработала отложка — или профит, или трал… ну или стоп. Вполне себе на парах с большой волатильностью и у брокера с маленьким спредом, пусть и с комиссией, которую можно учесть в настройках.
avatar

GAWroch

  • 9 января 2020, 17:11
0
В сове с потиковым контролем всё действительно ОК! А как быть если контроль побарный? Значение «num» скидывается при смене бара....*wall* 
avatar

GAWroch

  • 10 ноября 2019, 21:01
0
Андрей спасибо. Твой способ учета усредненных ордеров помог, теперь всё работает как должно! Правда в примере условия открытия ордеров спутаны, но для меня это не принципиально. ))
avatar

GAWroch

  • 10 ноября 2019, 15:42
0
Яж не кодер. (( Если с магиками может и получится, с глобальными точно знаний не хватит.
avatar

GAWroch

  • 7 ноября 2019, 18:03
0
Всем добрый день. Различные усреднители мне тоже интересны. Поэтому выступаю поручителем. Но вместо трала, прошу вставить функцию БУ для всех открытых ордеров. В принципе сов противотрендовый и использование трала мне представляется затруднительным.
avatar

GAWroch

  • 29 августа 2019, 08:28
0
Добрый день. Пока нет своих идей для реализации -выступаю поручителем. )
avatar

GAWroch

  • 8 июля 2019, 13:00
+1
Мужчины, из -за чего такая дискуссия? В свободном доступе, с открытым исходником, масса разнообразных скриптов. Например такой. Отличный функционал.

//+------------------------------------------------------------------+
#property copyright "Vladimir Khlistov"
#property link      "http://cmillion.narod.ru"
#property show_inputs
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
extern int   Magic       = 0;   //закрывать только сделки с магиком 0-открытые вручную
extern bool  MagicAll    = true;//если true - закрывать все
extern int   Profit      = 0;   //закрывать только сделки с профитом больше Profit
extern int   TipOrder    = 0;   //(0) - все ордера   (1) - Buy     (-1) - Sell
extern bool  SymbolAll   = false;//если true - все валютные пары   false - только текущие
extern bool  DeleteOrders= true;//если true - удалять и отложенные   false - только рыночные
extern int   attempts   = 10;    //кол-во попыток закрытия
int   slippage    = 5;
int nn;
//+------------------------------------------------------------------+
int start()
{  
   Comment("Запуск скрипта CloseAllOrders ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
   if (Digits==5 || Digits==3) slippage=30;
   bool error=true;
   int Ошибка,DIGITS,OT,Ticket;
   string txt;
   double ASK,BID,POINT;
   if (!MagicAll)  txt=StringConcatenate(txt,"Cкрипт закрытия ордеров с Magic=",Magic);
   else  txt=StringConcatenate(txt,"Cкрипт закрытия всех ордеров");
   Comment("");
   int ret=MessageBox("Закрыть все ордера (Да)   Закрыть только профитные (Нет)",
       txt, MB_YESNOCANCEL|MB_TOPMOST);
   if (ret==IDCANCEL) return;
   while(true)
   {
      for (int j = OrdersTotal()-1; j >= 0; j--)
      {
         if (OrderSelect(j, SELECT_BY_POS))
         {
            if ((OrderSymbol() == Symbol()||SymbolAll) && (OrderMagicNumber() == Magic || MagicAll))
            {
               DIGITS = MarketInfo(OrderSymbol(),MODE_DIGITS);
               ASK = NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),DIGITS);
               BID = NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),DIGITS);
               POINT = MarketInfo(OrderSymbol(),MODE_POINT);
               OT = OrderType();
               Ticket=OrderTicket();
               if (OT==OP_BUY && (TipOrder == 1||TipOrder ==0)) 
               {
                  if (ret==IDNO && Profit > (BID-OrderOpenPrice())/POINT) continue;
                  error=OrderClose(Ticket,OrderLots(),BID,slippage,Red);
                  if (error) Alert("Закрыт ордер N ",Ticket,"  прибыль ",OrderProfit(),
                                     "     ",TimeToStr(TimeCurrent(),TIME_SECONDS));
               }
               if (OT==OP_SELL && (TipOrder ==-1||TipOrder ==0)) 
               {
                  if (ret==IDNO && Profit > (OrderOpenPrice()-ASK)/POINT) continue;
                  error=OrderClose(Ticket,OrderLots(),ASK,slippage,Red);
                  if (error) Alert("Закрыт ордер N ",Ticket,"  прибыль ",OrderProfit(),
                                     "     ",TimeToStr(TimeCurrent(),TIME_SECONDS));
               }
               if (OT>1 && DeleteOrders) 
                  if (OrderDelete(Ticket))
                     Comment("Ордер ",Ticket," успешно удален ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
                  else
                     Comment("Ордер ",Ticket," ошибка удаления ",GetLastError());
               
               if (!error) 
               {
                  Ошибка = GetLastError();
                  if (Ошибка<2) continue;
                  if (Ошибка==129) 
                  {  Comment("Неправильная цена ",TimeToStr(TimeCurrent(),TIME_SECONDS));
                     Sleep(5000);
                     RefreshRates();
                     continue;
                  }
                  if (Ошибка==146) 
                  {
                     int ret1=MessageBox("Подсистема торговли занята"," ", 
                         MB_RETRYCANCEL|MB_TOPMOST|MB_ICONWARNING);
                     if (ret1==IDCANCEL) return;
                     j++;
                     if (IsTradeContextBusy()) Sleep(2000);
                     continue;
                  }
                  Comment("Ошибка ",Ошибка," закрытия ордера N ",Ticket,"     ",TimeToStr(TimeCurrent(),TIME_SECONDS));
               }
            }
         }
      }
      int n=0;
      for (j = 0; j < OrdersTotal(); j++)
      {
         if (OrderSelect(j, SELECT_BY_POS))
         {
            if ((OrderSymbol() == Symbol()||SymbolAll) && (OrderMagicNumber() == Magic || MagicAll))
            {
               DIGITS = MarketInfo(OrderSymbol(),MODE_DIGITS);
               ASK = NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),DIGITS);
               BID = NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),DIGITS);
               POINT = MarketInfo(OrderSymbol(),MODE_POINT);
               if (OrderType()==OP_BUY  && (TipOrder == 1||TipOrder ==0))
               {
                  if (ret==IDNO && Profit > (BID-OrderOpenPrice())/POINT) continue;
                  n++;
               }
               if (OrderType()==OP_SELL && (TipOrder ==-1||TipOrder ==0))
               {
                  if (ret==IDNO && Profit > (OrderOpenPrice()-ASK)/POINT) continue;
                  n++;
               }
               if (OT>1 && DeleteOrders) n++;
            }
         }  
      }
      if (n==0) break;
      nn++;
      if (nn>attempts) {Comment("Не удалось закрыть все сделки, осталось еще ",n);break;}
      Sleep(1000);
      RefreshRates();
   }
   return(0);
}
//+------------------------------------------------------------------+


avatar

GAWroch

  • 2 июля 2019, 02:48
0
Извиняюсь за банальный вопрос. А использование советником dll библиотек разрешено?
avatar

GAWroch

  • 2 июля 2019, 02:39