Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 25.03.17
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Code:
extern string First_WP = "EURUSD";
extern string Second_WP = "GBPUSD";
extern double Profit = 100;
extern double Loss = 50;

void OnTick() {
   int First_TN = 0, Second_TN = 0;
   int First_Type, Second_Type;
   double profit = 0;

   for(int i = OrdersTotal() - 1; i >= 0; i--) {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == MagicNumber) { //kann ggf. weggelassen werden
            if(OrderSymbol() == First_WP) {
               First_TN = OrderTicket();
               First_Type = OrderType();
               profit += OrderProfit();  //ggf. noch OrderCommission() und OrderSwap() einbeziehen
            }
            if(OrderSymbol() == Second_WP) {
               Second_TN = OrderTicket();
               Second_Type = OrderType();
               profit += OrderProfit();  //ggf. noch OrderCommission() und OrderSwap() einbeziehen
            }
         }
      }
   }
   if (profit >= Profit || profit <= -Loss) { 
      bool result = false; 
      bool first_result = false, second_result = false;
      double price;

      while (!result) {
         if (First_TN > 0 && OrderSelect(First_TN, SELECT_BY_TICKET)) {
            RefreshRates();
            while(IsTradeContextBusy()) Sleep(100);
            if (First_Type == OP_BUY) price = MarketInfo(First_WP, MODE_BID);
               else MarketInfo(First_WP, MODE_ASK);
            first_result = OrderClose(First_TN, OrderLots(), price, 5, Red);    
            if (first_result) First_TN = 0;             
         } 
         if (Second_TN > 0 && OrderSelect(Second_TN, SELECT_BY_TICKET)) {
            RefreshRates();
            while(IsTradeContextBusy()) Sleep(100);
            if (Second_Type == OP_BUY) price = MarketInfo(Second_WP, MODE_BID);
               else MarketInfo(Second_WP, MODE_ASK);
            second_result = OrderClose(Second_TN, OrderLots(), price, 5, Red);     
            if (second_result) Second_TN = 0;             
         }
         if (first_result && second_result) break; 
      }
   }   
}
Viel Erfolg!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.