Wie fügt man den Indikatorcode in den Expertadvisor-Code ein?

 

wie ich oben erwähnt, möchte ich ea mit stochastischen Kodierung zu machen.

das Problem ist, wie man Indikator-Code in ea hinzufügen?

 
albert_lim83:

das Problem ist, wie man Indikator-Code in ea hinzufügen?

Mit gewissen Einschränkungen schon, aber mit iCustom ist es viel einfacher.

Aber wenn Sie es wirklich wollen: Übertragen eines Indikatorcodes in einen Expert Advisor Code. Indikator-Struktur - MQL4 Artikel

 

Für Stochastic wird iCustom nicht benötigt

double iStochastic( string symbol, int timeframe, int %Kperiod, int %Dperiod, int slowing, int method, int price_field, int mode, int shift)
Berechnet den Stochastik-Oszillator und gibt seinen Wert zurück.
Parameter:
symbol - Symbol, dessen Daten zur Berechnung des Indikators verwendet werden sollen. NULL bedeutet das aktuelle Symbol.
Zeitrahmen - Zeitrahmen. Es kann ein beliebiger Wert aus der Timeframe-Aufzählung sein. 0 bedeutet den aktuellen Chart-Zeitrahmen.
%KPeriode - %K-Linien-Periode.
%Dperiod - %DZeitraum.
Verlangsamung - Wert der Verlangsamung.
Methode - MA-Methode. Es kann ein beliebigerAufzählungswert derMethode MovingAverage sein.
preis_feld - Preisfeld-Parameter. Kann einer der folgenden Werte sein: 0 - Low/High oder 1 - Close/Close.
Modus - Index der Indikatorlinie. Kann ein beliebiger Aufzählungswert der Indikatorlinienbezeichner sein.
Verschiebung - Index des aus dem Indikatorpuffer entnommenen Wertes (Verschiebung gegenüber dem aktuellen Balken um die angegebene Anzahl von Perioden).
Beispiel:
 if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0)) return(0);
Eine Menge Codierungshilfe ist hier zu finden Alphabetischer Index von MQL4 Funktionen https://www.mql5.com/en/forum/122679

 

wie über das Hinzufügen rvi Indikator in ea?

auch mit dem gleichen Code wie die Art und Weise Hinzufügen von Stochastik?

 
Lesen Sie die Dokumentation
 
albert_lim83:

wie über das Hinzufügen rvi Indikator in ea?

auch mit dem gleichen Code wie die Art und Weise Hinzufügen von Stochastik?


iCustom() oder iRVI()

 
albert_lim83:

wie über das Hinzufügen rvi Indikator in ea?

auch mit dem gleichen Code wie die Art und Weise Hinzufügen stochastic ?


  1. Ausführliche Erklärung von iCustom - MQL4 forum
 

Ich versuche, den RVI-Indikator in den Escape-EA einzufügen, aber es schlägt fehl...

es zeigt

Ausdruck im globalen Bereich nicht erlaubt

Funktionsdefinition unerwartet

unausgewogene Klammern

Wie kann ich diesen Fehler beheben?

 

hier der Code, den ich heute morgen gemacht habe.

Kann mir jemand helfen, es zu beheben?


//+------------------------------------------------------------------+
int init()
{
//---- Zuweisung von Indikatorpuffern
SetIndexPuffer(0,Puffer);
SetIndexPuffer(1,SignalPuffer);
//---- Indikatorzeile
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
//---- Zeichnungseinstellungen
SetIndexDrawBegin(0,RVIPeriod+3);
SetIndexZeichenBeginn(1,RVIPeriode+7);
//---- Name für das Datenfenster und die Bezeichnung des Indikatorunterfensters
IndicatorShortName("RVI("+RVIPeriod+")");
SetIndexLabel(0, "RVI");
SetIndexLabel(1, "RVIS");
//---- Initialisierung abgeschlossen
return(0);
}
{
double bid =MarketInfo(Symbol(),MODE_BID); // Abfrage des Wertes von Bid
double ask =MarketInfo(Symbol(),MODE_ASK); // Abfrage des Wertes von Ask
double point =MarketInfo(Symbol(),MODE_POINT);//Abfrage nach Point
return; // Beenden von start()
if(KontoFreierRahmen()<100)
Print("Wir haben kein Geld. Freie Marge = ", AccountFreeMargin());
return(0);
}

int start()
{
{
int i,j,nLimit,nCountedBars;
double dValueUp,dValueDown,dNum,dDeNum;
//----
if(Bars<=RVIPeriod+8) return(0);
//----
nCountedBars=IndicatorCounted();
//---- Prüfung auf mögliche Fehler
if(nCountedBars<0) return(-1);
//---- zuletzt gezählte Balken wird neu gezählt
nLimit=Balken-RVIPeriode-4;
if(nGezählteZeichen>RVIPeriod+4)
nLimit=Balken-nGezählteBalken;
//---- RVI im 1. Puffer gezählt
for(i=0; i<=nLimit; i++)
{
dNum=0.0;
dDeNum=0,0;
for(j=i; j<i+RVIPeriod; 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)
Puffer[i]=dNum/dDeNum;
sonst
Buffer[i]=dNum;
}
//---- Signalleitung im 2-ten Puffer gezählt
nLimit=Bars-RVIPeriod-7;
if(nGezählteZeichen>RVIPeriod+8)
nLimit=Bars-nCountedBars+1;
for(i=0; i<=nLimit; i++)
SignalBuffer[i]=(Buffer[i]+2*Buffer[i+1]+2*Buffer[i+2]+Buffer[i+3])/6;
//----
return(0);
}
{
OrderSend(Symbol,LotSize,Ask,StopLoss,TakeProfit,0,0);
if (Close<i)
OpenBuy();
return(0);

OrderSend(Symbol,LotSize,Bid,StopLoss,TakeProfit,0,0);
wenn (Close>i)
OpenSell();
return(0);
}


double GetSizeLot() { return(LotSize); }
double GetTakeProfitBuy() { return(Ask+TakeProfit*Point); }
double GetTakeProfitSell() { return(Bid-TakeProfit*Point); }
double GetStopLossBuy() { return(Bid-StopLoss*Point); }
double GetStopLossSell() { return(Ask+StopLoss*Point); }
string GetCommentForOrder() { return();}

return(0); }

 

Bevor Sie etwas posten, lesen Sie bitte einige der anderen Threads... dann hätten Sie zahlreiche Anfragen wie diese gesehen:

Bitte benutzen Sie dies, um den Code zu posten . . das macht es einfacher zu lesen.

 
albert_lim83:

Hier der Code, den ich heute morgen gemacht habe.

jemand kann mir helfen, es zu beheben?

Sie können keinen Indikator-Code in einem EA verwenden ... lesen Sie den Thread, zu dem ich einen Link gepostet habe. Sie müssen die gleiche Anzahl von { und } haben auch die gleiche Anzahl von ( und ). . . habe ich nicht schon einmal gesagt, dass diese ? https://www.mql5.com/en/forum/139447 Ich denke, Sie nicht die Mühe machen, von anderen Beiträgen zu lernen ?