Wie programmiert man? - Seite 317

 

Hallo,

ich denke, wie kann ich diesen Indikator/Tools zu codieren.

Ich brauche einen Indikator, Skript oder etwas ähnliches, wo ich entscheiden kann, einige Bereich in Tagen (ex 12/10/2012-15/10/2012 oder 15/10/2012-15/10/2012) und nach es schreiben in einer csv oder Excel-Datei die offenen hoch niedrig und schließen für die Kerze im Diagramm angezeigt, je nach TF (ex. wenn ich entscheiden, nur einen Tag und fügen Sie es in 1hr TF es schreiben 24 Kerze mit ihren Angaben).

Vielen Dank im Voraus für Ihre Hilfe

 

Alert Signal Problem.

Hallo an alle im Haus, es gibt dieses kleine Problem mit einem MT4-Code, den ich geschrieben habe.Dieser Code soll über drei indys, stoichastic, RSI, und CCI.if stoichastic kreuzt seine Signallinie nach oben oder unten UND RSI der Periode 70 und 6 kreuzt einander nach oben oder unten und CCI ist über oder unter Null, es sollte ein Kaufsignal, wenn die ganze 3 indys sind über ihre Signallinien oder es sollte ein Verkaufssignal, wenn die 3 indys sind unter ihre Signallinien........Dieser Code funktioniert, aber immer wenn es ein Alarmsignal gibt, wiederholt es sich bei jedem Tick der Kerze.Was kann ich tun, um dieses Alarmsignal nur einmal ertönen zu lassen, wenn die drei Bedingungen auf der aktuellen Kerze erfüllt sind und nicht erneut ertönen.

if(Zeitraum()==240){

double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);

double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);

double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);

double RSIP2=iRSI(NULL,240,70,PREIS_SCHLIESSEN,0);

double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);

double nowenCCI=iCCI(NULL,240,6,PREIS_TYPISCH,0);

double b4trCCI=iCCI(NULL,240,14,PREIS_TYPISCH,1);

double nowtrCCI=iCCI(NULL,240,14,PREIS_TYPISCH,0);

// Warnungen

if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){

Alert("Buy Arrow","\n","Aktuelle Zeit ist ",TimeToStr(CurTime()),"\n",Symbol());

}

if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){

Alert("Sell Arrow","\n", "Aktuelle Zeit ist ",TimeToStr(CurTime()),"\n",Symbol());

}

}

 
mladen:
puh

Es liegt einfach daran, dass die Werte der verschiedenen Symbole so unterschiedlich sein können (z.B. GBPJPY ist jetzt etwa 126 und EURUSD ist etwa 100 mal weniger - wenn Sie diese Werte auf dem gleichen Chart zeichnen, ist der Wert von EURUSD einfach "aus dem Bild, weil Metatrader die GBPJPY-Werte als Kriterium für die Chart-Skalierung nimmt).

Werfen Sie einen Blick auf diesen Thread: https: //www.mql5.com/en/forum/178052. In diesem Thread gibt es bereits einige Lösungen für ähnliche Probleme

Vielen Dank, Mladen. Ich bin Deinem Link gefolgt und habe den Indikator gefunden, der meinen Bedürfnissen entspricht.

puh

 

Versuchen Sie Folgendes:

if(Period()==240)

{

static datetime lastAlerted=0;

double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);

double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);

double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);

double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);

double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);

double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);

double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);

double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);

// alerts

if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))

{

lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());

}

if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))

{

lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());

}

}
Mastercash:
Hallo zusammen, es gibt ein kleines Problem mit einem MT4-Code, den ich geschrieben habe. Dieser Code soll drei Indizes überwachen, Stoichastic, RSI und CCI. Wenn der Stoichastic seine Signallinie nach oben oder unten kreuzt UND der RSI der Periode 70 und 6 sich gegenseitig nach oben oder unten kreuzt und der CCI über oder unter Null liegt, sollte es ein Kaufsignal geben, wenn alle 3 Indizes über ihren Signallinien liegen, oder es sollte ein Verkaufssignal geben, wenn die 3 Indizes unter ihren Signallinien liegen........this Code funktioniert, aber immer, wenn es Alarm, es halten auf die Wiederholung selbst bei jedem ticks der candle.what kann ich tun, um diese Alarm nur einmal klingen, wenn die drei Bedingungen erfüllt sind auf aktuelle Kerze und nicht reapt Ton. dies ist der Code unten.

if(Zeitraum()==240){

double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);

double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);

double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);

double RSIP2=iRSI(NULL,240,70,PREIS_SCHLIESSEN,0);

double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);

double nowenCCI=iCCI(NULL,240,6,PREIS_TYPISCH,0);

double b4trCCI=iCCI(NULL,240,14,PREIS_TYPISCH,1);

double nowtrCCI=iCCI(NULL,240,14,PREIS_TYPISCH,0);

// Warnungen

if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){

Alert("Buy Arrow","\n", "Aktuelle Zeit ist ",TimeToStr(CurTime()),"\n",Symbol());

}

if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){

Alert("Sell Arrow","\n", "Aktuelle Zeit ist ",TimeToStr(CurTime()),"\n",Symbol());

}

}
 

Alert Probleme

Danke mladen, ich werde es versuchen.ich nie zur Kenntnis nehmen, die Funktion LastAlert() und bitte können Sie mir sagen, wo das Verzeichnis aller dieser "Tranche rouse" mt4 Funktionen zu bekommen.

 

Mastercash

Seien Sie vorsichtig: das ist keine Funktion, sondern eine statische Variable, die verwendet wird, um die Zeit (Balkenzeit) des letzten Alarms zu speichern und auf diese Weise mehrere Alarme auf demselben Balken zu verhindern. Leider gibt es keine solche Funktion wie LastAlert() in Metatrader, so dass wir Workarounds finden müssen, um den Mangel an Funktionen zu beheben, wie im Beispiel.

Mastercash:
Danke mladen, ich werde es versuchen. ich habe die Funktion LastAlert() nie zur Kenntnis genommen und bitte lassen Sie mich wissen, wo ich das Verzeichnis all dieser "tranche rouse" mt4 Funktionen bekomme.
 

Hallo mladen.

Ich muss 24 Variablen für die 24 Tageskerzen der letzten Stunde zuordnen.

Ich brauche, um einige berechnen mit der Kerze und das Ergebnis wird in einem Puffer zugeordnet werden.

Wie kann ich Code für die Arbeit mit jedem der 24 Stunden Kerze des Vortages?

Dankeschön

 

dasio

Sie können etwas Ähnliches verwenden (dieser Modus verwendet keine Arrays). Außerdem ist dieses Beispiel für den aktuellen Tag

datetime startTime = iTime(NULL,PERIOD_D1,0);

for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)

{

//

//

// processing the hourly data ... just an example here

//

//

double close = iClose(NULL,PERIOD_H1,i); //

double open = iOpen(NULL,PERIOD_H1,i); // and so on ...

}

dasio:
Hallo mladen.

Ich muss 24 Variablen für die 24 Kerzen der letzten Stunde des Tages zuordnen.

Ich brauche, um einige berechnen mit der Kerze und das Ergebnis wird in einem Puffer zugeordnet werden.

Wie kann ich Code für die Arbeit mit jedem der 24hr Kerze des Vortages?.

vielen Dank!
 
mladen:
dasio

Sie können etwas Ähnliches verwenden (in diesem Modus werden keine Arrays verwendet). Außerdem ist dieses Beispiel für den aktuellen Tag

datetime startTime = iTime(NULL,PERIOD_D1,0);

for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)

{

//

//

// processing the hourly data ... just an example here

//

//

double close = iClose(NULL,PERIOD_H1,i); //

double open = iOpen(NULL,PERIOD_H1,i); // and so on ...

}

Vielen Dank, mladen.

In diesem Beispiel:

double close = iClose(NULL,PERIOD_H1,i); //

double open = iOpen(NULL,PERIOD_H1,i); //

Welche Kerze rappresentiert und wie kann ich auf die nächste Kerze umschalten? i+1?

Vielen Dank!

 

dasio

Es läuft bereits eine Schleife durch alle Stunden des aktuellen Tages. Ich habe iClose() und iOpen() nur als Beispiel für einen Aufruf aus einem anderen Zeitrahmen als 1 Stunde eingefügt. Wenn Sie auf einen anderen Tag als den aktuellen zugreifen möchten, ersetzen Sie die "0" in der Datumsangabe startTime=iTime(NULL,PERIOD_D1,0); durch einen beliebigen Tag, für den Sie die Daten erfassen möchten

dasio:
Vielen Dank mladen.

In diesem Beispiel:

double close = iClose(NULL,PERIOD_H1,i); //

double open = iOpen(NULL,PERIOD_H1,i); //

Welche Kerze rappresentiert und wie kann ich auf die nächste Kerze umschalten? i+1?

Dankeschön