Wie programmiert man? - Seite 44

 

Guten Tag ralph.ronnquist

Sollte ich also eine weitere SDL-Zeile erstellen, etwa wie SDLL = long SDLS = short?

Ich denke, ich habe Recht, wenn ich sage, dass auf der SDL indi

uptrend = Puffer 1 & Index 1 Farbe Blau

dntrend = Puffer 2 & Index 2 Farbe Rot

Wenn ja, wo würde ich sie einfügen. füge ich sie am Ende der iCustom Zeile ein.

double SDL=iCustom(NULL,0, "Slope Direction Line",period,method,price,1,1,shift);

oder bin ich auf dem Holzweg?

 

Die Anweisung:

double SDL=iCustom(NULL,0,"Slope Direction Line",period,method,price,1,shift);

bringt SDL dazu, den Wert des zweiten Puffers (Uptrend) am angegebenen "Shift"-Balken zu halten.

(Beachten Sie, dass Sie ein ",1" wiederholt haben, was wie ein Tippfehler aussieht. Auf jeden Fall sollte es dort nicht sein)

Wenn Sie also sowohl Uptrend als auch Dntrend ablesen wollen, benötigen Sie zwei Variablen, um die Werte zu speichern. Wie Sie sagen, ist Uptrend gleich 1 und Dntrend gleich 2.

 

Guten Tag, Ralph

Danke für die Hilfe Es funktioniert, ich kann jetzt schlafen gehen.

Tschüss

Beno

 
wolfe:
Ich hoffe, das ist, wonach Sie gesucht haben.

Es schickte mich in die richtige Richtung - danke Mann, wirklich geschätzt.

Mein neues Problem ist, dass wenn meine if-Anweisung aufgerufen wird....

Es geht von der vorherigen Indikator Bar den Wert in Bezug auf die aktuelle Bar, und sendet ein Alert(); dass ich erstellt... etwa 20 mal.

Wie könnte ich es schaffen, dass es nur einmal gesendet wird?

Ich habe versucht, einen Ein/Aus-Schalter mit Variablen zu erstellen - das funktioniert in MQL4 leider nicht.

Dann dachte ich über Timer... wenn es einen Timer, den ich erstellen könnte, die nur einmal über einen Zeitraum von 20 Sekunden alarmiert, die auch funktionieren würde....

Aber ich bin ratlos, was eine Idee angeht, die in MQL4 tatsächlich möglich wäre.

Irgendwelche Ideen?

 

Mit anderen Worten... Ich brauche einen Weg, um zu verhindern, dass es nach dem ersten Mal Alarm schlägt, denn im Moment schlägt es mehrmals Alarm (ärgerlich und unnötig, wie Sie sich denken können)

 
dharsant:
Mit anderen Worten... Ich brauche eine Möglichkeit, um zu verhindern, dass nach dem ersten Mal ein Alarm ausgelöst wird, denn im Moment wird der Alarm mehrmals ausgelöst (lästig und unnötig, wie Sie sich denken können)

Könnten Sie etwas Code zur Verfügung stellen, den wir uns ansehen können?

Vielleicht könnten Sie einen booleschen Wert true/false einrichten, der ausgelöst wird, nachdem der Alarm das erste Mal gesendet wurde.

 

Ich bin mir nicht sicher, welcher Code sinnvoll ist. Hier ist meine if-Anweisung für den Alarm.

"Code":

latestlatestmain = 2 Balken zurück in meinem Indikator.

latestmain = vorheriger Balken in meinem Indikator

if(MainCCI > ErgoCCI){

{Signal = "SHORT";

if ((latestlatestmain >= 0) && (latestmain < 0)) {

PlaySound("alert2.wav");

}

}

if(lastsignal != signal && alertTag!=Time[0]){

alertTag = Time[0];

lastsignal=signal;

}

}

if (MainCCI < ErgoCCI){

{signal = "LONG";

if ((spätestesHauptsignal 0)) {

PlaySound("alert2.wav");

}

Dies ist der FX Sniper-Indikator, und wenn er meinen Parametern entspricht, sendet er das Alarmsignal.

Wie würde ich vorgehen, um eine boolesche true/false-Sache einzurichten?

Ich habe Folgendes versucht: .....

"Code mit Ein/Aus-Schalter":

if(MainCCI > ErgoCCI){

{Signal = "SHORT";

if ((latestlatestmain >= 0) && (latestmain < 0)) {

wenn (onealert == 1) {

PlaySound("alert2.wav");

einalarm = 0;

} }

}

if(lastsignal != signal && alertTag!=Time[0]){

alertTag = Time[0];

lastsignal=signal;

}

}

if (MainCCI < ErgoCCI){

{signal = "LONG";

wenn ((spätesterHaupttermin 0)) {

wenn (einAlarm == 0) {

PlaySound("alert2.wav");

einalarm = 1;

} }

oder eine andere Variante davon, um das Ein/Aus mit Variablen zu erzeugen.

Es gibt etwas anderes, was ich mit boolean tun könnte, oder? Haben Sie eine Idee, wie ich das anstellen kann?

Im Moment funktioniert es gut, so weit wie alarmieren mich geht, es nur alarmiert mich etwa 5-6 mal.

Vielen Dank für Ihre Zeit und Hilfe, mein Freund.

-dharsant

 

Ich dachte nur, ich hätte es herausgefunden, und dass Sleep(); funktionieren würde.... verflixt

 

Ich habe dies von Codersguru gefunden;

void AlertOnce(string alert_msg, int ref)

{

if (ref > 10)

return;

ref--;

static int LastAlert[10];

if( LastAlert[ref] == 0 || LastAlert[ref] < Bars)

{

Alert(alert_msg);

LastAlert[ref] = Bars;

}

}

Sieht aus wie das, was ich bin nach!!

Bei der Verwendung dieser mit meinem Indikator...

Würde ich einfach die Funktion in meinem Skript platzieren und dann verwenden

AlertOnce("Sniper geht LONG",10);

anstelle meines Alert(); ?

Ich fühle mich wie ein pingeliger, unerfahrener Programmierer

 

Verstanden, danke für die Hilfe!!!