รบกวนสอบถาม การเปรียบเทียบค่าหน่อยครับ

  • 7 replies
  • 1344 views

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

*

ออฟไลน์ gaothun

  • **
  • 113
  • 0
ผมต้องการตัวอย่างโค๊ด ครับ คือ ต้องการลบออร์เดอร์ทั้งหมด แต่ให้เรียงลำดับกำไรมาก มากำไรน้อยครับ
ผมลองหลายอย่างแล้วก็ยังไม่ได้เลยครับ รบกวนผู้รู้ หรือ admin ช่วยชี้แนะด้วยครับ

Share Topic.


*

ออฟไลน์ admin

  • *
  • 72,012
  • 2638

Re: รบกวนสอบถาม การเปรียบเทียบค่าหน่อยครับ

« ตอบกลับ #1 เมื่อ: 11, เมษายน 2019, 01:53:42 PM »
ลองทำตัวอย่าง code ที่ทำ มาให้ดูหน่อย ครับผม จะได้ช่วยแก้ให้
 (TH)**
"เอาชนะใจตัวเองให้ได้ ก่อนที่จะไปเอาชนะตลาด"

*

ออฟไลน์ gaothun

  • **
  • 113
  • 0

Re: รบกวนสอบถาม การเปรียบเทียบค่าหน่อยครับ

« ตอบกลับ #2 เมื่อ: 11, เมษายน 2019, 01:57:25 PM »
if(OpenOrders!=0 && AccountProfit()>=TargetProfit)
  {
   double show[20];
   double Or_Profit=0;
   double Profit=0;
   int ti_me=0;
   int x=0;
   cnt=0;
   while(cnt<OrdersTotal())
     {
         for(cnt=0;cnt<OrdersTotal();cnt++)   
           {
              result = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
                mode=OrderType();
              if (OrderSymbol()==Symbol() && (OrderMagicNumber()==Magic || OrderMagicNumber()==Magic+1))
              Or_Profit = OrderProfit();
              if(ti_me==cnt){show[cnt]=Or_Profit;ti_me++;}

           }
            if(show[cnt]>show[cnt+1]){Profit=show[cnt];}
            if(Profit==OrderProfit())
                 {
                           if(mode==OP_BUY){ Tic =  OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrIndigo);}
                           if(mode==OP_SELL){Tic =  OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrCrimson);}
                 }
         if(OrdersTotal()==0){x=1;}
     }
  }


ล่าสุดแก้ไปแก้มา เป็นแบบนี้แล้วครับ
« แก้ไขครั้งสุดท้าย: 11, เมษายน 2019, 01:59:41 PM โดย gaothun »

*

ออฟไลน์ iRuler

  • *
  • 1,268
  • 40

Re: รบกวนสอบถาม การเปรียบเทียบค่าหน่อยครับ

« ตอบกลับ #3 เมื่อ: 11, เมษายน 2019, 03:05:45 PM »
ลองแบบนี้นะครับ ยังไม่ได้เทส

โค๊ด
while(OrdersTotal()>0)
     {
      bool result;
      int ticket=-1;
      double profit=-9999999;

      for(int i=0;i<OrdersTotal();i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
              {
               if(OrderProfit()>profit)
                 {
                  ticket=OrderTicket();
                  profit=OrderProfit();
                 }
              }
           }
        }

      if(ticket>0)
        {
         if(OrderSelect(ticket,SELECT_BY_TICKET))
           {
            RefreshRates();
            if(OrderType()==OP_BUY)
               result=OrderClose(OrderTicket(),OrderLots(),Bid,3,clrNONE);
            if(OrderType()==OP_SELL)
               result=OrderClose(OrderTicket(),OrderLots(),Ask,3,clrNONE);
           }
        }
     }

*

ออฟไลน์ gaothun

  • **
  • 113
  • 0

Re: รบกวนสอบถาม การเปรียบเทียบค่าหน่อยครับ

« ตอบกลับ #4 เมื่อ: 11, เมษายน 2019, 03:18:35 PM »
ลองแบบนี้นะครับ ยังไม่ได้เทส

โค๊ด
while(OrdersTotal()>0)
     {
      bool result;
      int ticket=-1;
      double profit=-9999999;

      for(int i=0;i<OrdersTotal();i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
              {
               if(OrderProfit()>profit)
                 {
                  ticket=OrderTicket();
                  profit=OrderProfit();
                 }
              }
           }
        }

      if(ticket>0)
        {
         if(OrderSelect(ticket,SELECT_BY_TICKET))
           {
            RefreshRates();
            if(OrderType()==OP_BUY)
               result=OrderClose(OrderTicket(),OrderLots(),Bid,3,clrNONE);
            if(OrderType()==OP_SELL)
               result=OrderClose(OrderTicket(),OrderLots(),Ask,3,clrNONE);
           }
        }
     }
ขอบคุณท่านมากมากนะครับ แต่เบ็คเทสแล้วมันค้าง อ่ะ

*

ออฟไลน์ iRuler

  • *
  • 1,268
  • 40

Re: รบกวนสอบถาม การเปรียบเทียบค่าหน่อยครับ

« ตอบกลับ #5 เมื่อ: 11, เมษายน 2019, 08:21:54 PM »
ลองแบบนี้นะครับ

โค๊ด
bool result;
int ticket=;
double profit;

while(OrdersTotal()>0)
     {
      ticket=-1;
      profit=-9999999;

      for(int i=0;i<OrdersTotal();i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
           {
            if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
              {
               if(OrderProfit()>profit)
                 {
                  ticket=OrderTicket();
                  profit=OrderProfit();
                 }
              }
           }
        }

      if(ticket>0)
        {
         if(OrderSelect(ticket,SELECT_BY_TICKET))
           {
            RefreshRates();
            if(OrderType()==OP_BUY)
               result=OrderClose(OrderTicket(),OrderLots(),Bid,3,clrNONE);
            if(OrderType()==OP_SELL)
               result=OrderClose(OrderTicket(),OrderLots(),Ask,3,clrNONE);
           }
        }
     }

*

ออฟไลน์ gaothun

  • **
  • 113
  • 0

Re: รบกวนสอบถาม การเปรียบเทียบค่าหน่อยครับ

« ตอบกลับ #6 เมื่อ: 11, เมษายน 2019, 09:12:05 PM »
ขอบคุณท่านมากมากครับ เดี๋ยวผมไปต่อยอดเองนะครับ ขอสอบถามอีกเรื่องได้ไหมครับ คือว่า

          if (OpenOrders!=0)
          {
               for(cnt=1;cnt<=OpenOrders;cnt++)
               {
                  mylotsi=NormalizeDouble(LastLotsSell*1.44,2);
               }
          }

ผมต้องการให้เปิดล็อตโดยเบิ้ล * 1.44  แต่ว่ามันออก 0.01 ตลอดเลยครับ

*

ออฟไลน์ iRuler

  • *
  • 1,268
  • 40

Re: รบกวนสอบถาม การเปรียบเทียบค่าหน่อยครับ

« ตอบกลับ #7 เมื่อ: 12, เมษายน 2019, 05:49:18 AM »
ดูแค่นี้ไม่รู้ ต้องดูโค้ดทั้งหมดครับ
 (TH)**

Tags: