|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Indikator Werte
Hallo zusammen,
ich habe einen Indikator(ex4) der mir anzeigt wann ein Trend da ist. Entweder ist das Signal Rot oder Grün. Jetzt möchte ich gerne wenn das Signal 2 Bars lang rot ist ein Short Signal gesetzt wird und wenn das Signal 2 Bars grün ist ein Long Signal. Dabei soll er aber nur ein Signal pro richtung setzten und keine 1000 Eröffnen. Das soll ja mit einer Abfrage bool gehen aber richtig funktinoieren tut es bei mir nicht. Mein Code Code:
//--- HMAUP = iCustom(NULL,0,"HMA Dynamic Color",HMALine,false,false,false,1); HMADOWN = iCustom(NULL,0,"HMA Dynamic Color",HMALine,false,false,false,2); total=OrdersTotal(); if(total<1) { if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ",AccountFreeMargin()); return; } if(HMAUP == HMAUP && result == true && HMAUP==Open[3]) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green); result = false; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return; } if(HMADOWN == HMADOWN && result == false) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red); result = true; if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); } |
|
|||
Was für ein Indikator?
Edit:Hast Du den Quellcode von dem Indi? |
|
|||
Er hat doch geschrieben, dass es eine ex4-Datei ist!!!!
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Schade! Jetzt müssen wir auf die Source-Code-Analyse von MA-EA verzichten...
Bedaure ich sehr... @WD2 wenn es kein Problem macht, poste die ex4-Datei. Ich denke, Dir kann geholfen werden! |
|
|||
Hallo RetepM, anbei die ex4 datei. Ein bisschen habe ich schon probiert aber leider läuft es nicht so wie ich es mir vorstelle.
|
|
|||
In den beiden Zeilen ist keine Kerze angesprochen:
HMAUP = iCustom(NULL,0,"HMA Dynamic Color",HMALine,false,false,false,1); HMADOWN = iCustom(NULL,0,"HMA Dynamic Color",HMALine,false,false,false,2); Die 1 und 2 sollten demnach die beiden Buffer sein und dahinter muss nun der Kerzenindex gestellt werden. Wenn auf zwei Bars dieselbe Farbe kommen muss, dann brauchst Du schon mal 2 Variablen für jedes Signal: HMAUP1 = iCustom(NULL,0,"HMA Dynamic Color",HMALine,false,false,false,1,1); HMAUP2 = iCustom(NULL,0,"HMA Dynamic Color",HMALine,false,false,false,1,2); HMADOWN1 = iCustom(NULL,0,"HMA Dynamic Color",HMALine,false,false,false,2,1); HMADOWN2 = iCustom(NULL,0,"HMA Dynamic Color",HMALine,false,false,false,2,2); Was soll das if(HMAUP == HMAUP und if(HMADOWN == HMADOWN ergeben, außer ein permanentes true? Da müssten dann stehen: if (HMAUP1 == HMAUP2 ... nachdem aber oben die beiden Variablen HMAUP1 und HMAUP2 auch wirklich dasselbe UP-Signal haben. Hätten sie beide kein!! Signal würde auch hier ein true folgen. Das mal als erster Ansatz, auf den Rest kommst Du evtl. alleine oder andere. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Grüße |
|
|||
Also ich bin etwas weiter gekommen aber jetzt hängt es bei einem Thema. Wenn die 2 sich kreuzen ist das Signal falsch. Also ganz einfach es soll grün sein für ein UP Trend und der HMA Indikator soll denn MA von unten nach oben kreuzen und es sollen höchstens 3 Kerzen davor über dem MA indikator sein bevor der HMA denn MA kreuzt. Übriegens habe ich einen anderen HMA Indikator gefunden der öffentlich ist. Euch beiden aber schonmal danke. @traderdoc @RetepM
Code:
HMAUP0 = iCustom(NULL,0,"HMA_withAlerts",HMAPeriod,HMAMethod,HMAPrice,false,false,"HMA Color Change",0,0); HMAUP1 = iCustom(NULL,0,"HMA_withAlerts",HMAPeriod,HMAMethod,HMAPrice,false,false,"HMA Color Change",0,1); HMAUP2 = iCustom(NULL,0,"HMA_withAlerts",HMAPeriod,HMAMethod,HMAPrice,false,false,"HMA Color Change",0,2); HMADOWN1 = iCustom(NULL,0,"HMA_withAlerts",HMAPeriod,HMAMethod,HMAPrice,false,false,"HMA Color Change",1,1); HMADOWN2 = iCustom(NULL,0,"HMA_withAlerts",HMAPeriod,HMAMethod,HMAPrice,false,false,"HMA Color Change",1,2); MA1 = iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_CLOSE,1); MA2 = iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_CLOSE,2); double HMA = (HMAUP1 == HMAUP2); double MA = (HMAUP0 > MA1); if(HMAUP1 == HMAUP2 && HMAUP0 > MA1) {Comment("HMAUP is up");} |
Lesezeichen |
|
|