Wie programmiert man? - Seite 81

 

Hilfe wird benötigt

Hallo an alle Coder,

Bitte sagen Sie mir den Code, wie ich den Preis nach Kerzen überprüfen kann. Ich meine, wie kann ich überprüfen, ob die aktuelle Kerze die MA-Linie berührt oder nicht? und wie kann ich codieren, dass die aktuelle Kerze offen, hoch, niedrig und schließen unter der MA-Linie hat. Ihre Hilfe wird sehr geschätzt werden.

Mit freundlichen Grüßen.......!

 
arsenic786:
Hallo an alle Programmierer,

Bitte sagen Sie mir den Code, wie kann ich den Preis nach Kerzen zu überprüfen. Ich meine, wie kann ich überprüfen, dass die aktuelle Kerze die MA-Linie berührt oder nicht? und wie kann ich Code, dass die aktuelle Kerze hat offen, hoch, niedrig und schließen unter der MA-Linie. Ihre Hilfe wird sehr geschätzt werden.

Mit freundlichen Grüßen.......!

Um zu prüfen, ob die Kerze die MA-Linie berührt, müssen Sie den vorherigen Schlusskurs, den aktuellen Schlusskurs und den Wert des gleitenden Durchschnitts vergleichen (also iMa, Close[1] und Close[0]).

Aber um zu prüfen, ob die Kerze unter oder über dem gleitenden Durchschnitt liegt, müssen Sie den LOW- und HIGH-Preis und den iMa-Wert vergleichen.

 

Tick-Zeit-Indikator

Ich möchte einen Indikator erstellen, bei dem ein Element die Zeit zwischen den Ticks ist. Kann mir jemand sagen, ob es möglich ist, diese Funktion einzubauen?

Vielen Dank

 

Scannen durch Paare/Zeitrahmen

Hallo,

Ich möchte durch einige der Paare zu scannen, und einige der Zeitrahmen der Paare, um die aktuelle Umgebung zu erkennen (Trend, Range Bound usw.) mit Indikatoren wie ADX. Dies soll mir helfen, das beste Paar/den besten Zeitrahmen für den Handel auf der Grundlage meiner Kriterien auszuwählen.

Der lausige Ausweg wäre, einen EA, der das Umfeld erkennt, an ALLE Charts anzuhängen, die Ergebnisse in eine Datei zu schreiben und dann meinen eigenen Vergleich mit dieser Datei durchzuführen. Dies ist jedoch zu mühsam und manuell!

Ist es möglich, meinen EA nur an einen Chart anzuhängen und diesen EA die Daten von allen Paaren und Zeitrahmen mit Hilfe von Zeitreihenfunktionen wie iClose, iOpen usw. abrufen zu lassen und den Preis dann an meine Indikatoren weiterzuleiten?

Sieht jemand ein Problem mit der zweiten Methode? Wird zu viel CPU-Verarbeitung benötigt? Ist die Zeit für die Prüfung zu lang usw.? Ich benötige keinen feineren Zeitrahmen als 5 Minuten.

Ich bin neu in EA und weiß daher nicht, die Leistung der es. Jede Hilfe wird sehr geschätzt werden. Prost!!

 

Programmatisch einen EA an ein Diagramm anhängen

Hallo,

ist es möglich, einen EA programmgesteuert an ein Diagramm anzuhängen? Sagen wir, ich lasse gerade EA1 laufen und möchte, dass er EA2 an ein anderes Diagramm anhängt, wenn bestimmte Kriterien erfüllt sind. Ist das möglich?

 
meokoken:
Hallo!

Ich möchte einige der Paare und einige der Zeitrahmen der Paare durchsuchen, um das aktuelle Umfeld (Trend, Spanne usw.) mithilfe von Indikatoren wie ADX zu erkennen. Dies soll mir helfen, das beste Paar/den besten Zeitrahmen für den Handel auf der Grundlage meiner Kriterien auszuwählen.

Der lausige Ausweg wäre, einen EA, der das Umfeld erkennt, an ALLE Charts anzuhängen, die Ergebnisse in eine Datei zu schreiben und dann meinen eigenen Vergleich mit dieser Datei durchzuführen. Dies ist jedoch zu mühsam und manuell!

Ist es möglich, meinen EA nur an einen Chart anzuhängen und diesen EA die Daten von allen Paaren und Zeitrahmen mit Hilfe von Zeitreihenfunktionen wie iClose, iOpen usw. abrufen zu lassen und den Preis dann an meine Indikatoren weiterzuleiten?

Sieht jemand ein Problem mit der zweiten Methode? Wird zu viel CPU-Verarbeitung benötigt? Die Zeit, die für die Prüfung benötigt wird, ist zu lang usw.? Ich benötige keinen feineren Zeitrahmen als 5 Minuten.

Ich bin neu bei EA und kenne daher nicht die Leistung von EA. Jede Hilfe wird sehr geschätzt werden. Prost!!

Sie können dafür die Symbolfunktion verwenden. Wenn Sie z.B. den Wert des gleitenden Durchschnitts und des Schlusskurses auf 10 Charts überprüfen möchten, z.B. 10 Kreuze aus verschiedenen Zeitrahmen, aber mit dem aktuellen Balken, dann sieht es wie folgt aus:

double eurudMa = iMa("EURUSD", blablabla,PERIOD_X,0);

double eurusdClose = iClose("EURUSD",PERIOD_X);

und vergleichen Sie diese Werte, wenn Sie möchten.

Dasselbe gilt für andere Indikatoren. Wenn Sie den Geld- und Briefkurs eines bestimmten Crosses erhalten möchten, verwenden Sie die Funktion MarketInfo auf die gleiche Weise.

Mit freundlichen Grüßen

Kale

 

OsMA mit Signalleitung

Coders, ich brauche eure Hilfe. Kann jemand eine Signallinie zu dem beigefügten OsMA-Indikator hinzufügen? Ich danke Ihnen sehr!

Dateien:
osma.mq4  3 kb
 

Wie kann ich eine digitale Version davon erstellen?

Hallo Leute,

ich bin hier ein Anfänger.

Wolfe war so freundlich, eine Vorlage für einen Code unten zu erstellen, die ich modifiziert habe. Es läuft einwandfrei und tut, was ich will, dass es tut.

Aber jetzt,

Ich denke darüber nach, eine digitale Version davon zu erstellen, ähnlich dem DIGISTOCH-Indikator.

Was ich wissen möchte, ist:

- Wie kann man Puffer "löschen" oder "flushen"? Es scheint mir nicht möglich zu sein, die Verknüpfung von Puffern zu "löschen" und neue zu erstellen.

- Wie kann man dies ändern, um Puffer NICHT einzuschließen? Ich denke, das spart etwas Speicherplatz, oder? Ich habe versucht, die SetIndexBuffer zu löschen, aber dann, wenn in MT4 geladen, gibt es"Null-Division" Fehler auf der Expert-Terminal-Fenster.

- Beide Etiketten unten zeigen nur 1 Wert, der H1-Wert. Es soll die Zahl von H1 und H4 Zahl anzeigen. Also funktioniert es hier nicht.

- Ich möchte, dass die Ratio-Nummer von verschiedenen Zeitrahmen (von M1 bis MN1) in einem Bildschirm angezeigt wird, genau wie der DIGIStoch-Indikator.

Für jede Hilfe wäre ich dankbar.

Mit freundlichen Grüßen,

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

//| 2MA_RSI.mq4 |

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

#property copyright "Wolfe"

#property link "xxxxwolfe@gmail.com"

#property indicator_separate_window

#property indicator_level1 100

#property indicator_level2 80

#property indicator_level3 50

#property indicator_level4 20

#property indicator_buffers 4

#property indicator_color1 Black //RSI

#property indicator_color2 Blue //MA1

#property indicator_color3 Red //MA2

#property indicator_color4 Green //Ratio

int RSI_Timeframe=0;//0=current chart,1=m1,5=m5,15=m15,30=m30,60=h1,240=h4,etc...

int RSI_Period = 10;

int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

int MA1_Period = 10;

int MA1_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

int MA2_Period = 30;

int MA2_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double RSI[],MA1_Array[],MA2_Array[],MR_Ratio[];

double _RSI[],_MA1_Array[],_MA2_Array[],_MR_Ratio[];

string ShortName="MoR";

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators setting

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //RSI

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1); //EMA10

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1); //EMA30

SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2); //Ratio

SetIndexBuffer(0,RSI);

SetIndexLabel(0,"RSI");

SetIndexBuffer(1,MA1_Array);

SetIndexLabel(1,"MA1");

SetIndexBuffer(2,MA2_Array);

SetIndexLabel(2,"MA2");

SetIndexBuffer(3,MR_Ratio);

SetIndexLabel(3,"Ratio");

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName(ShortName);

return(0);

}

int start()

{

int i,limit = Bars - IndicatorCounted() - 1;

for(i=limit; i>=0; i--){

RSI= iRSI(NULL,60,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

MA1_Array = iMAOnArray(RSI,0,MA1_Period,0,MA1_Method,i);

MA2_Array = iMAOnArray(RSI,0,MA2_Period,0,MA2_Method,i);

}

for (i=0; i<=limit; i++){

MR_Ratio = MA1_Array / MA2_Array * 100;

}

double tmp1=MR_Ratio[0];

SetText("Label1",DoubleToStr(tmp1,1),Black,55,20);

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

//| Trying to set new buffers |

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

IndicatorBuffers(4);

SetIndexBuffer(0,_RSI);

SetIndexBuffer(1,_MA1_Array);

SetIndexBuffer(2,_MA2_Array);

SetIndexBuffer(3,_MR_Ratio);

for(i=limit; i>=0; i--){

_RSI= iRSI(NULL,240,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--){

_MA1_Array = iMAOnArray(_RSI,0,MA1_Period,0,MA1_Method,i);

_MA2_Array = iMAOnArray(_RSI,0,MA2_Period,0,MA2_Method,i);

}

for (i=0; i<=limit; i++){

_MR_Ratio = _MA1_Array / _MA2_Array * 100;

}

double tmp2=_MR_Ratio[0];

SetText("Label2",DoubleToStr(tmp2,1),Black,95,20);

//----

return(0);

}

void SetText(string ObjName,string ObjText,color clr,int xpos,int ypos){

ObjectCreate(ObjName,OBJ_LABEL,WindowFind(ShortName),0,0);

ObjectSetText(ObjName,ObjText,9,"Arial Bold",clr);

ObjectSet(ObjName,OBJPROP_CORNER,0);

ObjectSet(ObjName,OBJPROP_XDISTANCE,xpos);

ObjectSet(ObjName,OBJPROP_YDISTANCE,ypos);

}

 
SolomonZhang:
Hallo Leute,

Ich bin hier ein Anfänger.

Wolfe war so freundlich, eine Vorlage für den folgenden Code zu erstellen, den ich modifiziert habe. Er läuft einwandfrei und tut, was ich will.

Aber jetzt,

Ich denke darüber nach, eine digitale Version davon zu erstellen, ähnlich dem DIGISTOCH-Indikator.

Was ich wissen möchte, ist:

- Wie kann man Puffer "löschen" oder "flushen"? Es scheint mir nicht möglich zu sein, die Verknüpfung von Puffern zu "löschen" und neue zu erstellen.

- Wie kann man dies ändern, um Puffer NICHT einzuschließen? Ich denke, das spart etwas Speicherplatz, oder? Ich habe versucht, die SetIndexBuffer zu löschen, aber dann, wenn in MT4 geladen, gibt es "Null-Division" Fehler auf der Expert-Terminal-Fenster.

- Beide Etiketten unten zeigen nur 1 Wert, der H1-Wert. Es soll die Zahl von H1 und H4 Zahl anzeigen. Also funktioniert es hier nicht.

- Ich möchte, dass die Ratio-Nummer von verschiedenen Zeitrahmen (von M1 bis MN1) in einem Bildschirm angezeigt wird, genau wie der DIGIStoch-Indikator.

Für jede Hilfe wäre ich dankbar.

Grüße,

Definieren Sie einfach einen leeren Wert für Puffer nach dem Init für jede Schleife.

Über die Nullteilung erstellen Sie einfach eine "if"-Bedingung vor der Berechnung.

 

Code für mehrere Zeitsignale

Hallo Programmierer

Ich bin ein Neuling lernen, wie man programmieren und haben eine grundlegende EA erstellt und schätzen, wenn jemand freundlich genug, um mir mit folgenden helfen:

Die Idee ist, im Grunde für höhere TF-Signal suchen und warten auf Retracement in niedrigeren TF und dann ausführen, um wie :

wenn 4 HR ein Signal auf folgendes erzeugt:

if(MacdCurrentSignalCurrent)MacdPrevious<SignalPrevious)=LongSignalActivated

Wie kann man das Signal oben halten und auf ein Retracement von 1 HR (oder einem anderen Zeitrahmen) warten?

if (MacdCurrentSignalCurrent && MacdPrevious<SignalPrevious) Order=SignalBuy

ODER

Jede andere Strategie..

Ich habe bereits alle Indikatoren in Variablen für verschiedene Zeitrahmen definiert...

Ich kann EA senden, wenn jemand bereit ist, Hand zu leihen ... auch wenn jeder erfahrene Programmierer bereit ist, mit mir meine Strategie zu arbeiten, bin ich bereit, zu kompensieren (leider nicht leisten können, viel zu zahlen).

Schätzen Sie jede Hilfe

Mo Syed

E-Mail: moi.syed@gmail.com