[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 198

 
SK. писал(а) >>

Schauen Sie hier nach.

Vielen Dank SK, Vinin!

Ein großartiges Beispiel für Workaraund.

Es muss die Mühe wert gewesen sein, so anspruchsvoll zu werden. :-)

Es sieht so aus, als ob MQL4 weiß, wie man die Zeit des Programmierers "gut" nutzen kann. :-)

 
SK. >> :

Siehe hier.

Vielen Dank, ein sehr nützlicher Artikel.

 
stera писал(а) >>

Vielen Dank an SK, Vinin!

granit77 schrieb >>

Vielen Dank, ein sehr nützlicher Artikel.

Wenn Sie sich für dieses Thema interessieren, schauen Sie sich diesen Artikel an: http://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi

Es werden viele Details für horizontale Linien erörtert und die technische Lösung (Abwechslung) gezeigt.

Die vertikalen Linien sind ebenfalls abgebildet. Aber einige der Regeln habe ich immer noch nicht verstanden. Es genügt zum Beispiel, die Parität der einzelnen Puffer zu ändern, da das Bild wackelt (Block 4-5, die Anzahl der Puffer von 6 und 7 auf 5 und 6 ändern und den 5. zu 7m machen).

 
Frage eines Anfängers. Ist es möglich, einen EA in mql4 zu schreiben, der den automatischen Handel mit Eröffnung und Schließung zu einer bestimmten Stunde regelmäßig impliziert? Ich möchte es testen. Meistens wird rulang verwendet, aber diese Ideen sind dort offenbar nicht umsetzbar.
 

Wie ist die Reihenfolge der Indikatoren und Experten?

Ich habe 2 Indikatoren in einem Diagramm.

Und insgesamt ist ihre Ausführungszeit manchmal viel länger als die Zeit zwischen den Ticks.

Welcher Indikator wird zuerst ausgeführt?

Wenn sie nicht parallel ausgeführt werden, ist es vielleicht sinnvoll, sie in verschiedenen Charts zu platzieren, natürlich nur, wenn es keine Reihenfolge der Ausführung in verschiedenen Charts gibt.

Welcher Indikator oder Expert Advisor wird zuerst ausgeführt, wenn sie sich auf demselben Chart befinden, und wenn sie sich auf verschiedenen Charts befinden?

 

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

Es funktioniert nicht.


Bitte, sagen Sie mir, was ich tun soll. Ich weiß nicht, was ich tun soll.

 
Feonix >> :

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

Es funktioniert nicht.

Bitte, sagen Sie mir, was ich tun soll. Ich kann es nicht herausfinden.

>> Was ist zu tun? >> Alle Codes anzeigen!

 
OneDepo >> :

Was ist zu tun? Zeigen Sie den gesamten Code!

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

//| Momentum.mq4 |

//| Copyright © 2004, MetaQuotes Software Corp.

//| http://www.metaquotes.net/ |

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

#property copyright "Copyright © 2004, MetaQuotes Software Corp.

#property link "http://www.metaquotes.net/"


#property indicator_separate_window

#Eigenschaft indicator_buffers 1

#property indicator_color1 DodgerBlue

//---- Eingabeparameter

extern int MomPeriod=14;

int ret;

double x[];

//---- Puffer

double MomBuffer[];

double ocfor[];

double octen[];

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

//| Benutzerdefinierte Initialisierungsfunktion für Indikatoren |

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

int init()

{

string kurz_name;

//---- Indikatorzeile

SetIndexStyle(0,DRAW_LINE);

SetIndexPuffer(0,MomPuffer);

//---- Name für das Datenfenster und die Bezeichnung des Unterfensters des Indikators

short_name="Mom("+MomPeriod+")";

IndicatorShortName(short_name);

SetIndexLabel(0,short_name);

//----

SetIndexDrawBegin(0,MomPeriod);

//----

zurück(0);

}

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

//| Momentum |

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

int start()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=MomPeriod) return(0);

//----

i=Bars;

while(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

i--;


}

zurück(0);

}

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



Wenn Sie Double x[]; durch Double x; ersetzen, funktioniert alles, aber der Punkt ist, mombuffer[i]= x[i] zuzuweisen

 
Feonix писал(а) >>

//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"


#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue

//---- input parameters

extern int MomPeriod=14;

int ret;
double x[];

//---- buffers
double MomBuffer[];
double ocfor[];
double octen[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+

int init()
{
string short_name;
//---- indicator line
IndicatorBuffers( 2);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, MomBuffer);
SetIndexBuffer(1, x);

//---- name for DataWindow and indicator subwindow label
short_name="Mom("+ MomPeriod+")";
IndicatorShortName( short_name);
SetIndexLabel(0, short_name);

//----
SetIndexDrawBegin(0, MomPeriod);

//----
return(0);

}

//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+

int start()
{
int i, counted_bars=IndicatorCounted();

//----
if(Bars<= MomPeriod) return(0);
//----
i=Bars;

while( i>=0)
{
x[ i]=(Open[ i]-Close[ i]);
MomBuffer[ i]= x[ i];
i--;
}

return(0);
}

//+------------------------------------------------------------------+
Sie können dies tun
 
Feonix >> :

.

.

int start()

{

int i,counted_bars=IndicatorCounted();

//----

if(Bars<=MomPeriod) return(0);

//----

i=Bars;


ArrayResize(x, i+1);


while(i>=0)

{

x[i]=(Open[i]-Close[i]);

MomBuffer[i]=x[i];

i--;

}

zurück(0);

}



Wenn Sie Double x[]; durch Double x; ersetzen, funktioniert alles, aber der Punkt ist, mombuffer[i]= x[i] zuzuweisen.

Sie haben ein Array deklariert, aber keinen Speicher für dieses Array zugewiesen.

Vinin gab eine Möglichkeit der Speicherzuweisung an, Sie können die zweite verwenden, durch die Funktion ArrayResize()