Demandez ! - page 145

 

Appel de service web avec MQL

Quelqu'un sait-il comment appeler des services web externes à partir d'un conseiller expert ?

 
 

Je suppose que c'est quelque chose de basique, mais je ne sais pas comment y accéder. Quelqu'un peut-il me dire comment récupérer l'ouverture/fermeture quotidienne d'il y a plusieurs jours si je suis sur un graphique autre que le quotidien ? Peut-être fournir un exemple de code, ce serait utile.

Thx

ET

 

Consultez l'aide de MetaEditor pour iopen et iclose.

Lux

 
luxinterior:
Regardez dans l'aide du MetaEditor pour iopen et iclose Lux.

Merci beaucoup, ça a fait l'affaire...

ET

 

Demande de correction de code

Bonjour,

J'essaie de modifier l'indicateur ci-joint pour effectuer les opérations suivantes :

1) faire coïncider la date de début avec la couleur 1, actuellement l'indicateur trace la deuxième couleur (couleur 2) de la série sur la date de début et non la première.

2) sortir la date, la couleur, l'ouverture, le haut, le bas et la fermeture de chaque ligne tracée dans la série. Le fichier serait ajouté au fur et à mesure que de nouvelles données seraient disponibles.

Merci d'avance pour votre aide.

Cordialement,

Dossiers :
 

Calc lowest low/use higher time frame trend/avoid spread problem

J'essaie de trouver des exemples de codage qui pourraient répondre aux exigences suivantes :

Afin de calculer le placement d'un stop, j'aimerais voir un codage qui, pour n'importe quel cadre temporel donné, indiquerait à l'EA le plus bas (ou le plus haut) des derniers X nombres de barres... et ensuite utiliser CE prix moins (ou plus dans le cas du plus haut) X nombre de pips pour fixer un niveau de stop.

Pour qu'un nouvel ordre sur un horizon court soit placé dans la même direction que la tendance d'un horizon plus large, j'aimerais voir un codage qui permettrait de placer de nouveaux ordres sur le graphique de l'horizon court UNIQUEMENT dans la même direction que la tendance du graphique de l'horizon plus large. Comme exemple simple, supposons qu'un EA attaché à un graphique de 15 minutes veuille placer un ordre d'achat sur le croisement UP de MA1 sur MA2 (avec un stop placé comme dans la question précédente à 5 pips en dessous du plus bas des 5 dernières barres) MAIS je cherche un codage qui ne placerait ce nouvel ordre que si sur le graphique d'une heure pour cette même paire, le prix actuel est au-dessus (ou en dessous dans le cas d'une vente) d'une MA de période X.

Afin d'éviter les fausses ouvertures/fermetures d'ordres dues à des écarts inhabituels, j'aimerais voir un codage qui ne déclencherait l'action de l'ordre que sur la base de la CLOSE de la barre actuelle (ou même de la barre précédente pourrait être envisagée) plutôt que d'être déclenché alors qu'une barre est encore ouverte. Avec IBFX par exemple, j'ai vu des spreads qui étaient habituellement de 5 pips être souvent aussi larges que 20 pips (et j'ai même vu une fois 53 pips !). Il semble qu'une action avec un tel écart ouvre souvent un nouvel ordre parce que pendant la formation de la barre, les MA se sont temporairement croisées... mais au moment où la barre se ferme, elles ne se sont PAS croisées, ce qui me laisse avec un ordre d'achat en place qui n'était pas souhaité !

Tout exemple de code permettant de résoudre ces problèmes serait très apprécié.

 
Dossiers :
 

Cher coderguru,

C'est peut-être le travail le plus facile dans le codage pour changer la couleur....... je suis incapable de le faire............

Il suffit de changer le support dans une couleur et la résistance dans une couleur différente de ce code.......

Ici la résistance et le support sont dans une couleur similaire.....................

Et les objets ne sont pas supprimés lorsque l'indicateur est supprimé.............

Merci d'avance.............

Dossiers :
 

Aide avec Trailling Stop / 1 Risque ou Position M

Bonjour à tous,

J'ai essayé de chercher sur le forum une solution à mon problème :

Au début de mon EA :

//---- buy conditions

if(Ask > mybuyconditions)

{

ticket=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-lowestof10bars),((BBupper-BBlower)/(Ask-lowestof10bars))*1000,"Einstieg 1",magic+1,0,Green);

}

//---- sell conditions

if(Bid < mysellconditions)

{

ticket=OrderSend(Symbol(),OP_SELL,LotsShort(),Bid,Spread,Ask+(highestof10bars-Bid),((BBupper-BBlower)/(highestof10bars-Bid))/100,"Einstieg -1",magic-1,0,Red);

}

//----[/CODE]

Stopploss: its easy 10 bars hi/lo

Takeprofit: here i write my formula for my Trailingstop, and that is:

Take the differenz of BBupper - BBlower at the order open time. Then divide by StopLoss in Pips and you have an Factor. Then take the actual BB differenz and divide it by this Faktor. NOW WE HAVE OUR VOLA BB TRAILINGSTOPP!!!!!

SO, my big problem is now to save this FAKTOR!!!! I saved it in th Takeprofit of Ordersend, it works but it is not right!!!!!

And know the 2te Question:

Position Management:

so my order is open and i have my trailing stopp that trails : So and now if the trailingstop is > orderopenprice send next ORDER!!! It's logical because so i can always sicure to risk just my 1 R Risk.

.... if Trailingstopp is > orderopenprice of secondOrder send 3te order.

HERE MY EXAMPLES:

for(int i = (OrdersTotal()-1); i >= 0; i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 2",magic+2,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2 && CalculateCurrentAfterOrders(Symbol()) <= 1)

{

if(OrderStopLoss()<Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() > OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,Bid-(Ask-Low),((oben-unten)/(Ask-Low))*1000,"Einstieg 3",magic+3,0,Green);

return;

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3 && CalculateCurrentAfterOrders(Symbol()) <= 2)

{

if(OrderStopLoss()< Bid-(oben-unten)/(OrderTakeProfit()/1000))

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

}

}

}

[CODE] if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+1)

{

{

OrderModify(OrderTicket(),OrderOpenPrice(),High-(oben-unten)/(OrderTakeProfit()/1000),OrderTakeProfit(),0,Indigo);

return;

}

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 1)

{

ticket1=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 2",magic+2,0,Green);

return;

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(OrderStopLoss() >= OrderOpenPrice() && CalculateCurrentOrders(Symbol()) == 2)

{

ticket2=OrderSend(Symbol(),OP_BUY,LotsLong(),Ask,Spread,0,0,"Einstieg 3",magic+3,0,Green);

return;

}

}

}

{

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+2)

{

if(CalculateCurrentOrders(Symbol()) == 0)

{

OrderClose(ticket1,OrderLots(),Ask,Spread,Red); return;

}

}

}

if(OrderType()==OP_BUY && OrderMagicNumber() == magic+3)

{

OrderClose(i,OrderLots(),Ask,Spread,Red); return;

}

J'espère que quelqu'un pourra m'aider avec ce problème !!!!! Merci à tous.

Raison: