กองทุน SPDR GOLD SHARES
ถือทองก่อนหน้า
ถือทองล่าสุด
0.00
*หน่วยตัน / ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
สถิติกองทุน SPDR
ราคาทองคำแท่ง 96.5%
ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
ครั้งที่
ราคาก่อนหน้า
ราคาล่าสุด
0
(หน่วย บาท*) / อัปเดตล่าสุดเมื่อวันที่ 13 ก.ค. 2566 เวลา 13:04 น.
สถิติราคาทองคำ ไทย

เปิดออเดอร์2ออเดอร์ ถ้าเอากำไรทั้ง2ออเดอร์มาบวกกันเกิน1แล้วให้ปิดออเดอร์ทั้งสอง

  • 4 replies
  • 2,144 views
ขอคำแนะนำหน่อยครับว่าจะเอากำไรทั้งสองออเดอร์มาบวกกันยังไง

   for(cnt=0;cnt<OrdersTotal();cnt++)   
   {
     result = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()==Symbol() )
     {            
          Profit += OrderProfit();
           }
   }

อ้างจาก: gaothun ที่ 13, มิถุนายน  2019, 12:10:03 PM
   for(cnt=0;cnt<OrdersTotal();cnt++)   
   {
     result = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()==Symbol() )
     {            
          Profit += OrderProfit();
           }
   }

extern string sym1 = "" ;
extern string sym2 = "" ;
extern double lot = 1;

int OnInit()
  {
//---
  if (OrderSend(sym1,OP_BUY,lot,MarketInfo(sym1,MODE_ASK),0,0,0,NULL,1,0,clrGreen));
  else Print("OrderSent Eror Code : ",GetLastError());
  if (OrderSend(sym2,OP_BUY,lot,MarketInfo(sym2,MODE_ASK),0,0,0,NULL,2,0,clrBlue));
  else Print("OrderSent Eror Code : ",GetLastError());
 
//---
   return (INIT_SUCCEEDED);
 
  }

ต้องเขียนต่อยังไงหรอครับ ถ้าจะเอากำไรทั้งสองอันมาบวกกัน ถ้าเกิน1 ให้ปิดทั้งสองออเดอร์

extern string sym1 = "" ;
extern string sym2 = "" ;
extern double lot = 1;
double Profit;
int mode;
int result;
int ticket;

int OnInit()
  {
//---
   Profit=0;
   for(int cnt=0;cnt<OrdersTotal();cnt++)   
   {
     result = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()==Symbol() )
     {           
          Profit += OrderProfit();
      }
   }
   if(Profit>1)
  {
     for(cnt=OrdersTotal();cnt>=0;cnt--)
     {
        result = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
          mode=OrderType();
        if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
        {
         if (mode==OP_SELL){ticket =  OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrCrimson); }
         if (mode==OP_BUY) {ticket =  OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrIndigo); }
        }
     }
  }


  if (OrderSend(sym1,OP_BUY,lot,MarketInfo(sym1,MODE_ASK),0,0,0,NULL,1,0,clrGreen));
  else Print("OrderSent Eror Code : ",GetLastError());
  if (OrderSend(sym2,OP_BUY,lot,MarketInfo(sym2,MODE_ASK),0,0,0,NULL,2,0,clrBlue));
  else Print("OrderSent Eror Code : ",GetLastError());
 
//---
   return (INIT_SUCCEEDED);
 
  }

อ้างจาก: gaothun ที่ 13, มิถุนายน  2019, 04:21:39 PM
extern string sym1 = "" ;
extern string sym2 = "" ;
extern double lot = 1;
double Profit;
int mode;
int result;
int ticket;

int OnInit()
  {
//---
   Profit=0;
   for(int cnt=0;cnt<OrdersTotal();cnt++)   
   {
     result = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()==Symbol() )
     {           
          Profit += OrderProfit();
      }
   }
   if(Profit>1)
  {
     for(cnt=OrdersTotal();cnt>=0;cnt--)
     {
        result = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
          mode=OrderType();
        if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
        {
         if (mode==OP_SELL){ticket =  OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrCrimson); }
         if (mode==OP_BUY) {ticket =  OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrIndigo); }
        }
     }
  }


  if (OrderSend(sym1,OP_BUY,lot,MarketInfo(sym1,MODE_ASK),0,0,0,NULL,1,0,clrGreen));
  else Print("OrderSent Eror Code : ",GetLastError());
  if (OrderSend(sym2,OP_BUY,lot,MarketInfo(sym2,MODE_ASK),0,0,0,NULL,2,0,clrBlue));
  else Print("OrderSent Eror Code : ",GetLastError());
 
//---
   return (INIT_SUCCEEDED);
 
  }

ขอบคุณครับผม แล้วถ้ามันปิดออเดอร์เสร็จแล้ว เราจะให้มันวนไปเปิดใหม่ทันทีเลย จะต้องทำยังไงครับ