Demandez ! - page 77

 

A CodersGuru : besoin d'aide sur 10 points 3 EA....

Bonjour CodersGuru,

Je suis nouveau dans le commerce du forex et nouveau sur ce forum aussi. La première fois que j'ai appris est EuroX2_sl, étendu de 10 points 3 EA script. Après avoir fait quelques tests, cet EA a bien ouvert la position mais il n'a pas bien fermé la position comme j'en ai besoin lorsque le marché se retourne. Peut-être que quelque chose ne va pas dans le code (car je ne suis pas un programmeur) et je pense que j'ai besoin de votre aide pour le résoudre. Pourriez-vous vérifier quelle partie est incorrecte ?

La condition est la suivante :

1. OUVRIR L'ACHAT lorsque la condition de l'indicateur existe, c'est-à-dire le stochastique.

2. CLOSE BUY lorsque l'indicateur OPEN SELL existe, c'est-à-dire la stochastique.

3. OUVRIR VENTE lorsque la condition de l'indicateur ( no. 2 ci-dessus ) existe. ie : stochastique

4. CLOSE SELL lorsque la condition de l'indicateur ( no. 1 ci-dessus ) existe. ie : stochastique

Je pense que la position OUVERTE est correcte mais le problème est avec la POSITION FERMEE car elle n'a pas FERMÉ (ACHAT ou VENTE) même si l'indicateur existe.

Le code que j'ai fait est :

-------- partie du script de EuroX2_sl étendu de 10 points 3 comme je pense pour fermer la position -------

// il est important d'entrer sur le marché correctement,

// mais il est encore plus important d'en sortir correctement...

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;

if(OrderType()<=OP_SELL && // vérification de la position ouverte

OrderType()<=OP_BUY &&

OrderType()>=OP_SELL &&

OrderType()>=OP_BUY &&

OrderSymbol()==Symbol()) // vérification du symbole

{

//+--------------------------------------------------------------

if(OrderType()==OP_BUY) // une position longue est ouverte

{

//+-------------------------------------------------------------------

//+ CONDITION POUR FERMER LA POSITION

//+-------------------------------------------------------------------

//+--------------- FERMER LA POSITION D'ACHAT ----------------------------

si ( Stoch_Main_M15_Cu < Stoch_Sig_M15_Cu )

//+------------------------------------------------------------------

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // ferme la position

return(0) ; // sortie

}

//+-----------------------------------------------------------------------

// vérification du trailing stop

si(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

si(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green) ;

retour(0) ;

}

}

}

}

//+---------------CLOSE SELL POSITION --------------------------------

else // aller à la position courte

{//+ NE PAS SUPPRIMER

if(OrderType()==OP_SELL) // la position courte est ouverte

{

}

// doit-elle être fermée ?

//+----------------------------------------------------------------------------

si ( Stoch_Main_M15_Cu > Stoch_Sig_M15_Cu )

//+-----------------------------------------------------------------------------

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // fermer la position

return(0) ; // sortie

}

//+----------------------------------------

// vérification du trailing stop

si(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

si((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red) ;

retour(0) ;

}

}

}

}

}

}

--------------------------------------------------------------

Merci,

fxgroup

 

Lecture des données d'une autre fenêtre de paire de devises

Mon EA est dans la fenêtre "GBPJPY", mais j'ai besoin de trouver ObjectDescription() dans une autre fenêtre, disons "USDJPY". (Malheureusement, il s'agit d'un indicateur Pivot qui ne retourne pas les valeurs de iCustom()).

Quelqu'un connaît-il le moyen de faire référence à une autre fenêtre de paire (non courante) pour pouvoir utiliser des fonctions comme ObjectDescription() sur celle-ci ?

Ou bien MQ4 ne le permet pas ?

Merci de votre compréhension.

euro

 

Comment isoler les profits d'une devise des autres ?

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

J'ai créé ce codage, mais je n'arrive pas à isoler les bénéfices d'une devise des autres devises échangées. Que manque-t-il dans mon code ?

Veuillez réviser. Merci pour votre aide !

Dave

 

Profit

Essayez ce code :

int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}[/php]

1Dave7:
[php]

color color_of_pipsprofit;

color_of_pipsprofit = White;

int m,totalbuy;

totalbuy=OrdersTotal();

for(m=0;m<totalbuy;m++)

OrderSelect(m, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips_profit=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

int n,totalsell;

totalsell=OrdersTotal();

for(n=0;n<totalsell;n++)

OrderSelect(n, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber() == Reference)

{

pips=OrderProfit();

}

if(pips_profit >= 0)

{

color_of_pipsprofit = Lime;

}

else {color_of_pipsprofit = Red;

}

ObjectCreate("pips_profit", OBJ_LABEL, 0, 0, 0);

ObjectSetText("pips_profit",DoubleToStr(pips_profit,2),14, "Verdana", color_of_pipsprofit);

ObjectSet("pips_profit", OBJPROP_CORNER, 3);

ObjectSet("pips_profit", OBJPROP_XDISTANCE, 35);

ObjectSet("pips_profit", OBJPROP_YDISTANCE, 20);

}

I created this coding, but I cannot isolate the profits of one currency from other currencies being traded. What am I lacking in my code??

Please review. Thanks for your help!

Dave
 
codersguru:
Essayez ce code :
int start()

{

int total = OrdersTotal();

for (int cnt = total ; cnt >=0 ; cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber() == MagicNumber)

{

Print(Profit(OrderType(),OrderSymbol(),OrderOpenPrice());

}

}

return(0);

}

double Profit(int type, string currency, double open)

{

if(type==OP_BUY) return((MarketInfo(currency,MODE_BID) - open) / MarketInfo(currency,MODE_POINT) ); //case buy

if(type ==OP_SELL) return((open - MarketInfo(currency,MODE_ASK)) / MarketInfo(currency,MODE_POINT)); //case buy

return(-1);

}

Salut Coder,

Ce n'est pas exactement ce dont j'ai besoin. Je joins une image de graphique pour illustrer ce que je recherche. Pouvez-vous modifier le codage pour afficher le profit ? Si oui, je peux faire en sorte que les couleurs changent en fonction du montant du profit. Je cherche seulement le profit pour chaque devise spécifique.

Dossiers :
 

indicateur attaché

Bonjour Codersguru

Je souhaite que l'indicateur joint affiche l'ouverture à minuit GMT, et non l'heure du serveur du courtier, est-ce possible ?

Merci beaucoup Monty

 

Aide avec le code

Pouvez-vous m'expliquer le code ? J'obtiens une valeur incorrecte (voir ci-dessous "Compte") et ensuite elle est correctement remplie mais je ne sais pas pourquoi.

int Compte = 123456 ;

if (Account != AccountNumber())

{

Comment("Vous ne pouvez pas utiliser ce programme avec ce compte") ;

retour (0) ;

}

else

{

Comment("Bienvenue dans le programme") ;

}

 

Question simple

Le conseiller expert fonctionnera-t-il normalement sans les fonctions init() et deinit() ?

 
n7drazen:
Le conseiller expert fonctionnera-t-il normalement sans les fonctions init() et deinit() ?

Oui,

Seule la fonction de démarrage est nécessaire.

 

Kalenzo,

j'ai une question :

HEDGING :

Je cherche :

si (OrderOpenPrice() = = Bid (ou Ask)

Leprix ouvert doit être égal au nouveau prix.

Je me couvre avec la même paire EURUSD.

Si le prix ouvert est la vente et le prix est 1.3580,

le prix d'achat doit être le même.

Merci. Voici les codes.

B.

//------------------------------------------

if(Buy==0)

{

RefreshRates() ;

OrderSend(Symbol_1,OP_BUY,lotsi,MarketInfo(Symbol_1,MODE_ASK),...

RefreshRates() ;

si (OrderOpenPrice() == Bid)

{

OrderSend(Symbol_1,OP_SELL,lotsi,MarketInfo(Symbol _1,MODE_BID),...

}