Comment coder ? - page 192

 

...

Supprimé par mladen

Raison : inutile de montrer ce qui peut mal tourner.

 

Merci

Merci....... Roger

[Supprimé]  

besoin d'aide pour le code...

merci les gars...

 

Aide, s'il vous plaît

BONJOUR À TOUS,

Je voudrais savoir si quelqu'un peut m'aider à faire en sorte que cet indicateur ne réaffiche pas l'historique du passé, en particulier si la barre a été fermée, l'indicateur réaffiche parfois 2 à 3 barres dans le trading en direct après que les bougies aient été fermées, et si possible, qu'une alerte soit ajoutée à l'indicateur.

[Supprimé]  

besoin d'aide pour le code...

Bonjour chers membres,

Je ne suis pas un programmeur, mais j'apprécierais vraiment si quelqu'un pouvait m'aider avec ce problème.

Comment puis-je réécrire ce code pour qu'il fasse ce qui suit ;

si (Total des commandes ouvertes = 0)

alors

lot = Type1Lot(order_type) ;

si (Total des ordres ouverts = 1)

alors

lot = Type2Lot(type d'ordre) ;

si (Total des ordres ouverts > 2)

alors

lot = Type3Lot(type d'ordre) ;

Merci à tous.

J'apprécie

 

Existe-t-il une meilleure façon de coder

J'ai codé un indicateur qui affiche les hauts et les bas de l'oscillation sur le graphique et j'ai besoin de connaître le dernier de chacun d'eux avant de continuer. C'est ma tentative de recherche de ces deux prix (d'où mon besoin d'aide).

La plupart du temps, cela fonctionne, mais aujourd'hui, il a été dit que le dernier swing high était en fait l'avant-dernier swing high.

Quelqu'un pourrait-il examiner ce problème et voir s'il existe une meilleure façon de coder cette partie ?

Merci pour toute aide.

int highbar,lowbar,i,n ;

double curlow=0,curhigh=0 ;

for (i=200;i>=1;i--)

{

if (High<High && High<High && High && High<High)

{

curhigh=High ;

highbar=i+2 ;

}

if (Low>Low && Low>Low && Low>Low && Low>Low)

{

curlow=Low ;

lowbar=i+2 ;

}

}

//---- vérifie s'il y a une bougie supérieure/inférieure depuis la dernière fractale----------

n=MathMax(highbar,lowbar ) ;

for (int x=n-1;x>=0;x--)

{

si (High[x]> curhigh)

{

curhigh=High[x] ;

highbar=x ;

}

si (Low[x]< curlow)

{

curlow=Low[x] ;

lowbar=x ;

}

}

On dirait que les indentations n'ont pas été collées correctement, désolé.

 
forexarchitect:
Bonjour chers membres,

Je ne suis pas un programmeur, mais j'apprécierais vraiment que quelqu'un puisse m'aider à résoudre ce problème.

Comment puis-je réécrire ce code pour qu'il fasse ce qui suit ;

si (Total des commandes ouvertes = 0)

alors

lot = Type1Lot(order_type) ;

si (Total des ordres ouverts = 1)

alors

lot = Type2Lot(type d'ordre) ;

si (Total des ordres ouverts > 2)

alors

lot = Type3Lot(type d'ordre) ;

Merci à tous.

Appréciez

Je ne suis en aucun cas un codeur expert mais je pense que vous devez faire une boucle à travers toutes vos commandes et compter celles qui répondent à vos spécifications. Ensuite, utilisez une déclaration if différente pour les différents types de commande... exemple.

int total=OrdersTotal(),totalBuy,totalSell;

for (int q=0; q<total; q++ )

{

OrderSelect(q,SELECT_BY_TICKET,MODE_TRADES);

if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)

totalBuy++;

else if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)

totalSell++;

}

Ici, je sélectionne les billets à compter par numéro magique, et je compte également le nombre de billets courts et le nombre de billets longs. Vous pouvez utiliser le code ci-dessus comme exemple.

 

Placer un ordre limite sur les niveaux 50 et 100 psych

Salut, j'ai besoin d'un peu d'aide avec mon code. Est-ce que c'est le code à utiliser pour placer un ordre limite de marché aux niveaux 50 et 100 d'une paire de devises. Je veux placer un ordre aux niveaux 50 et 100 au-dessus et au-dessous de l'offre et de la demande actuelles.

if (Point == 0.00001) Poin = 0.0001; //6 digits

else if (Point == 0.001) Poin = 0.01; //3 digits (for Yen based pairs)

else Poin = Point; //Normal

for(double q=Ask*Poin,q<Ask+100*Poin,q++)

{

if(MathMod(q,100) == 0 || MathMod(q,50) == 0)

{

\\ Place limit order

}

for(double q=Bid*Poin,q>Bid-100*Poin,q--)

{

if(MathMod(q,100) == 0 || MathMod(q,50) == 0)

{

\\ Place limit order

}

Toute aide serait appréciée.

 

Indicateur de couleur de barre

Bonjour, quelqu'un peut-il m'aider avec un indicateur MT4 ?

Je ne sais pas si c'est possible, mais j'ai besoin que les barres soient recolorées.

R1 = valeur la plus basse des 20 dernières barres + (2*ATR(10))

R2 = valeur la plus élevée des 20 dernières barres - (2*ATR(10))

Si le prix de clôture est supérieur à R1, la barre as.... est colorée en bleu vif.

Si le prix de clôture de la barre précédente est inférieur à R2, alors la barre est colorée en..... FireBrick

Merci

A

 

Je cherche toujours un exemple de code d'EA ouvrant plus d'un ordre.

Je veux seulement ouvrir 2 ordres à la fois, 1 avec tp et 1 sans et ensuite ne JAMAIS ouvrir un autre dans cette direction jusqu'à ce que les conditions changent pour ouvrir dans l'opposé. ensuite fermer tout et répéter dans l'opposé.

J'essaie de le coder mais...FAIL jusqu'à présent.

Le plus gros problème est qu'une position s'ouvre à la clôture d'une bougie... puis la seconde s'ouvre à la clôture de la bougie suivante. J'ai aussi plus de 2 positions ouvertes parfois et j'obtiens une nouvelle position chaque fois que la 1ère atteint le TP. TOUT CELA EST TRÈS MAUVAIS.

Voici le code de l'ordre d'achat et la vente est fondamentalement la même...

TOUTES LES ASTUCES seraient utiles, je suis prêt à taper le code.

Même un EA qui fait cela que je peux regarder pour des exemples...

Je pense que cette idée est très importante et devrait être incorporée dans BEAUCOUP d'EA différents à des fins de gestion de l'argent.

MERCI BEAUCOUP

if ( ) {

Closebuy = True ;

MAcrossDown = True ;

MAcrossUP = Faux ;

OrdertotalCloseBuy = OrdersTotal() ;

int AttemptsTriedCloseBuy = 0 ;

bool OrderCloseBuy = False ;

bool PositionClosedBuy = False ;

if(OrdersTotal() > 0 ){

OrderSelect(0, SELECT_BY_POS, MODE_TRADES) ;

if(OrderType() == OP_BUY){

for (int i = OrdertotalCloseBuy-1 ; i >= 0 ; i --) {

PositionClosedBuy = Faux ;

AttemptsTriedCloseBuy = 0 ;

OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;

while (!PositionClosedBuy && AttemptsTriedCloseBuy < CloseposnAttempts) {

AttemptsTriedCloseBuy = AttemptsTriedCloseBuy + 1 ;

OrderCloseBuy = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, LimeGreen) ;

Sleep(PausebetweenOrders * 1000) ;

if(OrderCloseBuy == True) { // Position fermée avec succès.

PositionClosedBuy = True ;

// si (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy") ;

} else if( Order == False && AttemptsTried >= CloseposnAttempts ) {

Print( AttemptsTried + " tentatives de clôture de l'ordre Market " +

OrderTicket() + " failed. Error [ " + GetLastError() + " ]" ) ;

// if (SignalMail) SendMail( AttemptsTried, " attempts to close Buy Market order Failed" ) ;

} // End If, Order :

} // End While Loop, AccountAvailable :

}//for

}//if ordertype

}//if orderstotal

Sleep(1000) ;

if(OrdersTotal() == 0 && Closebuy == True && Sell_Complete_Wait4Cross_Up == False) {

SellTicket1 = False ;

SellTicket1 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLoss, Bid - TakeProfit * Point, "SELL(#" + MagicNumber + ")", MagicNumber, 0, Red) ;

Sleep(PausebetweenOrders * 1000) ;

Sell_Complete_Wait4Cross_Up = True ;

Buy_Complete_Wait4Cross_Down = False ;

if (Ticket && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open 1st Sell") ;

Sleep(1000) ;

SellTicket2 = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLoss, 0, "2nd SELL(#" + MagicNumber + ")", MagicNumber, 0, Pink) ;

Sleep(PausebetweenOrders * 1000) ;

if (Ticket2 && SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open 2nd Sell") ;

if(OrdersTotal() == 2 && MAcrossDown == True) {Sell_Complete_Wait4Cross_Up = True ; Buy_Complete_Wait4Cross_Down = False;}

}//Ordersend

} //Closebuy