|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Was hast Du genau auf 1 gestellt? Code!
Und nicht unseren Wünschen nach, sondern den Erfordernissen einer korrekten Programmierung nach! Das ist ein ganz großer Unterschied. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Und keiner hat gesagt das du die CCI Periode auf 1 setzen sollst. Wir haben dir versucht zu erklären, dass da wo du deine Level einsetzt die CCI Periode erwartet wird.
Um es mal mit der Vertragsmodell zu erklären: Die Funktion iCCI ist ein Dienstleistunger und er erwatet für seine Dienstleistungen korrekte Informationen. Im gegenzug sichert er dir als Client dafür zu eine 100% ige Antwort zu liefern. Was denkst bekommst du hier vom Apotheker wenn du ihm statt Euro Rubel in die Hand drückst? Bestimmt wirst du dann eben kein Aspirin bekommen, denn er erwartet die Bezahlung in Euro. |
|
|||
IL1 und IL2.
Code:
//CCI GV extern string ComChIn = "Commodity Channel Index"; extern int InpCCIPeriod = 14; extern double indicator_level1 = 1.0; extern double indicator_level2 = 1.0; input ENUM_APPLIED_PRICE CCI_Price = PRICE_TYPICAL; Code:
//CCI {//Buy/Sell when CCI >/< IL2/IL1 double CCI_B1 = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1); double IL1_B1 = iCCI(_Symbol,_Period, indicator_level1, CCI_Price, 1);//-100 double IL2_B1 = iCCI(_Symbol,_Period, indicator_level2, CCI_Price, 1);//+100 ichs echt nicht. |
|
|||
Jo, ist natürlich wieder falsch!! Da kommt die Periode rein! Eine Periode!!!!!! über wieviele Kerzen der Indikator berechnet werden soll. Mann, was gibt es daran nicht zu verstehen? D.h. dort kommt genau diese Variable rein - InpCCIPeriod
Und da diese Zeile bereits existiert: double CCI_B1 = iCCI(_Symbol,_Period, InpCCIPeriod, CCI_Price, 1); braucht nun nur noch der Vergleich mit den Linien 100 und -100 geschrieben werden: extern double indicator_level1 = -100; extern double indicator_level2 = 100; if (CCI_B1 > indicator_level2) //Buy if (CCI_B1 < indicator_level1) //Sell So und jetzt setze das endlich in Deinem Code so um. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ich glaub mein MQL Buch ist echt fürn Ar...
Danke für Eure Geduld. Allerdings würd ich schon gerne den Wert der Linien in den GV festlegen können. |
|
|||
Bitte sagt mir einfach, ob das richtig ist. Wenn nicht,
weiß ich gerade echt nicht weiter. Code:
//RVI GV extern string RelVigInd = "Relativ Vigor Index"; extern int ExtRVIPeriod = 10; Code:
//Relativ Vigor Index double ExtRVIBuffer,ExtRVISignalBuffer; double RVI = iRVI(_Symbol,_Period, ExtRVIPeriod, ExtRVIBuffer, 1); double RVI_S = iRVI(_Symbol,_Period, ExtRVIPeriod, ExtRVISignalBuffer, 1); Code:
if (TC>F && TC<T && S<=MS && OP0>=CP1 && CCI>IL2 && RVI>RVI_S) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue); if (TC>F && TC<T && S<=MS && OP0<=CP1 && CCI<IL1 && RVI<RVI_S) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);} Code:
if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((RVI<RVI_S) || (CAA=true && TC>CA) || (CLTF=true && O_P<0.0)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);} if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if((RVI>RVI_S) || (CAA=true && TC>CA) || (CLTF=true && O_P<0.0)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}} |
|
|||
Korrekt:
Code:
//Relativ Vigor Index double ExtRVIBuffer,ExtRVISignalBuffer;<---- Kannst du streichen double RVI = iRVI(NULL,0, ExtRVIPeriod, MODE_MAIN, 1);//Liest die RVI Main Linie über "ExtRVIPeriod" Perioden auf dem letzen Bar aus double RVI_S = iRVI(NULL,0, ExtRVIPeriod, MODE_SIGNAL, 1);//Liest die RVI Signal Linie über "ExtRVIPeriod" Perioden auf dem letzen Bar aus |
|
|||
Und vorausgesetzt die Variablen IL1 und IL2 werden nun endlich richtig berechnet!
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Also muss man bei mehreren Zeilen auf jeden Fall Mode benutzen? Aber ich könnte schwören, dass es auch ohne ging.
Was ich überhaupt nicht kapiere, ist, dass im Strategietester der CCI 2 Fenster hat. Einmal die richtige Perioden-Glättung von 14. Dann noch mal (nicht - sondern +)100. |
|
|||
Z.B. mein Ichimoku Kinko EA. Der Ichi wird mit MODE ausgelesen. Aber der CCI nicht?
Code:
//Ichimoku { double TKS = iIchimoku(NULL,0,9,26,52,MODE_TENKANSEN,1);//9, rot double KJS = iIchimoku(NULL,0,9,26,52,MODE_KIJUNSEN,1);//26, blau double SKS_A = iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANA,1);//nicht einstellbar double SKS_B = iIchimoku(NULL,0,9,26,52,MODE_SENKOUSPANB,1);//52 double CKS = iIchimoku(NULL,0,9,26,52,MODE_CHIKOUSPAN,1);//nicht einstellbar //------------------------------------------------------------------------------------------------------------- //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 } |
Lesezeichen |
Stichworte |
ea programmieren, expert advisor programmieren, mql4, programmierung, programmierung metatrader, valerius, valerius ea, valerius expert advisor |
|
|