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

 

Bonjour ! Aidez-moi. Je suis en train d'écrire mon premier EA en MQL4.

Mon conseiller expert ouvre une position mais ne la ferme pas. Il n'y a pas d'erreur dans le journal.

void OnTick()
  {RefreshRates();
  ma1=iMA(_Symbol,TimeFrame,Period_MA1,Shift_MA1,metod_ma1,PRICE_CLOSE,0);
ma2=iMA(_Symbol,TimeFrame,Period_MA2,Shift_MA2,metod_ma2,PRICE_CLOSE,0);


if (ma1<ma2)
{
SellPositionClose();
BuyPositionOpen();
}

if (ma1>ma2)
{
BuyPositionClose();
SellPositionOpen();
}
}
 

     
void BuyPositionOpen()  // покупка
{int res=0;
RefreshRates();
if (OrdersTotal()==0)
res=OrderSend(_Symbol,OP_BUY,Lots,Ask,3,0,0,"",Magic,0,Blue);
if (res<0) Print("OrderClose111111 error ",GetLastError());
}

void     SellPositionOpen() // продажа
{int res=0;
RefreshRates();
if (OrdersTotal()==0)
res=OrderSend(_Symbol,OP_SELL,Lots,Bid,3,0,0,"",Magic,0,Red);
if (res<0) Print("OrderClose111111 error ",GetLastError());
}

void BuyPositionClose() // закрытие длинной позиции
{RefreshRates();
if ((OrdersTotal()!=0) && (OrderMagicNumber()==Magic))
{
if (!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) Print("OrderClose error ",GetLastError());

 if(OrderType()==OP_BUY)
           
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
               }
               }
               
void SellPositionClose()  // закрытие короткой позиции
{RefreshRates();
if (OrdersTotal()!=0 && OrderMagicNumber()==Magic)
{
if (!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) Print("OrderClose error ",GetLastError());
    
     if(OrderType()==OP_SELL)
                
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,100,White))
               Print("OrderClose error ",GetLastError());
               
               }
               }
 
Terind:

Bonjour ! Aidez-moi. Je suis en train d'écrire mon premier EA en MQL4.

Mon conseiller expert ouvre une position mais ne la ferme pas. Il n'y a pas d'erreur dans le journal.

Cette condition ne fonctionne pas :

if ((OrdersTotal()!=0) && (OrderMagicNumber()==Magic)) //ордер ещё не выбран с помощью OrderSelect()
 
evillive:

C'est la condition qui ne fonctionne pas :

Merci. Je l'ai corrigé, ça marche maintenant.
 
Bonjour. j'ai rencontré ce problème. lorsque je dessine des lignes et des rectangles sur le graphique d'une paire, tous ces éléments sont affichés sur les marchés des autres paires. pourquoi cela et comment puis-je le supprimer ?
 
roymax:
Bonjour. j'ai rencontré un problème de ce genre. lorsque je trace des lignes et des rectangles sur le graphique d'une paire, tous ces éléments sont affichés sur les marchés des autres paires. pourquoi en est-il ainsi, et comment puis-je le supprimer ?
J'ai besoin de le montrer, car les autres ne savent pas comment s'y prendre. Et de préférence dans le code
 

Il s'agit d'un bogue de longue date, vous pourriez le considérer comme une fonctionnalité :)

1. Dessinez quelque chose sur un graphique

2. Appuyez sur la barre d'espacement et passez à une autre paire

Les objets graphiques restent sur le graphique

Exemple :

Sur le graphique de l'euro, une ligne droite a été tracée.

Déplacement vers la livre et réduction de l'échelle verticale

 
tara:

Il s'agit d'un bogue de longue date, vous pourriez le considérer comme une fonctionnalité :)

1. Dessinez quelque chose sur un graphique

2. Appuyez sur la barre d'espacement et passez à une autre paire

Les objets graphiques restent sur le graphique

Bild 765, ne fonctionne pas, les objets restent, mais sur le graphique où ils ont été créés :)

P.S. : La façon décrite par Alexey fonctionne certainement, mais en fait cette action a lieu dans une fenêtre, le symbole du graphique change, mais l'objet est attaché à la fenêtre, pas à un symbole))))

 
AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)=false signifie-t-il que le compte est bloqué ? Ou s'agit-il simplement d'une interdiction de commerce ? Quels sont les autres critères pour un compte bloqué ? Et qu'est-ce qui, à part une interdiction de commerce, bloque le compte si le login a été passé (je veux dire l'erreur 64) ?
 
tara:

Il s'agit d'un bogue de longue date, vous pourriez le considérer comme une fonctionnalité :)

1. Dessinez quelque chose sur un graphique

2. Appuyez sur la barre d'espacement et passez à une autre paire

Les objets graphiques restent sur le graphique

Exemple :

et cela n'a pas été corrigé de quelque manière que ce soit ?
 

Bonjour, j'ai regardé dans la documentation mais je ne l'ai pas trouvé. Ma question est la suivante : est-il possible de changer cette image au début de l'EA par votre logo ?






Raison: