|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
EA der 3 Gleitende Durchschnitte nutzt
Hallo zusammen,
als Anfänger ist es mir mithilfe eines Videotutorials endlich gelungen einen EA zu schreiben. Dieser nutzt zum Einstieg 2 Gleitende Durschnitte die sich kreuzen. Gerne würde ich aber noch einen 3. gleitenden Durchschnitt mit einbeziehen. Hier stehe ich dann aber vor dem Problem dass der EA gar nicht oder ab nur sehr selten handelt, obwohl sich die Gleitenden Durchschnitte mehrmals schneiden. Anbei der Code: Code:
if(timestamp == iTime(Symbol(),Timeframe,0)) return; timestamp = iTime(Symbol(),Timeframe,0); double maFast = iMA(Symbol(),Timeframe,PeriodsMAFast,0,MethodMAFast,PRICE_CLOSE,1); double maSlow = iMA(Symbol(),Timeframe,PeriodsMASlow,0,MethodMASlow,PRICE_CLOSE,1); double maSlower = iMA(Symbol(),Timeframe,PeriodsMASlower,0,MethodMASlower,PRICE_CLOSE,1); double maFastLast = iMA(Symbol(),Timeframe,PeriodsMAFast,0,MethodMAFast,PRICE_CLOSE,2); double maSlowLast = iMA(Symbol(),Timeframe,PeriodsMASlow,0,MethodMASlow,PRICE_CLOSE,2); double maSlowerLast = iMA(Symbol(),Timeframe,PeriodsMASlower,0,MethodMASlower,PRICE_CLOSE,2); if(maFast > maSlow && maFast > maSlower && maSlow > maSlower && maFastLast < maSlowLast && maFastLast < maSlowerLast && maSlowLast < maSlowerLast){ Print("Long"); int ticket = executeLong(); Print(IntegerToString(ticket)); }else if (maFast < maSlow && maFast < maSlower && maSlow < maSlower && maFastLast > maSlowLast && maFastLast > maSlowerLast && maSlowLast > maSlowerLast){ Print("Short"); int ticket = executeShort(); Print(IntegerToString(ticket)); } } Danke für Eure Hilfe! |
|
|||
Würd mal sagen, es ist sehr selten, dass die gewünschten Formationen vor kommen. Lass die MA auf Bar 2 weg.
Edit: 3 MA reagieren aber sowieso meistens zu spät. |
|
|||
Zitat:
---Leopold--- |
|
|||
So, jetzt muss ich auch mal bei @MA-EA eine Blutgrätsche hinlegen.
@MA-EA, es ist ok, wir haben alle mal klein angefangen. Deine Phase mit "klein angefangen" sollte eigentlich bereits vorbei sein. Aber was Du da so manchmal schreibst, ist schon mehr als merkwürdig (incl. Deiner Selbstgespäche in so manchen Threads). Und deshalb rate ich Dir, Dich einfach mal rauszuhalten, still weiter zu lernen, den anderen v.a. gut zuhören bzw. die Posts genau lesen und nicht solchen Quatsch schreiben, er soll die MA auf Bar 2 weglassen. Frage an Dich: Was meinst Du denn, wozu die Abfrage hier auf Bar 2 notwendig ist? traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Um z.B. long zu gehn sollen der jeweils schnellere Bar 1 MA über dem jeweils langsameren Bar 1 MA sein. Schon das dauert etliche Kerzen. Dann sollen auch noch die MAs auf Bar 2 genau die entgegen gesetzte Formation haben. Das ist wahrscheinlich mindestens noch mal so selten... Einen Trend-Beginn auf die Kerze genau zu erwischen und dann noch mit 6 MAs... Viel Erfolg. Und selbst wenn zufällig mal richtig eingestiegen wird, ist der Trend vermutlich schon lange wieder vorbei, bevor auch nur 1 Punkt Gewinn gemacht wurde. |
|
|||
Aber um eine Kreuzung zu definieren brauchst du die zustände vor der Kreuzung, sonst weist du ja nicht wann die Kreuzung stattgefunden hat.
Halt dich doch in Zukunft etwas zurück! Dieses Thema wurde nicht erstellt um dir Grundlagen beizubringen, es hatte jemand eine Frage. @Blancomi: Bitte entschuldige, wir weichen von deiner Frage ab. ---Leopold--- |
|
|||
Ich freue mich darüber, dass meine Frage wenigstens wahrgenommen wurde. (In dem ein oder anderen Foren ist das nicht der Fall).
Zurück zum Thema: Es ist natürlich richtig dass sich die 3 gleitenden Durchschnitte nur an sehr wenigen Punkten gleichzeitig schneiden. Deswegen würde ich das ganze so programmieren dass auch Trades eingegangen werden, wenn sich beispielsweise 2 der 3 gD einige Kerzen zuvor kreuzen. Zur Veranschaulichung habe ich einen Screenshot beigefügt. Warum möchte ich das machen? Ich benötige diese Kenntnisse, um später einen EA zu programmieren der auf der Idee des Rainbow-Systems basiert, oder aber auf Basis des Alligator Indikators handelt. In beiden Fällen habe ich mehr als 2 gD die sich irgendwann gekreuzt haben müssen. Oder bin ich mit diesen Gedanken auf dem Holzweg? Danke Euch und viele Grüße, Michael |
|
|||
Also, wenn ich mit irgendwas Erfahrung habe, dann mit MA-EAs.
Aus eigener Erfahrung kann ich sagen: 1. Drei MAs sind zu lahm! Jedenfalls beim Day- und Swing-Trading. 2. Wenn sich eine Kerze davor noch alle 3 in gespiegelter Position befinden sollen, dann sind Einstiegs-Signale so selten, dass man auch gleich per Hand traden kann. 3. Gute Erfahrungen hab ich mit nem 2 MA-EA gemacht. H1, beide Simple, 3 und 6. Dass hatte eigentlich immer funktioniert. Aber irgendwas ist beim Prüfen, ob Orders offen sind, und Öffnen, falsch. Jedenfalls öffnet er eine Order nach der Anderen. Code:
//============================================================================================================= // P R U E F E N O B O R D E R S G E O E F F N E T S I N D //============================================================================================================= for(i=OrdersTotal()-1;i>=0;i--){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_Market_MN&&OrderSymbol()==Symbol())bool Buy_Mark_inv=true; if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_Market_MN&&OrderSymbol()==Symbol())bool Sel_Mark_inv=true;}} //============================================================================================================= // O P E N O R D E R S //============================================================================================================= if(Fast_TF==Slow_TF&&SPR_AL==true&&RT==true){ if(Buy_Market==true&&Buy_Mark_inv==false&&CP_1>F_MA && F_MA>S_MA)OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,B_Mark_SL,B_Mark_TP,Buy_Market_MN,0,MediumBlue); if(Sell_Market==true&&Sel_Mark_inv==false&&CP_1<F_MA && F_MA<S_MA)OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,S_Mark_SL,S_Mark_TP,Sell_Market_MN,0,SteelBlue);} |
|
|||
Danke dir
Ein EA mit nur 2 MA ist an sich eine schöne Sache... bis der Markt seitwärts läuft :/ |
Lesezeichen |
|
|