[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 344

 
Summus_Digitus:
Hallo zusammen. Dies ist eine ernste und dringende Angelegenheit, und ich habe überall im Internet nachgeschaut, wie man so sagt... Ich habe beschlossen, MT4 für eine lange Zeit zu verwenden, ich habe es für 3 Tage verwendet. Ich habe eine Weile versucht, es zu benutzen, und es schien mir, als wäre es das erste Mal, und ich verstand nicht, was vor sich ging. Ich dachte, es ist nichts Ernstes, aber auf einmal gehe ich zu MT und ich sehe 4 H4 Charts mit einem neuen System und ich sehe den falschen Preis, ich vergleiche es mit dem StartFX 2, ich öffne Zeitrahmen H1 und D1 und ich warte... Ich warte schon seit einer Stunde und es wird Jahr für Jahr aktualisiert, aber das tut es nicht. Sie sagen: "Installieren Sie es einfach neu und das war's", und ich sage: "Scheiß drauf". "Laden Sie also einen Indikator für eine Softwareaktualisierung von wer weiß was für einer Website herunter", fragen Sie, und ich sage Ihnen: "Scheiß drauf! Ich will wirklich weiter Geld verdienen und die Computerhilfe mit 1 erwürgen und dann werden wir sehen :-)

Schluchzend! Ehrlich gesagt - als ich es las, kullerte mir eine stechende Träne über das Gesicht und ich schüttelte mich vor Lachen...
 
VladTch:

Guten Tag an alle!

Meine Frage scheint einfach zu sein, aber ich habe alle Artikel durchforstet, konnte aber keine Antwort finden - wie funktioniert der Operator return(-1)? An wen wird die Kontrolle weitergegeben? Zum Beispiel in diesem Code:

sonst return(0);

Mit Null in Klammern und ohne Klammern scheint alles klar zu sein. Aber was ist mit (-1)?

Ich danke Ihnen für Ihre Antwort. :)

Spezielle Funktionen sind allgemeine Funktionen. Sie können wie benutzerdefinierte Funktionen aufgerufen werden. Aber es gibt eine Besonderheit. Beim Systemaufruf werden Parameter und Rückgabewert nicht übergeben.

 
Summus_Digitus:
Hallo zusammen. Dies ist eine ernste und dringende Angelegenheit, und ich habe überall im Internet nachgeschaut, wie man so sagt... Ich habe beschlossen, MT4 für eine lange Zeit zu verwenden, ich habe es für 3 Tage verwendet. Ich habe eine Weile versucht, es zu benutzen, und es schien mir, als wäre es das erste Mal, und ich verstand nicht, was vor sich ging. Ich dachte, es ist nichts Ernstes, aber auf einmal gehe ich zu MT und ich sehe 4 H4 Charts mit einem neuen System und ich sehe den falschen Preis, ich vergleiche es mit dem StartFX 2, ich öffne Zeitrahmen H1 und D1 und ich warte... Ich warte schon seit einer Stunde und es wird Jahr für Jahr aktualisiert, aber das tut es nicht. Sie sagen: "Installieren Sie es einfach neu und das war's", und ich sage: "Scheiß drauf". "Laden Sie also einen Indikator für ein Software-Update von wer weiß was für einer Website herunter" - Sie fragen, und ich sage Ihnen: "Scheiß drauf, zweimal". Ich will wirklich weiter Geld verdienen und die Computerhilfe mit 1 erwürgen und dann werden wir sehen :-)

Zu den Annalen!!!
 

Warum kann ich keine Nummer malen?

 #property indicator_chart_window
void start()
   {
string spred=DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD), 0);
   string lot=AccountFreeMargin()/(Bid)*0.002;
   string lots=StringSubstr(lot, 4, 1);
 
SetLabel("ЧИСЛО",   lots , ColorOnSign(lots), 5, 7, 1);}
  
   color ColorOnSign(double nu){
      color lcColor=Navy;
         if (nu<4) lcColor=Green;
         if (nu>6) lcColor=Red;
      return(lcColor);}
     
   void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
      if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
         ObjectSetText(nm, tx, fs);
         ObjectSet(nm, OBJPROP_COLOR    , cl);
         ObjectSet(nm, OBJPROP_XDISTANCE, xd);
         ObjectSet(nm, OBJPROP_YDISTANCE, yd);
         ObjectSet(nm, OBJPROP_CORNER   , cr);
         ObjectSet(nm, OBJPROP_FONTSIZE , 18);
      return(0);}

Warum kann ich keine Nummer malen?

 

Das ist seltsam. Ich dachte, es gäbe eine Frage.

Es wird kompiliert!

 
Elektronik:

Warum kann ich keine Nummer malen?

 #property indicator_chart_window
void start()
   {
string spred=DoubleToStr(MarketInfo(Symbol(), MODE_SPREAD), 0);
   string lot=AccountFreeMargin()/(Bid)*0.002;
   string lots=StringSubstr(lot, 4, 1);
 
SetLabel("ЧИСЛО",   lots , ColorOnSign(lots), 5, 7, 1);}
  
   color ColorOnSign(double nu){
      color lcColor=Navy;
         if (nu<4) lcColor=Green;
         if (nu>6) lcColor=Red;
      return(lcColor);}
     
   void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9) {
      if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
         ObjectSetText(nm, tx, fs);
         ObjectSet(nm, OBJPROP_COLOR    , cl);
         ObjectSet(nm, OBJPROP_XDISTANCE, xd);
         ObjectSet(nm, OBJPROP_YDISTANCE, yd);
         ObjectSet(nm, OBJPROP_CORNER   , cr);
         ObjectSet(nm, OBJPROP_FONTSIZE , 18);
      return(0);}

Warum kann ich keine Nummer malen?

Du hast es gemalt, aber um die Farbe zu ändern, musst du ein anderes Objekt mit der gleichen Farbe erstellen! Wenn Sie die Objekte ändern, wird sich die Farbe visuell ändern, so verstehe ich das! Oder gibt es vielleicht eine andere Meinung? Ich selbst habe nur mit Mashka auf diese Weise die Farben gewechselt.
 

Ich glaube, es geht nur um die Zahl.

lots=StringSubstr(lot, 4, 1); 

vielleicht versteht die Software es als eine einzelne Ziffer.

 
Elektronik:

Seltsam, ich dachte, es gäbe eine Frage.

Es wird kompiliert!

Ja, ich wollte noch etwas hinzufügen und habe es versehentlich gelöscht. Ich wollte es nicht wiederherstellen.

Damit müssen Sie die Farbe ändern:

ObjectSet(nm, OBJPROP_COLOR, cl);

Aus Ihrem Code geht nicht hervor, wo Sie die Farbe ändern.

============

Ich habe herausgefunden, wo...

So machen Sie es:

   void SetLabel(string nm, string tx, color cl, int xd, int yd, int cr=0, int fs=9)
    {
     ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
     ObjectSetText(nm, tx, fs);
     ObjectSet(nm, OBJPROP_COLOR    , cl);
     ObjectSet(nm, OBJPROP_XDISTANCE, xd);
     ObjectSet(nm, OBJPROP_YDISTANCE, yd);
     ObjectSet(nm, OBJPROP_CORNER   , cr);
     ObjectSet(nm, OBJPROP_FONTSIZE , 18);
    }

Scheuen Sie sich nicht, das Objekt neu zu erstellen. Es ist optimiert. Wenn ein Objekt erstellt wird, werden nur die Eigenschaften geändert, die sich ändern. Sie wird nicht wiederhergestellt werden.

Bitte setzen Sie geschweifte Klammern auf einer Ebene, sonst verstehen Sie nicht, was dort geschrieben steht, wo Blöcke beginnen und enden.

Es muss ein Problem mit dem Parameter ColorOnSign() vorliegen. Der Parameter ist double und Sie fügen string ein.

SetLabel("ЧИСЛО", lots, ColorOnSign(StrToDouble(lots)), 5, 7, 1);

Oder

color ColorOnSign(string sLots)
 {
  double nu = StrToDouble(sLots);
  color lcColor=Navy;
  if (nu<4) lcColor=Green;
  if (nu>6) lcColor=Red;
  return(lcColor);
 }
 

Guten Tag, helfen Sie mir und geben Sie mir bitte einen Hinweis auf den Code.

Ich habe das folgende Schleppnetz in Eule ->

        for ( int v = OrdersTotal() - 1; v >= 0; v -- ){       
                if (OrderSelect(v, SELECT_BY_POS, MODE_TRADES)){           
                        if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic){ 
                                //+=================================================================================+
                                ///+================================Обычный трал ====================================+
                                if (TralSimple){
                                        if(OrderType() == OP_SELL){
                                                if((OrderOpenPrice()-Ask) > (Point*TrailingStop)){ 
                                                        if((OrderStopLoss() > (Ask+Point*TrailingStop)) || (OrderStopLoss()==0)){
                                                                OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                                                        }
                                                }
                                        }
                                        //+=================================================================================+
                                        if(OrderType() == OP_BUY){
                                                if((Bid-OrderOpenPrice()) > (Point*TrailingStop)){
                                                        if(OrderStopLoss() < Bid-Point*TrailingStop || (OrderStopLoss()==0)){
                                                                OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);  
                                                        }
                                                }
                                        }
                                }                                  
--------------------------------------------

Jetzt bewegt das Schleppnetz nach jedem positiven Tick einen Stopp. Ich möchte das Folgende tun:

der erste Durchgang - bei einem positiven Tick verschiebt das Schleppnetz den Anschlag um 1 Punkt und erhöht die Schrittweite nach oben.

Zweiter Durchlauf - nehmen wir eine Variable x, die jedes Mal um 1 erhöht wird, wenn wir einen bestimmten Schritt (5) machen. Und bei jedem Durchlauf (Schritt)*x

usw.

Die Frage ist, wie man diesen Schritt mit steigendem Multiplikator einschraubt. Im Falle mehrerer Positionen sollte dieser Multiplikator für jede Position unterschiedlich sein

 
berezhnuy:

Guten Tag, helfen Sie mir und geben Sie mir bitte einen Hinweis auf den Code.

Ich habe das folgende Schleppnetz in Eule ->

Jetzt bewegt das Schleppnetz nach jedem positiven Tick einen Stopp. Ich möchte das Folgende tun:

erster Durchlauf - bei einem positiven Tick wird der Stopp durch das Schleppnetz um 1 Punkt verschoben, und um wie viel das Paar gestiegen ist.

Zweiter Durchlauf - nehmen Sie eine Variable x, die bei jedem Durchlauf um 1 erhöht wird.

usw.

Die Frage ist, wie man eine Stufe mit steigendem Multiplikator hinzufügen kann. Im Falle mehrerer Positionen sollte dieser Multiplikator für jede Position unterschiedlich sein.


Sie machen so etwas wie eine Parabel, die Berechnung ist relativ zum Basispunkt - Preis und Öffnungszeit