|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Heiken Ashi
Hallo Leute,
ich habe mir vor kurzem das Programmieren beigebracht. Sehr spannendes Thema Aber ich stehe noch ziemlich am Anfang und brauch mal eure Hilfe. Ich würde gerne den Heiken Ashi Smoothed Indikator in einen EA einbauen. Ich habe mich eingelesen, google gefragt und auch Videos angesehen, aber irgendwie bekomme ich es einfach nicht hin. Es scheitert bereits beim eingebauten HA.... Wenn ich den in mein EA einbauen will, muss ich das doch über den iCustom machen und die Bufferwerte auslesen, was in etwa so lauten müsste: Code:
double HA_Open, HA_Close; HA_Open=iCustom(NULL,0,"Heiken Ashi",2,1); HA_Close=iCustom(NULL,0,"Heiken Ashi",3,1); if(HA_Close>HA_Open) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-sl*Point,Ask+tp*Point,NULL,0,0,clrGreen); } |
|
|||
Versuch vielleicht mal mode.
|
|
|||
??????? Was Du aber auch so immer schreibst!
Da gibt es mehrere Buffer, 4 (0 bis 3) sind davon relevant und am wichtigsten die Buffer 0 und 1, die ausreichen, um eine blaue von einer roten Kerze zu unterscheiden. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Kann man die nicht mit Mode einbaun/auslesen was auch immer?
Code:
haOpen=(ExtOpenBuffer[i-1]+ExtCloseBuffer[i-1])/2; haClose=(open[i]+high[i]+low[i]+close[i])/4; haHigh=MathMax(high[i],MathMax(haOpen,haClose)); haLow=MathMin(low[i],MathMin(haOpen,haClose)); |
|
|||
Zitat:
Mein Versuch es so zu machen, funktioniert nicht. Es wird keine Order ausgelöst... Code:
double haOpen0,haOpen1,haClose0,haClose1; double total,ticket,Lots,sl,tp,TrailingStop; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- haClose0=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,3,1); haOpen0=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,2,1); haClose1=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,3,2); haOpen1=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,2,2); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- //| Prüfen der Anzahl der Orders //+------------------------------------------------------------------+ total=OrdersTotal(); if(total<1) { //| Buy //+------------------------------------------------------------------+ if(haOpen0>haClose0 && haOpen1<haClose1) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-sl*Point,Ask+tp*Point,NULL,0,0,clrGreen); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)); Print("BUY order opend : ",OrderOpenPrice()); } else Print("Error opening BUY Order : ",GetLastError()); return; } //| Sell //+------------------------------------------------------------------+ if(haOpen0<haClose0 && haOpen1>haClose1) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Bid-tp*Point,NULL,0,0,clrRed); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)); Print("Sell order opend : ",OrderOpenPrice()); } else Print("Error opening Sell Order : ",GetLastError()); return; } //+------------------------------------------------------------------+ } |
|
|||
|
|
|||
Zitat:
vielen Dank für deinen Hinweis, aber leider bringt mich das nicht weiter. Wie du in meinem vorherigen Post sehen kannst, habe ich den iCustom bereits drinne. Angepasst an den Smoothed und mit dem Index (2&3) vom Heikin Ashi. Jetzt bin auch bereits einen Schritt weiter... Ich habe jetzt ein paar Kleinigkeiten verändert und der Code sieht jetzt so aus. Code:
int OnInit() { //--- haClose1=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,3,1); haOpen1=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,2,1); haClose2=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,3,2); haOpen2=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,2,2); //--- return(INIT_SUCCEEDED); } Code:
//+------------------------------------------------------------------+ void OnTick() { //--- //| Prüfen der Anzahl der Orders //+------------------------------------------------------------------+ total=OrdersTotal(); if(total<1) { //| Buy //+------------------------------------------------------------------+ if(haOpen1<haClose1) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-sl*Point,Ask+tp*Point,NULL,0,0,clrGreen); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)); Print("BUY order opend : ",OrderOpenPrice()); } else Print("Error opening BUY Order : ",GetLastError()); return; } //| Sell //+------------------------------------------------------------------+ if(haOpen1>haClose1) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Bid-tp*Point,NULL,0,0,clrRed); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)); Print("Sell order opend : ",OrderOpenPrice()); } else Print("Error opening Sell Order : ",GetLastError()); return; } //+------------------------------------------------------------------+ } |
|
|||
Heikin Ashi Smoothed
Hallo MA-EA,
ersteinmal vielen Dank für deine Hilfe, aber die Info bringt mich leider nicht weiter... Wie du in meinem Post weiter oben siehst, habe ich bereits den iCustom drinne. Die Werte sind vom Heikin_Ashi_Smoothed und als Index habe ich 2 & 3 genommen. Ich bin aber bereits einen Shritt weiter gekommen und habe ein paar anpassungen gemacht. Jetzt öffnet er zwar Positionen, allerdings nur buy Und an den Expert Advisor Optionen liegt es nicht. Die sind richtig... Wer erkennt meinen Fehler? Code:
int OnInit() { //--- haClose1=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,3,1); haOpen1=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,2,1); haClose2=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,3,2); haOpen2=iCustom(NULL,0,"Heiken_Ashi_Smoothed",2,4,2,1,2,2); //--- return(INIT_SUCCEEDED); } Code:
void OnTick() { //--- //| Prüfen der Anzahl der Orders //+------------------------------------------------------------------+ total=OrdersTotal(); if(total<1) { //| Buy //+------------------------------------------------------------------+ if(haOpen1<haClose1) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-sl*Point,Ask+tp*Point,NULL,0,0,clrGreen); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)); Print("BUY order opend : ",OrderOpenPrice()); } else Print("Error opening BUY Order : ",GetLastError()); return; } //| Sell //+------------------------------------------------------------------+ if(haOpen1>haClose1) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+sl*Point,Bid-tp*Point,NULL,0,0,clrRed); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)); Print("Sell order opend : ",OrderOpenPrice()); } else Print("Error opening Sell Order : ",GetLastError()); return; } //+------------------------------------------------------------------+ } |
Lesezeichen |
Stichworte |
heiken_ashi_ma_smoothed |
|
|