Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3359
Beiträge: 33848
Benutzer: 5.342
Aktive Benutzer: 599
Links: 79
Wir begrüßen unseren neuesten Benutzer: maxi
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 5 Stunden
- maxi
vor 20 Stunden
- athaclena
vor einem Tag
- Naale
vor einem Tag
- csabi911
vor einem Tag
- Adlerflüge...

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 34
Gesamt: 37
Team: 0
Team:  
Benutzer:  fxnoob, Naale, SentiTrader
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 28.10.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 110
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Kann mir da bitte jemand mit iCustom helfen ?!

Hallo Spezialisten!
Mir kommt bei iCustom nur Schwachsinn heraus und ich versuche seit Stunden herauszubekommen warum.
Ich habe natürlich auch die Dokumentation zu Rate gezogen, aber ich komme auf keinen grünen Zweig.

Code:
#define IndiName "DEMA"
#define count 2

int     handle;

double  Data[count];
MqlTick tick;

int OnInit()
  {
      handle=iCustom(_Symbol,PERIOD_M1,IndiName,6,0);
      if(handle==INVALID_HANDLE)
         {
            Alert(IndiName, " nicht gefunden");
            return(INIT_FAILED);
         }

   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
      IndicatorRelease(handle);
      Comment("");
  }

void OnTick()
  {
      SymbolInfoTick(_Symbol,tick);
      if(CopyBuffer(handle,1,0,count,Data)<count)
        Alert("Fehler bei CopyBuffer");
      
      Comment("   Ask: "    ,DoubleToString(tick.ask,_Digits),
              "   Bid: "    ,DoubleToString(tick.bid,_Digits),
              "   Data[1]: ",DoubleToString(Data[1] ,_Digits),
              "   Data[0]: ",DoubleToString(Data[0] ,_Digits));
  }
Ich will blos die letzten 2 Werte des Indikators, um die Steigung auszurechnen,
und verbrate Stunden mit sowas.

Ich habe es auch mit iDEMA versucht. Da erhalte ich zumindest die Fehlermeldung (Fehler bei CopyBuffer).
Weiß aber trotzdem nicht was ich falsch mache. Auch mit dynamischem Array hab ich es versucht, war auch nicht besser.
Ausserdem steht in der Dokumentation, daß statische Arrays effektiver sind. Tausend Fragezeichen ??????????

Bitte um Hilfe!
Otto

Geändert von Kronenchakra (28.10.16 um 04:09 Uhr) Grund: Nachtrag
Mit Zitat antworten
  #2 (permalink)  
Alt 28.10.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.518
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Na dann greife doch einfach nur über

val0 = iCustom(_Symbol,PERIOD_M1,IndiName,6,0);
val1 = iCustom(_Symbol,PERIOD_M1,IndiName,6,1);

darauf zu, sofern es tatsächlich einen Buffer 6 gibt.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt 28.10.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 110
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Danke für die rasche Antwort!
War aber evtl. doch etwas zu rasch.
iCustom(...) gibt keine Indikatorwerte zurück, sondern ein Handle zu einem Indikator.
Das geht aus der Doku eindeutig hervor, auch der Rückgabewert ist int und mit Buffernummern hat das nichts zu tun.
Code:
int  iCustom( 
   string           symbol,     // symbol name 
   ENUM_TIMEFRAMES  period,     // period 
   string           name        // folder/custom_indicator_name 
   ...                          // list of indicator input parameters 
   );
Code:
Return Value

Returns the handle of a specified technical indicator,  
in case of failure returns INVALID_HANDLE.
Die Buffernummern werden erst in CopyBuffer(...) verwendet.
Aber ich werde das Problem schon in den Griff bekommen.
LG Otto
Mit Zitat antworten
  #4 (permalink)  
Alt 28.10.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 110
Kronenchakra befindet sich auf einem aufstrebenden Ast
Lightbulb Das Rätsel ist gelöst

Die Lösung ist trivial.
In der Dokumentation wird fälschlicherweise von BufferNUMMER geschrieben.
Es ist aber der BufferINDEX gemeint!
Und der Bufferindex beginnt bei 0, eine Nummer bei 1.
Ist analog zu rates_total und prev_calculated.

Also: Problem gelöst!

LG Otto

Geändert von Kronenchakra (28.10.16 um 12:48 Uhr) Grund: Ergänzung
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
icustom, mql5, programmierung, programmierung metatrader


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 +1. Es ist jetzt 15:15 Uhr.



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