Avalanche - page 466

 
Et c'est un vrai centre insta Je ne comprends pas pourquoi mon lot après 6.40 était 102.40 la nuit j'ai oublié d'éteindre l'EA le matin c'était perdu
 
baykanur:
Et c'est un vrai insta-center je ne comprends pas pourquoi mon lot après 6.40 était de 102.40 la nuit j'ai oublié d'éteindre l'EA le matin drainé
Vous devez examiner le code pour en trouver la raison.
 
baykanur:
Et c'est un vrai centre d'insta Je ne comprends pas pourquoi j'ai un lot après 6.40 était 102.40 pendant la nuit a oublié d'éteindre l'EA le matin prune

J'ai un mauvais pressentiment. Vous pouvez mettre une limite de temps sur le commerce dans le code. Vous pouvez fixer une limite au temps de négociation qui ne serait pas un tel crash. C'est le plus facile, à mon avis. Une ligne de conditions + extern int, ne serait-ce que par heures pour faire la restriction.
 
Cmu4:

C'est une honte. Vous pouvez mettre une limite de temps sur le commerce dans le code. Vous pouvez mettre une limite de temps dans le code afin qu'il n'y ait pas de telles fissures. C'est le plus facile, à mon avis. Une ligne de la condition + extern int, si seulement par heures nous faisons la limitation.


Il y a une erreur dans l'algorithme (dans le code) qui calcule le lot suivant. Qu'est-ce que le délai a à voir là-dedans - il pourrait apparaître à tout moment... Je ne sais pas comment c'est - dans ma version d'Avalanche - après avoir optimisé les paramètres - par le temps il s'est avéré que le "début" - à 0 heure, "fin" - à 23 heures, c'est-à-dire, travailler autour de l'horloge ... Et en effet, il y a des mouvements intéressants sur Eurobucks pendant la nuit... et un appartement peut se produire pendant la journée... une approche différente est nécessaire... (voir les messages ci-dessus)... Je pense que la limitation (dans ce cas (avec Avalanche)) du travail du hibou par le temps est inappropriée... IMHO, bien sûr.

P.S. Dans la capture d'écran ci-dessus, après 6,4, le volume devrait être de 12,8 et non de 102,4 lots... - Il s'agit d'une erreur dans le programme.

 
Cmu4:

C'est une honte. Vous pouvez mettre une limite de temps de négociation dans votre code. Cela ne permettrait pas d'avoir de tels problèmes. C'est le plus facile, à mon avis. Une ligne de conditions + extern int, ne serait-ce que par heures pour faire la restriction.

Pour moi, cela fonctionne mieux avec avalanche 7 mais avec différentes sociétés de courtage, c'est complètement différent si elles ont des délais d'exécution comme insta commence à dysfonctionner même avec les mêmes couloirs et avec des résultats différents.

j'ai une bonne journée de travail au nord, ça marche comme sur des roulettes

 
baykanur:

Je ne sais pas pourquoi je devrais fairequelque chose avec la restriction, sinon mon dépôt sera ruiné...

"L'avalanche 7 est la meilleure façon pour moi d'utiliser l'avalanche et je ne comprends pas pourquoi j'ai perdu beaucoup après 6.40 mais j'ai oublié de désactiver l'EA le matin..." Si vous utilisez des données "initiales", cette augmentation du volume de l'ordre suivant et la limitation du travail par le temps - sont des choses qui n'ont aucun rapport entre elles...

Avalanche 7 - est-ce l'option que vous avez en tête ?

//+------------------------------------------------------------------+
//|                                                  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:

mon avalanche 7 fonctionne le mieux...

Cette option ?

 
Roman.:

"Et c'est un vrai insta cent je ne comprends pas pourquoi mon lot après 6.40 était 102.40 la nuit j'ai oublié d'éteindre l'Expert Advisor le matin gaspillé" - basé sur "initial" vos données "tel " l'augmentation du volume de l'ordre suivant et la limitation du Four par le temps - sont des choses qui n'ont aucun rapport entre elles ...

Avalanche 7 - est-ce cette variante à laquelle vous faites référence ?

Pour moi, il s'agit de 5 et l'unité de temps est m1.

je suis sûr que cela n'a rien à voir avec le délai - il devrait être trouvé par lot bien que je ne sois pas sûr que DT n'ait rien à voir avec cela car cet effet d'avalanche a fonctionné sur d'autres comptes

et ils ont doublé en une semaine

Voici le rapport de la soirée

 

Quel thème ! Lavage de cerveau.

Bonjour, tout le monde.

 
baykanur:

Oui, cette variante est la seule différence dans Distance à moi est maintenant 5 et la période de m1 et les erreurs apparaissent dans l'exécution retardée de DT et au détriment de la limite de temps

Je pense que cela n'a rien à voir avec le délai - c'est le moment de trouver une erreur dans le lot bien que je ne sois pas sûr que cela n'ait rien à voir avec les concessionnaires.

et ils ont doublé en une semaine

Voici le rapport de la soirée


J'ai eu un cas similaire. La maison de courtage a ouvert beaucoup plus que le maximum. Je ne négocie plus sur cette maison de courtage.

Je ne pense pas que nous ayons trouvé l'erreur dans le programme, bien que j'aie une idée de ce qui n'allait pas (les commandes ont été recalculées plusieurs fois à cause des retards et le lot a trop augmenté) - la société de courtage était avide d'argent.

Raison: