Fragen zu MA Crossover EA

fabian.z
10
fabian.z  
Hallo liebe Community,

zurzeit programmiere ich einen "einfachen" MA Crossover Expert Advisor (für mich als Nicht-ITler gar nicht mal so einfach) in MQL4. Ich verwende den 50er und 200er SMA, bei einem Kreuzen nach unten sollte sich eine Short Position ergeben, bei einem Kreuzen nach oben ein Long Signal. Nun habe ich konkrete Fragen bzw. Problemstellungen, auf die ich bisher leider keine Antworten finden konnte:
- der EA eröffnet teilweise innerhalb weniger Sekunden bis zu 3 Positionen bei ein und demselben Signal. Eigentlich möchte ich pro Markt aber nur eine Position eröffnet haben (je EINEM Einstiegssignal).
- während der Take Profit soweit ganz gut funktioniert bzw. immer greift (wann er soll), tut sich bei meinem Stopp Loss leider gar nichts. (TP greift bereits bei einigen Cent, der SL nicht mal bei Verlusten > 10 Euro). Woran kann das liegen?
- da ich bisher v.a. im M1 gehandelt habe (was natürlich deutlich öfters (Fehl-)Signale auslöst), möchte ich zusätzlich zum SL bzw. TP (falls diese nicht greifen sollten) einen Code, damit die Position spätestens beim gegensätzlichen Schneiden der MA`s geschlossen wird.

Es wäre super, wenn mir jemand den passenden "Code" bzw. Befehl parat hat. Da ich mich, wie gesagt, leider noch nicht gut auskenne (das ist mein erster EA), wäre es mega hilfreich, wenn ihr mir passend zum Code auch die Position des Codes im "Großen und Ganzen" verraten könntet (oder ist das egal?). Anbei ist der derzeitige Stand meines SMA EA.

input int SmallSMA=50;
input int BigSMA=200;

void OnTick()
{
// We create a string variable for the signal
string signal ="";

// We calculate the small moving average
double SmallMovingAverage1 = iMA(_Symbol, _Period, SmallSMA, 0, MODE_SMA, PRICE_CLOSE, 1);

// We calculate the big moving average
double BigMovingAverage1 = iMA(_Symbol, _Period, BigSMA, 0, MODE_SMA, PRICE_CLOSE, 1);

// We calculate the small moving average
double SmallMovingAverage2 = iMA(_Symbol, _Period, SmallSMA, 0, MODE_SMA, PRICE_CLOSE, 2);

// We calculate the big moving average
double BigMovingAverage2 = iMA(_Symbol, _Period, BigSMA, 0, MODE_SMA, PRICE_CLOSE, 2);

// If BigMovingAverage > SmallMovingAverage
if (BigMovingAverage1 > SmallMovingAverage1)

// If BigMovingAverage < SmallMovingAverage before
if (BigMovingAverage2 < SmallMovingAverage2)

{
// Set the signal variable to sell
signal="sell";
}

// If BigMovingAverage < SmallMovingAverage
if (BigMovingAverage1 < SmallMovingAverage1)

// If BigMovingAverage > SmallMovingAverage before
if (BigMovingAverage2 > SmallMovingAverage2)

{
// Set the signal variable to buy
signal="buy";
}

// Buy 10 Microlot
if (signal=="buy" && OrdersTotal()==0)
OrderSend (_Symbol,OP_BUY,0.10,Ask,3,0,Ask+150*_Point,NULL,0 ,0,Green);

// Sell 10 Microlot
if (signal=="sell" && OrdersTotal()==0)
OrderSend (_Symbol,OP_SELL,0.10,Bid,3,0,Bid-150*_Point,NULL,0,0,Red);

// Chart output for the signal
Comment ("The current signal is: ",signal);

}


Ich danke euch für die Hilfe und bin auch gern für anderweitige Tipps & Tricks offen!
Carl Schreiber
Moderator
11026
Carl Schreiber  

Also herzlich willkommen und schon einmal viel Erfolg!

Hier ein paar Infos für Newbies:

  1. https://www.mql5.com/en/forum/211659#comment_5477895 // praktisch alles für Neulinge
  2. Programmcode bitte immer mit Alt+S oder dem Code-Icon </> aus der Editierzeile zu posten.
  3. Es gibt fast nichts, was nicht für MT5 (und MT4) programmiert wurde: Erst suchen ist viel schneller! (oben rechts die Lupe).
  4. Such mal nach Crossover MA: https://www.mql5.com/de/search#!keyword=Crossover%20MA: 7 Artikel und 7 Programme in der Codebase
    Besser dort abschreiben oder Kopieren als alle Fehler selber machen!
    Übrigens der MACD ist auch ein Crossover zweier MAs
    In diesen Beispielen gibt es auch Lösungen zu Deinem Problem.

New member
New member
  • 2017.07.20
  • www.mql5.com
Hi!!!! I'm new member. Nice to meet all of you
fabian.z
10
fabian.z  

Hallo,


ich danke dir herzlich für dein Feedback und die schon sehr hilfreichen Info`s.

Ich werde deinen Link mal durchschauen und mich, sofern ich noch nicht weiter gekommen bin, nochmal melden.


P.S.: Da ich sowohl was den MT, als auch MQL etc. angeht, noch sehr "frisch" dabei bin und dementsprechend unerfahren, bin ich über jeden Austausch mit erfahreneren Mitgliedern hier froh!

Carl Schreiber
Moderator
11026
Carl Schreiber  
fabian.z:

Hallo,


ich danke dir herzlich für dein Feedback und die schon sehr hilfreichen Info`s.

Ich werde deinen Link mal durchschauen und mich, sofern ich noch nicht weiter gekommen bin, nochmal melden.


P.S.: Da ich sowohl was den MT, als auch MQL etc. angeht, noch sehr "frisch" dabei bin und dementsprechend unerfahren, bin ich über jeden Austausch mit erfahreneren Mitgliedern hier froh!

Beginne vielleicht gleich mit MT5. MT4 wird nicht mehr weiterentwickelt und vieles ist einfacher und schneller geworden.