Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 192

 
Desead:

Natürlich danke, aber wenn Sie zu faul sind, die Frage zu lesen, was nützt es dann, zu antworten? Ich kann den Wert, die Dicke, die Farbe und den Stil der Ebenen im Indikator in den beiden Funktionen ändern, die ich habe. Ich habe keinen Zugang zu der Beschreibung. Ich frage noch einmal: Kennt jemand die Antwort? Ich weiß nicht, ob ich es schon einmal gesehen habe.

Ich habe ein Bild beigefügt, um zu zeigen, was ich brauche.


Das war es nicht und wird es in dieser Form wohl auch nie sein.
 
yan720:

Glauben Sie dann, dass diese Funktion nicht funktionieren wird? Ich habe es nicht getestet, aber es scheint mir ein Teil des funktionierenden Codes zu sein (dieser Ilan wurde offensichtlich aus einem bestenfalls fehlerhaften Code neu erstellt). Oder ist es immer noch ein schäbiger Code?




Verwenden Sie es:

void Modify_orders (double AverPrice, double SLoss, double TProfit){
   double Stoplevel =  MarketInfo(Symbol(),MODE_STOPLEVEL);
   datetime GTCount_1 = 0;
   datetime GTCount_2 = 0;
   int ppos = 0;
   if ((AverPrice != 0) == TRUE){
      for (ppos = OrdersTotal() - 1; ppos >= 0; ppos--){
          if (OrderSelect(ppos, SELECT_BY_POS, MODE_TRADES) == TRUE){
            if ((OrderSymbol() != Symbol() || OrderMagicNumber() != Magic || OrderType() >= 2) == TRUE) continue;
            if ((OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) == TRUE){ 
            if ((OrderType() == 0) == TRUE){ 
               if(Bid - SLoss < Stoplevel * Point){ SLoss = ND(Bid - Stoplevel * Point);}
               if(TProfit - Ask < Stoplevel * Point){ TProfit = ND(Ask + Stoplevel * Point);}
            }else if ((OrderType() == 1) == TRUE){ 
               if(SLoss - Ask < Stoplevel * Point){ SLoss = ND(Ask + Stoplevel * Point);}
               if(Bid - TProfit < Stoplevel * Point){ TProfit = ND(Bid - Stoplevel * Point);}
               }
                  GTCount_1 = GetTickCount();           
                  OrderModify(OrderTicket(), AverPrice, SLoss, TProfit, 0, Yellow);  
                  GTCount_2 = GetTickCount() - GTCount_1;
                   // Print("Modify time(ms):   ", GTCount_2, "   /  Ticket: ", OrderTicket()," /  Time: ", TimeToStr (TimeCurrent(), TIME_SECONDS), " /  Average price: ",AverPrice, " /  SL: ",SLoss, " /  TP: ",TProfit); 
                Sleep(33);                
                }
            }
        } 
    }
}
double ND(double value){
   return(NormalizeDouble(value, Digits));
}
 
digits:


Sie verwenden:

Ihre Funktion behandelt keine Trade-Server-Fehler. Die Funktion OrderModify() sollte als separate, vollwertige Funktion mit Fehlerbehandlung und angemessener Fehlerreaktion konzipiert werden.

Und noch einmal: Wozu?

if ((OrderSymbol() != Symbol() || OrderMagicNumber() != Magic || OrderType() >= 2) == TRUE) continue;
if ((OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) == TRUE){

Wofür wird das Öl verwendet?

 
digits:


Verwendung:


Nein, diese Art von g verwenden wir nicht.
 

Es wäre seltsam, ein Brot für 20 zu kaufen, nach Hause zu kommen und den Kaufpreis auf 5 Rubel zu ändern, und dann in der Brieftasche die 15 Rubel Differenz zu sehen... Fantastisch... ;)

Sie könnten das Brot für 35 Rubel weiterverkaufen (15 Rubel Gewinn), aber der Makler würde Ihnen keine Provision geben :=)

 

Guten Tag. Ich habe vor ein paar Tagen begonnen, MQL zu studieren, habe die Website erneut gelesen, kann aber die Antwort nicht finden. (Urteilen Sie nicht über einen Neuling)

Wenn ich das schon versucht hätte, hätte ich gesehen, dass viele Aufträge jetzt geschlossen sind. Hier ist ein einfacher Code, der einen Auftrag schließen soll, wenn er einen MA(5) und MA(21) kreuzt

Hier ist der Code, um den Auftrag durch Kreuzen von MA(5) und MA(21) zu schließen, danke.

double ma50;

double ma51;

double ma210;

double ma211;

double ma550;

double Stoh;

int start()

{

//Open Orders--------------------------------------------------------------------------------

{

ma50=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);

ma51=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);

ma210=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,0);

ma211=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,1);

ma550=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,0);

Stoh=iStochastic(Symbol(),5,5,3,3,MODE_SMA,1,MODE_MAIN,0);

if(OrdersTotal()==0 && ma50 > ma51 && ma50 > ma210 && ma51 < ma211 && ma210 > ma550 )

OrderSend(Symbol(),OP_BUY,Lots,Ask,0,0,0,"BUY",123,0,Red);

}

//Close Orders--------------------------------------------------------------------------------

{

if(OrdersTotal()==1 && ma50 < ma210 )

if(OrderSelect(10,SELECT_BY_POS)==true)

OrderClose(OrderMagicNumber(),Lots,Bid,1,CLR_NONE);

}

}


 
AlexCY:

Guten Tag. Ich habe vor ein paar Tagen begonnen, MQL zu studieren, habe die Website erneut gelesen, kann aber die Antwort nicht finden. (Urteilen Sie nicht über einen Neuling)

Wenn ich das schon versucht hätte, hätte ich gesehen, dass viele Bestellungen jetzt geschlossen sind. Hier ist ein einfacher Code, der einen Auftrag schließen soll, wenn er einen MA(5) und MA(21) kreuzt

Ich danke Ihnen.

Ob der Code korrekt ist oder nicht, hängt direkt davon ab, was Sie - und niemand sonst - unter diesem Begriff verstehen.

Hier versuchen Sie, einen Auftrag zu eröffnen und ihn mit einem ähnlichen, aber etwas fehlerhafteren Versuch zu schließen.

Ich kann Ihnen nur raten, die Sprache weiter zu studieren, es besteht keine Eile, denn eine zu geringe Basis ist der Hauptgrund für Missverständnisse.

Die Parameter in OrderClose sind nicht korrekt . + Wenn Sie eine Order haben ,wirdOrderSelect mit der Nummer 0genommen. + Sind Sie sicher, dass nach dem nächsten oder übernächsten Tick "ma50 < ma210" nicht ausgeführt wird, indem Ihr Spread gefressen wird?

und der Code wird über die Schaltfläche SRC in der Symbolleiste eingefügt.

 

Guten Tag.

Im Code des Indikators müssen wir den Moment erfassen, in dem ein neuer Trend auf dem Diagramm erscheint, und den Namen dieses Trends erhalten.

Neben dem Verfolgen der Liste aller Objekte bei jedem Tick, dem Feststellen des Zeitpunkts der Änderung der Anzahl der Objekte und dem anschließenden Durchgehen der gesamten Liste in der Hoffnung, das Objekt zu finden, das gerade angewendet wurde... Gibt es eine andere, kostengünstigere Möglichkeit? Wenn ja, wie kann dies einfacher umgesetzt werden?

 
satorifx:

Guten Tag.

Im Code des Indikators müssen wir den Moment abfangen, in dem ein neuer Trend auf dem Diagramm erscheint, und den Namen dieses Trends erhalten.

Neben dem Verfolgen der Liste aller Objekte bei jedem Tick, dem Feststellen des Zeitpunkts der Änderung der Anzahl der Objekte und dem anschließenden Durchgehen der gesamten Liste in der Hoffnung, das Objekt zu finden, das gerade angewendet wurde... Gibt es eine andere, kostengünstigere Möglichkeit? Wenn ja, wie kann dies einfacher umgesetzt werden?


und in dem Teil, in dem das Objekt direkt angewandt wird, einen Link zu dem Block mit der Verarbeitung der oben genannten hinzufügen?
 
ALXIMIKS:

und in dem Teil, in dem das Objekt direkt angewandt wird, einen Link zu dem Block mit der Verarbeitung der oben genannten hinzufügen?
Über welchen Teil sprechen wir also? Ich habe 2 Methoden der Trendbeobachtung: mit meinem eigenen Skript (ja, ich kann dort alles hinzufügen, was ich will) und mit den Standard-Trendbeobachtungen mit MT4-Tools (ich kann hier nichts hinzufügen). Die Aufgabe besteht darin, den Trend mit einer beliebigen Methode zu verfolgen.