Лавина - страница 466

 
А это реал цент инста ток я не пойму почему у меня лот после 6,40 стал 102,40 на ночь забыл выключить советника к утру слив
 
baykanur:
А это реал цент инста ток я не пойму почему у меня лот после 6,40 стал 102,40 на ночь забыл выключить советника к утру слив
Смотреть код надо, чтобы выяснить причину.
 
baykanur:
А это реал цент инста ток я не пойму почему у меня лот после 6,40 стал 102,40 на ночь забыл выключить советника к утру слив

Обидно. Можно в код поставить ограничение по времени торговли. Что бы таких косяков не было. Это самое простое, на мой взгляд. Одна строчка условия + extern int, если только по часам ограничение делать.
 
Cmu4:

Обидно. Можно в код поставить ограничение по времени торговли. Что бы таких косяков не было. Это самое простое, на мой взгляд. Одна строчка условия + extern int, если только по часам ограничение делать.


Да там ошибка в алгоритме (в коде) расчета очередного лота... Причем здесь ограничение по времени - она могла проявиться в любое время... Не знаю у кого как - в моей версии Лавины - после оптимизации параметров - по времени получилось, что "старт" - в 0 часов, "енд" - в 23 час, т.е. работаем круглые сутки... Да и действительно, в т.ч. в ночное время бывают интересные движения по тому же евробаксу... и флет заколбасить может и в течение дня... тут другой подход нужен... (см. посты выше). Считаю, ограничение (в данном случае (с Лавиной)) работу сова по времени не уместным... ИМХО, конечно же.

П.С. На скрине выше после 6,4 объем должен быть 12,8, а не 102,4 лот... - это ошибка в программе.

 
Cmu4:

Обидно. Можно в код поставить ограничение по времени торговли. Что бы таких косяков не было. Это самое простое, на мой взгляд. Одна строчка условия + extern int, если только по часам ограничение делать.

Да с ограничением что то надо придумать иначе хана депозиту из всех лавин у меня лучше всего работает avalanche 7 но с разными дц совершенно по разному если у дц есть задержки исполнения типа у инсты сразу начинает глючить даже при одинаковых коридорах получается совсем по разные результаты

вот например работа за сегодня на норде пока работает как часики

 
baykanur:

Да с ограничением что то надо придумать иначе хана депозиту из всех лавин у меня лучше всего работает avalanche 7...

"А это реал цент инста ток я не пойму почему у меня лот после 6,40 стал 102,40 на ночь забыл выключить советника к утру слив" - исходя из "исходных" Ваших данных "такое" увеличение объемов очередного ордера и ограничение работы сова по времени - являются вещами никаким образом между собой не связанными...

Аvalanche 7 - это этот вариант Вы имеете в виду?

//+------------------------------------------------------------------+
//|                                                  avalanche 7.mq4 |
//|                                                 George Tischenko |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "George Tischenko"

extern bool Monitor=true; //в тестере при выключенной визуализации отключать (тормозит)
extern int Distance=25,   //расстояние в пунктах от цены до первого открытия позиции
           MinProfit=5,   //минимальный профит в пунктах, если открытых ордеров более 1
           Slippage=3;
extern double Lot=0.1;

int Trade=0;
double BLot,StartPrice;              
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
  StartPrice=Bid;
  BLot=MarketInfo(Symbol(),15);      // MODE_LOTSIZE размер контракта в базовой валюте инструмента
//----
  if(Monitor==true)
    {
    int a,y;
    for(a=0,y=5;a<=3;a++)
      {
      string N=DoubleToStr(a,0);
  
      ObjectCreate(N,OBJ_LABEL,0,0,0,0,0);
      ObjectSet(N,OBJPROP_CORNER,3);
      ObjectSet(N,OBJPROP_XDISTANCE,5);
      ObjectSet(N,OBJPROP_YDISTANCE,y);
      y+=20;
      }  
    }
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  if(Monitor==true)
    {
    for(int a=0;a<=3;a++)
      {
      string N=DoubleToStr(a,0);
      ObjectDelete(N);
      } 
    }
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  int i;
//---- 
  if(OrdersTotal()==0)
    {
    RefreshRates();
    if((Ask-StartPrice>=Distance*Point && Trade==0) || Trade==1) 
      {
      OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,0,0,"",1307,0,Blue);
      }
    if((StartPrice-Bid>=Distance*Point && Trade==0) || Trade==-1)  
      {
      OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,0,0,"",1307,0,Red);
      }
    }
  else //OrdersTotal()>0
    {//узнаем размер максимального лота, тип и цену открытия последнего активного ордера
    double lots=0, Type=-1, OpenPrice=0;
    for(i=0;i<OrdersTotal();i++)
      {//самый последний ордер имеет самый большой объем
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
        {
        if(OrderSymbol()==Symbol())
          {
          if(lots<OrderLots())
            {
            lots=OrderLots();
            Type=OrderType();
            OpenPrice=OrderOpenPrice();
            }
          }
        }
      }
      
     //возможно, ордера надо закрыть - проверим это:
    int C=0; //флаг закрытия всех позиций
    if(OrdersTotal()==1) //ЭТО ДЛЯ ПАР ТИПА XXX/USD
      {
      if(AccountProfit()>=BLot*Lot*Point*Distance) 
        {
        switch(Type)
          {
          case 0 : Trade=1; break;
          case 1 : Trade=-1;
          }
        C=1;
        }
      }
    else //OrdersTotal()>1
      {//лишь бы без убытка...
      if(AccountProfit()>=BLot*Lot*Point*MinProfit)
        {
        switch(Type)
          {
          case 0 : Trade=1; break;
          case 1 : Trade=-1;
          }
        C=1;
        }
      }
     
    switch(C)
      {
      case 0 : //закрываться рановато...
        {
        lots*=2; //опять Мартин :-(
        RefreshRates();
        switch(Type)
          {
          case 0 :
            {
            if(OpenPrice-Bid>=Point*Distance*2) 
              {if(OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,0,0,"",1307,0,Red)>0) return(0);}
            break;
            }
          case 1 :
            {
            if(Ask-OpenPrice>=Point*Distance*2)
              {if(OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,0,0,"",1307,0,Blue)>0) return(0);}
            }
          }
        break;
        }
      case 1 : //закрываем все позиции
        {
        while(OrdersTotal()>0)
          {
          int ticket_buy=0,  //тикет ордера BUY (не может быть=0)
              ticket_sell=0; //тикет ордера SELL (не может быть=0)
          for(i=0;i<OrdersTotal();i++)
            {
            if(OrderSelect(i,SELECT_BY_POS)==true)
              {
              if(OrderSymbol()==Symbol())
                {
                switch(OrderType())
                  {
                  case 0 : ticket_buy=OrderTicket(); break;
                  case 1 : ticket_sell=OrderTicket();
                  }
                }
              }
            }
          //проверка тикетов на некорректность:  
          bool OCB=ticket_buy>0 && ticket_sell>0;
          if(OCB) OrderCloseBy(ticket_buy,ticket_sell,White); // Цикл закрытия
          else
            {//закрываем оставшиеся одиночные ордера
            for(i=0;i<OrdersTotal();i++) //если total==0, цикл просто не сработает
              {//закрываем оставшиеся ордера
              if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                {
                if(OrderSymbol()==Symbol())
                  {
                  RefreshRates();
                  switch(OrderType())
                    {
                    case 0 : 
                      {
                      while(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White)) 
                        {
                        Sleep(10000);
                        RefreshRates();
                        } 
                      break;
                      }
                    case 1 : 
                      {
                      while(!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White)) 
                        {
                        Sleep(10000);
                        RefreshRates();
                        } 
                      }
                    }
                  }
                }
              }
            }
          }//end while 
        }
      }
    } 
//==== БЛОК МОНИТОРИНГА
  if(Monitor==true)
    {
    string str="Balance: "+DoubleToStr(AccountBalance(),2)+" $";
    ObjectSetText("0",str,10,"Arial Black",White);
    
    str="Profit: "+DoubleToStr(AccountProfit(),2)+" $";
    ObjectSetText("1",str,10,"Arial Black",Silver);
    
    str="Free Margine: "+DoubleToStr(AccountFreeMargin(),2)+" $";
    ObjectSetText("2",str,10,"Arial Black",Yellow);
    
    str="OrdersTotal: "+DoubleToStr(OrdersTotal(),0);
    ObjectSetText("3",str,10,"Arial Black",Aqua);
    }
//----
  return(0);
  }
//+------------------------------------------------------------------+

 
baykanur:

у меня лучше всего работает avalanche 7...

Этот вариант?

 
Roman.:

"А это реал цент инста ток я не пойму почему у меня лот после 6,40 стал 102,40 на ночь забыл выключить советника к утру слив" - исходя из "исходных" Ваших данных "такое" увеличение объемов очередного ордера и ограничение работы сова по времени - являются вещами никаким образом между собой не связанными...

Аvalanche 7 - это этот вариант Вы имеете в виду?

Да вариант этот разница всего лишь в Distance у меня стоит на норде сейчас 5 и период м1 а ошибки проявляются при задержки исполнения дц а на счет ограничения по времени

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

счетах и они удваивались за неделю

вот отчет за вечер

 

Ну и тема. Вынос мозга.

Всем привет.

 
baykanur:

Да вариант этот разница всего лишь в Distance у меня стоит на норде сейчас 5 и период м1 а ошибки проявляются при задержки исполнения дц а на счет ограничения по времени

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

счетах и они удваивались за неделю

вот отчет за вечер


Был у меня подобный случай. ДЦ открыл мне лот больше максимального. На том ДЦ я больше не торгую.

В программе косяк тогда так и не нашли, хотя я примерно догадываюсь в чём было дело (там из-за задержки ордера пересчитали несколько раз и лот вырос очень сильно) - ДЦ очень был жадный, до денег.

Причина обращения: