Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1094

 
alvlaf:

Platzieren Sie den EA manuell auf den Charts und möchten, dass er MaxOpenOrders-Orders oder TOTAL MaxOpenOrders-Orders auf JEDEM Chart öffnet? Und welche Aufträge: nur die Marktaufträge oder alle, einschließlich Limit und Stop?

 
A13ksandr:

Platzieren Sie den EA manuell auf den Charts und möchten, dass er MaxOpenOrders-Orders oder TOTAL MaxOpenOrders-Orders auf JEDEM Chart öffnet? Und welche Aufträge: nur die Marktaufträge oder alle, einschließlich Limit und Stop?

Wir brauchen sie, um Aufträge für alle Instrumente zu eröffnen. Angenommen, die MaxOpenOrders ist 1, dann sollte nur ein Marktauftrag geöffnet werden. Dies ist ein Bot für binäre Optionen, es gibt keine schwebenden Aufträge. Wenn die Position mit einem Verlust geschlossen wird, wird dieselbe Position eröffnet, nur mit einem größeren Lot, und bis die Serie mit einem gewinnbringenden Handel endet, sollten keine Geschäfte für andere Instrumente eröffnet werden.
 
A13ksandr:
Welchen Zweck haben die Worte "in dieser Strategie"? Magie wird benötigt, wenn manuelle Trades im Konto vorhanden sind oder ein anderer EA läuft, damit diese Aufträge nicht berührt werden. Ich glaube schon.
Ja, danke,A13ksandr .Ich ändere die Magie auch bei der Fehlersuche, um nicht auf das Ende einer Verlustserie zu warten. Außerdem ändert das Entfernen der Magie nicht den Algorithmus der Bot-Funktion. Ich habe nicht vor, dort manuell Aufträge zu eröffnen.
 
alvlaf:
Sie muss für alle Symbole geöffnet werden. Angenommen, MaxOpenOrders ist 1, dann sollte nur ein Marktauftrag eröffnet werden. Dies ist ein Bot für binäre Optionen, es gibt keine schwebenden Aufträge. Wenn die Position mit einem Verlust geschlossen wird, wird dieselbe Position eröffnet, nur mit einem größeren Lot, und bis die Serie mit einem gewinnbringenden Handel endet, sollten keine Geschäfte für andere Instrumente eröffnet werden.

OK, ich habe den Teil mit den binären Optionen übersehen. Aus irgendeinem Grund scheint es mir, dass, wenn ich denselben EA manuell an verschiedene Charts anpinne, er trotzdem als verschiedene EAs läuft. Und für JEDE Tabelle wird 1 Option ausgeführt (wenn sie richtig funktioniert). Ich könnte mich irren, denn ich bin selbst noch Anfängerin. Auf diese Weise habe ich in meinem EA mehrere Währungen berücksichtigt:

input string TradeSymbols = "EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, GBPCAD"; // Symbole für den Handel

string Symbols[50]; // 50 ist die maximale Anzahl von Symbolen

int SymbolCount;

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

int OnInit()

{

if (IsTesting() || !ExtractSymbols())

{

SymbolZahl = 1;

Symbole[0] = Symbol();

}

return(INIT_SUCCEEDED);

}

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

bool ExtractSymbols()

{

ushort Comma = StringGetCharacter(",", 0);

SymbolCount = StringSplit(TradeSymbols, Comma, Symbols);

for (int i = 0; i < SymbolCount; i++)

{

StringToUpper(Symbols[i]);

Symbols[i] = StringTrimRight(Symbols[i]); // Schutz vor versehentlichen Leerzeichen

Symbols[i] = StringTrimLeft(Symbols[i]);

}

if (SymbolCount > 0) return(true);

return(false);

}

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

void OnTick()

{

for (int i = 0; i < SymbolCount; i++)

{

double LastAsk = SymbolInfoDouble(Symbols[i], SYMBOL_ASK);

double LastBid = SymbolInfoDouble(Symbols[i], SYMBOL_BID);

// und so weiter...

}

}

Um den EA auf ein beliebiges Diagramm anzuwenden. Auf diese Weise wird MaxOpenOrders für alle Diagramme genau gleich sein.

 
// und so weiter... - Ich meine, geht es mit dem alten Code des EA selbst weiter?
 
A13ksandr:

OK, ich habe den Teil mit den binären Optionen übersehen. Aus irgendeinem Grund scheint es mir, dass, wenn ich denselben EA manuell an verschiedene Charts kette, es immer noch so aussieht, als würden verschiedene EAs laufen. Und für JEDE Tabelle wird 1 Option ausgeführt (wenn sie richtig funktioniert). Ich könnte mich irren, denn ich bin selbst noch Anfängerin. Auf diese Weise habe ich in meinem EA mehrere Währungen berücksichtigt:

input string TradeSymbols = "EURUSD, GBPUSD, AUDUSD, NZDUSD, USDCAD, USDCHF, GBPCAD"; // Symbole für den Handel

string Symbols[50]; // 50 ist die maximale Anzahl von Symbolen

int SymbolCount;

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

int OnInit()

{

if (IsTesting() || !ExtractSymbols())

{

SymbolZahl = 1;

Symbole[0] = Symbol();

}

return(INIT_SUCCEEDED);

}

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

bool ExtractSymbols()

{

ushort Comma = StringGetCharacter(",", 0);

SymbolCount = StringSplit(TradeSymbols, Comma, Symbols);

for (int i = 0; i < SymbolCount; i++)

{

StringToUpper(Symbols[i]);

Symbols[i] = StringTrimRight(Symbols[i]); // Schutz vor versehentlichen Leerzeichen

Symbols[i] = StringTrimLeft(Symbols[i]);

}

if (SymbolCount > 0) return(true);

return(false);

}

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

void OnTick()

{

for (int i = 0; i < SymbolCount; i++)

{

double LastAsk = SymbolInfoDouble(Symbols[i], SYMBOL_ASK);

double LastBid = SymbolInfoDouble(Symbols[i], SYMBOL_BID);

// und so weiter...

}

}

Um den EA auf ein beliebiges Diagramm anzuwenden. Auf diese Weise werden die MaxOpenOrders für alle Diagramme korrekt sein.

Ist dieser Code in MQL5 geschrieben?
 
A13ksandr:
if (DayOfWeek() == 1) Kurs = iOpen(Symbol(), PERIOD_D1, 4);
if (DayOfWeek() >= 2) Kurs = iOpen(Symbol(), PERIOD_D1, DayOfWeek() - 2);

Und wenn die nächste Woche gegangen ist, und ich muss noch einen Bericht aus dem Eröffnungskurs der Bar von Dienstag der letzten Woche zu halten? Dh ich brauche einen EA, um den Eröffnungskurs der Bar am Dienstag zu bestimmen und begann von ihm so lange wie nötig, zum Beispiel - eine Woche, zwei, einen Monat, etc.

Ich danke Ihnen.

 
yaaarik777:

Was ist, wenn die nächste Woche bereits begonnen hat und ich immer noch vom Open-Bar-Kurs vom Dienstag der letzten Woche berichten muss? d.h. ich brauche den Expert Advisor, um den Open-Bar-Kurs vom Dienstag zu ermitteln und ihn so lange wie nötig zu verwenden, z.B. eine Woche, zwei Wochen, einen Monat, etc.

Ich danke Ihnen.

Dann legen Sie ein bestimmtes Datum fest, und das Programm nimmt den Eröffnungskurs des Tages für dieses Datum, das ist noch einfacher.

 
evillive:

Dann legen Sie ein bestimmtes Datum fest, und die Software nimmt den Eröffnungskurs des Tages für dieses Datum, das ist noch einfacher.

Können Sie mir bei dem Code helfen, ich verstehe ihn nicht.

Glauben Sie, dass die Berechnung des Eröffnungskurses des ersten Balkens am Dienstag in OnInit() implementiert werden kann und der Preis beim Start berechnet und bis zum Neustart des EAs gespeichert wird?

es tut mir leid, wenn ich Unsinn schreibe, ich lerne gerade)

 
yaaarik777:

Können Sie mir mit dem Code helfen, ich verstehe ihn nicht.

Denken Sie, dass der Preis des ersten Balkens am Dienstag in OnInit() berechnet werden sollte und es wird den Preis beim Start berechnen und speichern Sie es, bis der EA neu gestartet wird?

Es tut mir leid, wenn ich Unsinn schreibe, ich lerne gerade)

Der Eröffnungskurs des ersten Balkens des Tages = der Eröffnungskurs des Tagesbalkens. Sie können dies in Inite tun, wenn Sie den Wert nicht nachträglich neu berechnen müssen.

Der Code sieht ungefähr wie folgt aus:

input datetime dayz=D'2016.09.06 00:00'; //зададим прошлый вторник, начало суток

int bar_dayz=0;
double price_dayz=0;

int OnInit()
{
////...
bar_dayz=iBarshift(_Symbol,PERIOD_D1,dayz); 
price_dayz=iOpen(_Symbol,PERIOD_D1,bar_dayz);
///...
}
Grund der Beschwerde: