Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Miniänderungen in vorhandenen Quellcode (http://www.expert-advisor.com/forum/showthread.php?t=4432)

Aktien Andy 26.08.15 00:03

Miniänderungen in vorhandenen Quellcode
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin zusammen ;)

Zurzeit befasse ich mich (mal wieder;) mit dem Thema Backtesting. Da ich keinen EA habe,habe ich einfach den mitgelieferten MACD Sample benutzt. Es geht ja nicht darum, eine gewinnbringende Strategie zu entwickeln, sondern darum, das Backtesting zu optimieren. Dieser eingebaute Algorithmus funktioniert nämlich nicht wirklich.

Nun zu den Änderungen:

Im ersten Teil des Quellcodes sind die eingebbaren Variablen genannt; unter anderen ein Take Profit und ein Trailing Stop. Ich benutze zum Testen 5Digit Kurse. Wenn ich dort z.B. Take Profit 50.0 eingebe und Trailing Stop 15.0, dann arbeitet der Backtest mit TP 5 und TS 1.5. Es ist nervig immer das 10fache einzugeben. Kann man da nicht einfach den Typ der Variablen ändern, so dass er echte Pips nimmt? Bei der ebenfalls vorhandenen Variablen MA Period geht das ja auch.

Kann man da mit einem Zweizeiler zufügen, dass man auch die MagicNumber eingeben / verändern kann?

Und wo wir gerade dabei sind: Kann man da eine am Anfang einzugebende Variable für einen Stop Loss ergänzen und den Quellcode so ergänzen, dass beim Eröffnen einer Position dieser SL gesetzt wird (muss nicht hidden sein).

Ich spekuliere mal, dass das für einen Könner keine 5 Minuten dauert. Wäre nett, wenn jemand das mal eben ändern / proggen könnte.

Gruß an alle


Andreas


P.S.: Obwohl ihn ja jeder hat, habe ich mal den Quelltext angehängt.

DocRandom 27.08.15 00:36

Hallo Andreas!

Nun das mit dem Proggen ist so eine Sache, aber ich bin geneigt Dir etwas unter die Arme zu greifen.
Zuerst solltes Du Dir eine Kopie des Originals machen, damit Du auf dieses zurückgreifen kannst wenn was schief gehen sollte.

Nun öffnest Du den EA im MetaEditor. (rechte Maustaste auf MACDSample und auf Edit oder Ändern klicken)

Im oberen Teil fügst Du wie folgt ein:
Code:

input double TakeProfit    =50;
input double Lots          =0.1;
input double TrailingStop  =30;
input double MACDOpenLevel =3;
input double MACDCloseLevel=2;
input int    MATrendPeriod =26;
#ab hier einfügen
input double StopLoss = 30;
input int MagigNumber = 16384;

double dPoint;

Danach gehst Du mit dem Menüpunkt: Edit->Find & Replace und dem Wert 16384 durch den Code und ersetzt in den OrderSend - befehlen die Nummer durch den Wert MagigNumber.

Nun widmen wir uns dem 5 Digits zu.
ganz unten nach der letzten schließenden Klammer fügst Du folgendes ein:
Code:

int OnInit()
  {
    dPoint = MarketInfo(Symbol(), MODE_POINT);
    if(Digits == 5 || Digits == 3) {
        dPoint *= 10;
    }
    return (INIT_SUCCEEDED);
  }

Danach gehst Du mit dem Menüpunkt: Edit->Find & Replace und dem Wert Point durch den Code und ersetzt Point durch dPoint.

Nun zu SL
Die Zeile:
Code:

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*dPoint,"macd sample",MagigNumber,0,Green);
ergänzt Du folgendermaßen:
Code:

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-dPoint*StopLoss,Ask+TakeProfit*dPoint,"macd sample",MagigNumber,0,Green);
gleiches gilt auch für die BUY_SELL Order. Aus:
Code:

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*dPoint,"macd sample",MagigNumber,0,Red);
wird:
Code:

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+dPoint*StopLoss,Bid-TakeProfit*dPoint,"macd sample",MagigNumber,0,Red);
Ich hoffe ich konnte Dir damit weiterhelfen.
Habe es nicht compiliert sondern nur Deine Änderungen eingepflegt sodass es laufen sollte.
Bei evtl. auftretenden Problemen einfach Fragen.

lg
DocRandom

Aktien Andy 27.08.15 19:43

Moin ;)

Super vielen Dank für die Mühe. Ich komme nur leider vor dem WE nicht dazu das zu testen. Ich werde hier berichten sobald ich es umgesetzt habe.

Bis dahin

Gruß an alle


Andreas

Aktien Andy 11.09.15 17:36

Bericht
 
Moin zusammen ;)

Es sieht so aus, als wenn alles super funktionert; danke!!!

Allerdings wirft der EA verwirrende Resultate raus; ich muss mich wohl erst einmal ganz genau mit der Arbeitsweise befassen, um beurteilen zu können, woran die merkwürdigen Geschehnisse liegen.

Ich werde weiter berichten.

Danke an alle und erst einmal ein schönes WE!!!


Andreas


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:41 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum