Test cihazında temizleme - sayfa 4

 
Roman Shiredchenko # :

Takas sırasındaki silmeler göz ardı edilebilir.

Misal. 50 fiyattan alış anlaşması açılır, takas başlangıcında fiyat 70'dir. Takas sırasında anlaşmanız silinir ve size 20 tugrik yatırılır, takastan sonra anlaşmanız açılır. 70 fiyatına.

100'lük bir fiyatla kapatırsanız, sonuç olarak terminal, 50 tugrik kârlı bir işlem gösterecektir.

Sorun genellikle bir trol veya BU yazarken ortaya çıkar. Diyelim ki anlaşma 15+ olduğunda BU'yu +5'e koymak istiyoruz.

Daha sonra örnekten rakamları alırsak, takas öncesi stop kaybımız +5 puan, temizledikten sonra ise -5 puan olacağı ortaya çıkacaktır. Ancak anlaşma sonunda bir durakla kapatılırsa, yine de 5 tugrik plus'ımızı alacağız.

Bu nedenle, test cihazında temizleme göz ardı edilebilir.

 
Aleksandr Slavskii # :

Gerçekten basit ve en önemlisi güvenilir.


Offtopik konusunun yazarını bağışlayın, ama belki de temizlemenin ne zaman sona erdiğini belirlemek için bir tarifiniz var mı?

Sorun şudur: komisyoncu bir açıcıdır, takas sırasında bekleyen emirleri siler ve takas alanı onları yenisine yerleştirmez.

Vadeli işlemlerde nasıl bilmiyorum ama hisse senetlerinde takas farklı zamanlarda biter.

Bu nedenle, programlı olarak, belirli bir makale için temizleme bitiş anını belirleyemedim.

Açılana kadar bir zamanlayıcıya sipariş vermek için aptalca bir sipariş gönderiyorum.

Bu yaklaşımı sevmiyorum, ama başka yok.

Evet, her şey yolunda - birlikte tartışın ve tartışın - konu herkese açık !!!!!
 
Aleksandr Slavskii # :

Takas sırasındaki silmeler göz ardı edilebilir.

Misal. 50 fiyattan alış anlaşması açılır, takas başlangıcında fiyat 70'dir. Takas sırasında anlaşmanız silinir ve size 20 tugrik yatırılır, takastan sonra anlaşmanız açılır. 70 fiyatına.

100'lük bir fiyatla kapatırsanız, sonuç olarak terminal, 50 tugrik kârlı bir işlem gösterecektir.

Sorun genellikle bir trol veya BU yazarken ortaya çıkar. Diyelim ki anlaşma 15+ olduğunda BU'yu +5'e koymak istiyoruz.

Daha sonra örnekten rakamları alırsak, takas öncesi stop kaybımız +5 puan, temizledikten sonra ise -5 puan olacağı ortaya çıkacaktır. Ancak anlaşma sonunda bir durakla kapatılırsa, yine de 5 tugrik plus'ımızı alacağız.

Bu nedenle, test cihazında temizleme göz ardı edilebilir.

Ö! ne kadar ilginç ... daha derine inip denemek gerekecek! :-)

Yazdım (makaleden alınmıştır) çıkış işlevi tarihe göre işlemlerden saymaktır, aslında (duruşu artıdadır) - ardışık bir eksi kabul ediyoruz ve ekranda gösteriyoruz - HESAP temizlemek gibi, olabilir müzayede sırasında tamamen doğru değil - sadece bakıyorum ...

Sonuç olarak, örneğin bir pozisyonu TAMAMEN kapatmak için, önceki takası dikkate alarak, negatif ise, o zaman kapalı kârın değerlerini ve önceki takas zararını karşılaştırmak gerekir.

 //+------------------------------------------------------------------+
//|                 УЧЕТ КЛИРИНГА
//+------------------------------------------------------------------+
double Calc_Clearing() // вычисление лота
  {
   bool ord;
   double TotalLot= 0 ;
     for ( int i= HistoryDealsTotal ()- 1 ; i>= 0 ; i--)
     {
       ulong ticket= HistoryDealGetTicket (i);
      ord= HistoryDealSelect (ticket);
       if (ord && HistoryDealGetString (ticket, DEAL_SYMBOL ) == _Symbol
       //  && HistoryDealGetInteger(ticket,DEAL_MAGIC) == MagicC
         && HistoryDealGetInteger (ticket, DEAL_ENTRY ) == DEAL_ENTRY_OUT )
        {
         if ( HistoryDealGetDouble (ticket, DEAL_PROFIT ) <= 0 )
           {
            TotalLot+= HistoryDealGetDouble (ticket, DEAL_VOLUME );
           }
         else
           {
             break ;
           }
        }
     }
   return TotalLot == 0 ? TotalLot: TotalLot;
  }

bir hata buldu - düzeltme:

TotalLot+= HistoryDealGetDouble (ticket, DEAL_PROFIT );

sonuç olarak, eklemeden önce ekranın üst kısmındaki bir resim:

   Comment ( " SPREAD текущий по символу " , _Symbol , " составляет: " , SymbolInfoInteger ( _Symbol , SYMBOL_SPREAD ),
     "      СВЕРКА по клирингу:  " , NormalizeDouble (Calc_Clearing(), 0 ));

mutabakatı temizlemek

çünkü henüz takas kaybı olmadı:

11/09/2021: hepsi "dışarıda" - artı olarak:


 
Roman Shiredchenko # :

Korku! Yorum yapmak için çok fazla yanlış şey var.

Farklı yapalım.

Bir pozisyonla ilgileniyorsanız neden bir işlem geçmişine ihtiyacınız var?

IMHO, her yeni anlaşma için bir değişkendeki son pozisyonun fiyatını kaydetmek yeterlidir ve takas geldiğinde, takastan önce değişkende kaydedilen fiyat ile son tik fiyatı arasındaki fark için BU'yu ayarlayın.

Misal:

parti = 1;

çift end_position=0;

fiyat 30'dan ilk işlem, end_position = 30;

bir fiyata ikinci anlaşma   60, end_position = 45;

bir fiyata üçüncü anlaşma   90, end_position = 60;


Yani, 3 hacimli 60 fiyatta bir pozisyonunuz var.

Farz edelim ki fiyat 70 iken takas geldi, kâr 30 tugrik.

çift takas_fiyatı = 70;

Temizledikten sonra 70 fiyatından bir pozisyon açacaksınız, ancak bu pozisyonun gerçek fiyatının olduğunu hatırlıyoruz.   end_position == 60; buna göre, bu fiyattan trol veya BU hesaplanmalıdır.

Buna göre, temizleme sırasında değişkeni doldurun

çift   düzeltici = 0 ;

düzeltici=   clearing_price - end_position;

Diyelim ki anlaşma sırasıyla +20 puan olduğunda eski bir BU'nuz var, BU işlevine BU'nun başlangıcının eşit olduğunu ekleyin: 20 - düzeltici;

Ayrıca BU, bir artı olarak birçok puan konur, ayrıca düzeltici değeri için ayarlanması gerekir.

Herhangi bir konum düzelticiyi kapattıktan sonra = 0 ;


Ancak bu, yalnızca temizlemeden sonra kısmi kapanmalar veya yüklemeler olmadığında işe yarar. Eğer öyleyse, o zaman farklı olması gerekir.

 
Aleksandr Slavskii # :

Gerçekten basit ve en önemlisi güvenilir.


Offtopik konusunun yazarını bağışlayın, ama belki de temizlemenin ne zaman sona erdiğini belirlemek için bir tarifiniz var mı?

Sorun şudur: komisyoncu bir açıcıdır, takas sırasında bekleyen emirleri siler ve takas alanı onları yenisine yerleştirmez.

Vadeli işlemlerde nasıl bilmiyorum ama hisse senetlerinde takas farklı zamanlarda biter.

Bu nedenle, programlı olarak, belirli bir makale için temizleme bitiş anını belirleyemedim.

Açılana kadar bir zamanlayıcıya sipariş vermek için aptalca bir sipariş gönderiyorum.

Bu yaklaşımı sevmiyorum, ama başka yok.

Benim de bir açıcım var ama vadeli işlemlerde. Ayrıca temizlemenin sonu sorunu, nasıl belirlenir - bilmiyorum, sadece 19:05 alıyorum.

Ertelemeler sadece bugün için değil, tarihten önce de belirlenebilir. En azından vadeli işlemlerde.

 
Aleksandr Slavskii # :

1. Korku! Yorum yapmak için çok fazla yanlış şey var.

Farklı yapalım.

Bir pozisyonla ilgileniyorsanız neden bir işlem geçmişine ihtiyacınız var?

IMHO, her yeni anlaşma için bir değişkendeki son pozisyonun fiyatını kaydetmek yeterlidir ve takas geldiğinde, takastan önce değişkende kaydedilen fiyat ile son tik fiyatı arasındaki fark için BU'yu ayarlayın.

Misal:

parti = 1;

double end_position=0;

fiyat 30'dan ilk işlem, end_position = 30;

bir fiyata ikinci anlaşma   60, end_position = 45;

bir fiyata üçüncü anlaşma   90, end_position = 60;


Yani, 3 hacimli 60 fiyatta bir pozisyonunuz var.

Farz edelim ki fiyat 70 iken takas geldi, kâr 30 tugrik.

çift takas_fiyatı = 70;

Temizledikten sonra 70 fiyatından bir pozisyon açacaksınız, ancak bu pozisyonun gerçek fiyatının olduğunu hatırlıyoruz.   end_position == 60; buna göre, bu fiyattan trol veya BU hesaplanmalıdır.

Buna göre, temizleme sırasında değişkeni doldurun

çift   düzeltici = 0 ;

düzeltici=   clearing_price - end_position;

Diyelim ki, anlaşma sırasıyla +20 puan olduğunda eski bir BU'nuz var, BU işlevine BU'nun başlangıcının eşit olduğunu ekleyin: 20 - düzeltici;

Ayrıca BU, bir artı olarak birçok puan konur, ayrıca düzeltici değeri için ayarlanması gerekir.

Herhangi bir konum düzelticiyi kapattıktan sonra = 0 ;


2. Ancak bu, yalnızca temizlemeden sonra kısmi kapanmalar veya eklemeler olmadığında işe yarar. Eğer öyleyse, o zaman farklı olması gerekir.

1. Boyadıkları ATP. Şimdilik düzeltmen olmadan bakmak istiyorum çünkü Bu+ örneğin 30 pp ile dolum ve trollerim var ayrıca trolün kurulumundan sonra robotun mantığına göre kısmi kapanmalar olabilir. Onlar. başlangıç fiyatını açtıktan sonra açılış fiyatını ezberledim, yükleme yaptıktan sonra - ortalamayı - tekrar toplam pozisyonu açmanın YENİ fiyatını ezberledim. Ve aslında, takastan sonra bir komisyoncu tarafından bir pozisyon açmak için yeni bir fiyat belirlemek önemli olmayacak.

Böyle bir yaklaşımın da bu yazımda yazılan yukarıdaki ticaret mantığına göre gerçekleşebileceğini doğru anlıyorum...

Ayrıca, varlığın mevcut fiyatı izin veriyorsa, SL'nin toplam pozisyonun önceden hafızaya alınmış fiyatından BU + 30 pp'ye aktarılması.

Ve bir komisyoncu tarafından belirlenen bir vadeli işlem pozisyonu açmanın mevcut fiyatı kimin umurunda?


2.

"Ancak bu, yalnızca temizlemeden sonra kısmi kapanmalar veya eklemeler olmadığında işe yarar. Varsa, o zaman farklı şekilde yapmanız gerekir."

önce ve sonra - BU + 30 pp'ye dönüşene kadar - tüm siparişler için mevcut ortalama fiyatı diziler aracılığıyla piyasa fiyatı olarak düşünmek gerçekten mümkün mü, çünkü gerekli olacak

ve bir piyasa emrinin açılış fiyatı ve her bir emir için sözleşmelerin sayısı ve hacimleri ... onlar için ortalama fiyatı görüntülemek için - nereden BU'ya transfer - sayılır ...


AVERAGE_PRICE = ((OPEN_1 * VOLUME_1) + (OPEN_2 * VOLUME_2) + (OPEN_3 * VOLUME_3) + n) / (VOL_1 + VOL_2 + VOL_3 + n), yani henüz SL'yi BU + 30 pp'ye aktarmadım. toplam konum boyunca - tüm bu değerleri dizilere yazmak gerekli mi yoksa ne? Bir piyasa siparişinde N'inci yüklemenin açılışında lider olun - herkes için ORTALAMA'yı hesaplamak için bu zincirin tamamını yükseltmeniz mi gerekiyor?

ya da bir şekilde onu yenebilirsin:

 HistoryOrderSelect ()
 HistoryOrderGetTicket ()

ancak burada şu soru ortaya çıkıyor: GERÇEK toplam pozisyonun oluşumuna katılan GERÇEK piyasa emirlerinin döngüsünün başlangıcı ve bitişi nasıl alınır?

 
Roman Shiredchenko # :

SINGLE_PRICE = ((OPEN_1 * VOLUME_1) +(OPEN_2 * VOLUME_2) +(OPEN_3 * VOLUME_3)+n) / (VOL_1+VOL_2 + VOL_3 + n), yani henüz SL'yi BU + 30 pp'ye aktarmadım. toplam konum boyunca - tüm bu değerleri dizilere yazmak gerekli mi yoksa ne? Bir piyasa siparişinde N'inci yüklemenin açılışında lider olun - herkes için ORTALAMA'yı hesaplamak için bu zincirin tamamını yükseltmeniz mi gerekiyor?

Ne yazık ki, bu doğru.

 

Roman Shiredchenko # :

AVERAGE_PRICE = ((OPEN_1 * VOLUME_1) + (OPEN_2 * VOLUME_2) + (OPEN_3 * VOLUME_3) + n) / (VOL_1 + VOL_2 + VOL_3 + n), yani henüz SL'yi BU + 30 pp'ye aktarmadım. toplam konum boyunca - tüm bu değerleri dizilere yazmak gerekli mi yoksa ne? Bir piyasa siparişinde N'inci yüklemenin açılışında lider olun - herkes için ORTALAMA'yı hesaplamak için bu zincirin tamamını yükseltmeniz mi gerekiyor?

ya da bir şekilde onu yenebilirsin:

ancak burada şu soru ortaya çıkıyor: GERÇEK toplam pozisyonun oluşumuna katılan GERÇEK piyasa emirlerinin döngüsünün başlangıcı ve bitişi nasıl alınır?

Son ortalama fiyatı saklamak yeterlidir.

 
JRandomTrader # :

Son ortalama fiyatı saklamak yeterlidir.

Tamam, ve örneğin herhangi bir hacimle doldurursam, bunu nasıl GEÇERLİ olarak kabul edebilirim?
 
Roman Shiredchenko # :
Tamam, ve örneğin herhangi bir hacimle doldurursam, bunu nasıl GEÇERLİ olarak kabul edebilirim?

Gösterdim. Bu son ortalama fiyat ve pozisyon hacmini, yeni bir işlemin fiyatını ve hacmini alıyoruz. Her şey doğru sayılır.

Neden: