Vadeli işlem ticareti Bid veya Ask'ta değil, Son fiyattan açılır. Bu iyi? - sayfa 2

 

Roman ve Alexey Viktorov , yardımınız için teşekkürler.

Anlaşmayı açtıktan sonra, gerçek ve hesaplanmış TP ve SL mesafelerinin eşleşip eşleşmediğini kontrol etmeye karar verdim. Ve eşleşmezlerse, onları OnTrade() işlevinde sıfırlamaya çalışırım. Sonuç olarak, gerçek açılış fiyatı ile TP ve SL fiyatları arasındaki mesafeler doğru hale geliyor. Tek sürpriz, bu tür kaymaların bu cihazda norm olmasıdır. Kod, neredeyse her işlem açıldığında tetiklenir.

 //+------------------------------------------------------------------+
//|                          OnTrade()                               |
//+------------------------------------------------------------------+
void OnTrade ()
  {
   if ( HistoryDealSelect (last_trade_ticket))
     {
       // сделка выделилась успешно
       ulong pos_id = HistoryDealGetInteger (last_trade_ticket, DEAL_POSITION_ID );
       // идентификатор позиции сохранён
       if ( HistorySelectByPosition (pos_id) && HistoryDealsTotal () == 1 )
        {
         // история позиции сформирована
         // позиция состоит из одной сделки
         if ( PositionSelectByTicket (pos_id))
           {
             // позиция выделена
             string symbol = PositionGetString ( POSITION_SYMBOL );
             double pos_op = PositionGetDouble ( POSITION_PRICE_OPEN );
             double pos_tp = NormalizeDouble ( PositionGetDouble ( POSITION_TP ), _Digits );
             double pos_sl = NormalizeDouble ( PositionGetDouble ( POSITION_SL ), _Digits );
             long pos_type = PositionGetInteger ( POSITION_TYPE );
             long pos_mag = PositionGetInteger ( POSITION_MAGIC );
             // параметры позиции получены
             int tp = int ( GlobalVariableGet (global_tp));
             int sl = int ( GlobalVariableGet (global_sl));
             double calc_tp_price = 0 ;
             double calc_sl_price = 0 ;
             if (pos_type == POSITION_TYPE_BUY )
              {
               // покупка
               // расчёт корректных тп и сл
               if (tp > 0 )
                  calc_tp_price = NormalizeDouble (pos_op + tp * _Point , _Digits );
               if (sl > 0 )
                  calc_sl_price = NormalizeDouble (pos_op - sl * _Point , _Digits );
              }
             if (pos_type == POSITION_TYPE_SELL )
              {
               // продажа
               // расчёт корректных тп и сл
               if (tp > 0 )
                  calc_tp_price = NormalizeDouble (pos_op - tp * _Point , _Digits );
               if (sl > 0 )
                  calc_sl_price = NormalizeDouble (pos_op + sl * _Point , _Digits );
              }
             if (pos_tp != calc_tp_price || pos_sl != calc_sl_price)
              {
               // обнаружен факт проскальзывания
               // исправить тейк и стоп
               MqlTradeRequest request;
               MqlTradeResult result;
               ZeroMemory (request);
               ZeroMemory (result);
               request.action = TRADE_ACTION_SLTP ;
               request.position = pos_id;
               request.symbol = symbol;
               request.magic = pos_mag;
               request.tp = calc_tp_price;
               request.sl = calc_sl_price;
               if (! OrderSend (request, result) || result.retcode != TRADE_RETCODE_DONE )
                   Print ( "Ticket:" , pos_id, " Error: " , ResultRetcode(result));
              }
           }
        }
     }
   last_trade_ticket = 0 ;
  }
//+------------------------------------------------------------------+
 
Kısmi konu. Teşekkürler ve silmeyin. Arbitrajı denediğimde, cevapları burada olan birçok soru çıktı.
 
Oleg Remizov :

Roman ve Alexey Viktorov , yardımınız için teşekkürler.

Anlaşmayı açtıktan sonra, gerçek ve hesaplanmış TP ve SL mesafelerinin eşleşip eşleşmediğini kontrol etmeye karar verdim. Ve eşleşmezlerse, onları OnTrade() işlevinde sıfırlamaya çalışırım. Sonuç olarak, gerçek açılış fiyatı ile TP ve SL fiyatları arasındaki mesafeler doğru hale geliyor. Tek sürpriz, bu tür kaymaların bu cihazda norm olmasıdır. Kod, neredeyse her işlem açıldığında tetiklenir.

Piyasaya göre değil, limit emri ile bir anlaşma yapmaya çalışın, ancak satın alırken en iyi Satış fiyatını veya satış yaparken en iyi Teklifi belirtin. Emir, bu süre içinde Satış veya Teklif değişikliği olmadıkça, belirtilen fiyattan derhal gerçekleştirilmelidir.

 
Vitalii Ananev :

Piyasaya göre değil, limit emriyle anlaşma yapmaya çalışın, ancak satın alırken en iyi Satış fiyatını veya satış yaparken en iyi Teklifi belirtin. Emir, bu süre içinde Satış veya Teklif değişikliği olmadıkça, belirtilen fiyattan derhal gerçekleştirilmelidir.

Limitler iyi uygulanmış. Hatta bazen uygulamada olduğundan daha iyi bir fiyata.

 
Oleg Remizov :

.... Hatta bazen uygulamada olduğundan daha iyi bir fiyata.

Yani fiyatlar değişti.

Size bir hayat hilesi anlatacağım :) Piyasa emri ile açar gibi limit emir ile pozisyon açabilirsiniz ama aynı zamanda kayma miktarını da ayarlayabilirsiniz. Forex yatırımcıları, Alış fiyatının altında limitli alış emirleri vermeye alışkındır. Ve satış limitleri Satış fiyatından daha yüksektir. Borsada, Alış fiyatı ve daha yüksek bir fiyattan satın almak için bir limit emri verebilirsiniz. Bu durumda, en yakın en iyi fiyattan hemen gerçekleştirilecektir. Örneğin, bir bardakta Satış fiyatı 5,8,10,20,35'tir. 10 fiyatından alış için limit emri göndermeniz 5 fiyatından işlem başlatır. Emriniz borsaya giderken fiyat değişmişse ve en iyi fiyat 20 fiyat ise emriniz gerçekleşmez, ancak sipariş defterinde 10 fiyatla görünecek. Bu nedenle olası kayma miktarını sınırladık.

 
Vitalii Ananev :

Yani fiyatlar değişti.

Size bir hayat hilesi anlatacağım :) Piyasa emri ile açar gibi limit emir ile pozisyon açabilirsiniz ama aynı zamanda kayma miktarını da ayarlayabilirsiniz. Forex yatırımcıları, Alış fiyatının altında limitli alış emirleri vermeye alışkındır. Ve satış limitleri Satış fiyatından daha yüksektir. Borsada, Alış fiyatı ve daha yüksek bir fiyattan satın almak için bir limit emri verebilirsiniz. Bu durumda, en yakın en iyi fiyattan hemen gerçekleştirilecektir. Örneğin, bir bardakta Satış fiyatı 5,8,10,20,35'tir. 10 fiyatından alış için limit emri göndermeniz 5 fiyatından işlem başlatır. Emriniz borsaya giderken fiyat değişmişse ve en iyi fiyat 20 fiyat ise emriniz gerçekleşmez, ancak sipariş defterinde 10 fiyatla görünecek. Bu nedenle olası kayma miktarını sınırladık.

Bu bir yaşam kesmek değil, değişim yürütme ilkesidir. ))
Bu yüzden daha önce Oleg'e değişim emirlerinin nasıl çalıştığını anlamasını söyledim.
Çalışmalarının prensibini anlayarak, işlemlerinizin kalitesini bir büyüklük sırasına göre artırabilirsiniz.

Ve işte Quik'te çalışanlar için bir cankurtaran.
Quik'te gün içinde bir enstrüman için çok yönlü pozisyonlar açabilirsiniz.
İşte bir hayat kesmek))
 
Roman :

Bu bir yaşam kesmek değil, değişim yürütme ilkesidir. ))
Bu yüzden daha önce Oleg'e değişim emirlerinin nasıl çalıştığını anlamasını söyledim.
Çalışmalarının prensibini anlayarak, işlemlerinizin kalitesini bir büyüklük sırasına göre artırabilirsiniz.

Ve işte Quik'te çalışanlar için bir cankurtaran.
Quik'te gün içinde bir enstrüman için çok yönlü pozisyonlar açabilirsiniz.
İşte bir hayat kesmek))

Bu yüzden, bir hayat hack hakkında bir şaka olarak sonunda bir gülen yüz yazdım.

Ancak Quick'teki çok yönlü konumları bilmiyordum. Borsa buna izin veriyor mu?

 
Vitalii Ananev :

Bu yüzden, bir hayat hack hakkında bir şaka olarak sonunda bir gülen yüz yazdım.

Ancak Quick'teki çok yönlü konumları bilmiyordum. Borsa buna izin veriyor mu?

Bunu yapmanıza kimin izin verdiğini bilmiyorum)) Exchange veya Hızlı sunucular.
Çift yönlü pozisyonlar ana takasa kadar tutulabilir, takasta eşit hacimde kapatılacaktır.
Yani 2 uzun, 1 kısa ise, temizledikten sonra 1 uzun kalacaktır.
Aslında, bir gün içinde, kaybı varyasyonla düzeltebilirsiniz, ancak bunun farkında değilsiniz ve bir geri tepme bekliyorsanız, kaybı azaltın.
Ve eğer bir geri dönüş varsa, o zaman anlaşmayı artıya dönüştürebilirsiniz. Genel olarak, yetenekli ellerde alet uygundur.

 
Roman :

Bunu yapmanıza kimin izin verdiğini bilmiyorum)) Exchange veya Hızlı sunucular.
Çift yönlü pozisyonlar ana takasa kadar tutulabilir, takasta eşit hacimde kapatılacaktır.
Yani 2 uzun, 1 kısa ise, temizledikten sonra 1 uzun kalacaktır.
Aslında, bir gün içinde, kaybı varyasyonla düzeltebilirsiniz, ancak bunun farkında değilsiniz ve bir geri tepme bekliyorsanız, kaybı azaltın.
Ve eğer bir geri dönüş varsa, o zaman anlaşmayı artıya dönüştürebilirsiniz. Genel olarak, yetenekli ellerde alet uygundur.

Açık. Gün içi ticaret yapmıyorum, sadece uzun ve uzun bir süre için.

 
Oleg Remizov :

Ticaret aracı özellikleri:

Hangi platformda işlem görüyor?