Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4036
Beiträge: 38360
Benutzer: 6.345
Aktive Benutzer: 279
Links: 80
Wir begrüßen unseren neuesten Benutzer: ekman
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Tagen
- ekman
vor 2 Tagen
- SaxTrade
vor 2 Tagen
- Matthias...
vor 3 Tagen
- wren
vor 4 Tagen
- Unskilled

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 56
Gesamt: 58
Team: 0
Team:  
Benutzer:  fxnoob, Hirsel1978
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 22.06.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
FX4Life befindet sich auf einem aufstrebenden Ast
Question 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);
}
Aber wie mache ich das beim HA_Smoothed und wo finde ich da den Buffer??
Mit Zitat antworten
  #2 (permalink)  
Alt 23.06.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Versuch vielleicht mal mode.
Mit Zitat antworten
  #3 (permalink)  
Alt 23.06.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.086
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
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.
Mit Zitat antworten
  #4 (permalink)  
Alt 23.06.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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));
Angehängte Dateien
Dateityp: mq4 Heiken Ashi.mq4 (4,8 KB, 1x aufgerufen)
Mit Zitat antworten
  #5 (permalink)  
Alt 25.06.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
FX4Life befindet sich auf einem aufstrebenden Ast
Cool

Zitat:
Zitat von traderdoc Beitrag anzeigen
??????? 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
Hallo traderdoc, ich stehe auf dem Schlauch... Wie soll ich das dann umsetzen?

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;
        }

      //+------------------------------------------------------------------+
     }
Wo liegt mein Fehler?
Mit Zitat antworten
  #6 (permalink)  
Alt 26.06.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

https://docs.mql4.com/indicators/icustom
Mit Zitat antworten
  #7 (permalink)  
Alt 26.06.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
FX4Life befindet sich auf einem aufstrebenden Ast
Standard

Hallo MA-EA,

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);
  }
Er öffnet zwar jetzt eine Position, aber nur noch BUY und keine Sell.

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;
        }
      //+------------------------------------------------------------------+
     }
Mit Zitat antworten
  #8 (permalink)  
Alt 26.06.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
FX4Life befindet sich auf einem aufstrebenden Ast
Smile 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);
  }
Ich möchte ertmal das der EA überhaupt läuft und ignorierer daher vorerst den zweiten iCustom.

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;
        }

      //+------------------------------------------------------------------+
     }
Mit Zitat antworten
  #9 (permalink)  
Alt 26.06.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Sell
Ask + SL ?
Mit Zitat antworten
  #10 (permalink)  
Alt 26.06.18
Neues Mitglied
 
Registriert seit: Mar 2018
Beiträge: 12
FX4Life befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Sell
Ask + SL ?


Hast recht, müsste Bid + SL lauten.

Aber daran dürfte es nicht liegen, da ich genug Abstand habe.


Gesendet von iPhone mit Tapatalk
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
heiken_ashi_ma_smoothed


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 21:25 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------