[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 772

 
FoxUA:


Afin d'éviter toute clarification supplémentaire. FoxUA crée son propre fil de discussion avec une question dans laquelle vous dévoilez toutes les subtilités. "Toute question de débutant..." est un sujet pour les "questions-réponses" rapides.
 
DDFedor:

Afin d'éviter tout autre éclaircissement. FoxUA, créez votre propre fil de discussion avec une question, où vous divulguez tous les détails. "Toute question de débutant..." est un sujet pour les "questions et réponses rapides".

Je ne vérifie pas les attitudes, je commente une déclaration que je me suis faite à moi-même,

Je ne parle pas de la rapidité, je parle des commentaires insignifiants qui n'aident pas.

 
FoxUA:

Andrey, vous vous êtes trompé, j'ai regardé le code, votre variable HaveBuyLimitOrderEnd n'apparaît que dans cette construction :

  if (HaveBuyLimitOrderEnd== true) 
  {DeleteOrder();  // Выбираем            
  }}

Et plusieurs posts plus haut, vous l'écrivez dans celui-ci :

Le fait est que la première valeur fonctionne bien, mais pas celle-ci.

si(HaveBuyLimitOrderEnd== true)
{ModifyBuyStopOrder(PRAskS) ; // Vérifiez-le
} }

Comment cela doit-il être ?

 
ToLik_SRGV:

Andrey, vous vous êtes trompé, j'ai regardé le code, votre variable HaveBuyLimitOrderEnd n'apparaît que dans cette construction :

Et plusieurs posts plus haut, vous l'écrivez dans celui-ci :

Est-ce que c'est comme ça que ça doit être ?



c'est le cas, voici la partie logique, pour le mettre face à face il y a des blocs sont procically la même différence en termes

if(bs==1&&bl==1)
{OpenBuyLimitOrder(Lot*7,PRAskL); 
  if (HaveBuyStopOrder== true) 
  ModifyBuyStopOrder(PRAskS);  // Выбираем            
      
  }   

if(bt==1&&bl==1) 
{OpenBuyStopOrder(Lot,PRBidS);
   if (HaveBuyLimitOrder== true) 
  ModifyBuyLimitOrder(PRAskL);  // Выбираем            
  } 

if(ss==1&&sl==1)
{OpenSellLimitOrder(Lot*7,PRBidL); 
   if (HaveSellStopOrder== true) 
  ModifySellStopOrder(PRBidS);  // Выбираем            
  } 

if(st==1&&sl==1)
{OpenSellStopOrder(Lot,PRBidS); 
  if (HaveSellLimitOrder== true) 
  ModifySellLimitOrder(PRBidL);  // Выбираем            
  } 

  if(bs==1&&bl==3)
{OpenBuyLimitOrderEnd(Lot*15,PRAskL); 
   if (HaveBuyStopOrder== true) 
  ModifyBuyStopOrder(PRAskS);  // Выбираем            
  } 

if(bt==1&&bl==3) 
{OpenBuyStopOrder(Lot,PRBidS);
OpenBuyLimitOrder(Lot*3,PRAskL);
  if (HaveBuyLimitOrder== true) 
  DeleteOrder();  // Выбираем            
  } 

if(ss==1&&sl==3)
{OpenSellLimitOrderEnd(Lot*15,PRBidL); 
   if (HaveSellStopOrder== true) 
  ModifySellStopOrder(PRBidS);  // Выбираем            
  } 

if(st==1&&sl==3)
{OpenSellStopOrder(Lot,PRBidS);
OpenSellLimitOrder(Lot*3,PRBidL);
   if (HaveSellLimitOrder== true) 
  DeleteOrder();  // Выбираем            
  } 

   if(bs==1&&bl==7)
{
    if (HaveBuyStopOrder== true) 
  ModifyBuyStopOrder(PRAskS);  // Выбираем            
  } 

if(bt==1&&bl==7) 
{OpenBuyStopOrder(Lot,PRBidS);
OpenBuyLimitOrder(Lot*3,PRAskL); 
  if (HaveBuyLimitOrderEnd== true) 
  DeleteOrder();  // Выбираем            
  } 

if(ss==1&&sl==7)
{  if (HaveSellStopOrder== true) 
  ModifySellStopOrder(PRBidS);  // Выбираем            
  } 

if(st==1&&sl==7)
{OpenSellStopOrder(Lot,PRBidS); 
OpenSellLimitOrder(Lot*3,PRBidL); 
  if (HaveSellLimitOrderEnd== true) 
  DeleteOrder();  // Выбираем            
  } 

donc tout bloc sonne de la même façon "si la première variable est 1 et la deuxième variable est 1,3,7 alors ouvrez un ordre en attente avec le lot ____ et le prix _____" et aussi si le drapeau de l'ordre en attente ouvert sélectionné est égal à la vérité alors modifiez (supprimez) cet ordre.

 
Bonjour. La situation est la suivante : une valeur de décalage d'indicateur du tampon est recherchée par l'instruction for, c'est-à-dire for(i=0;i<=100;i++), MD1=MD1+i, MD1=iMACD(........, i), la position est ouverte seulement si la dernière barre (dans ce cas la 100ème) répond aux critères d'ouverture. J'ai besoin qu'il s'ouvre dans la direction des barres 0 (si les critères sont corrects) et qu'il ne tienne pas compte des barres ultérieures. Existe-t-il une solution à ce problème ? Merci d'avance.
 
probablement pour(i=100;i>=0;i--), ?
 
sergeev:
probablement pour(i=100;i>=0;i--), ?
Donc, pour une raison quelconque, les commandes ne s'ouvrent pas du tout (MD1=MD1-i changé).
 

Bonjour à tous, on m'a conseillé de simplifier le soviet, j'ai commencé à le simplifier, mais j'ai un problème, l'essence du problème lorsque vous ouvrez les commandes dans le journal écrit l'erreur 4107, mais il ouvre facilement tous les ordres, qui peut regarder ce que le problème, je dis à la fois tout le code est pris de la bibliothèque Kim Igor V. aka KimIV,

Dossiers :
test_21.mq4  15 kb
 
sergeev:
probablement pour(i=100;i>=0;i--), ?
Cela semble fonctionner, seulement i>=2, si 0 ou 1, il renvoie -1 et 0 respectivement. Merci.
 
FoxUA:

Bonjour à tous, on m'a conseillé de simplifier le soviet, j'ai commencé à le simplifier, mais j'ai un problème, l'essence du problème lorsque vous ouvrez les commandes dans le journal écrit l'erreur 4107, mais il ouvre facilement tous les ordres, qui peut regarder ce que le problème, je dis à la fois tout le code est pris de la bibliothèque Kim Igor V. aka KimIV,

Veuillez normaliser les prix d'arrêt.