Wie programmiert man? - Seite 38

 

Verwirrt.

Aus irgendeinem Grund werden For-Schleifen in allen EAs, die ich schreibe, komplett übersprungen. In der Dokumentation wird keine Einschränkung der Schleifen erwähnt, und ich bin wirklich ratlos, um es zu verstehen.

Ist dies ein Fehler oder gibt es einige Kontextregeln, die ich noch nicht herausgefunden habe?

Manxxx

 
Manxxx:
Aus irgendeinem Grund werden For-Schleifen in allen EAs, die ich schreibe, komplett übersprungen. In der Dokumentation wird keine Einschränkung der Schleifen erwähnt, und ich kann das nicht nachvollziehen.

Ist dies ein Fehler oder gibt es einige Kontextregeln, die ich noch nicht verstanden habe?

Manxxx

Die letztere.......

 

Auf der Suche nach Ideen

Ich bin nicht neu in der Programmierung, aber ich bin neu in EAs und ich habe einen Punkt erreicht, an dem eine neue Perspektive hilfreich sein könnte.

Ich habe eine Reihe von EAs geschrieben, die alle ziemlich locker sind, einige verwenden mehrere Indikatoren, einige nur einen, usw.

Kürzlich beschloss ich, ganz einfach anzufangen und mich dann zu steigern, also habe ich einen ganz einfachen Envelope EA entwickelt. Nichts Spektakuläres, aber dieses einfache kleine Ding erreicht 37% Model Quality, was besser ist als alles, was ich bisher gemacht habe. Es ist tatsächlich beendet eine 2-Monats-Lauf mit mehr Geld als es begann mit.

Im Moment habe ich es so eingestellt, dass es nur nach Kaufgelegenheiten sucht. Der Auslöser ist das Durchbrechen der unteren Hüllkurve. (Wie ich sagte, seine wirklich einfach). Die EA nimmt nur eine Position zu einer Zeit.

Das Problem, auf das ich stoße, sind Abwärtstrends und plötzliche Preisspitzen, gefolgt von starken Rücksetzern. Natürlich trifft der Kursverlauf die untere Hüllkurve und löst einen Kauf aus. Bei einem Abwärtstrend bedeutet dies natürlich, dass der EA wirklich leidet. Trailing Stops sind vorhanden und haben dazu beigetragen, ein wenig mehr Gewinn zu erzielen, aber Stop-Losses rauben wirklich alles zurück, und zwar in der Regel an genau denselben Stellen im Kursverlauf. In meinem Fall ist eine solche Stelle am 31. August 2007 um 14:05 Uhr direkt nach dem Anstieg des EUR/USD.

Ich habe verschiedene MAs mit einer Reihe von Einstellungen ausprobiert, aber keine scheint eine Lösung für die wirklich schlechten Spikes zu bieten, ohne die meisten Gewinne zu vernichten. Ich habe versucht, einige Indikatoren (CCI, MFI, RSI) hinzuzufügen, aber der Effekt neigt dazu, das Problem nur von einem Teil des Diagramms auf einen anderen zu verschieben. Ich habe auch mit der Größe meines Umschlags gespielt, aber um den Spike zu vermeiden, dehne ich den Umschlag schließlich so weit aus, dass er keine Kaufgelegenheiten mehr findet.

Solche Probleme treten häufig auf, und ich würde wirklich gerne einen Weg finden, dieses Problem zu lösen. Ich brauche keinen Code, nur Vorschläge.

Danke

Manxxx

 

Hilfe beim Plotten des täglichen Eröffnungskurses auf einem 4-Stunden-Chart

Ich versuche, einen Indikator zu erstellen, der den täglichen Eröffnungskurs der Periode 1 in einem 4-Stunden-Chart anzeigt.

Ich habe Folgendes ausprobiert, aber keines davon funktioniert richtig

iOpen("GBPJPY",PERIOD_D1,i);

und

iMA("GBPJPY",PERIOD_D1,1,0,MODE_EMA,PRICE_OPEN,i);

Der tägliche Eröffnungskurs ändert sich im Laufe des Tages oder steigt an. Der Eröffnungskurs sollte immer der Eröffnungskurs bleiben, bis der nächste Tag beginnt, oder?

Wenn ich zu den Tagesdiagrammen wechsle, ist alles in Ordnung, nur die kleineren Zeitrahmen sind problematisch. Ist Metatrader nicht richtig eingestellt, um Daten für größere Zeitrahmen auf kleineren Zeitrahmen darzustellen?

Ich danke Ihnen im Voraus

 

Ist es möglich, dies zu codieren?

Ich bin schon seit 4 Wochen dabei und habe immer noch keine Ahnung,

es ist ungefähr so,

wenn OP_BUY EUR/USD minus OP_SELL USD/CHF gleich minus 100 ist, ignoriere andere Trades und

schließe beide Aufträge zusammen

Ich habe alles ausprobiert, Schleifen in Schleifen usw. und nichts funktioniert.

Ich arbeite am Money Management und raufe mir die Haare, jede Hilfe oder jeder Hinweis ist sehr willkommen.

mit Dank

 
mish:
Ich bin seit 4 Wochen dabei und habe immer noch keine Ahnung,

Es ist ungefähr so,

wenn OP_BUY EUR/USD minus OP_SELL USD/CHF gleich minus 100 ist, ignoriere andere Trades und

beide Aufträge zusammen schließen

Ich habe alles ausprobiert, Schleifen in Schleifen usw. und nichts funktioniert.

Ich arbeite am Money Management und raufe mir die Haare, jede Hilfe oder jeder Hinweis ist sehr willkommen.

mit Dank

Ich gehe davon aus, dass es sich um eine Absicherung handelt und Sie sich auf den aufgelaufenen Gewinn der beiden oben genannten Aufträge beziehen. Sie müssen also mit den Funktionen OrderSelect und OrderProfit() herausfinden, was diese sind:

if (MathMax(EU_Profit,UC_Profit) + MathMin(EU_Profit,UC_Profit) < -100)

{

OrderClose(EU_Ticket...

OrderClose(EC_Ticket...

}

Hmmm... scheint zu einfach zu sein, um 4 Wochen damit zu verbringen, also versuchen Sie wahrscheinlich etwas anderes zu tun.....

 

Danke, Omelett

Ich bin kein Programmierer, ich setze einfach ein paar Teile zusammen und hoffe, dass sie funktionieren, natürlich mit etwas Logik!

Herzlichen Dank!

 

Protokolle eines Indikators

Triviale Frage: Ich schreibe gerade zum ersten Mal einen neuen Personal Indicator. Ich kann meine Logs, die ich mit dem Befehl Print ("...") in der start{}-Methode erstelle, nicht einsehen. Wo kann ich sie in MetaTrader 4 einsehen?

 

Ist dies möglich zu codieren?

Nach einem Blick auf Omelettes Antwort ist es nicht das, was ich brauche, aber auf jeden Fall thankyou!

Das Problem:

Ich verwende der Einfachheit halber ein Symbol und wähle EUR/USD

Wenn ich mehrere BUY & & SELL Positionen habe

Ich muss nur eine BUY-Position und nur eine SELL-Position auswählen

Das ergibt zusammen eine Variable von, sagen wir, genau -100

Jeder andere Auftrag bleibt unangetastet

Welcher KAUF oder VERKAUF ist irrelevant.

Die Logik dahinter ist, die BUY & SELL Verhältnisse für das Money Management korrekt zu halten, eine Art Stoploss, der OrderClose() sowohl für BUY als auch für SELL verwendet

jede Hilfe wird herzlichst geschätzt

und Dankeschön

 

Ist das möglich zu programmieren?

Ich habe meine schwachen Programmierversuche zu meinem letzten Beitrag hochgeladen, da sind natürlich viele Fehler drin, es funktioniert nicht!

Dankeschön

Dateien:
advice.txt  2 kb