[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 392

 

Hallo zusammen, ich glaube, ich habe an die richtige Stelle geschrieben. Ich habe einen großen Wunsch, mql4 Programmiersprache zu lernen, um mit Skripten zu beginnen, dann Indikatoren und EAs, insbesondere, jetzt habe ich eine Aufgabe, einen EA selbst zu schreiben, um den Handel mit einer der Taktiken gesetzt. (Ich habe im Forum gelesen, dass sie mit Skripten beginnen.) Ich bin ein Experte in der Codierung, ich weiß wenig über Pascal und Delphi und ich habe C ++ studiert, ich habe mql gelesen, aber ich denke, es ist nicht so anders. Ich brauche Hilfe beim Schreiben von Programmen richtig oder falsch Code-Optimierung, etc. Wer kann helfen?

Vielen Dank im Voraus!!!

 

Bitte geben Sie ein Beispiel, hier ist ein einfacher Code, Berater öffnet BAY mit Stop und Profit, und setzt Pending Order. Was sollte ich in den Code schreiben, so dass, wenn es einen Gewinn erreicht, Pending Order gelöscht wird und alles beginnt von Anfang an..... und wenn es einen Stop erreicht, zum Beispiel, Alert ("Stopak").

//+------------------------------------------------------------------+
//| test.mq |
//| Copyright © 2011 |
//| http:// |
//+------------------------------------------------------------------+
#eigenschaft copyright ""
#property link ""
extern double Lot = 0,01;
extern int TakeProfit = 200;
extern int StopLoss = 200;
extern double Step = 0,0020;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//----
//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Expertenstartfunktion |
//+------------------------------------------------------------------+
int start()
{
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false)
{
{ OrderSend(Symbol(),OP_BUY,Lot,Ask,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,Green); }
{ OrderSend(Symbol(),OP_SELLSTOP,Lot,Ask-Step,30,Ask,Ask-Step-TakeProfit*Point,0,0,0,Red); }
}
//----
//----
zurück(0);
}
//+------------------------------------------------------------------+

 
MIR-ASOV:

Bitte beraten Sie über das Beispiel, hier ist ein einfacher Code, der EA öffnet BAY mit einem Stop und Gewinn, und setzt Pending Order. Was muss ich in den Code zu schreiben, so dass, wenn Sie einen Gewinn ausstehenden entfernt und alles begann über..... und wenn Sie einen Anschlag zu bekommen, zum Beispiel, war Alert ("Stopak").

//+------------------------------------------------------------------+
//| test.mq |
//| Copyright © 2011 |
//| http:// |
//+------------------------------------------------------------------+
#eigenschaft copyright ""
#property link ""
extern double Lot = 0,01;
extern int TakeProfit = 200;
extern int StopLoss = 200;
extern double Step = 0,0020;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//----
//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
zurück(0);
}
//+------------------------------------------------------------------+
//| Expertenstartfunktion |
//+------------------------------------------------------------------+
int start()
{
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==false)
{
{ OrderSend(Symbol(),OP_BUY,Lot,Ask,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,0,0,0,Green); }
{ OrderSend(Symbol(),OP_SELLSTOP,Lot,Ask-Step,30,Ask,Ask-Step-TakeProfit*Point,0,0,0,Red); }
}
//----
//----
zurück(0);
}
//+------------------------------------------------------------------+

Suchen Sie in Lehrbüchern nach einem Algorithmus für die Abrechnung von Aufträgen. Verbinden Sie dann all dies mit Logik, und das Ergebnis wird offensichtlich sein!

Arbeiten Sie auch an der Codesyntax. Jede Menge geschweifte Klammern...


frixer:

Hallo zusammen, ich glaube, ich habe an die richtige Stelle geschrieben. Ich habe einen großen Wunsch, mql4 Programmiersprache zu lernen, um mit Skripten zu beginnen, dann Indikatoren und EAs, insbesondere, jetzt habe ich eine Aufgabe, eine EA selbst zu schreiben, um durch eine der Taktiken Handel gesetzt. (Ich habe im Forum gelesen, dass sie mit Skripten beginnen. Ich kenne mich mit Programmierung, Pascal, Delphi und C++ Studien nicht aus, ich habe mql gelesen, aber ich denke, sie sind nicht so unterschiedlich. Ich brauche einige Ratschläge, wie man Programme richtig oder falsch schreibt, Code-Optimierung, etc. Wer kann helfen?

Vielen Dank im Voraus!!!

Also schreiben Sie hier, wir können helfen. Oder brauchen Sie einen Nachhilfelehrer zu Hause? :)))
 

Wie kann man eine solche Aktion in einem EA durchführen?

Alle diese Bedingungen können nicht nacheinander folgen (vielleicht nach einer Stunde oder zwei oder drei), so müssen wir es so machen, dass, sobald der Indikator 1,0000 erreicht, diese Bedingung nicht mehr bei jedem Tick überprüft wird, und warten, bis ein Bar mit Rückgang schließt, und danach diese 2 Bedingungen nicht bei jedem Tick überprüft werden, und warten, bis der Indikator 0,9980 oder weniger erreicht. Sobald alle Bedingungen erfüllt sind, eröffnen wir einen Marktauftrag zum Verkauf von 0,1 Lot mit einem Stop Loss von 100p und einem Take Profit von 400p.

Kann jemand helfen? Vielleicht hat jemand ein fertiges Beispiel oder kann mir einen Link geben?

 
kolyango:

Wie kann man eine solche Aktion in einem EA durchführen?

Alle diese Bedingungen können nicht nacheinander folgen (vielleicht nach einer Stunde oder zwei oder drei), so müssen wir es so machen, dass, sobald der Indikator 1,0000 erreicht, diese Bedingung nicht mehr bei jedem Tick überprüft wird, und warten, bis ein Bar mit Rückgang schließt, und danach diese 2 Bedingungen nicht bei jedem Tick überprüft werden, und warten, bis der Indikator 0,9980 oder weniger erreicht. Sobald alle Bedingungen erfüllt sind, eröffnen wir einen Marktauftrag zum Verkauf von 0,1 Lot mit einem Stop Loss von 100p und einem Take Profit von 400p.

Kann jemand helfen? Vielleicht hat jemand ein fertiges Beispiel oder kann mir einen Link geben?

Wenn ein Ereignis eintritt, geben Sie eine boolesche Bedingung und eine Ablaufzeit an.
 
kolyango:

Wie kann man eine solche Aktion in einem EA durchführen?

Alle diese Bedingungen können nicht nacheinander folgen (vielleicht in einer Stunde oder zwei oder drei), also müssen wir, sobald der Indikator 1,0000 erreicht, diese Bedingung nicht mehr bei jedem Tick prüfen, und warten, bis ein Balken mit Rückgang schließt, und danach werden diese 2 Bedingungen nicht bei jedem Tick geprüft, und warten, bis der Indikator 0,9980 erreicht. Sobald alle Bedingungen erfüllt sind, öffnen Sie einen Marktauftrag zum Verkauf von 0,1 Lot mit einem Stop-Loss von 100p und Take-Profit von 400p.

Kann jemand helfen? Vielleicht hat jemand ein fertiges Beispiel oder kann mir einen Link geben?


Hier ist ein Artikel, der Ihnen helfen soll - sehen Sie sich die Analogie an...

Im Trailer - die Aufnahme der Ausführung dieser Handelskriterien nach diesem Artikel, geschrieben nach dem Tutorial, siehe hier.

Sie haben alles auf dieselbe Weise...

Dateien:
criterion.mqh  12 kb
 
kolyango:

Wie kann man eine solche Aktion in einem EA durchführen?

Alle diese Bedingungen können nicht nacheinander folgen (vielleicht in einer Stunde oder zwei oder drei), also müssen wir, sobald der Indikator 1,0000 erreicht, diese Bedingung nicht mehr bei jedem Tick überprüfen, und warten, bis ein Balken mit Rückgang schließt, und danach werden diese 2 Bedingungen nicht bei jedem Tick überprüft, und warten, bis der Indikator 0,9980 erreicht. Sobald alle Bedingungen erfüllt sind, öffnen Sie einen Marktauftrag zum Verkauf von 0,1 Lot mit einem Stop-Loss von 100p und Take-Profit von 400p.

Kann jemand helfen? Vielleicht hat jemand ein fertiges Beispiel oder kann mir einen Link geben?

So einfach ist das. Verwenden wir die Flaggen als Semaphor. Es wird drei Codeblöcke geben, von denen jeder nur ausgeführt wird, wenn der vorherige bereits ausgeführt wurde.

Ursprünglich waren alle Flaggen ==false.

Sobald die erste Bedingung erfüllt ist, ist das erste Flag=true; nun wird der zweite Codeblock ausgeführt. Sobald die Bedingung erfüllt ist, wird das zweite Flag=true gesetzt;
Nun wird der dritte Codeblock ausgeführt. Sobald die Bedingung erfüllt ist, wird das dritte Flag=true gesetzt; und so weiter.

 
artmedia70:

So einfach ist das. Lassen Sie uns die Flaggen als Semaphor verwenden. Es wird drei Codeblöcke geben, von denen jeder nur ausgeführt wird, wenn der vorherige bereits ausgeführt wurde.

Ursprünglich waren alle Flaggen ==false.

Sobald der erste Block ausgeführt wurde, setzen wir das erste Flag=true; nun wird der zweite Codeblock ausgeführt. Sobald die Bedingung erfüllt ist, wird das zweite Flag=true gesetzt;
Nun wird der dritte Codeblock ausgeführt. Sobald die Bedingung erfüllt ist, wird das dritte Flag=true gesetzt; und so weiter.



Und wann er die Fahnen fallen lassen soll, hat er nicht geschrieben
 

Können Sie mir sagen, welche Schriftart das Terminal verwendet? Ich möchte, dass meine Kommentare genauso aussehen wie die Standardkommentare.

if(spread >= 20)
       spreadColor = Red;
  else
       spreadColor = White;
  ObjectSetText("Spread", "Spread " + Symbol() + ": " + DoubleToStr(spread, 0), 8, "Tahoma Bold"/*"Calibri"*/, spreadColor);//"Webdings"
 

Leute, wenn ich auf einem Terminal optimiere, starte ich einen Test auf einem anderen Terminal und das letzte Terminal stürzt mit diesem Fehler ab... weiß jemand, was der mögliche Grund ist? Früher, als ich dieses Terminal startete, fragte es nach einem Update auf Version 409, ich aktualisierte es, es startete neu und fragte immer wieder nach demselben Update... ich - brach ab, schloss es, führte es dann selbst aus... es fragte immer wieder nach diesem Update.

Ich habe mich noch nicht nach einem neuen Terminal erkundigt... Die CPU-Last liegt ständig bei 100%... Ich führe den Test im Visualisierungsmodus auf dem dritten Terminal durch - er funktioniert einwandfrei...


Grund der Beschwerde: