Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 46

 
KarpovNikolay:

Bonjour à tous. Je suis nouveau dans le trading, je suis assis sur la démo avec les conseillers experts, mais je veux commencer réel avec 45 $. Je teste des EA pour l'instant, je veux donc utiliser des signaux. J'utilise MT4. J'ai sélectionné une liste dans laquelle j'aimerais que vous m'aidiez à choisir le meilleur signal. Voici la liste :

https://www.mql5.com/ru/signals/10276

https://www.mql5.com/ru/signals/11021

https://www.mql5.com/ru/signals/6283

https://www.mql5.com/ru/signals/10964

https://www.mql5.com/ru/signals/9649

C'est la chance du débutant ! Mais il vaut mieux ne pas perdre de temps, étudier le commerce, la langue ! Peut-être aurez-vous de la chance !
 
Bonjour. aidez-moi s'il vous plaît aidez-moi si la variable sig=1 a besoin de la variable pol pour se souvenir de l'équilibre et ne pas changer sa valeur, peu importe combien de temps il continuera à montrer, et si sig=1 à nouveau pour se souvenir de l'actuel s'il vous plaît donnez-moi le code
 
sannin:
Bonjour. aidez-moi s'il vous plaît aidez-moi si la variable sig=1 a besoin de la variable pol pour se souvenir de l'équilibre et de ne pas changer sa valeur peu importe combien de temps il continuera à montrer et si sig=1 encore pour se souvenir de l'actuel s'il vous plaît donnez-moi le code
    if (сиг == 1) pol = AccountBalance();
 
TarasBY:


si le solde change, le sexe sera égal au nouveau solde

cela est immédiatement visible si vous faites ce qui suit

int pol ;
Comment("\Nsolde : ", pol) ;

pol=AccountBalance() ;

 

J'ai créé un conseiller expert pour tester le commerce, mais je n'arrive pas à comprendre une chose...

La vente est ouverte en utilisant les MA maximales et minimales

// Condition pour l'ouverture de la position BUY
if(MA_L1<MA_L0&&Ask<=MA_L0&MA_0>MA_1&&HA_up>HA_dw)

// Condition pour ouvrir une position SELL
if(MA_H1>MA_H0&&Bid>=MA_H0&MA_0<MA_1&HA_up<HA_dw)

#include <b-Lots.mqh>
extern double TrailingStop = 30;
extern double Sploss = 15;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start() {
   double HA_up,HA_dw;
   double MA_H0,MA_H1,MA_L0,MA_L1,MA_0,MA_1;
   int i, cnt, ticket, total;
   bool flag=true;

   if(Bars<100) {
      Print("bars less than 100");
      return(0); 
   }
// Проверяем стоит ли открываться
   
   cnt=OrdersHistoryTotal()-1;
   for(i=cnt;i>=0;i--) {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY )) continue;
      if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа
         flag=false;
         break;
      }
   }
   cnt=OrdersTotal()-1;
   for(i=cnt;i>=0;i--) {
      if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if(OrderOpenTime()>=Time[0]) { // Time[0] - если позиция открывается на нулевом баре текущего символа
         flag=false;
         break;
      }
   }
   if(!flag) return(0); 
//-----------------------------------------------
   MA_H0=iMA(0,0,3,0,MODE_SMA,PRICE_HIGH,0);
   MA_H1=iMA(0,0,3,0,MODE_SMA,PRICE_HIGH,1);
   MA_0=iMA(0,0,3,0,MODE_EMA,PRICE_MEDIAN,0);
   MA_1=iMA(0,0,3,0,MODE_EMA,PRICE_MEDIAN,1);
   MA_L0=iMA(0,0,3,0,MODE_SMA,PRICE_LOW,0);
   MA_L1=iMA(0,0,3,0,MODE_SMA,PRICE_LOW,1);
   HA_up=iCustom(0,0,"Heiken Ashi",3,0);
   HA_dw=iCustom(0,0,"Heiken Ashi",2,0);

//задали все данные 

   total=OrdersTotal();
   if(total<1) 
     {
      // Проверка свободной маржи
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
      // Условие открытие позиции BUY
      if(MA_L1<MA_L0&&Ask<=MA_L0&&MA_0>MA_1&&HA_up>HA_dw)
        {
         Lots=GetSizeLot();
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-Sploss*Point,0,"",16384,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
      // Условие открытие позиции SELL
      if(MA_H1>MA_H0&&Bid>=MA_H0&&MA_0<MA_1&&HA_up<HA_dw)
        {
         Lots=GetSizeLot();
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+Sploss*Point,0,"",16384,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0); 
        }
      return(0);
     }
    
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   
         OrderSymbol()==Symbol())  
        {
         if(OrderType()==OP_BUY)   // длинная позиция открыта
           {
           if(NormalizeDouble (MathAbs(MA_H0-Bid),Digits)<Point)
                {
                 OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); 
                 return(0); 
                }
            // трейлинг-стоп для длинной позиции
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else 
           {
           if(NormalizeDouble (MathAbs(MA_L0-Ask),Digits)<Point)
              {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); 
               return(0); 
              }
            // трейлинг-стоп для короткой позиции
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
  }

Question : Si la position sur la bougie actuelle n'est pas fermée (les conditions ne sont pas réunies), comment la fermer sur la bougie suivante, lorsqu'elle correspond à MA_0= iMA ( 0, 0, 3, 0, MODE_EMA, PRICE_MEDIAN, 0 ) ;

Nous avons une condition de fermeture : franchissement du haut ou du bas de la bougie actuelle, mais nous avons besoin que la position soit fermée sur la bougie suivante après son ouverture.

Nous pouvons écrire if ( NormalizeDouble ( MathAbs (MA_0-Ask), Digits )< Point ), mais comment remplir la condition de la deuxième bougie ouverte.


Si vous pouvez répondre avec un code, l'exemple est plus clair.

 
sannin:


si le solde change, pol sera égal au nouveau solde

Ceci est immédiatement visible si vous faites ce qui suit

int pol ;
Comment("\Nsolde : ", pol) ;

pol=AccountBalance() ;

Vous ne pouvez rien vérifier avec ce code. Et la variable pol doit être déclarée globalement, de même que la variable sig.
 
TarasBY:
Ce code ne vérifie rien. Et la variable pol doit être déclarée globalement, de même que la variable sig.


Eh bien... comment le faire... le soment montre la valeur actuelle de la variable pol

au début, la moitié de la commande présente le solde initial

j'ouvre un ordre et mon solde est égal au solde initial mais si je ferme en profit ou vice versa, le solde change.

Le sexe doit devenir un nouvel équilibre sous certaines conditions et tant que ces conditions ne sont pas remplies, il est égal à l'équilibre initial.

 
borilunad:
Pour le code MQL4, utilisez SRC et tout le monde pourra s'y retrouver et vous aider !

Merci, je le saurai.
 
sannin:


Eh bien... comment le faire... le commentaire indique la valeur actuelle de la variable sexe

au début, la moitié de la commande présente le solde initial

j'ouvre un ordre et mon solde est égal au solde initial mais si je ferme en profit ou vice versa, le solde change.

J'ai besoin que le plancher devienne un nouveau solde sous certaines conditions et que, jusqu'à ce que les conditions soient remplies, le plancher soit égal au solde initial.

Il existe une catégorie de personnes qui ne savent pas écouter, il est presque impossible de les aider.
 
TarasBY:
Il existe une catégorie de personnes qui ne savent pas écouter, il est presque impossible de les aider.


Bonjour, aidez-moi s'il vous plaît aidez-moi si j'ai besoin de la variable pol pour stocker le solde lorsque la variable sig=1 sans changer sa valeur, peu importe combien de temps il continue à s'afficher, et si sig=1 à nouveau j'ai besoin de stocker le courant , s'il vous plaît dites-moi le code

d'accord

Tout le monde est un petit malin.

Je suis désolé... Le fait est que je redoute cette tâche depuis deux jours...

Je ne demanderais pas d'aide.

Raison: