[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 612

 
Fox_RM:

Es stellte sich heraus, dass es nicht so einfach war. Ich habe dem Namen eine Nummer hinzugefügt, 3 (zum Beispiel) Zeilen werden erstellt, aber sie bewegen sich nirgendwo:( Es stellt sich heraus, dass ich eine geschlossene Schleife machen und jedes Mal eine neue Nummer zuweisen muss, aber hier ist die Situation identisch mit der Zuweisung von

Name der Zeitleiste. Es ist einfach furchtbar...


Sehen Sie sich diesen Indikator an
Dateien:
_linestat.mq4  6 kb
 
alsu:
zu Beginn des Programms angeben
Ich danke Ihnen vielmals.
 
void flatline(string labebe,datetime time1,double price1,datetime time2,double price2,color colir, int W)
  {
     ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2);
   ObjectSet(labebe, OBJPROP_COLOR, colir);
   ObjectSet(labebe, OBJPROP_STYLE,0);
   ObjectSet(labebe, OBJPROP_RAY,0);
   ObjectSet(labebe, OBJPROP_WIDTH,W);   
   ObjectSet(labebe, OBJPROP_BACK, true);
   }
Funktionscode zum Zeichnen von Linien. Vielen Dank an alle, die geantwortet haben.
 

Leute helfen,

Das Problem ist folgendes, es gibt einen selbst erstellten grafischen Indikator, aber das Problem ist folgendes, wenn ein bestimmter Punkt kommt, sagen wir die aktuelle Zeit

if ((k>=15 && k<16) || (Hour()>=15)) // где k- по прошлым дням (для рисования не только в одном дне, но и по всей истоии)

Es sollte ein Extremum bei einer alten Handelssitzung zeichnen (es ist praktisch, um festzustellen, wo der Handel jetzt ist), aber der Haken ist, dass der Indikator nicht den Chart zeichnet, nur wenn Sie den Zeitrahmen hin und her wechseln ...

Hier ist ein Stück Zeichnungscode

if (Close[iHighest(NULL,0,MODE_CLOSE,8*p_t,i-15*p_t)]> Open[iHighest(NULL,0,MODE_OPEN,8*p_t,i-15*p_t)])
{

max_eu=Close[iHighest(NULL,0,MODE_CLOSE,8*p_t,i-15*p_t)];
Name="max2";
ObjectCreate(Name,OBJ_TREND,0,Time[iHighest(NULL,0,MODE_OPEN,8*p_t,i-15*p_t)],max_eu,Time[i]+l,max_eu);
ObjectSet(Name, OBJPROP_COLOR, Navy);
ObjectSet(Name,OBJPROP_RAY,false);
ObjectSet(Name, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_M30| OBJ_PERIOD_M15 | OBJ_PERIOD_M5);
ObjectSet(Name, OBJPROP_WIDTH, 1);

Label="надпись2";
ObjectCreate(Label,OBJ_TEXT,0,Time[i]+l,max_eu);
ObjectSetText(Label,"Max Европа ", 8, "Arial", Navy);
ObjectSet(Label, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_M30| OBJ_PERIOD_M15 | OBJ_PERIOD_M5);

WindowRedraw();
}

Ich bin verwirrt...

 

DOCTORS:

selbstgemacht

es ist richtig


Ich bin verwirrt...

Um das Problem zu lösen, können Sie Print( ) nach if(...) einfügen und sehen, ob die Bedingung überhaupt enthalten ist
 
alsu:
es ist das Richtige zu tun


Um das Problem zu lösen, können Sie Print() nach if(...) einfügen und sehen, ob die Bedingung überhaupt enthalten ist
Dort gibt es mehrere Bedingungen... Dies ist eine der Möglichkeiten. Ich setze Druck...
 

Gibt es ähnliche Programme zur Erhebung von Statistiken?

}
 
Fox_RM:
Funktionscode zum Zeichnen von Linien. Vielen Dank an alle, die geantwortet haben.
void flatline(string nm,datetime t1,double p1,datetime t2,double p2,color clr, int W){
   ObjectDelete(nm);// это не обязательно.
   ObjectCreate(nm, OBJ_TREND, 0,0,0,0,0);
   ObjectSet(nm, OBJPROP_PRICE1,p1);
   ObjectSet(nm, OBJPROP_TIME1,t1);
   ObjectSet(nm, OBJPROP_PRICE2,p2);
   ObjectSet(nm, OBJPROP_TIME2,t2);
   ObjectSet(nm, OBJPROP_COLOR, clr);
   ObjectSet(nm, OBJPROP_STYLE,0);
   ObjectSet(nm, OBJPROP_RAY,false);
   ObjectSet(nm, OBJPROP_WIDTH,W);   
   ObjectSet(nm, OBJPROP_BACK, true);
   WindowRedraw();// если обновлять на каждом тике, лучше поставить в самом конце старта
   return;   
}
 

Alert ("Anzahl der Hausse-Balken = ", vverh, " - ", vverh/(Konec/100), " % " );


Können Sie mir sagen, warum ich im Ausdruck vverh/(Konec/100) eine ganze Zahl ohne Komma erhalte? Nach dem Dezimalpunkt sollten bis zur 4. Stelle Ziffern stehen, aber es wird nur eine ganze Zahl ausgegeben. =(

Alert ("number of zero bars = ", nul, " - ", DoubleToStr(nul/(Konec/100),2), " % " ); auch dieser Ausdruck funktioniert nicht.

 
ChAnton:

Alert ("Anzahl der Hausse-Balken = ", vverh, " - ", vverh/(Konec/100), " % " );


Können Sie mir sagen, warum ich im Ausdruck vverh/(Konec/100) eine ganze Zahl ohne Komma erhalte? Nach dem Dezimalpunkt sollten die Ziffern bis zur 4. Stelle reichen, aber es wird nur eine ganze Zahl ausgegeben. =(

irgendwo versteckt