[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 350
Niemand kann helfen, dass es nur eine Option gibt, nämlich aus der Verlaufsdatei zu lesen? Wenn das die einzige Möglichkeit ist, hat jemand eine fertige Methode, um die erforderlichen Informationen in der Verlaufsdatei zu ermitteln?
Sie drücken nicht die Leertaste, sondern halten die Einschalttaste 5-10 Sekunden lang gedrückt, bis das Signal verschwindet.
In KVN bist du unter den Moderatoren der Teamkapitän ... Ich wiederhole die Frage, vielleicht kann sie jemand beantworten: Der Alarm schaltet sich nicht aus, wenn man die Leertaste drückt ... Die Terminalversion ist die neueste 500... Das habe ich noch nie gesehen.
Leute, bitte gebt mir einen Tipp. Ich habe diese Frage bereits gestellt, aber ich habe es nicht geschafft, den Code richtig hinzubekommen.
Ich werde Ihnen noch einmal das Wesentliche der Idee erläutern. Mit dem Awesom-Indikator wird von unten (unter 0) nach oben (über 0) das Volumen der Welle (Indikator Volumes) berechnet.
Die Textbeschriftung mit der Summe des Volumens der Welle, sollte auf dem Indikator-Chart gedruckt und über die gesamte Historie berechnet werden.
Ich habe das hier:
Worin besteht der Fehler?
#property indicator_separate_window#property indicator_buffers 2#property indicator_color1 Red#property indicator_color2 SteelBlue#property indicator_width1 2//---- basic fan indicator parametersexternbool Show_AOLine_2=true;
externint SlowEMA3=34;
externint EMA=3;
externbool Show_Volume=true;
externdouble coaf=0.5;
//---- indicator buffersdouble AOBuffer3[];
double ExtMapBuffer1[];
double VLUP, AO_up,AO_dn;
double prhgh_e=0, prhgh_s, prlw_e=0, prlw_s;
datetime tmhgh, tmlw;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init()
{
//---- drawing settingsstring name_ind = "Awesome_super_volumes";
IndicatorShortName("Awesome_super_volumes");
//---- AO_fan line 2 (basic)if(Show_AOLine_2 ==true){Show_AOLine_2=DRAW_LINE; }
else
{Show_AOLine_2=DRAW_NONE; }
SetIndexBuffer(0,AOBuffer3);
SetIndexStyle(0,Show_AOLine_2);
SetIndexLabel(0,"basic line");
SetIndexBuffer(1,ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexLabel(1,"Volume");
//---- initialization donereturn(0);
}
//+------------------------------------------------------------------+//| Awesome Oscillator |//+------------------------------------------------------------------+int start()
{
int limit;
int counted_bars=IndicatorCounted();
double prev,current;
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; i<limit; i++)
{
//---- AO_fan + Volumes
AOBuffer3[i]=iMA(NULL,0,EMA,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,SlowEMA3,0,MODE_SMA,PRICE_MEDIAN,i);
if (Show_Volume==true)
{
double nSum = Volume[i]*Point*coaf;
if (AOBuffer3[i]<=0)ExtMapBuffer1[i] = nSum;
if (AOBuffer3[i]>0)ExtMapBuffer1[i] = -nSum;
double Vol_Arr[];
if (AOBuffer3[i]<=0)Vol_Arr[i]=Volume[i]*Point*coaf;
if (AOBuffer3[i]>0)Vol_Arr[i] = -Volume[i]*Point*coaf;
}
}
//-- Поиск High & Time & Min_AO if (AOBuffer3[i]>0)
{
AO_up = AOBuffer3[i]*0.1+AOBuffer3[i];
prhgh_s = High[i];
if (prhgh_s >= prhgh_e) {prhgh_e = prhgh_s; tmhgh = Time[i];}
//SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmhgh, AO_up, Black);
}
//-- Поиск Low & Time & Max_AOif (AOBuffer3[i]<0)
{
AO_dn = AOBuffer3[i]*0.1+AOBuffer3[i];
prlw_s = Low[i];
if (prlw_s > prlw_e) {prlw_e = prlw_s; tmlw = Time[i];}
//SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmlw, AO_dn, Black);
}
// -- Пересчет баров от High до Lowif(NewBar())
{
int colbr = iBarShift(NULL,0,tmhgh)-iBarShift(NULL,0,tmlw);
int shift=iBarShift(NULL,0,tmhgh);
for (i=0; i<=colbr; i++)
{VLUP += MathAbs(iVolume(NULL,0, shift+i));}
}
Comment("Vol_",VLUP,prlw_e,prhgh_e);
for(i=0; i<limit; i++)
{
SetText("Awesome_super_volumes"+Close[i], DoubleToStr(VLUP,0), tmlw, AO_dn, Black);
}
//---- donereturn(0);
}
//+------------------------------------------------------------------+void SetText(string name, string Vl, datetime t1, double p1, color c)
{
// if (ObjectFind(name)!=-1) ObjectDelete(name);ObjectCreate(name,OBJ_TEXT,WindowFind("Awesome_super_volumes"),0,0,0,0);
ObjectSetText(name, Vl, 10, "Times New Roman", c);
ObjectSet(name, OBJPROP_TIME1 , t1);
ObjectSet(name, OBJPROP_PRICE1, p1);
ObjectSet(name, OBJPROP_COLOR, c);
}
bool NewBar()
{
staticdatetime lastbar = 0;
datetime curbar = Time[0];
if(lastbar!=curbar)
{
lastbar=curbar;
return (true);
}
else
{
return(false);
}}
1. Die Konvertierungsfunktion konvertiert und die Variablenänderungen in dieser Funktion ändern sich nicht, wenn kein Häkchen vorhanden ist. TimeToStr(TimeLocal(), TIME_MINUTES) - hängt vom Tick ab.
Haben Sie eine Idee, wie man die Zeit aus Win32/User32 herausziehen kann, damit der EA nicht stecken bleibt?
1. Keine dieser Funktionen ist tickabhängig. Sie müssen die Funktion nur aufrufen, um den Rückgabewert zu erhalten. Der Indikator und der Expert Advisor rufen ihn beim Eintreffen eines Ticks auf, aber das ist nicht weiter schlimm. Sie können einen Expert Advisor oder ein Skript schleifen. Der Anruf wird mit der von Ihnen eingestellten Frequenz getätigt.
2. Das hat keinen Sinn. Sie müssen das gleiche TimeLocal() erfinden .
Ich konnte im Lehrbuch nichts darüber finden, was "&" in den formalen Funktionsparametern bedeutet. Können Sie mir sagen, welche Auswirkungen sie hat und was sie bedeutet?
mit der gleichen Schleife?
Ich werde es versuchen.
Bitte helfen Sie mir, das Problem mit der Verschiebungsgrenze in iHigh(Symbol(),timeframe,shift)zu lösen , die auf die Zahl 1000 begrenzt ist.
iTime(Symbol(),timeframe,1001) ergibt 1970.01.01 00:00Niemand kann helfen, dass es nur eine Option gibt, nämlich aus der Verlaufsdatei zu lesen? Wenn das die einzige Möglichkeit ist, hat jemand eine fertige Methode, um die erforderlichen Informationen in der Verlaufsdatei zu ermitteln?
Sie drücken nicht die Leertaste, sondern halten die Einschalttaste 5-10 Sekunden lang gedrückt, bis das Signal verschwindet.
In KVN bist du unter den Moderatoren der Teamkapitän ... Ich wiederhole die Frage, vielleicht kann sie jemand beantworten: Der Alarm schaltet sich nicht aus, wenn man die Leertaste drückt ... Die Terminalversion ist die neueste 500... Das habe ich noch nie gesehen.
Leute, bitte gebt mir einen Tipp. Ich habe diese Frage bereits gestellt, aber ich habe es nicht geschafft, den Code richtig hinzubekommen.
Ich werde Ihnen noch einmal das Wesentliche der Idee erläutern. Mit dem Awesom-Indikator wird von unten (unter 0) nach oben (über 0) das Volumen der Welle (Indikator Volumes) berechnet.
Die Textbeschriftung mit der Summe des Volumens der Welle, sollte auf dem Indikator-Chart gedruckt und über die gesamte Historie berechnet werden.
Ich habe das hier:
Worin besteht der Fehler?
1. Die Konvertierungsfunktion konvertiert und die Variablenänderungen in dieser Funktion ändern sich nicht, wenn kein Häkchen vorhanden ist. TimeToStr(TimeLocal(), TIME_MINUTES) - hängt vom Tick ab.
Haben Sie eine Idee, wie man die Zeit aus Win32/User32 herausziehen kann, damit der EA nicht stecken bleibt?
1. Keine dieser Funktionen ist tickabhängig. Sie müssen die Funktion nur aufrufen, um den Rückgabewert zu erhalten. Der Indikator und der Expert Advisor rufen ihn beim Eintreffen eines Ticks auf, aber das ist nicht weiter schlimm. Sie können einen Expert Advisor oder ein Skript schleifen. Der Anruf wird mit der von Ihnen eingestellten Frequenz getätigt.
2. Das hat keinen Sinn. Sie müssen das gleiche TimeLocal() erfinden .
Ich konnte im Lehrbuch nichts darüber finden, was "&" in den formalen Funktionsparametern bedeutet. Können Sie mir sagen, welche Auswirkungen sie hat und was sie bedeutet?
https://docs.mql4.com/ru/basis/variables/formal
Der zweite Teil der Seite ab den Worten "It is possible to pass parameters by reference..." Schauen Sie dort genau hin Beispiel.
Guten Tag.
Könnten Sie mir einen Rat geben, wie ich das Kreuzen von z. B. Stochastiks am besten aufzeichnen kann?
auf dem ersten und dritten Balken die Werte der Signal- und Hauptleitungen oder der ersten und zweiten ?