Für mich neuland für euch bekannt
Hallo liebe MQL-und Forums-User:
Ich habe mir vor einigen Tagen die DVD vom Traders Mag bestellt in dem man die Programmiersprache MQL ein wenig näher gebracht bekommt. Für mich, der bisher keine Kenntnisse im Programmieren hatte, war diese investition eigentlich ganz gut, nur brauche ich hilfe für ein simpeles System zu dem ich gerade nicht weiter komme. Vll habe ich einen Denkfehler, deshalb wäre es schön wenn mal jemand drüber schauen kann. Es ist nichts komplexes, da ich ja erst in die Materie einsteigen will. Es geht um folgendes: Ich möchte mit einem SMA(14) Kauf und Verkaufsignale generieren. Kaufsignal: Sobald das Low der aktuellen Kerze > bzw über dem SMA ist und der Close der aktuellen Kerze > als das Open der aktuellen Kerze ist. Verkaufsignal: Sobals das High der aktuellen Kerze < bzw unter dem SMA ist und der Close der aktuellen Kerze < als das Open der aktuellen Kerze ist. Hier das Script: //+------------------------------------------------------------------+ //| Marcs erster EA.mq4 | //| Der Marc | //| Es gibt gar keinen Link dazu | //+------------------------------------------------------------------+ #property copyright "Der Marc" #property link "Es gibt gar keinen Link dazu" extern double dLots=0.1; extern int iStopLoss=150; extern int iTakeProfit=50; extern int iSlippage=3; extern int iMaxTrades=1; extern int iMagicNumber=210811; int iTradeSignal=0; int iOpenBuySignal=10; int iCloseBuySignal=-10; int iOpenSellSignal=20; int iCloseSellSignal=-20; int iNoSignal=-1; double dMovingAvg1=0; int iTotalTrades; int iOrderOpenStatus; int iErrorNumber; string strErrorMessage; int start() { dMovingAvg1 = iMA (NULL,NULL,14,0,MODE_SMA, PRICE_CLOSE,0); //Buy-Logik if (( Low[0] >dMovingAvg1) && (Open[0] < Close[0] )) iTradeSignal = iOpenBuySignal; //Sell-Logik if (( High[0] <dMovingAvg1) && (Close[0] > Open[0] )) iTradeSignal = iOpenSellSignal; // Buy-Order ausführen iTotalTrades=OrdersTotal(); if ((iTradeSignal == iOpenBuySignal) && (iTotalTrades < iMaxTrades)) { double dBuyStopLoss=Ask-(iStopLoss*Point); double dBuyTakeProfit=Ask+(iTakeProfit*Point); iOrderOpenStatus=OrderSend (Symbol(), OP_BUY,dLots, Ask, iSlippage, dBuyStopLoss, dBuyTakeProfit, "Marcs erster EA",iMagicNumber,0,Green); if (iOrderOpenStatus<0) { iErrorNumber=GetLastError(); Print ("Order fehlgeschlagen!: ", iErrorNumber); return; } } // Sell-Order ausführen iTotalTrades=OrdersTotal(); if ((iTradeSignal == iOpenSellSignal) && (iTotalTrades < iMaxTrades)) { double dSellStopLoss=Bid+(iStopLoss*Point); double dSellTakeProfit=Bid-(iTakeProfit*Point); iOrderOpenStatus=OrderSend (Symbol(), OP_SELL,dLots, Bid, iSlippage, dSellStopLoss, dSellTakeProfit, "Marcs erster EA",iMagicNumber,0,Red); if (iOrderOpenStatus<0) { iErrorNumber=GetLastError(); Print ("Order fehlgeschlagen!: ", iErrorNumber); return; } } return(0); } //+------------------------------------------------------------------+ Vielen Dank für eure Hilfe |
Ohne deinen Quelltext jetzt zu lesen, wo genau drückt denn der Schuh?
s.l. Racki |
hi,
habe auch diese DVD gekauft ;-) aber bin anscheinend schon etwas weiter. wenn du bis morgen wartest dann schreibe ich dir dein ea so um, habe heute leider keine zeit mehr.. |
achso und du musst die vorangegangene Kerze nehmen weil der Close der aktuellen geht nicht weil sie ja noch aktuell ist und nicht geschlossen...
|
Zitat:
Vielen Dank für deine Hilfe...es werden so viele Orders erstellt, dass das System an sich total falsch läuft. Jeder Tick erstellt eine Order... |
Zitat:
|
noch ein kleiner tip deine idee ist zwar soweit gut aber hat einen kleinen denkfehler. Der ea wird auch trades eröffnen wenn der abstand der ima zum kurs wieder kleiner wird das heißt er eröffnet dann trades bis die ima wieder mit dem kurs kontakt hat das heißt er wält dann eher ungünstige einstiege wählen bei schon leicht fallenden kursen.
und wegen dem jeden Tick eine Order das liegt halt daran wie gerade oben beschrieben das er bei jedem tick überprüft ob deine buy/sell Kondition stimmt und du wenn du schaust stimmt sie bis die ima wieder in den kurs kehrt...solange löst er das entsprechnde signal aus |
achso hatte ürbringens auch noch nie was damit zu tun erst seit nem halben jahr und hole mir auch sehr häufig hilfe im forum aber durch testen und probieren mit den indikatoren und überprüfen im chart kommt man schon sehr weit.
wo es bei mir auch scheitert sind komplexere sachen wie trailingstop oder breakeven was eigentlich sehr nützliche tools sind um trades abzusichern |
Zitat:
also von Trailing-Stopps halte ich eigentlich gar nicht so viel...zumindest von den die Broker anbieten...bei nem MM nutzt er das schön aus um dich aus dem Markt zu kicken. Ich hoffe, dass es hier anders ist,a ebr der Broker weiß ja nicht wo meine Stopps etc sind... |
Zitat:
das mit dem versteckten stops funtkioniert auch aber da muss der ea die ganze zeit den trade überwachen und das hat auch seine tücken fällt deine verbindung weg dann ist dein trade ohne stop noch im markt und kann ins bodenlose rauschen..... und wie man das programmiert weiß ich nicht, wissen hier zwar bestimmt einige aber wird dir keiner umsonst machen da das richtig aufwand ist |
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:02 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