Wie programmiert man? - Seite 98

 

Wie kann man einen Indikator auf einen anderen Indikator anwenden?

Wenn Sie den grundlegenden gleitenden Durchschnitt (als Indikator in MT4 enthalten) auf einen anderen Indikator legen, ist es möglich, den MA des Indikators zu berechnen, aber wie ändern Sie einen benutzerdefinierten Indikator so, dass es möglich ist, ihn auf einen anderen Indikator zu legen?

 

bei geöffneter Bar

Hallo,

Ich möchte ein Stück Code nur ausführen, wenn ein neuer Balken erstellt wird (auf bar offen).

Hat jemand ein Code-Snippet für so etwas?

Vielen Dank

 

warum mein Indikator nicht gut funktioniert????

#property copyright "沈欣"

#property link "shenxinon@126.com"

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Stahlblau

//#eigenschaft indicator_minimum -0.01

//#eigenschaft indicator_maximum 0.01

//---- Eingabeparameter

extern int SMA1=12;

extern int SMA2=72;

//---- Puffer

double ExtMapBuffer1[];

//---- 自定义区

//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init()

{

//---- Indikatoren

SetIndexStyle(0,DRAW_LINE);

SetIndexPuffer(0,ExtMapPuffer1);

string sName="RAVI-Indikator";

IndicatorShortName("RAVI Indikator("+SMA1+", "+SMA2+")");

//----

return(0);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Deinitialisierungsfunktion |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Benutzerdefinierte Indikator-Iterationsfunktion |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

//----

if(gezählte_Balken<0) return(-1);// wenn ein Fehler auftritt, beenden und -1 zurückgeben

if(gezählte_Balken>0) gezählte_Balken--;

int pos = Balken-gezählte_Balken;

double sma1,sma2,r;

while(pos>=0)

{

sma1=iMA(NULL,0,SMA1,0,MODE_SMA,PRICE_CLOSE,pos);

sma2=iMA(NULL,0,SMA2,0,MODE_SMA,PREIS_SCHLIESSEN,pos);

r=((sma1-sma2)/sma2)*10000;

//Alert("r=",r);

ExtMapBuffer1[pos]=r;

pos--;

}

return(0);

 

...

Ich habe es

 
diffused:
Hallo!

Ich möchte ein Stück Code nur ausführen, wenn ein neuer Balken erstellt wird (auf Bar offen).

Hat jemand ein Code-Snippet für so etwas?

Prost

if (Volumen[0] == 1)

{DO...}

Großes Be

 

Trend Umschlag EA

Hola

Ich unterrichte MQL.

Ich lese Usage of Technical Indicators - Simple Programs in MQL4 - MQL4 Tutorial, aber ich finde nicht etwas wie

Ist es möglich, eine einzelne Bar zu färben?Exemple während der Prüfung Ihrer EA u können die Eingabe bar Farbe...

Auf dem Metatrader sehe ich kein Watch System, wie z.B. das Feld meines variablen Arrays zu sehen, das es in allen C Compilatoren gibt.

Ich möchte, um dieses dumme System zu tun:

Wenn der Preis brach und schließen Sie den Trend evelope (siehe das Bild, die gelbe cirlce) Ich öffne einen Alarm und Farbe ein Breakbar.

Aber mein Problem ist, dass dies, dass ich nur den Trend nach oben Indikator und nicht während der kurzen Periode warum lesen?

double maxprec= iHigh(NULL, PERIOD_M5,1);

double minprec=iLow(NULL, PERIOD_M5,1);

double chiusura2 = iClose(NULL,PERIOD_M15 ,2);

double chiusura = iClose(NULL,PERIOD_M15 ,1);

double chiu2 = iClose(NULL,PERIOD_M5 ,2);

double chiu = iClose(NULL,PERIOD_M5 ,1);

double apertura = iOpen(NULL,PERIOD_M15 ,0)

string rottura [3] = {" Nulla"," ROTTO"};

envelope15_1=iCustom(NULL, PERIOD_M15, "TrendEnvelopes_v1", 5,0,1);// trend envelope

if( chiusura2 > envelope15_2 && chiusura < envelope15_2 && apertura <= envelope15_2)

{

rot=1;

Alert ( " ha rotto SH M15");

}

else

rot=0;

Comment( ""\nBreak Enveolpe M 5= ", rottura[rot2],

"\nBrerak Enveolpe M 15= ", rottura[rot]

); // Alert
Dateien:
eur_1.jpg  101 kb
 

Ist dies die korrekte Formel

Ist dies die korrekte Formel zur Berechnung des Wertes eines Pips für das Währungspaar Euro/Chf:

(1/(eur/chf))*10*(eur/us)

Ein Pip ist 0,0001.

Ist die obige Formel richtig?

 
lizmerrill:
Ist dies die korrekte Formel für die Berechnung des Wertes eines Pips für den Euro/Chf-Kurs:

(1/(eur/chf))*10*(eur/us)

Ein Pip ist 0,0001.

Korrekte Formel oben?

Verwenden Sie diesen Code:

pipvalue=MarketInfo("EURCHF",MODE_TICKVALUE);

Ich hoffe, das hilft Ihnen

 

Ich brauche den Code, um das Öffnen von Positionen nach einer bestimmten Zeit zu stoppen

Ich habe bereits gesehen, alle Beiträge in diesem Abschnitt und ich habe eine Forschung auf alle das Forum mit dem Google-Suchwerkzeug am oberen Rand des Forums, aber was ich gefunden habe, ist nicht genau das, was ich suche.

Was ich brauche, ist ein Code, den ich in meinem EA zu implementieren, die aufhört, neue Position nach einer bestimmten Stunde zu öffnen, zum Beispiel nach 15 GMT. Dieser Parameter sollte eine Einstellung sein, die ich über das Benutzerpanel ändern kann.

Es wäre toll, wenn ich eine Zeitspanne festlegen könnte, in der der EA die Positionen öffnen kann, also

Öffnen von X Stunden bis Y Stunden

Vielen Dank für Ihre Hilfe.

Mit freundlichen Grüßen

 
mauro269:
Ich habe bereits alle Beiträge in diesem Abschnitt gesehen und das gesamte Forum mit der Google-Suchfunktion oben im Forum durchsucht, aber was ich gefunden habe, ist nicht genau das, wonach ich suche.

Was ich brauche, ist ein Code, den ich in meinem EA zu implementieren, die neue Position nach einer bestimmten Stunde zu öffnen, zum Beispiel nach 15 GMT stoppt. Dieser Parameter sollte eine Einstellung sein, die ich aus dem Benutzer-Panel ändern kann.

Es wäre toll, wenn ich eine Zeitspanne festlegen könnte, in der der EA die Positionen öffnen kann, also

Öffnen von X Stunden bis Y Stunden

Vielen Dank für Ihre Hilfe.

Mit freundlichen Grüßen

Hier ist, wie ich es mache:

extern bool Use.Time.Filter = false;

extern string Server.Time.To.Start = "08:00";

extern string Server.Time.To.Stop = "16:00";
start_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Start);

end_time = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Server.Time.To.Stop);

if(Use.Time.Filter && (TimeCurrent() = end_time)) return(0);

Ich hoffe, das hilft.

FerruFx