Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
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.
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
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
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 mirATTN 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
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