Wie programmiert man? - Seite 107

 

Es handelt sich um einen EA, nicht um einen Indikator, Sie sollten nicht beides mischen.

 

Hallo zusammen...

Es ist ein EA, nicht ein Indikator, Sie sollten nicht beide mischen.

Eigentlich nehme ich einige Code von MACD-Indikator und von, dass ich einen EA machen.. kann mir jemand helfen, welche Code sollte ich es korrigieren?

danke...

 

Versuchen Sie, sich einige der EAs anzusehen, die Sie bereits haben. Studieren Sie den Code und versuchen Sie, einen Teil der Logik zu verstehen. Versuchen Sie, den Ablauf des Programms laut auszusprechen. Das hilft ungemein!

Viel Glück!

Lux

 

Hallo zusammen..

danke luxinterrior für die Antwort..

Versuchen Sie, sich ein paar der EAs anzusehen, die Sie bereits haben. Studieren Sie den Code und versuchen Sie, einen Teil der Logik zu entschlüsseln. Versuchen Sie, den Ablauf des Programms laut auszusprechen. Das hilft ungemein! Viel Glück!

Ich habe 7 Puffer... Puffer1 bis Puffer7... jeder Puffer speichert den MACD-Balkenwert... der EA wird geöffnet

BUY post, wenn der MACD 'u' Form werden.

die Bedingung, wenn.

if (MacdBuffer7>MacdBuffer5&&MacdBuffer5>MacdBuffer3&&MacdBuffer3>MacdBuffer1

&&MacdBuffer1<MacdBuffer2&&MacdBuffer2<MacdBuffer4&&MacdBuffer4<MacdBuffer6) [/CODE]

SELL post when the MACD become 'n' shape..

the condition when..

[CODE] if(MacdBuffer7<MacdBuffer5&&MacdBuffer5<MacdBuffer3&&MacdBuffer3<MacdBuffer1

&&MacdBuffer1>MacdBuffer2&&MacdBuffer2>MacdBuffer4&&MacdBuffer4>MacdBuffer6)

hoffe jemand kann mir helfen, das Problem zu lösen.. danke.

 

Gibt es eine Möglichkeit, das Programm zum Rechnen zu zwingen?

Im Moment wartet es auf den nächsten Tick.

Ich habe 6 Charts geöffnet und derselbe Indikator befindet sich auf allen sechs Charts.

Wenn ein Diagramm einen Tick erhält, wird es aktualisiert, aber die anderen Diagramme werden nicht aktualisiert, so dass sie "veraltet" sind.

Vielen Dank!

 
Ich habe mehrere einfache Setups ausprobiert, um nur Prozesse/Berechnungen zu haben, die nicht mit Ticks zusammenhängen, aber dann hat man das Problem mit dem aktualisierten Bildschirm ... also ... Ich habe alles zurück zu normal geändert ... die Bedeutung, dies zu tun war nicht so groß ... vielleicht in MQL5 kommen

:: Indikatoren können nicht mit der Funktion sleep() umgehen

:: Sie können eine dll schreiben, alle Fenster in Ihr Terminal holen ... und dann ein "refresh screen/window" an jedes untergeordnete Fenster senden/ausführen. Aber dann muss man die dll-Datei zusammen mit dem Indikator an andere senden ... wieder ... das macht es kompliziert ...

TheRumpledOne:
Gibt es eine Möglichkeit, das Programm zum Berechnen zu zwingen?

Im Moment wartet er auf den nächsten Tick.

Ich habe 6 Charts geöffnet und derselbe Indikator befindet sich auf allen sechs Charts.

Wenn ein Diagramm einen Tick erhält, wird er aktualisiert, aber die anderen Diagramme werden nicht aktualisiert, so dass sie "veraltet" sind.

Danke!
 

Hallo zusammen,

Ich hoffe, Sie haben nichts dagegen, wenn ich mich hier einmische. Ich habe eine ähnliche Situation vor mir und ich habe eine Idee zu diesem Thema... wie wäre es, wenn Sie am Ende Ihres Programms eine Schleife programmieren, die besagt: "Wenn keine Bestellung offen ist, laufen Sie erneut durch". und lassen Sie die Schleife vielleicht 3 oder 4 Mal laufen.

Wenn es das tut, dann sollten alle verpassten Aufträge (was ziemlich oft vorkommt) sicher abgeholt werden. oder ist da etwas falsch mit meinem Denken.

Ich denke, es würde etwa so aussehen...

for (int k = OrdersTotal() ==0; k >=2; k++)

{

if ( ! OrderSelect ( k, SELECT_BY_POS, MODE_TRADES ))continue;

wenn (k > 2) break;

}

return(0);

}

Ich bin noch neu auf diesem Gebiet, wenn es also keinen Sinn macht, erklären Sie mir bitte, warum.

 

An Lux, ajk, Raygun, Devil2000, IN10TION

Danke für die Tipps.

Ich werde sie ausprobieren und hoffe, dass ich auf die Antwort komme.

Ich werde später posten.

Großes Be

 
amatrader:
Hallo zusammen,

Ich hoffe, Sie haben nichts dagegen, wenn ich mich hier einmische, ich betrachte eine ähnliche Situation und ich habe eine Idee zu diesem Thema... was wäre, wenn Sie eine Schleife am Ende Ihres Programms codieren, die besagt, dass "wenn keine Bestellung offen ist, wieder durchlaufen". und lassen Sie es Schleife vielleicht 3 oder 4 Mal.

Wenn es das tut, dann sollten alle verpassten Aufträge (was ziemlich oft vorkommt) sicher abgeholt werden. oder ist da etwas falsch mit meinem Denken.

Ich denke, es würde ungefähr so aussehen...

Ich bin noch neu auf diesem Gebiet, also wenn es keinen Sinn macht, erklären Sie mir bitte, warum.

Hey, das ist eine gute Idee!

Ich könnte die Zeit überprüfen und wenn X Sekunden oder Minuten verstrichen sind, die Schleife verlassen.

DANKE!!

P.S. Das war nicht für einen EA. Ich programmiere keine EAs.

 
:: mit solchen Indikatoren wird es nicht funktionieren, selbst wenn Sie die Schleife 1.000.000 mal durchlaufen, wird alles andere abgewürgt, nichts anderes als diese Schleife wird verarbeitet, wenn die Schleife beendet ist, wird Ihr Terminal seine normalen Prozesse vor einem neuen Tick fortsetzen.

:: In dieser 1.000.000-Schleife ist es sinnlos, etwas anderes zu prüfen/kontrollieren, deshalb funktioniert die Funktion sleep() nicht.

TheRumpledOne:
Hey, das ist eine gute Idee!

Ich könnte die Zeit überprüfen und wenn X Sekunden oder Minuten verstrichen sind, dann die Schleife verlassen.

DANKE!!

P.S. Das war nicht für einen EA. Ich programmiere keine EAs.