|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Code:
//CCI { double CCI = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1); double IL1 = iCCI(_Symbol,_Period, indicator_level1, CCI_Price, 1);//-100 double IL2 = iCCI(_Symbol,_Period, indicator_level2, CCI_Price, 1);//+100 } Was solls, bin jetzt beim RVI. Also beantwortet mir bitte einfach nur eine simple Frage: Er besteht aus einer Globalen Variable (wenn ich mich nicht täusche) und 2 Linien (eher Kurven, wie MAs ), die jeweils mit Formeln berechnet werden. Müssen die am Ende ihrer Zeilen mit "mode" deklariert werden? Denke mal ja. |
|
|||
Zitat:
zum RVI: So, jetzt wird nicht vorgekaut. Was sagt denn die MQL-Doku? Kopiere mal die Funktionsdeklaration hier rein und erläutere, was Du da für Parameter erkennst. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ich beobachte grinsend diesen Fred
So eine Unterhaltung erlebt man normalerweise nur im Kabarett Bitte weiter so, ich will mehr! |
|
|||
Ist irgendwie der einzige Para, den man im MT4 einstellen kann, Herr Doctor:
Code:
extern int ExtRVIPeriod=10; |
|
|||
Zitat:
@MA-EA: Du bestimmst doch selbst was man eingeben und einstellen kann. Lass es bleiben, denk dir eine Strategie aus, und gib's dem Doc zum proggen. |
|
|||
Es ging jetzt nur um den RVI.
|
|
|||
Ist es denn echt zu viel, mir einfach zu sagen, wies richtig wäre?
Code:
double RVI = iRVI(_Symbol,_Period, ExtRVIPeriod, MODE_ExtRVIBuffer, 1); double RVI_S = iRVI(_Symbol,_Period, ExtRVIPeriod, MODE_ExtRVISignalBuffer, 1); Code:
//---- indicator settings #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Green #property indicator_color2 Red //---- indicator parameters extern int ExtRVIPeriod=10; //---- indicator buffers double ExtRVIBuffer[]; double ExtRVISignalBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator buffers mapping SetIndexBuffer(0,ExtRVIBuffer); SetIndexBuffer(1,ExtRVISignalBuffer); //---- indicator line SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); //---- drawing settings SetIndexDrawBegin(0,ExtRVIPeriod+3); SetIndexDrawBegin(1,ExtRVIPeriod+7); //---- name for DataWindow and indicator subwindow label IndicatorShortName("RVI("+ExtRVIPeriod+")"); SetIndexLabel(0,"RVI"); SetIndexLabel(1,"RVIS"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Relativ Vigor Index | //+------------------------------------------------------------------+ int start() { int i,j,nLimit,nCountedBars; double dValueUp,dValueDown,dNum,dDeNum; //---- if(Bars<=ExtRVIPeriod+8) return(0); //---- nCountedBars=IndicatorCounted(); //---- check for possible errors if(nCountedBars<0) return(-1); //---- last counted bar will be recounted nLimit=Bars-ExtRVIPeriod-4; if(nCountedBars>ExtRVIPeriod+4) nLimit=Bars-nCountedBars; //-------------------------------------------------------------------------------------------------------------- //---- RVI counted in the 1-st buffer for(i=0; i<=nLimit; i++) { dNum=0.0; dDeNum=0.0; for(j=i; j<i+ExtRVIPeriod; j++) { dValueUp=((Close[j]-Open[j])+2*(Close[j+1]-Open[j+1])+2*(Close[j+2]-Open[j+2])+(Close[j+3]-Open[j+3]))/6; dValueDown=((High[j]-Low[j])+2*(High[j+1]-Low[j+1])+2*(High[j+2]-Low[j+2])+(High[j+3]-Low[j+3]))/6; dNum+=dValueUp; dDeNum+=dValueDown; } if(dDeNum!=0.0) ExtRVIBuffer[i]=dNum/dDeNum; else ExtRVIBuffer[i]=dNum; } //-------------------------------------------------------------------------------------------------------------- //---- signal line counted in the 2-nd buffer nLimit=Bars-ExtRVIPeriod-7; if(nCountedBars>ExtRVIPeriod+8) nLimit=Bars-nCountedBars+1; for(i=0; i<=nLimit; i++) ExtRVISignalBuffer[i]=(ExtRVIBuffer[i]+2*ExtRVIBuffer[i+1]+2*ExtRVIBuffer[i+2]+ExtRVIBuffer[i+3])/6; //---- return(0); } |
|
|||
Warum quälst du dich damit herum?
Gibt doch ein FixFertiges Beispiel hier https://www.mql5.com/de/code/8035 Nächtliche Grüße Otto PS: Die ganze Programmiererei besteht doch haupsächlich aus der Verwendung von vorhandenem Code. Mit der Zeit wächst die Erfahrung und das Wissen -> Das Gras ...... Geändert von Kronenchakra (18.12.16 um 02:23 Uhr) Grund: PS |
|
|||
Das ist nur der Indi. Den hab ich schon weiß ich wie lange auf der Platte. Soll ich zu dem sagen "Komm bitte in meinen EA"?
Muss man vielleicht in der Deklaration die einzelnen Zahlenwerte, also "0,0,60,..." statt "_Symbol, _Period,..." eintragen? |
|
|||
Edit:So geht das wohl.
https://docs.mql4.com/constants/indi...onstants/lines |
Lesezeichen |
Stichworte |
ea programmieren, expert advisor programmieren, mql4, programmierung, programmierung metatrader, valerius, valerius ea, valerius expert advisor |
|
|