[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 139

 

Voici les indicateurs et les modèles, j'espère pouvoir aider quelqu'un.

http://depositfiles.com/folders/8KVJ9L02I

 

Pourriez-vous expliquer à l'expert conseiller

les valeurs de l'indicateur VolumeHist (volumes verticaux), c'est-à-dire pour les déterminer sur le graphique

ou juste compter ? (s'il le calcule, il a besoin d'un bloc pour analyser le prix ~budget et calculer la valeur de cet indicateur)

par exemple, un Conseiller Expert pense et le résultat est BUY.LONG

Je dois trouver quelques extrêmes et choisir le meilleur, n'est-ce pas ?

si vous avez une expérience avec cet indicateur dans le système automatisé, veuillez partager !


 

Bonjour.

Je ne sais pas, à première vue, si c'est possible :

Il y a une fonction - elle retourne vrai, quand les conditions sont remplies.
Par exemple, C[0]>C[1]+n*Point (exactement C[0], d'où la question).

Comment puis-je spécifier dans cette fonction, que même si la condition est exécutée une fois,

condition, true renverra une certaine quantité de temps (X).

Merci.

 
Telemah >> :

Bonjour.

Je ne sais pas à première vue si c'est possible :

Il existe une fonction qui renvoie la vérité lorsque les conditions sont remplies.
Par exemple, C[0]>C[1]+n*Point (exactement C[0], d'où la question).

Comment puis-je spécifier dans cette fonction, que même si la condition est exécutée une fois,

exécution unique d'une condition, vrai renverra un certain temps (X).

Merci.


Tu ne peux pas. MQL4 n'est pas un OOP. Par conséquent, la fonction ne peut renvoyer qu'une seule valeur.

Mais il existe plusieurs solutions de contournement :


1. Envoyez un tableau à la fonction par référence et stockez-y les valeurs requises pendant l'exécution de la fonction, afin de les lire ultérieurement.

2. déclarer des variables statiques, leur attribuer des valeurs pendant l'exécution de la fonction et les lire après.

 
Reshetov >> :

Vous ne pouvez pas. MQL4 n'est pas un OOP. Par conséquent, la fonction ne peut renvoyer qu'une seule valeur.

Mais il existe plusieurs solutions de contournement :


1. Passez un tableau par référence à une fonction et stockez-y les valeurs requises pendant l'exécution de la fonction, afin qu'elles puissent être lues ultérieurement.

Déclarer des variables statiques, leur attribuer des valeurs au moment de l'exécution de la fonction et les lire après.

Je vous remercie de votre réponse.

 
Messieurs, conseiller ce que le problème, il est nécessaire que chaque nouvellement apparu en attente de supprimer le précédent, il semble juste, mais il ne fonctionne pas comme il se doit, s'il ya une attente pour l'achat, puis l'attente pour la vente, il supprime (et vice versa), et si il est d'acheter et il ya un nouvel achat (c'est-à-dire dans la même direction) ne fonctionne pas la chimio (avec la vente plus la vente de la même chose). Je ne comprends pas quelque chose, qu'est-ce qui ne va pas ?
bool SELLSTOP; bool BUYSTOP;
  if(...... && BUYSTOP == false)
     {
     int BuyTicketStop = OrderSend(Symbol(),OP_BUYSTOP, Lots, SB,4, SB - StopLoss*Point, SB + TakeProfit*Point,"Покупаем",658932,0,Green);
        if ( BuyTicketStop > 0)
        {
        BUYSTOP = true;
        PlaySound("recharge.wav");
        }
        else 
        {
        Print("Ошибка: ", Error(GetLastError()));
        PlaySound("timeout.wav");
        }
      }  

  if(....... && SELLSTOP == false)
     {
     int SellTicketStop = OrderSend(Symbol(),OP_SELLSTOP, Lots, SS,4, SS + StopLoss*Point, SS - TakeProfit*Point,"Продаем",658932,0,Red);
        if ( SellTicketStop > 0)
        {
        SELLSTOP = true;
        PlaySound("recharge.wav");
        }
        else 
        {
        Print("Ошибка: ", Error(GetLastError()));
        PlaySound("timeout.wav");
        }
     }
     
 int M;
 for( M = OrdersTotal() - 1; M >= 0; M--)
     {
     OrderSelect( M, SELECT_BY_POS, MODE_TRADES);
     
          if ( SELLSTOP == true){if(OrderType() == OP_BUYSTOP) 
          {bool ODBS = OrderDelete(OrderTicket());
          if( ODBS){ BUYSTOP = false; PlaySound("ok.wav");}
          else { BUYSTOP = true; Print("Ошибка: ", Error(GetLastError())); PlaySound("timeout.wav");}}}
          
          if ( BUYSTOP == true){if(OrderType() == OP_SELLSTOP) 
          {bool ODSS = OrderDelete(OrderTicket());            
          if( ODSS){ SELLSTOP = false; PlaySound("ok.wav");}
          else { SELLSTOP = true; Print("Ошибка: ", Error(GetLastError())); PlaySound("timeout.wav");}}}
 
 

Bon après-midi. Question pour les experts.

J'optimise avec un écart variable.

Comment le testeur prend-il en compte la propagation pendant l'optimisation ?

Prend-il en compte le nouvel écart de courant à chaque passage ?

Ou bien toutes les optimisations sont effectuées en considérant l'écart mémorisé par le testeur avant d'appuyer sur le bouton OPTIMIZATION ?

 
Rita писал(а) >>

Bon après-midi. Question pour les experts.

J'optimise avec un écart variable.

Comment le testeur prend-il en compte la propagation pendant l'optimisation ?

Prend-il en compte le nouvel écart de courant à chaque passage ?

Ou bien tous les cycles d'optimisation sont basés sur l'écart mémorisé par le testeur avant d'appuyer sur le bouton OPTIMIZATION ?

Le dernier connu est-il utilisé ?

 
Rita писал(а) >>

Bon après-midi. Question pour les experts.

J'optimise avec un écart variable.

Comment le testeur prend-il en compte la propagation pendant l'optimisation ?

Prend-il en compte le nouvel écart de courant à chaque passage ?

Ou bien tous les cycles d'optimisation sont basés sur l'écart mémorisé par le testeur avant d'appuyer sur le bouton OPTIMIZATION ?

La dernière connue est-elle utilisée ?

 

Merci. Mais ce n'est pas encore tout à fait clair.

Dernier connu avant chaque course ?

Ou la dernière connue avant le début de l'optimisation ?

Raison: