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

ระบบ Triangle Arbitrage เทคนิคการเทรด Forex Arbitrage การ Headging 3 คู่เงิน พร้อมแจก EA

  • 2 replies
  • 4,975 views
   ระบบ Triangle Arbitrage เทคนิคการเทรด Forex Arbitrage การ Headging 3 คู่เงิน พร้อมแจก  EA


  Arbitrage คือ การ ทำกำไรจากสินค้าชนิดเดียวกันใน 2 ตลาด ซึ่งราคาของสินค้านั้นใน2 ตลาดจะต่างกันอยู่นิดหน่อย คล้ายๆกับว่า เราซื้อของจากตลาดค้าส่ง มาขายที่ตลาดค้าปลีก เราก็จะได้กำไรจากส่วนต่างราคา ถ้าเรามีทุนมาก ก็จะสามารถทำกำไรได้มาก ซึ่งการทำกำไรแบบนี้ เรียกว่าไม่มีความเสี่ยง หรือความเสี่ยงน้อยมาก

ตัวอย่างเช่น ถ้าเรารู้ว่า ร้านทอง A ขายทองในราคา บาทละ20,000 บาท และเรารู้ว่าร้านทอง B รับซื้อทองที่ราคา บาทละ20,100บ. เราจึงทำการนำเงิน 100,000 บ. ไปซื้อทองแท่งจากร้าน A มา5บาท และนำไปขายที่ร้าน B เราจะขายได้เงินมา 100,500 บ. และได้ส่วนต่างกำไรของ2ร้าน คือ 500 บ. นี่คือกำไรที่เราได้จากการ ทำกำไรจากสินค้าชนิดเดียวกันใน 2 ตลาด

     แต่ในความเป็นจริง จะหาโอกาสแบบนี้ได้ยากมาก เพราะร้านทอง ก็จะมีค่ากำเหน็จ ค่าส่วนต่างราคาซื้อ ราคาขาย ซึ่งเปลี่ยนแปลงตลอดเวลา ยิ่งถ้าเป็นร้านทองในประเทศไทย ราคาก็จะอ้างอิงจากราคากลางสมาคมค้าทองคำ ราคาแต่ละร้าน ก็แทบจะไม่แตกต่างกัน แต่เราอาจจะทำกำไร จากราคาทองจากตลาดที่อยู่ห่างไกลกันมาก ๆได้ เช่นที่ ญี่ปุ่น กับตลาดไทย หรือตลาดลอนดอนก็ได้ แต่ก็คงไม่คุ้มค่าเดินทาง

แต่ในตลาด Forex เทคนิคการทำ Arbitrage มีหลากหลายวิธี เราจะลองเอามาดูกันบางวิธีดังนี้

วิธีที่1 การทำ Arbitrage โดยช่องว่าง ความเร็วของราคาของ 2 broker

หลายๆท่านอาจจะใช้เทคนิคนี้กันมาบ้าง โดย Liquidity Provider บางเจ้า กราฟก็จะเร็วกว่า Broker ที่ไปซื้อราคากราฟมา ถ้าเราเจอ Broker นี้ แต่ก็จะติดปัญหาเรื่อง Spread ทำให้หาช่องทางทำกำไรยากขึ้น แต่ถ้าเราเข้า Trade ช่วงข่าว ราคาก็จะกระโดดข้าม Spread ไปได้ แต่ถ้า Broker ตรวจพบว่าเราใช้วิธีนี้ Account เราอาจจะโดนแบนได้ หรืออาจจะไม่สามารถถอนเงินได้ เพราะ Broker ก็ต้องป้องกันตัวเองสุดฤทธิ์เช่นกัน

วิธีที่2 การทำ Arbitrage จากช่องว่างของดอกเบี้ย Swap ข้ามคืน

หลายๆคนอาจจะรู้จักในชื่อ การ Carry Trade คือการหา Broker 2 Broker โดย Broker หนึ่ง Swap เป็นบวก และอีก Broker Swap เป็น 0 ซึ่งเราจะ Trade ในคู่เงินเดียวกันแต่เล่นตรงกันข้าม เช่น Broker A ถ้า Sell Gold Swap จะเป็น บวก ส่วน Broker B ถ้า Buy Gold Swap จะเป็น 0 เหมือนเป็นการ Hedging ข้าม Broker ดูเหมือนจะไม่ได้กำไร แต่ในความเป็นจริงแล้ว เราสามารถได้กำไรจากค่า Swap ข้ามคืน จาก Broker ที่ Swap เป็นบวก ยิ่งคืนวันพุธได้ Swap 3 เท่า แต่ปัญหาคือ เราต้อง Re Balance Port คือ เอาเงินจากพอร์ตที่กำไร มาเติมให้ฝั่งที่ขาดทุน เพื่อประคองให้พอร์ตยังอยู่ได้ เราก็จะสามารถเก็บค่า Swap ไปได้เรื่อย ๆ  นานเท่าไหร่ก็ได้ โดยที่แทบไม่มีความเสี่ยงเลย

วิธีที่3 การทำ Arbitrage Triangular

ก็คือการ Hedging 3 คู่เงิน หรือการแลกเปลี่ยนเงินตรา 3 ค่า แล้วได้กำไรจากส่วนต่างของราคา เช่น นำเงิน USD  ไปแลก EUR  แล้วนำเงิน EUR ไปแลกเงิน GBP สุดท้ายนำ GBP กลับไปแลก USD

USD -> EUR -> GBP -> USD

ซึ่ง Rate การแลกเปลี่ยนของแต่ละคู่เงิน จะไม่เท่ากัน ในบางครั้ง จะสามารถทำกำไรจาก Rate ตรงนี้ได้

คู่เงินที่สามารถทำ Arbitrage กันได้ เช่น

Buy AUDUSD       
Sell AUDJPY         
Buy USDJPY       

หรือ

Sell AUDUSD
Buy AUDJPY
Sell USDJPY

Buy USDCAD
Sell USDJPY
Buy CADJPY

Buy EURUSD
Sell EURJPY
Buy USDJPY

Buy USDCHF
Sell USDJPY
Buy CHFJPY

Sell EURNZD
Buy EURUSD
Sell NZDUSD


เป็นต้น หรืออาจจะมีบางคนทำมากกว่า 3 คู่เงินก็ได้

ข้อควรระวัง ในการ ทำ Arbitrage คือ Broker ส่วนใหญ่จะไม่อนุญาตให้เราทำ ควรศึกษาให้ดี

วันนี้เรามีตัวอย่าง Source EA การทำ Arbitrage Triangle ซึ่งเราจะใส่กี่คู่เงินก็ได้ เลือก Buy  หรือ Sell คู่ไหนก็ได้ และใส่ Lot เท่าไหร่ก็ได้

แต่การทำงานของ EA อาจจะยังไม่สมบูรณ์ตรงที่ว่า

1. ยังไม่รู้ว่าเวลาไหนควรเข้า Order Arbitrage ชุดไหน
2. เมื่อ ผลรวม Profit ของArbitrage เป็นลบ ต้องแก้ไขอย่างไร

ใครที่ลองนำไปใช้แล้ว มีไอเดียปรับปรุง เพื่อให้นำไปใช้งานจริงได้ ก็ลองเสนอไอเดียมาได้ใน Comment เลยนะครับ เผื่อว่าเพื่อนๆคนอื่น ๆ ได้เห็นแนวทางปรับปรุงด้วยครับ

Source EA ตัวนี้สามารถนำไปใช้ทำ Correlation ก็ได้ครับ

โค๊ด [Select]

//+------------------------------------------------------------------+
//|                                          multi-correlationV1.mq4 |
//|                               Copyright 2019, Pok Software Corp. |
//|                              http://www.facebook.com/anubanforex |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, Pok Software Corp."
#property link      "http://www.facebook.com/anubanforex"
#property version   "1.00"
#property strict

string BotName = " multi-correlation ";
extern int        MagicNumber    = 53098;      //
extern int        MaxSlippage    = 3;

//extern string     SymbolMulti    = "NZDJPY,AUDUSD,USDJPY,CHFJPY,EURUSD,EURCHF,GBPCHF,USDCHF,EURGBP,GBPUSD,NZDUSD,EURJPY,GBPJPY,AUDJPY";
//extern string     LotMulti       = "0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02";
extern string     SymbolMulti    = "AUDUSD,USDJPY,EURUSD,NZDUSD,EURJPY";
extern string     LotMulti       = "0.02,0.02,0.02,0.02,0.02";
extern string     BUY0SELL1      = "0,0,1,0,0";
extern double     DollarTP       = 3.0;      //
extern bool       RunEA          = false;   

string symbArray[];
string lotArray[];
string Buy0Sell1Array[];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
      if(RunEA == true)
      {
     
            int sizesymb = splitStr2Array(SymbolMulti,",",symbArray);
            int sizelot = splitStr2Array(LotMulti,",",lotArray);
            int sizeBS = splitStr2Array(BUY0SELL1,",",Buy0Sell1Array);
           

           
           OrderOpen();     
      }
           
       
      CheckProfit(MagicNumber); 
//---
   
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
void OrderOpen()
{
   int ticket;
   string comment;
   
   
      if(CountTrades(MagicNumber) == 0)
      {
         for(int i=0;i<ArraySize(symbArray);i++)
         {
           
            comment = StringConcatenate(BotName,"::",Buy0Sell1Array[i]," ",symbArray[i]," ",lotArray[i]," Lot.");
            //Print(comment);

            ticket =OpenOrder((int)Buy0Sell1Array[i],symbArray[i],(double)lotArray[i],comment,MagicNumber);

         }   
      }

           
}
//+------------------------------------------------------------------+
int OpenOrder(int iBuySell,string iSymbol,double iLot,string iComment,int magic)
{
   int ticket;
   int BIDASK=0;
   
         
         if(iBuySell == OP_BUY) BIDASK = MODE_ASK;
         if(iBuySell == OP_SELL) BIDASK = MODE_BID;
         
         do
         {
            ticket=OrderSend(iSymbol,iBuySell,iLot,MarketInfo(iSymbol,BIDASK),MaxSlippage,0,0,iComment,magic,0,clrGreen);         
            //if(ticket < 0  )Print(iComment," OrderSend failed with error #",GetLastError());
         }while ( ticket < 0 );
         
   return (ticket);
}
//+------------------------------------------------------------------+
void CheckProfit(int magic)
{
   double profit=0.0;

//---
   
  if(CountTrades(magic) == 0) return;
   
  int total=OrdersTotal();
  // write open orders
  for(int pos=0;pos<total;pos++)
    {
     if(OrderSelect(pos,SELECT_BY_POS)==false) continue;
         if(OrderMagicNumber() == magic )
         {
            profit = profit + OrderProfit()+OrderSwap();
         }
         
    }

    Print("profit=",profit);
    if(profit >= DollarTP)
    {
         TakeProfit(magic);
         Sleep(60*60*60);
    }
   
   
   }
//+------------------------------------------------------------------+
bool TakeProfit(int magic)
{
   bool ticketBUY;
   bool ticketSELL;
   

      for (int trade = OrdersTotal()-1 ; trade >=0 ; trade--)
      {
          ticketBUY = false;
          ticketSELL = false;
         

         if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber() == magic)
         {
            switch(OrderType())
            {
               case OP_BUY       :
               {
                  while(!ticketBUY)
                  {
                     ticketBUY = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),MaxSlippage,Violet);
                     
                  }
               }break;                 
               case OP_SELL      :
               {
                  while(!ticketSELL)
                  {
                     ticketSELL = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),MaxSlippage,Violet);

                  }
               }break;
            }             
         

          }
      }

      return (true);
}
//+-----------------------------------------------------------------------+

int CountTrades(int magic) {
   int count = 0;

   
   for (int trade = OrdersTotal() - 1; trade >= 0; trade--) {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber() == magic){
         if (OrderType() == OP_SELL || OrderType() == OP_BUY) count++;
      }
   }


   return (count);
}


//+------------------------------------------------------------------+
int splitStr2Array(string str,string sep,string &Arrayref[])
{
 
      ushort u_sep; 
      u_sep=StringGetCharacter(sep,0);


      int  k1 = StringSplit(str,u_sep,Arrayref);

      if(k1>0)
      {
            return( k1);
      }
      return(0);   
}


//+------------------------------------------------------------------+



*

Torageat

Re: Arbitrage พร้อมแจก EA
« ตอบกลับ #1 เมื่อ: 15, สิงหาคม 2019, 03:27:04 PM »
ดีเลยครับ มีสอนวิธีด้วย




gclub

*

admin

  • 80,574
ระบบเทรดนี้เหมาะกับ โบรกเกอร์ No Swap นะครับเนื่องจาก ว่า ต้องใช้ เวลา เฮดกัน นานมากกว่าจะมาบวกได้
ถ้า ไม่ Noi Swap จะ ติดลบ Swap เยอะและบวกช้า ครับ
(TH)**
"เอาชนะใจตัวเองให้ได้ ก่อนที่จะไปเอาชนะตลาด"