Arbitraj stratejileri kullanarak bir komisyoncudan para çeken var mı? - sayfa 15

 

arbitrajcılar genellikle doğaları gereği basittir, güçleri hızlıdır ve orada çok az mantık vardır.

örneğin, tüm arbitrajcı, bir bacak, ikincisi aynıdır, ancak tam tersi.

 void OnTick ()
  {
//---
   if (IsTradeAllowed()== false ) return ;
   double LastLot= 0 ;
   while (! IsStopped ())
   {
       if (IsTradeAllowed()== false ) return ;
       if (AccountFreeMargin()/AccountBalance()< 0.3 )
      {
         Sleep ( 1000 );
         continue ;
      }
       //double randB=(MathRand()/32768.0);
       //Percent=iATR(NULL,1,14,0)/100;
       //if(Percent<0.004)Percent=0.004; NMCUSD = NMCBTC/BTCUSD
       //Ask_Buy=Ask_LTCUSD/Bid_LTCBTC;
       //Ask_LTCUSD=Ask_Buy*Bid_LTCBTC
       double Bid_LTCBTC=MarketInfo( "LTCBTC" ,MODE_BID); //-0.005*MarketInfo("LTCBTC",MODE_BID);
       double Ask_BTCUSD=MarketInfo( "BTCUSD" ,MODE_ASK); //-0.005*MarketInfo("BTCUSD",MODE_BID);
       double Ask_LTCBTC=MarketInfo( "LTCBTC" ,MODE_ASK); //+0.005*MarketInfo("LTCBTC",MODE_ASK);
       double Bid_BTCUSD=MarketInfo( "BTCUSD" ,MODE_BID); //+0.005*MarketInfo("BTCUSD",MODE_ASK);
      LotDepo=(AccountBalance()* 0.001 )*Bid_BTCUSD*PercentDepo;
       double     Ask_Buy=Bid_BTCUSD*Bid_LTCBTC;
       double     Bid_Sell=Ask_BTCUSD*Ask_LTCBTC;
       double StepB=Ask_Buy-(Ask_Buy*Percent);
       //double randS=(MathRand()/32768.0);
       double StepS=Bid_Sell+(Bid_Sell*Percent);
       Comment (StepS, " " ,Bid_BTCUSD, " " ,Bid_LTCBTC);
      RefreshRates();
       //WindowRedraw();
       //Comment(GetTickCount()," ",StepB, " ",StepS, "Bid: ",Bid," Ask: ",Ask);
       int tSL= 0 ,tBL= 0 ;
       for ( int i= OrdersTotal ()- 1 ;i>= 0 ;i--)
      {
         if ( OrderSelect (i,SELECT_BY_POS)&&OrderMagicNumber()==magik)
         {
             int cmd=OrderType();
             if (cmd==OP_SELLLIMIT)
            {
               tSL++;
               tick=OrderTicket();
               //OrderDelete(OrderTicket());
               if ( MathAbs ( NormalizeDouble (OrderOpenPrice(), Digits )- NormalizeDouble (StepS, Digits ))> 0.000001 )
               {
                   if (StepS<Bid)
                     OrderModify(OrderTicket(), NormalizeDouble (Bid, Digits ), 0 , 0 , 0 );
                   else
                     OrderModify(OrderTicket(), NormalizeDouble (StepS, Digits ), 0 , 0 , 0 );
                   //Print(GetLastError());
               }
               if (LastLot>OrderLots())
               {
                   if (OrderDelete(OrderTicket()))
                  LastLot=LastLot-OrderLots();
               }
            }
         }
      }
       if (tSL== 0 )
      {
         if (StepS<Bid)
         {
             if (LastLot>=MarketInfo( "LTCBTC" ,MODE_MINLOT))
            {
               OrderSend ( "LTCBTC" ,OP_BUY,LastLot, NormalizeDouble (MarketInfo( "LTCBTC" ,MODE_ASK), int (MarketInfo( "LTCBTC" ,MODE_DIGITS))), 200000 , 0 , 0 , NULL ,magik, 0 );
               OrderSend ( "BTCUSD" ,OP_BUY,NL( "BTCUSD" ,LastLot*MarketInfo( "LTCBTC" ,MODE_ASK)), NormalizeDouble (MarketInfo( "BTCUSD" ,MODE_ASK), int (MarketInfo( "BTCUSD" ,MODE_DIGITS))), 200000 , 0 , 0 , NULL ,magik, 0 );
            }
            Lot= /*LotDepo;*/ NL( Symbol (),LotDepo/Bid);
             OrderSend ( Symbol (),OP_SELLLIMIT,Lot, NormalizeDouble (Bid, Digits ), 200000 , 0 , 0 , NULL ,magik, 0 );
            LastLot=Lot;
         }
         else
         {
             if (LastLot>=MarketInfo( "LTCBTC" ,MODE_MINLOT))
            {
               OrderSend ( "LTCBTC" ,OP_BUY,LastLot, NormalizeDouble (MarketInfo( "LTCBTC" ,MODE_ASK), int (MarketInfo( "LTCBTC" ,MODE_DIGITS))), 200000 , 0 , 0 , NULL ,magik, 0 );
               OrderSend ( "BTCUSD" ,OP_BUY,NL( "BTCUSD" ,LastLot*MarketInfo( "LTCBTC" ,MODE_ASK)), NormalizeDouble (MarketInfo( "BTCUSD" ,MODE_ASK), int (MarketInfo( "BTCUSD" ,MODE_DIGITS))), 200000 , 0 , 0 , NULL ,magik, 0 );
            }
            Lot= /*LotDepo;*/ NL( Symbol (),LotDepo/StepS);
             OrderSend ( Symbol (),OP_SELLLIMIT,Lot, NormalizeDouble (StepS, Digits ), 200000 , 0 , 0 , NULL ,magik, 0 );
            LastLot=Lot;
         }
      }
       Sleep ( 1 );
   }
     }
 
Alexandr Bryzgalov :

"daha kolay" hale getirildi, çevrimdışı bir dağılım tablosu oluşturuldu ve üzerinde komut dosyaları başlatıldı, kolaylık, tüm verilerin hazır olması ve göstergelerin hesaplanmasıdır

Yayılmanın ortalama değerini bulmak için basit bir lapa veya bolinger kullanıldı

arbitraj komut dosyasının kendisi bu çizelgede başlatıldı, böyle bir şema komut dosyasını önemli ölçüde hızlandırır.

ortalama değer hızlı değişmedi, bu yüzden yatay çizgilerden vardiya girişini yaptım

Daha önce benzer bir şey yaptı. Tiki bir dosyaya yazdı. Basit bir gösterge + gösterge test cihazı kullanılarak dosyadan çevrimdışı bir onay/yayılma grafiği oluşturuldu ve böyle bir resim üretildi

Kırmızı - kar. Yeşil/sarı - uzun/kısa. beyaz çizgi roman

 
Bazı nedenlerden dolayı, komisyoncular TOP hesap derecelendirmelerinde arbitrajcılar görmediler ve en azından aboneleri otomatik kopyalama hizmetlerinde ek kâr için yetiştirerek onlardan bir komisyonu kaldırabilirlerdi. Ya da basitçe bunun tahkim olduğunu belirleyemedi. Temel olarak, bunlar çok uzun ömürlü martingaller değil, ancak bir yıl boyunca zirvede olan istisnalar var.