Fragen Sie! - Seite 77

 

Zu CodersGuru : brauche Hilfe über 10 Punkte 3 EA....

Hallo CodersGuru,

Ich bin neu im Devisenhandel und auch neu in diesem Forum. Das erste Mal, ich bin Lernen ist EuroX2_sl, erweitert von 10 Punkte 3 EA-Skript. Nachdem ich ein paar Vorwärtstests gemacht habe, hat dieser EA die Position gut geöffnet, aber er hat die Position nicht gut geschlossen, wie ich es brauche, wenn der Markt umkehrt. Vielleicht, etwas ist falsch mit dem Code (cos' Ich bin kein Programmierer) und ich denke, ich brauche Ihre Hilfe, um es zu lösen. Könnten Sie bitte prüfen, welcher Teil falsch sein könnte?

Bedingung ist :

1. KAUFEN ERÖFFNEN, wenn Indikator-Bedingung vorhanden ist, z.B.: Stochastik

2. KAUFEN SCHLIESSEN, wenn der Indikator OPEN SELL vorhanden ist, z.B.: Stochastik

3. OPEN SELL wenn die Indikatorbedingung (Nr. 2 oben) vorliegt. d.h.: Stochastik

4. SCHLIESSEN VERKAUFEN, wenn die Bedingung des Indikators (Nr. 1 oben) erfüllt ist, d.h.: Stochastik

Ich denke, dass die OPEN-Position in Ordnung ist, aber das Problem liegt bei der CLOSE-Position, da sie nicht geschlossen wurde (BUY oder SELL), selbst wenn der Indikator vorhanden ist.

Der Code, wie ich tat, ist :

-------- Teil des Skripts von EuroX2_sl erweitert von 10 Punkten 3, wie ich denke, für die Position schließen -------

// es ist wichtig, den Markt richtig zu betreten,

// aber es ist noch wichtiger, ihn richtig zu verlassen...

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && // Prüfung auf offene Position

OrderType()<=OP_BUY &&

OrderType()>=OP_SELL &&

OrderType()>=OP_BUY &&

OrderSymbol()==Symbol()) // Prüfung auf Symbol

{

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

if(OrderType()==OP_BUY) // Long-Position wird eröffnet

{

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

//+ BEDINGUNG FÜR DAS SCHLIESSEN DER POSITION

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

//+--------------- KAUFPOSITION SCHLIESSEN ----------------------------

wenn ( Stoch_Main_M15_Cu < Stoch_Sig_M15_Cu )

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

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // Position schließen

return(0); // exit

}

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

// Prüfung auf Trailing-Stop

if(NachlaufenderStop>0)

{

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

{

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

{

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

return(0);

}

}

}

}

//+--------------- SCHLIESSEN SIE DIE VERKAUFSPOSITION --------------------------------

else // Gehe zu Short-Position

{ //+ NICHT ENTFERNEN

if(OrderType()==OP_SELL) // Short-Position wird eröffnet

{

}

// soll sie geschlossen werden?

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

if ( Stoch_Main_M15_Cu > Stoch_Sig_M15_Cu )

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

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // Position schließen

return(0); // exit

}

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

// Prüfung auf Trailing Stop

if(NachlaufenderStop>0)

{

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

{

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

{

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

return(0);

}

}

}

}

}

}

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

Ich danke Ihnen,

fxgroup

 

Lesen von Daten aus einem anderen Währungspaar-Fenster

Mein EA befindet sich im Fenster "GBPJPY", aber ich muss ObjectDescription() aus einem anderen Fenster, sagen wir "USDJPY", finden. (Leider ist es ein Pivot-Indikator, der keine Werte von iCustom() zurückgibt)

Kennt jemand eine Möglichkeit, auf ein anderes (nicht aktuelles) Paar-Fenster zu verweisen, um Funktionen wie ObjectDescription() darauf anwenden zu können?

Oder lässt MQ4 das nicht zu?

Vielen Dank!

euro

 

Wie kann ich die Gewinne einer Währung von denen anderer Währungen isolieren?

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);

}

Ich habe diesen Code erstellt, aber ich kann die Gewinne einer Währung nicht von anderen gehandelten Währungen isolieren. Was fehlt mir in meinem Code?

Bitte überprüfen Sie das. Vielen Dank für Ihre Hilfe!

Dave

 

Gewinn

Probieren Sie diesen Code aus:

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:
Versuchen Sie diesen 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);

}

Hallo Coder,

Das war nicht genau das, was ich brauche. Ich hänge ein Diagramm an, um zu veranschaulichen, wonach ich suche. Können Sie die Codierung ändern, um den Gewinn anzuzeigen? Wenn ja, kann ich die Farben für den Gewinnbetrag ändern. Ich suche nur nach dem Gewinn für jede einzelne Währung.

 

Indikator angehängt

Hallo Codersguru

ich möchte, dass der beigefügte Indikator die Öffnung um Mitternacht anzeigt und nicht die Serverzeit des Brokers, ist dies möglich?

Vielen Dank Monty

 

Hilfe zum Code

Können Sie den Code schrittweise durchgehen? Ich erhalte einen falschen Wert (siehe unten "Konto") und dann wird er korrekt ausgefüllt, aber ich bin mir nicht sicher warum.

int Konto = 123456;

if (Konto != Kontonummer())

{

Comment("Sie können dieses Programm nicht mit diesem Konto verwenden");

return (0);

}

sonst

{

Comment("Willkommen im Programm");

}

 

Einfache Frage

Läuft der Expert Advisor auch ohne die Funktionen init() und deinit()?

 
n7drazen:
Läuft der Expert Advisor auch ohne die Funktionen init() und deinit() normal?

Ja,

Nur die Funktion start ist erforderlich.

 

Kalenzo,

ich habe eine Frage:

HEDGING:

I'm looking for:

wenn (OrderOpenPrice() = = Bid (oder Ask)

DerEröffnungskurs muss gleich dem neuen Kurs sein.

Ich hedge mit dem gleichen Paar EURUSD.

Wenn der Eröffnungskurs ein Verkaufskurs ist und der Preis 1,3580 beträgt,

muss der Kaufkurs derselbe sein.

Vielen Dank! Hier sind die Codes.

B.

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

if(Kaufen==0)

{

RefreshRates();

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

RefreshRates();

if (OrderOpenPrice() == Bid)

{

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

}