Frage zur OrderSelect-Funktion - Seite 2

 
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Open[1]>ma && Close[1]<ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Open[1]<ma && Close[1]>ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
     }
//---
  }
for(int i=0;i<OrdersTotal();i++)
 

Eine neue Art von Kunst.

Satire im Handel.

Ich liebe sie.

 
boopa26:

1. braucht keine C-Kenntnisse. mql4 hat andere Funktionen

boopa26 verschwendet keine Zeit

  1. Sie denken, Sie können Code schreiben, ohne zu wissen, wie man Code schreibt. Funktionen sind irrelevant.
    boopa26 : möchte eine Order-Select-Funktion schreiben, um Orders ohne for- oder while-Zyklen zu schließen.
    Warum haben Sie dann gerade Code gepostet, der Schleifen verwendet? Sie verschwenden unsere Zeit.
  2. Bei Vorhandensein mehrerer Aufträge (ein EA, mehrere Charts, mehrere EAs, manueller Handel)
 
for(last_index_inside_trade_pool=OrdersTotal()-1;last_index_inside_trade_pool>=0;last_index_inside_trade_pool--)

   {if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
       OrderMagicNumber()==magic_number&&
       OrderType()==OP_SELL)

       OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);


    if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==0)

       Print("OrderSelectError: ",GetLastError());}

Zeitverschwendung? sieht der obige Code so aus, als würde ich Ihre Zeit verschwenden? äh... wahrscheinlich nicht WHRoeder

das war keine leichte aufgabe, aber der obige code schließt die aufträge. ich verstehe das nicht. es wäre schön, wenn der coder mehr details erklärt

was boopa26 denkt

static int last_index_inside_trade_pool = OrdersTotal()-1

while last_index_inside_trade_pool >=0 do code below. do last_index_inside_trade_pool--

untenstehender Code findet die Bestellung. prüft die Bestellung. schließt die Bestellung. führt GetLastError() aus

versteht aber nicht

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
 
boopa26: Zeitverschwendung? Sieht der obige Code so aus, als würde ich Ihre Zeit verschwenden?
Ja. Ich habe zwei Fragen gestellt, und Sie haben sie völlig ignoriert.
 

Warum haben Sie dann gerade Code gepostet, der Schleifen verwendet?

zyklen code kann anders geschrieben werden, um dasselbe ohne zyklen zu tun. beispiel

static int last_index_inside_trade_pool;
//below start()
last_index_inside_trade_pool=OrdersTotal()-1;

  if(OrdersTotal()>0&&
     iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)>iMA(NULL,0,10,0,MODE_SMMA,PRICE_CLOSE,1)&&
     OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
     OrderMagicNumber()==99999&&
     OrderType()==OP_SELL)

    {last_index_inside_trade_pool--;
     OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);}

keine Schleifen, aber dasselbe Ergebnis. boopa26 bevorzugt if-Bedingungen gegenüber for-Zyklen while-Zyklen

Du denkst, du kannst Code schreiben, ohne zu wissen, wie man Code schreibt. Funktionen sind irrelevant.

ich weiß, wie man if-Bedingungen, while-Zyklen und for-Zyklen macht. das ist ein guter Anfang, WHRoeder. c-Programmierung ist c-Programmierung. mql4 ist mql4. WARUM? wegen der FUNKTIONEN. mql4 macht C-Programmierung Beispiel * () == etc aber nicht dasselbe wegen der Funktionen

 

Welcher Schalter wählt die Funktion von 0 auf 1?

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES))==1

Schaltet die Funktion Order Select von 0 auf 1 um, wenn die Summe der Aufträge größer als Null ist?


Dokumentation

"Rückgabewert

Sie gibt true zurück, wenn die Funktion erfolgreich war, andernfalls falses. Um die Fehlerinformationen zu erhalten, muss man die Funktion GetLastError() aufrufen."

Gibt sie 1 zurück, wenn die Funktion erfolgreich war?

 

Ich liebe diesen Kerl :-)

Schreibst du nur in diesem Forum oder hast du noch andere Links?

Wenn du das auf einer Bühne machst, wo kann ich Karten bekommen?

 

nur dieses Forum

eddie, wissen Sie etwas über die Funktion"Order Select"?

 
boopa26:

Warum haben Sie dann gerade Code gepostet, der Schleifen verwendet?

zyklen code kann anders geschrieben werden, um dieselben funktionen ohne zyklen auszuführen. beispiel

keine Schleifen, aber dasselbe Ergebnis. boopa26 bevorzugt if-Bedingungen gegenüber for-Zyklen while-Zyklen

Du denkst, du kannst Code schreiben, ohne zu wissen, wie man Code schreibt. Funktionen sind irrelevant.

ich weiß, wie man if-Bedingungen, while-Zyklen und for-Zyklen macht. das ist ein guter Anfang, WHRoeder. c-Programmierung ist c-Programmierung. mql4 ist mql4. WARUM? wegen FUNCTIONS

Und du wunderst dich, warum dein Code immer noch nicht funktioniert? Weil du immer noch nicht die "Grundlagen" kennst, die, wenn du "Schritt 1" befolgt und gelernt hättest, richtig in "C" zu programmieren, du viel geschickter beim Programmieren in MQL gewesen wärst (weil es C und C++ ähnlich ist)!

Sie scheitern sogar daran, die "Funktionen" (Schritt 3) zu verstehen! Seit wann gibt"OrderSelect()" eine ganze Zahl zurück, wenn in der Dokumentation eindeutig steht, dass es einen booleschen Wert zurückgibt? Sie überprüfen nicht einmal das Ergebnis von "OrderClose()" oder ob in irgendeinem Teil Ihres Codes ein Laufzeitfehler aufgetreten ist!

Ihr Ergebnis: Sie sind bei "verbrannter Kohle" gelandet und da Sie sich weigern, unseren Rat anzunehmen, verschwenden Sie auch unsere Zeit!