[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 459

 
Maximov7:

Hier ist eine weitere Frage .... Ich habe einen offenen Auftrag wie diesen:

OrderSend("EURUSD",OP_BUY,0.1,C1,10,Bid-0.0017-0.0017,Ask+0.0017);

Wie eröffne ich einen weiteren Auftrag, wenn dieser bei takeprofit???? geschlossen wird?


Haben Siedas Buch gelesen? (zumindest zum Spaß)
 
Lesen Sie es 3 Mal..... und trotzdem?
 
Maximov7:
Ich habe..... 3 Mal gelesen und trotzdem?


Suchen Sie in der Schleife der Historie der abgeschlossenen Aufträge "diesen" Auftrag und prüfen Sie, ob er auf TP abgeschlossen wurde, und wenn ja, dann öffnen Sie einen "anderen". Das ist alles.

Weitere Einzelheiten finden Sie hier - wählen Sie die benötigten Dateien aus, schließen Sie sie an Ihre Software an, und das war's.

 
Herzlichen Dank!
 
Maximov7:
Herzlichen Dank!

Genießen Sie es.
 

Guten Abend!

Bitte sehen Sie sich den Code an:

for(i=1;i<=OrdersTotal();i++) // Aufträge für Schleppnetz abrufen

{

if(OrderSelect(i-1,SELECT_BY_POS)==true)

{

if (OrderSymbol()!=Instr)

weiter;

if(Auftragsart()==0)

{

wenn ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

if(Auftragsart()==1)

{

wenn ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

zurück(55);

}

}

Ich verstehe nicht, was das Problem ist, ich teste mit einem Alert innerhalb, es funktioniert nirgendwo anders nach Instr

 
demlin:

Guten Abend!

Bitte sehen Sie sich den Code an:

for(i=1;i<=OrdersTotal();i++) // Aufträge für Schleppnetz abrufen

{

if (OrderSelect(i-1,SELECT_BY_POS)==true)

{

if (OrderSymbol()!=Instr)

weiter;

if(Auftragsart()==0)

{

wenn ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

if(Auftragsart()==1)

{

wenn ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

zurück(55);

}

}

Ich verstehe nicht, was das Problem ist, ich teste mit einem Alert innerhalb, es funktioniert nirgendwo anders nach Instr


Gibt es eine Zeile wie diese über dem Code?
string Instr;
Fügen Sie den Code richtig ein - über SRC im Editor... :-)))
 
Roman.:

Gibt es eine Zeile wie diese über dem Code? Fügen Sie den Code richtig ein - über SRC im Editor... :-)))
Ja, Instr ist, sorry, ich weiß nicht, was SRC ist.
 
demlin:
Ja, Instr ist, sorry, ich weiß nicht, was SRC ist.

Wenn Sie den Code in Ihren Beitrag einfügen, drücken Sie STRG+ALT+M - dann fügen Sie den Code dort ein (durch den Puffer STRG+C - Kopieren, STRG+V - Einfügen), dann drücken Sie die Schaltfläche "Einfügen" am unteren Rand des Fensters.
 
demlin:

Guten Abend!

Bitte sehen Sie sich den Code an:

for(i=1;i<=OrdersTotal();i++) // Aufträge für Schleppnetz abrufen

{

if (OrderSelect(i-1,SELECT_BY_POS)==true)

{

if (AuftragsSymbol()!=Instr)

weiter;

if(Auftragsart()==0)

{

wenn ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)

return(55);}

if(Auftragsart()==1)

{

wenn ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)

zurück(55);

}

}

Ich verstehe nicht, was das Problem ist, ich teste mit einem Alert innerhalb, es funktioniert nirgendwo anders nach Instr


Versuchen Sie diese Option - so habe ich ein ähnliches Design organisiert.


// ------------------------------------------------Ищем наш ордер---------------------------------

int orderType;
   for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--)
   {
      if (!OrderSelect(orderIndex, SELECT_BY_POS))
      {
         continue;
      }

      if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber))
      {
         continue;
      }

      orderType = OrderType();
      if ((orderType != OP_BUY) && (orderType != OP_SELL))
      {
         continue;
      }
          ticket = OrderTicket( );                         // Номер ордера
          orderLots = OrderLots();                         // Lots   
          orderProfit = OrderProfit() + OrderSwap();       // Profit
          Price = OrderOpenPrice();                        // Цена открытия рыночного ордера
          SL =  OrderStopLoss();                           // Значение StopLoss ордера
          TP = OrderTakeProfit();                          // Значение TakeProfit ордера
          
             if (ticket>0)                                               // Если позиция открылась
                    {
                             while(OrderSelect(ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                                 {
                                   Sleep(100);
                                 }
                                  double OpenPrice=OrderOpenPrice();
                                      
                                  
                    
                                if (orderType == OP_BUY) 
                                     {
                                       //здесь трал покупки
                                     }
            
                                if (orderType == OP_SELL) 
                                      {
                                        //здесь трал продажи
                                      }   
                            
                    }
        
   }