Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36908
Benutzer: 6.076
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Spitzmaus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einer Stunde
- Spitzmaus
vor 3 Stunden
- juleslesqu...
vor einem Tag
- hmf44
vor einem Tag
- Crossa
vor einem Tag
- snatshit

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 45
Gesamt: 47
Team: 0
Team:  
Benutzer:  Spitzmaus, traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 26.08.15
Benutzerbild von Aktien Andy
Premium Mitglied
 
Registriert seit: Oct 2014
Beiträge: 436
Aktien Andy befindet sich auf einem aufstrebenden Ast
Standard Miniänderungen in vorhandenen Quellcode

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.
Angehängte Dateien
Dateityp: mq4 MACD Sample.mq4 (6,1 KB, 1x aufgerufen)
__________________
Is there anybody out there?
  #2 (permalink)  
Alt 27.08.15
Neues Mitglied
 
Registriert seit: Aug 2013
Ort: Austria
Beiträge: 17
DocRandom befindet sich auf einem aufstrebenden Ast
DocRandom eine Nachricht über Skype™ schicken
Standard

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
  #3 (permalink)  
Alt 27.08.15
Benutzerbild von Aktien Andy
Premium Mitglied
 
Registriert seit: Oct 2014
Beiträge: 436
Aktien Andy befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Is there anybody out there?
  #4 (permalink)  
Alt 11.09.15
Benutzerbild von Aktien Andy
Premium Mitglied
 
Registriert seit: Oct 2014
Beiträge: 436
Aktien Andy befindet sich auf einem aufstrebenden Ast
Standard 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
__________________
Is there anybody out there?
Thema geschlossen

Lesezeichen

Stichworte
backtest, backtestinf, magicid, magicnumber, magicnummer, mql4, programmierung, programmierung metatrader


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------