Konvertieren Sie diesen MT3 in MT4 für mich - sehr einfach - Seite 2

 

Konvertieren Sie diesen MT3 in MT4 für mich - sehr einfach

Ich überlege, ob ich von MT4 zu MT3 wechseln soll.

Ich habe gerade die Bearbeitung meines allerersten Expert Advisors abgeschlossen.

Ich habe etwa 4 Wochen gebraucht, um genug über MT und MQL4 zu lernen, um meine Strategie endlich zu programmieren, aber jetzt denke ich, dass ich das Programm einfach in MQL2 konvertieren könnte.

Von dem, was ich in diesem Forum gelesen habe, sehe ich keine Vorteile für MT4.

Was ich gelesen und durch Backtesting meines EA gelernt habe, ist, dass der MT4 Strategy Tester nicht funktioniert. Allein aus diesem Grund denke ich, dass es nur Sinn macht, noch ein paar Tage mit der Umstellung zu verbringen, damit ich einen genauen Backtest mit MT3 machen kann.

Ich habe MT3 bereits heruntergeladen und installiert und einen Blick in das Editor-Lexikon geworfen. Ich sehe, dass MT3 weniger Funktionen hat als MT4, aber ich denke nicht, dass das ein großes Problem sein wird.

Eine Funktion meines MQL4 EA, auf die ich mich sehr verließ, war die OrderMagicNumber zum Speichern des ursprünglichen Preises der schwebenden Order, der sich bei Slippage ändern kann, wenn die Order ausgeführt wird.

MQL2-Aufträge haben keine OrderMagicNumber, aber ich habe im MQL2-Wörterbuch eine Funktion namens OrderValue entdeckt, die in ihrer Beschreibung sagt, dass die Funktion den Kommentar eines Auftrags (VAL_COMMENT) abrufen kann.

Wenn ich den Kommentar verwenden kann, um den bevorzugten Preis zu speichern, denke ich, dass ich den Wechsel zu MT3 vornehmen kann. Allerdings konnte ich im Wörterbuch nicht finden, wie man den Orderkommentar setzt. In der Beschreibung der Funktion SetOrder wird "comment" nicht als einer der Parameter aufgeführt.

Kann mir jemand, der mit dieser Funktion von MQL2 vertraut ist, sagen, wie der Orderkommentar gesetzt wird?

 
BC Brett:

Von dem, was ich in diesem Forum gelesen habe, sehe ich keine Vorteile für MT4.

Was ich gelesen und durch das Backtesting meines EA gelernt habe, ist, dass der MT4 Strategy Tester nicht funktioniert. Allein aus diesem Grund denke ich, dass es nur Sinn macht, noch ein paar Tage mit der Umstellung zu verbringen, damit ich einen genauen Backtest mit MT3 machen kann.

Wo haben Sie denn gelesen, dass der MT3 Backtester zuverlässiger ist als der MT4 Backtester?

Ich denke, Sie sind in dieser Hinsicht sehr schlecht informiert!

Das MT4-Backtesting kann sehr zuverlässig sein, aber es hängt von der Qualität der historischen Daten ab, die Sie haben, und von der Qualität Ihrer Modellierung.

Sie werden nicht in der Lage sein, "Kommentare" hinzuzufügen oder "MagicNumbers" zu gesendeten Aufträgen in MQL2 zuzuweisen, wie es in der MT4-Programmierung möglich ist. Die MT4-Programmierung ist fortschrittlicher als die MQL2-Programmierung, warum also einen Rückschritt machen?

 

Vielleicht möchten Sie hier etwas über MT4-Backtesting lesen: http://www.strategybuilderfx.com/forums/showthread.php?t=15309&page=1&pp=8

(wenn Sie keinen Zugriff auf die Seite haben, müssen Sie sich als Mitglied anmelden - es ist kostenlos)

 

Nach dem, was ich hier und da gehört habe, verwenden Leute, die es mit dem Backtesting ernst meinen, Software wie WealthLab, Amibroker oder MetaStocks, NICHT mt3 oder mt4.

Vielleicht kann mt4 Backtesting ganz gut sein , WENN Sie keine Intrabar-Daten verwenden. Wenn Sie z.B. mit Tagesbars arbeiten, sollten Sie nur die Open und Close Werte der Tagesbars verwenden (und nicht einmal High und Low, wenn Sie StopLosses oder Take Profits setzen). Nichts anderes.

Der Grund dafür ist, dass die einzige mt4-Backtesting-Methode, die ECHTE Daten verwendet,"Open prices only" ist, ungeachtet dessen, was ihre "Modellierungsqualität" sagt.

"Every tick" und "Control Points" Methoden sind nette Märchen. Ich persönlich werde nicht mit Geld handeln, das auf märchenhaften Backtesting-Daten basiert.

Ich lerne immer noch mt4, aber meiner Erfahrung nach würde ich mt4 Backtesting nicht anders nutzen. Ich bin nicht einmal 100% sicher, dass die von mir vorgeschlagene Methode 100% zuverlässig ist. Wenn ich gutes Backtesting machen will, werde ich eine Backtesting-Software bekommen.

Über mt4 vs. mt3 für den Live-Handel: von dem, was ich hier und da erfahren habe ;-) kann man mt4 nicht trauen. Manchmal werden Aufträge, von denen mt4 sagt, dass sie nicht ausgeführt wurden, tatsächlich ausgeführt!!! Dies wurde von Brokern berichtet. Wenn das stimmt, dann sind die Broker, die mt4 live trading anbieten, nicht seriös. Oder sie haben dafür gesorgt, dass mt4-Bugs nicht auf ihrer Plattform auftreten, auch das ist möglich.

Auf der anderen Seite, "Ich habe hier und da gesammelt" lol, dass der Handel live mit mt3 möglich ist.

 

Konvertieren Sie diese MT3 in MT4 für mich - sehr einfach

Hallo Leute, ich wäre dankbar, wenn jemand dies in MT4 Sprache für mich konvertieren könnte - unser Broker hat gerade auf MT4 aktualisiert.

Hier ist der Code:

/*[[

Name := TTM Stoch

Author := Scott Black

Link := http://www.tradethemajors.com

Separate Window := yes

First Color := Cyan

First Draw Type := Line

Use Second Data := yes

second Color := Magenta

second Draw Type := Line

Minimum Chart Limits := 0.000000

Maximum Chart Limits := 100.000000

]]*/

Inputs : Slw(8),Pds(13),Slwsignal(9);

Variables : AA(0),bb(0),aa1(0),cnt1(0);

Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0);

Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0);

Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring("");

Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0);

SetLoopCount(0);

smconst = 2 / (1+SLW);

smconst1 = 2 / (1+slwsignal);

loopbegin = loopbegin+1;

For shift = 2000 Downto 0 Begin

prev = GetIndexValue2(shift+1);

AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)]));

MAValue2 = smconst * (aa-prev) + prev;

SetIndexValue2(shift,MAValue2);

loopbegin = loopbegin-1;

End;

loopbegin2 = loopbegin2+1;

For shift = 2000-pds downto 0 Begin

MyHigh = -999999;

MyLow = 99999999;

For counter = shift to pds + shift Begin

PRICE= GetIndexValue2(counter);

If Price > MyHigh Then

MyHigh = Price;

If pds <= 0 Then

MyHigh = Price;

If Price < MyLow Then

MyLow = Price;

If pds <= 0 Then

MyLow = Price;

end;

prev1 = GetIndexValue(shift+1);

aa1=GetIndexValue2(shift);

bb=100*(aa1-mylow)/(myhigh-mylow);

MAValue = smconst * (bb-prev1) + prev1;

SetIndexValue(shift,mavalue);

loopbegin2 = loopbegin2-1;

End;

loopbegin3 = loopbegin3+1;

For shift = 2000 downto 0 Begin

prev2=GetIndexValue2(shift+1);

prev3=GetIndexValue(shift);

MAValue3= smconst1 * (prev3-prev2) +Prev2;

SetIndexValue2(shift,mavalue3);

loopbegin3 = loopbegin3-1;

end;

/*[[

Vielen Dank!!!

 
scott TTM:
Hallo Leute, ich wäre dankbar, wenn jemand dies für mich in MT4-Sprache konvertieren könnte - unser Broker hat gerade auf MT4 umgestellt.

Hier ist der Code:

/*[[

Name := TTM Stoch

Author := Scott Black

Link := http://www.tradethemajors.com

Separate Window := yes

First Color := Cyan

First Draw Type := Line

Use Second Data := yes

second Color := Magenta

second Draw Type := Line

Minimum Chart Limits := 0.000000

Maximum Chart Limits := 100.000000

]]*/

Inputs : Slw(8),Pds(13),Slwsignal(9);

Variables : AA(0),bb(0),aa1(0),cnt1(0);

Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0);

Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0);

Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring("");

Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0);

SetLoopCount(0);

smconst = 2 / (1+SLW);

smconst1 = 2 / (1+slwsignal);

loopbegin = loopbegin+1;

For shift = 2000 Downto 0 Begin

prev = GetIndexValue2(shift+1);

AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)]));

MAValue2 = smconst * (aa-prev) + prev;

SetIndexValue2(shift,MAValue2);

loopbegin = loopbegin-1;

End;

loopbegin2 = loopbegin2+1;

For shift = 2000-pds downto 0 Begin

MyHigh = -999999;

MyLow = 99999999;

For counter = shift to pds + shift Begin

PRICE= GetIndexValue2(counter);

If Price > MyHigh Then

MyHigh = Price;

If pds <= 0 Then

MyHigh = Price;

If Price < MyLow Then

MyLow = Price;

If pds <= 0 Then

MyLow = Price;

end;

prev1 = GetIndexValue(shift+1);

aa1=GetIndexValue2(shift);

bb=100*(aa1-mylow)/(myhigh-mylow);

MAValue = smconst * (bb-prev1) + prev1;

SetIndexValue(shift,mavalue);

loopbegin2 = loopbegin2-1;

End;

loopbegin3 = loopbegin3+1;

For shift = 2000 downto 0 Begin

prev2=GetIndexValue2(shift+1);

prev3=GetIndexValue(shift);

MAValue3= smconst1 * (prev3-prev2) +Prev2;

SetIndexValue2(shift,mavalue3);

loopbegin3 = loopbegin3-1;

end;

/*[[

Herzlichen Dank!

Hallo Scott...

Versuchen Sie dies....

Dateien:
ttm_stoch.mq4  5 kb
 

Hellkas,

ich fürchte, das hat nicht ganz geklappt. Gehen Sie auf www.compoundfx.com/mt3stoch.jpg, um zu sehen, wie es auf dem MT3-Chart aussehen sollte - ich habe versucht, dies hochzuladen, aber es hat nicht funktioniert.

Vielen Dank für Ihre Bemühungen, vielleicht hilft das weiter?

Wenn ich es in MT4 darstelle, sehe ich nur eine magentafarbene Linie und keine cyanfarbene - obwohl ich sehe, dass die Eingabe vorhanden ist.

scott

 

Hi,

Zuerst hellkas Ich werde appreceate Sie halten meine Datei-Header nach der Konvertierung der mql Indikator mit meinem Tool Mql2Mq4 !!!

Dann ist es normal, dass der konvertierte Indikator nicht richtig funktioniert, wenn Sie in Metatrade 4 im Expert message log TabSheet (Panel) nachsehen, werden Sie "Zero Devide exception" wie auf diesem Bild sehen. Im Indikator-Skript verwenden Sie Divide-Operator, mit einigen Zeiten NULL:-( das ist whyt diesen Fehler, und ich wiederhole, in Metatrade 3, gab es keine Ausnahmen für diese generiert, jedoch in Metatrade 4.

Ich habe das konvertierte wie in MT 3 funktionieren lassen, und Sie können sehen, welche Art von Änderung ich gemacht habe.

Bye bye

Dateien:
exception.jpg  52 kb
ttmstoch.mq4  5 kb
 

yousky,

Vielen Dank, es sieht perfekt aus! Ich weiß es zu schätzen.

-SB

 

yousky,

Okay, nach weiterer Überprüfung, es ist noch nicht ganz da. Es gibt mir immer noch falsche Messwerte auf MT4, dh die Linien sind nicht kreuzen, wo sie sein sollten. Ich habe den Code verwendet, den Sie hier eingestellt haben. Irgendwelche Ideen?

SB