[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 302

 
skyjet:

Bonjour ! Désolé d'insister, mais si vous le voulez bien, pourriez-vous me conseiller ?

Avec iCustom j'obtiens un signal d'indicateur dans l'EA, mais l'EA n'ouvre des trades que dans une seule direction, en fonction de la condition de cette partie .

Il n'y a rien de plus fastidieux que de chercher des erreurs dans le code d'autrui. Et je ne suis pas un programmeur.

Regardez comment le bloc d'ouverture par l'indicateur de flèche est fait dans l'assistant. Il y a également une limite au nombre de commandes.

         #property copyright "Integer"
         //..............................  
         double bv=iCustom(NULL,TimeFrame,IND,PatternLength,PatternID,UsePatternStr,BuyPatternStr,0,1);
         double sv=iCustom(NULL,TimeFrame,IND,PatternLength,PatternID,UsePatternStr,BuyPatternStr,1,1);
         
         bool BuySignal=false;
         bool SellSignal=false;
            if(bv!=0 && bv!=EMPTY_VALUE){
               BuySignal=true;
            }
            if(sv!=0 && sv!=EMPTY_VALUE){
               SellSignal=true;
            }
            
            if(BuySignal || SellSignal){
               if(CloseOnRev)fOrderCloseMarket(SellSignal,BuySignal);
               int BuyCount,SellCount;
               int Total=fMarketOrdersTotal(BuyCount,SellCount);
                  if(Total==-1){
                     return(0);
                  }
                  if(Total<MaxCount || MaxCount==-1){
                     if(BuySignal){
                        if(BuyCount<MaxBuyCount || MaxBuyCount==-1){
                           if(LastBuyTime!=iTime(NULL,TimeFrame,0)){
                              fOrderOpenBuy();
                           }  
                        }
                     }
                     if(SellSignal){
                        if(SellCount<MaxSellCount || MaxSellCount==-1){
                           if(LastSellTime!=iTime(NULL,TimeFrame,0)){
                              fOrderOpenSell();
                           }
                        }
                     }
                  }
                  
            }
            
 
skyjet:

Bonjour ! Désolé d'insister, mais si vous le voulez bien, pourriez-vous me conseiller ?

Avec iCustom j'obtiens un signal d'indicateur dans l'EA, mais l'EA n'ouvre des trades que dans une seule direction, en fonction de la condition de cette partie .


Je devrais également examiner ces conditions
 
Vinin:

Mais il est préférable de ne pas transférer le code de l'indicateur à l'expert - il y aura des décalages.
Que dois-je faire ? Dois-je utiliser iCustom pour recevoir les données pour le conseiller expert ?
 
Alexandr24:
Que devons-nous faire ? Obtenir les données pour l'expert via iCustom ?

Une variante optimale, si le code de l'indicateur est optimal. Sinon, vous pouvez accélérer le traitement
 
Vinin:

J'aurais dû regarder ces conditions

Vérification d'un signal, au début, tant à l'achat qu'à la vente, db/ub == 0 n'ouvre que des transactions longues


après que le signal soit devenu db!=1, ub!=0 n'ouvre que des positions courtes

J'ai mis db!=0 et ub!=!0 mais il n'y a pas d'ouverture de marché du tout.

//------ получение сигнала в советнике


double db=iCustom(NULL,0,"GetSignal",0,SignalBar);// Стрелка вниз
double ub=iCustom(NULL,0,"GetSignal",1,SignalBar);// Cтрелка вверх
 
 
 bool BuySignal=false;
 bool SellSignal=false;
 
//-----------------------------------------------------------------------------------+
//Проверка на сигнал
if(db!=1)
 {
  SellSignal=true;
 }
if(ub!=1)
 {
  BuySignal=true;
 }
 
skyjet:

Vérification d'un signal, au début, tant à l'achat qu'à la vente, db/ub == 0 n'ouvre que des transactions longues


après que le signal soit devenu db!=1, ub!=0 n'ouvre que des positions courtes

J'ai mis db!=0 et ub!=!0, les transactions ne se sont pas ouvertes du tout.


Cela ne vous dit rien, surtout si l'indicateur est incurvé.
 
Vinin:

Cela ne vous dit rien, surtout si l'indicateur est de travers.

J'ai contrôlé le fonctionnement de l'indicateur, et je n'ai pas remarqué de problème à ce sujet.

Mais si vous dites qu'elle est de travers, qu'y a-t-il à vérifier ?

 
skyjet:
MetaEditor
Merci !
 

Bonsoir ! Pouvez-vous me dire la différence entre

texte et marque de texte ?

OBJ_TEXT 21 Texte
OBJ_LABEL 23 Étiquette de texte.
 

Pourriez-vous me dire...
Une valeur maximale est recherchée sur un intervalle donné :

buy_stop_level = High[iHighest(NULL,0,MODE_HIGH,Bars-bar_start,1)];

Requis :
Après avoir trouvé un maximum, sur un nouvel intervalle (de la première barre à la barre sur laquelle le maximum est déterminé), trouvez le minimum.

StopLoseBuy    = Low[iLowest(NULL,0,MODE_LOW,Bars-(бар который приходится на максимум),1)];