Wie programmiert man? - Seite 46

 
antone:
so kann jemand mir bitte helfen? Beispiel wird es nur einen Auftrag in 5 Uhr - 10 Uhr handeln, aber kann wieder in einer anderen Zeit handeln...

Es ist sehr einfach, Sie müssen die Eröffnungszeit des letzten Auftrags in der Historie überprüfen und dann den Tag mit der TimeDay-Funktion überprüfen. Wenn es heute ist, dann nicht handeln.

 
Kalenzo:
Es ist sehr einfach, Sie müssen die Eröffnungszeit des letzten Auftrags in der Historie überprüfen und dann den Tag mit der Funktion TimeDay überprüfen. Wenn es heute ist, dann handeln Sie nicht.

können Sie mir ein einfaches Skript geben, wie man sie benutzt? ich bin kein Programmierer, sorry

Vielen Dank!

 

1 Trailing Stop / mehrere Aufträge

Ich versuche, einen EA zu erstellen, der alle offenen Aufträge so verändert, dass der Stoploss gleich dem aktuellen Stoploss ist, so dass alle Aufträge auf dem gleichen Niveau schließen

extern int profit = 100;

extern int stop = 20;

int start()

{

int i, HstTotal=OrdersHistoryTotal();

for(i = HstTotal-1; i >= 0; i --)

{

if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;

OrderModify(i,OrderOpenPrice(),Bid-Point*stop,profit,0,Green);

}

}

 

Verwenden Sie stattdessenOrdersTotal() und MODE_TRADES

 
 
Kalenzo:
Es ist ganz einfach: Sie müssen die OrderOpenTime der letzten Order in der Historie überprüfen und dann den Tag mit der TimeDay-Funktion überprüfen. Wenn es heute ist, dann handeln Sie nicht.

for(int k=0;k<OrdersTotal();k++)

{

OrderSelect(k,SELECT_BY_POS,MODE_TRADES;

if(OrderSymbol()== "GBPUSD" && OrderMagicNumber()== Magic_Number)

{

if(OrderOpenTime() != TimeCurrent ()) {Trade = true;}

if(OrderOpenTime() == TimeCurrent ()) {Trade = false;}

}

}

Was habe ich falsch gemacht? Bitte helfen Sie mir

 

Korrekturen in Rot unten.

Robert

antone:

for(int k=0;k<OrdersTotal();k++)

{

OrderSelect(k,SELECT_BY_POS,MODE_TRADES)

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

{

if(TimeDay( OrderOpenTime())!= Day()) {Trade = true;}

if(ZeitTag( OrderOpenTime()) == Tag() ) {Trade = false;}

}

}

Die gleiche Art von Code kann verwendet werden, um zu prüfen, ob die Eröffnungszeit zwischen zwei Stunden oder sogar auf die Minute genau wie 11:45 Uhr liegt, um einen neuen Handel zu verhindern.

int openHour = TimeHour(OrderOpenTime());

if (openHour > 10 && openHour < 13) Trade = false;

if (openHour = 13) Trade = true;

Was habe ich falsch gemacht?bitte helfen Sie mir
 

ATTN Programmierer - Problem mit neuen 6-stelligen Preisen

An alle Programmierer.

Ich bin darauf aufmerksam geworden, dass es ein Problem mit einigen Brokern gibt, die eine zusätzliche Dezimalstelle für Preise verwenden. Dies führt überall dort zu einem Problem, wo der Punkt in einer Berechnung für Dinge wie StopLoss, TakeProfit oder Breakout Levels verwendet wird.

Es gibt eine einfache Lösung.

Ich verwende jetzt die folgende Funktion und ersetze alle Verweise auf Point durch myPoint.

Ich deklariere eine Variable am Anfang des EAs.

double myPoint;

dann verwende ich in init die Funktion, um den Wert zu setzen.

init()

{

myPoint = SetPoint();

}

Dann die Funktion.

// Punktwert auf 2 oder 4 Dezimalstellen setzen

// um Maklern gerecht zu werden, die 3 und 5 Dezimalstellen verwenden

double SetPoint()

{

double mPoint;

if (Ziffern < 4)

mPoint = 0,01;

sonst

mPunkt = 0,0001;

return(mPoint);

}

Es würde auch ein Problem mit einigen Indikatoren geben, die Point verwenden, um zu bestimmen, wo Linien oder die Größe von Histogrammen gezeichnet werden sollen.

Bitte leiten Sie dies an alle Foren oder Gruppen weiter, in denen Programmierer diese Informationen benötigen.

Ich habe bereits in der Yahoo-Gruppe MTE & I gepostet.

Ich hoffe, das hilft.

Robert

 

Guten Tag

Ich bin auf der Suche nach etwas Hilfe, ich kann nicht scheinen, um herauszufinden, wie man eine Position in einer certian Anzahl von Bars / Tage zu beenden. zB ich gehe lang am Montag und das System beendet auf der Schließung 5 Bars / Tage später.

Jede Hilfe wäre gut

Danke

Beno

 

Beno,

Sie könnten Code ähnlich wie oben für nicht handeln verwenden. Prüfen Sie einfach, ob der aktuelle Tag die Anzahl der Tage nach dem Eröffnungstag liegt, um zu schließen. Der Code könnte so geändert werden, dass er auch Stunden oder Minuten verwendet.

Eine andere Möglichkeit wäre, die Zeit zum Schließen des Handels als exit_time zu berechnen, wenn der Handel offen ist. Um den Handel zu beenden, überprüfen Sie dann einfach die exit_time in Ihrem Check-Exit-Code.

Sie müssten die richtige Formel verwenden, um den richtigen Wert zur Eröffnungszeit zu addieren, um die Schließungszeit zu erhalten. Dies würde die Anzahl der Minuten pro Bar * die Anzahl der Bars später zu schließen, um die OrderOpenTime() hinzugefügt.

Ich hoffe, das hilft Ihnen.

Robert

Beno:
Guten Tag

Ich bin auf der Suche nach Hilfe, da ich nicht herausfinden kann, wie ich eine Position nach einer bestimmten Anzahl von Bars/Tagen beenden kann. z.B. gehe ich am Montag long und das System beendet die Position 5 Bars/Tage später.

Jede Hilfe wäre gut

Danke

Beno