Wie programmiert man? - Seite 202

 
asgard2:
Hallo!

Ich kann es nicht kompilieren, weil ein Fehler mit unausgewogenen Klammern auftritt. Kann mir jemand sagen, warum diese Klammern unausgewogen sind?

Vielen Dank

Wenn Sie diese Fehlermeldung erhalten, fehlt eines der Elemente [ oder { oder (

Wahrscheinlich gibt es irgendwo in Ihrem Code eine Funktion, in der Sie zu viel von den {[(

Ich habe einen Teil deines Codes überprüft und einige Fehler gefunden. Versuchen Sie dies:

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

{

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false)

{

Print("Access to history failed ("+GetLastError()+")");

break;

}

else

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

Ich denke auch, dass der letzte Teil Ihres Codes (OrderDelete) nicht funktionieren wird, weil die OrderDelete-Funktion nichts überprüft - sie löscht die ausgewählte Bestellung. Sie müssen also einen Parameter mit dem Auftragsticket an diese Funktion übergeben. Stattdessen können Sie gelöschte Bestellungen anhand ihrer Kommentare erkennen. Jede gelöschte Bestellung hat "canceled" in ihrem Kommentar - Sie können das Ergebnis der OrderComment() Funktion vergleichen, um dies zu finden.

 

Kann mir jemand helfen?

Hallo,

Ich versuche, einen EA zu schreiben, und ich brauche etwas Hilfe beim Schreiben einer Formel.

Ich möchte, dass die Formel den Unterschied zwischen der vorherigen Kerze schließen (PCC1) und die Schließung der Kerze zwei Kerzen zurück (PCC2) zu berechnen (Ich werde dies auf mehrere Paare laufen). HoL=(PCC1-PCC2)

Mein Ziel ist es, ein Kauf- oder Verkaufssignal zu erzeugen;

bool BuySignal=false;

bool SellSignal=false;

if(HoL>0) BuySignal=true;

if(HoL<0) SellSignal=true;

Vielen Dank für Ihre Hilfe bei dieser Aufgabe.

 

...

Wenn Sie mehrere Symbole aus einer Instanz von EA verwenden möchten, können Sie etwas wie dieses verwenden:

double HoL=iClose(symbolName,0,1)-iClose(symbolName,0,2);[/php]Or to prevent some back testing surprises, a slightly more complicated code

int symbolShift1 = iBarShift(symbolName,0,Time[1]);

int symbolShift2 = iBarShift(symbolName,0,Time[2]);

double HoL = iClose(symbolName,0,symbolShift1)-iClose(symbolName,0,symbolShift2);

If you are going to use it only on symbol that your EA is attached to than this

[php]

double HoL=Close[1]-Close[2];

ist genug

PS:"symbolName" sollte auf das Symbol Ihrer Wahl gesetzt werden.

Grüße

mladen

ForExTryo:
Hallo,

Ich versuche, einen EA zu schreiben, und ich brauche Hilfe beim Schreiben einer Formel.

Ich möchte, dass die Formel den Unterschied zwischen dem vorherigen Kerzenschluss (PCC1) und dem Schluss der Kerze zwei Kerzen zurück (PCC2) berechnet (ich werde dies auf mehrere Paare anwenden). HoL=(PCC1-PCC2)

Mein Ziel ist es, ein Kauf- oder Verkaufssignal zu erzeugen;

bool BuySignal=false;

bool SellSignal=false;

if(HoL>0) BuySignal=true;

if(HoL<0) SellSignal=true;

Vielen Dank für Ihre Hilfe bei diesem Problem.
 
 

TP ausblenden

Ersetzen

void OpenBuy()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,Ask+TP*Poin t,"Ask-StopLoss*Point,EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}

void OpenSell()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,Bid-TP*Point,Bid+StopLoss*Point,"EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}[/CODE]

to

[CODE]void OpenBuy()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,0,"Ask-StopLoss*Point,EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}

void OpenSell()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,0,"EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}
 

Abstand zwischen Buy-Stop-Orders

Hallo zusammen, ich versuche, einen Abstand zwischen einer gelöschten Buy-Stop-Order und der nächsten Buy-Stop-Order zu implementieren.

Ich habe diesen Code geschrieben, der funktioniert, es sei denn, der letzte Auftrag ist etwas anderes. Ich bin mir nicht sicher, wie ich eine gelöschte Buy-Stop-Order aus der Historie auswählen kann. Wenn mir jemand einen Tipp geben könnte, wäre ich sehr dankbar.

Danke

// Time Delay für die nächste "Buy Stop" Order wird gelöscht.

//Time Delay for the next Buy Stop Order

if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))

{

total = OrdersHistoryTotal();

for(e = total - 1; e >= 0; e--)

{

OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol() != Symbol()) continue;

{

if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

}

 
asgard2:
Hallo zusammen,

Ich denke, das ist besser:

//Time Delay for the next Buy Stop Order

if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))

{

total = OrdersHistoryTotal();

for(e = total - 1; e >= 0; e--)

{

OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol() != Symbol()) continue;

if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

break;

}

}
 
Roger09:
Ich denke, das ist besser:

Hallo Roger,

Ich bin sehr neu in der Programmierung, warum verwende ich das "break" dort? Würde es automatisch abbrechen, wenn die Anweisung beendet ist?

Gibt es außerdem Hinweise darauf, wie man einen gelöschten Auftrag aus der Historie auswählt?

Danke

 

Sie zeigen uns nur ein Fragment des Codes und ich kann nur raten.

Ich vermute, Sie beginnen die Geschichte zu überprüfen, nachdem die letzte Bestellung geschlossen ist, so müssen Sie wissen, wann geschlossen wurde. Die jüngste geschlossene Bestellung ist am Ende der Historie, so dass Sie nicht brauchen, um eine andere zu wissen und "Pause" zu stoppen Überprüfung.

Es gibt viele Methoden, um die richtige Reihenfolge in der Historie zu finden, Sie haben Typ, magische Zahl, Kommentare usw.

 

brauche Coder für einfachen EA

profitables System : min 50 Pips -200 Pips Gewinn pro Handel

1-Stunden-System

nur 1 Indikator plus ATR (20) verwenden

einfache EA mit tp/sl/trailing stop

EA Coder kann kostenlos aushelfen bitte PM mit Ihrer E-Mail