Dieser Code liefert zwar Werte, aber keine korrekten Werte.
Bitte lesen Sie meine früheren Beiträge
Hallo Gumrai, ich habe Ihren Code plus den magischen Qjol-Code kompiliert, den ich hier angehängt habe. Ohne den Qjol-Code ist die Form des Plots wie eine Zahl 7, aber mit dem Qjol-Code verhält er sich besser. Der Wert ist, wie Sie im Bild sehen können, auf -1 gefallen. Das Diagramm hat die gleiche Form wie das vorherige Bild hier, aber einen anderen Wert. Bitte geben Sie mir einen Rat, wie ich dies verbessern kann. Danke!
#property indicator_separate_window// Indicator is drawn in the main window#property indicator_buffers1// Number of buffers#property indicator_color1 Red // Color of the 1st line//#property indicator_color2 Yellow // Color of the 2nd line//extern int Multiplier=2; double Buf_0[];// Buf_1[]; // Declaring indicator arrays//THIS INDICATOR IS TO COUNT NUMBER OF M1 BARS WHICH HIGH[I] IS HIGHER AND LOW[I] IS LOWER THAN OPEN[1440].//--------------------------------------------------------------------int init() // Special function init()
{
//--------------------------------------------------------------------SetIndexBuffer(0,Buf_0); // Assigning an array to a bufferSetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Line style//--------------------------------------------------------------------// SetIndexBuffer(1,Buf_1); // Assigning an array to a buffer// SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Line style//--------------------------------------------------------------------return(0); // Exit the special funct.init()
}
//--------------------------------------------------------------------int start() // Special function start()
{
int i=0, iCht, Counted_bars;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Number of counted barsfor(iCht = Bars - 1 - Counted_bars; iCht >= 0; iCht--){ // Chart barsint iD1 = iBarShift(Symbol(), PERIOD_D1, Time[iCht]);
Buf_0[iCht] = EMPTY; // <<<<<<<<<<<< This is the magic code that gjol inserted and it worked. //----find the datetime of iD1. ie the Time[]datetime daystarttime = iTime(Symbol(),PERIOD_D1,iD1);
double openD1 = iOpen(Symbol(), PERIOD_D1, iD1);
//----find BarShift of daystarttime on current chart and take the nearest following bar if it doesn't existint iM1Beg = iBarShift(Symbol(),PERIOD_M1,daystarttime,true);
if(iM1Beg<0)
iM1Beg = iBarShift(Symbol(),PERIOD_M1,daystarttime,false)+1;
//----find BarShift for end of day on current chart and take the nearest following bar if it doesn't existif(iD1>0)
{
datetime nextday = iTime(Symbol(),PERIOD_D1,iD1-1);
int iM1End = iBarShift(Symbol(),PERIOD_M1,nextday-1,true);
if(iM1End<0)
iM1End = iBarShift(Symbol(),PERIOD_M1,nextday,false);
for(Buf_0[i] = 0; iM1Beg > iM1End; iM1Beg--){
double hM1 = iHigh(Symbol(), PERIOD_M1, iM1Beg),
lM1 = iLow(Symbol(), PERIOD_M1, iM1Beg);
// count Bars of M1 Period that crisscross Open price of D1 Period if( hM1 >= openD1 && openD1 >= lM1) Buf_0[iCht]++;
}
}
}
//--------------------------------------------------------------------return(0);//
}
//--------------------------------------------------------------------
Bitte teilen Sie uns mit, wie wir dies am besten verbessern können. Danke!
Sieht so aus, als hätten Sie meine Vorschläge bereits umgesetzt.
Die Zeile indi fällt auf Null, weil der Puffer[0] im Code nicht berechnet wird. Sie müssen entscheiden, ob dieser Wert bei 0 beginnen und im Laufe des Tages ansteigen soll, oder ob Sie einfach buffer[0] == buffer[1] setzen wollen, was das Ganze aufgeräumter aussehen lassen würde.
Wie es aussieht, haben Sie meine Vorschläge bereits umgesetzt.
Die Zeile indi fällt auf Null, weil der Puffer[0] im Code nicht berechnet wird. Sie müssen sich entscheiden, ob dieser Wert bei 0 beginnen und im Laufe des Tages ansteigen soll, oder ob Sie einfach Puffer[0] == Puffer[1] setzen wollen, was das Ganze aufgeräumter aussehen lassen würde.
Hallo GumRai, wie kann ich einen Code erstellen, der bei 0 beginnt und im Laufe des Tages ansteigt? Bitte um Hilfe. Danke!
Hallo GumRai, wie kann ich einen Code erstellen, der bei 0 beginnt und im Laufe des Tages ansteigt? Bitte helfen Sie mir. Danke!
Ich habe einige Änderungen an Ihrem Code vorgenommen
int start() // Special function start()
{
int i, iCht, Counted_bars, limit, iD1, iM1Beg, iM1End, counter ;
datetime daystarttime, nextday ;
double hM1, lM1, openD1 ;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Number of counted bars
limit = Bars - 1 - Counted_bars;
if(limit > Bars-100)
limit = Bars-100;
for(iCht = limit; iCht >= 0; iCht--){ // Chart bars
iD1 = iBarShift(Symbol(), PERIOD_D1, Time[iCht]); //---Barshift on daily chart
daystarttime = iTime(Symbol(),PERIOD_D1,iD1); //--Find datetime value for start of the day
openD1 = iOpen(Symbol(), PERIOD_D1, iD1);
//----find BarShift of daystarttime on current chart and take the nearest following bar if it doesn't exist
iM1Beg = iBarShift(Symbol(),PERIOD_M1,daystarttime,true);
if(iM1Beg<0)
iM1Beg = iBarShift(Symbol(),PERIOD_M1,daystarttime,false)+1;
//----find BarShift for end of day on current chart and take the nearest following bar if it doesn't existif(iD1>0) //-- Change to iD1>=0 to show running total for the current day
{
nextday = iTime(Symbol(),PERIOD_D1,iD1-1);
iM1End = iBarShift(Symbol(),PERIOD_M1,nextday-1,true);
if(iM1End<0)
iM1End = iBarShift(Symbol(),PERIOD_M1,nextday,false);
counter = 0;
for(i= iM1Beg; i >= iM1End; i--){
hM1 = iHigh(Symbol(), PERIOD_M1, i);
lM1 = iLow(Symbol(), PERIOD_M1, i);
// count Bars of M1 Period that crisscross Open price of D1 Period if( hM1 >= openD1 && openD1 >= lM1)
counter++ ;
}
Buf_0[iCht] = counter;
}
}
//--------------------------------------------------------------------return(0);//
}
//--------------------------------------------------------------------//+------------------------------------------------------------------+
Dies sollte das tun, was Sie wollen
So wie es ist, gibt es keinen Wert für den heutigen Tag.
Wenn Sie die Änderung wie im hervorgehobenen Text vornehmen, sollte er einen Wert für heute enthalten, der bei 0 beginnt und sich im Laufe des Tages erhöht
Warum die Handlung hier unvollständig ist. Es ist nicht vor Januar 2014 zu füllen. Bitte weisen Sie auf das Problem hin. Dieses Diagramm wurde mit dem WHRoeder-Code erstellt, aber auch das von GumRai vorgeschlagene Diagramm ergibt die gleiche unvollständige Darstellung.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Dieser Code kann Werte liefern, aber er liefert keine korrekten Werte.
Bitte lesen Sie meine früheren Beiträge
Dieser Code liefert zwar Werte, aber keine korrekten Werte.
Bitte lesen Sie meine früheren Beiträge
Dieser Code liefert zwar Werte, aber keine korrekten Werte.
Bitte beachten Sie meine früheren Beiträge
Hallo GumRai,
Bitte teilen Sie uns mit, wie wir dies am besten verbessern können. Danke!
Hallo GumRai,
Bitte teilen Sie uns mit, wie wir dies am besten verbessern können. Danke!
Sieht so aus, als hätten Sie meine Vorschläge bereits umgesetzt.
Die Zeile indi fällt auf Null, weil der Puffer[0] im Code nicht berechnet wird. Sie müssen entscheiden, ob dieser Wert bei 0 beginnen und im Laufe des Tages ansteigen soll, oder ob Sie einfach buffer[0] == buffer[1] setzen wollen, was das Ganze aufgeräumter aussehen lassen würde.
Wie es aussieht, haben Sie meine Vorschläge bereits umgesetzt.
Die Zeile indi fällt auf Null, weil der Puffer[0] im Code nicht berechnet wird. Sie müssen sich entscheiden, ob dieser Wert bei 0 beginnen und im Laufe des Tages ansteigen soll, oder ob Sie einfach Puffer[0] == Puffer[1] setzen wollen, was das Ganze aufgeräumter aussehen lassen würde.
Hallo GumRai, wie kann ich einen Code erstellen, der bei 0 beginnt und im Laufe des Tages ansteigt? Bitte um Hilfe. Danke!
Hallo GumRai, wie kann ich einen Code erstellen, der bei 0 beginnt und im Laufe des Tages ansteigt? Bitte helfen Sie mir. Danke!
Ich habe einige Änderungen an Ihrem Code vorgenommen
Dies sollte das tun, was Sie wollen
So wie es ist, gibt es keinen Wert für den heutigen Tag.
Wenn Sie die Änderung wie im hervorgehobenen Text vornehmen, sollte er einen Wert für heute enthalten, der bei 0 beginnt und sich im Laufe des Tages erhöht
Warum die Handlung hier unvollständig ist. Es ist nicht vor Januar 2014 zu füllen. Bitte weisen Sie auf das Problem hin. Dieses Diagramm wurde mit dem WHRoeder-Code erstellt, aber auch das von GumRai vorgeschlagene Diagramm ergibt die gleiche unvollständige Darstellung.