Vince'e göre lot hesaplama - sayfa 11

 

Geometrik ortalamayı kullanarak optimal f'yi bulma .

Gerçek ticarette, kayıpların ve kazançların boyutu sürekli olarak değişecektir. Bu nedenle Kelly'nin formülleri bize doğru optimal f'yi veremez . İşlem yapılacak sözleşmelerin sayısını belirlememize izin verecek optimal f'yi bulmak matematiksel açıdan nasıl doğrudur ? Bu soruyu cevaplamaya çalışalım. Öncelikle HPR bulma formülünü f'yi içerecek şekilde değiştirmemiz gerekiyor:

ayrıca şubenin ilk gönderisindeki formüllere bakın

Daha ileri

En iyi ticaret sisteminin geometrik ortalaması en yüksek olan sistem olduğunu gördük. Geometrik ortalamayı hesaplamak için f bilmeniz gerekir. Öyleyse adım adım eylemlerimizi tanımlayalım.

1. Belirli bir piyasa sistemindeki işlemlerin tarihini alın.

2. 0'dan 1'e kadar çeşitli f değerlerine bakarak optimal f'yi bulun. Optimum f, en yüksek TWR'ye karşılık gelir.

3. f'yi bulduktan sonra, TWR'nin N. kökünü alın ( N toplam işlem sayısıdır). Bu, bu piyasa sistemi için geometrik ortalamanızdır. Artık bu sistemi diğerleriyle karşılaştırmak için elde edilen geometrik ortalamayı kullanabilirsiniz. f'nin değeri, belirli bir piyasa sisteminde kaç tane sözleşmeyle işlem yapacağınızı söyleyecektir. f bulunduğunda, en büyük kaybı negatif optimal / değerine bölerek parasal değere dönüştürülebilir. Örneğin, en büyük kayıp 100$ ise ve optimal f = 0,25 ise, o zaman -100 dolar / -0,25 = 400 dolar. Başka bir deyişle, hesabınızdaki her 400$ için 1 birim bahis yapmalısınız. Kolaylık olması açısından, her şey birim bazında hesaplanabilir (örneğin, bir 5 dolarlık fiş veya bir vadeli işlem sözleşmesi veya 100 hisse). Her birim için ayrılacak dolar sayısı, en büyük kaybınızın negatif optimal f'ye bölünmesiyle hesaplanabilir. Optimum f , sistemin karlılığı (1 birim bazında) ve riski (1 birim bazında) arasındaki dengedir. Birçok kişi, en uygun sabit payın, bahisleriniz için ayrılan hesabın yüzdesi olduğunu düşünür. Bu tamamen yanlıştır. Bir adım daha olmalı. Optimum f'nin kendisi, işlem gören hesabınızın yüzdesi değil , en büyük kaybın bölenidir. Bu bölümün bölümü, piyasada kaç tane bahis yapılacağını veya kaç tane sözleşme açılacağını bulmak için toplam hesabın bölünmesi gereken miktardır.

Onlar. AccountFreeMargin()/H, H=D/(-f) ile.

İşte baykuş kodunda nasıl organize edildiği - fragmana bakın.

 if (optimal_f) //--- Расчет оптимального f ---
        {   
          
           double Mas_Outcome_of_transactions [ 10000 ];         // Массив профитов/убытков закрытых позиций
           int Qnt = 0 , Orders = OrdersHistoryTotal ();         // Счётчик количества ордеров   
           ArrayInitialize (Mas_Outcome_of_transactions, 0 );   // Обнуление массива
           double f, D, SUMM, TWR, G, G_Rez, H,A,B, Pow;
           int orderIndex;
   
           for (orderIndex = 0 ; orderIndex < Orders; orderIndex++)
          {   
             if (! OrderSelect (orderIndex, SELECT_BY_POS, MODE_HISTORY))
              {
                 Print ( "Ошибка при доступе к исторической базе (" , GetLastError (), ")" );
                 continue ;
              }
   
             if ( OrderSymbol () != Symbol () || OrderMagicNumber () != MAGICMA || OrderCloseTime ()== 0 )
                 continue ; 
         
             int lastType = OrderType ();
             double lastLots = OrderLots ();
             double lastProfit = OrderProfit () + OrderSwap ();
      
             if (orderIndex == 0 || lastProfit < D)
                D = lastProfit;
      
             Mas_Outcome_of_transactions[Qnt] = lastProfit;   // Заполняем массив профитом/лоссом по всем закрытым позициям 
             SUMM=SUMM+lastProfit;
             Qnt++;                                           // увеличиваем счетчик закрытых ордеров    
          }   
   
         if (Transaction_number<Qnt) { //при репрезентативном кол-ве ордеров на истории открываемся объемом через оптим-ую f 
            Pow = 1 / NormalizeDouble (Orders, 0 );
             for (f = 0.01 ; f<= 1.0 ; f=f+ 0.01 )                   // цикл перебора переменной f для поиска оптимального ее значения,
            {                                                   // при котором TWR - максимально
               G= 1 ;
               for ( orderIndex = 1 ; orderIndex < Qnt; orderIndex++) // при заданной f проходим по всем закрытым ордерам
                {                                                     // и считаем среднее геометрическое от TWR
                  TWR = 1 +f*(-Mas_Outcome_of_transactions[orderIndex]/(D));
                  G *= NormalizeDouble ( MathPow (TWR, Pow), 8 );
                }
               if (G > G_Rez)  G_Rez = G; // если текущий > результирующего, то результирующий делаем равным текущему
               else break ;               // иначе переходим на следующую итерацию цикла по f
            }
               
            
             if (f> 0 ) H=D/(-f); //денежный эквивалент фракций (оптимального f) для торговли 0,1 лотом.
            lot = NormalizeDouble (( AccountFreeMargin ()/H)*Min_Lot, 1 );
             if (lot== 0 )    lot=Min_Lot;
             Print ( "H=D/(-f): " , H, " lot = " , DoubleToStr (lot, 1 ), "Transaction_number = " , Transaction_number);  
             Print ( "G_Rez максимальна = " , DoubleToStr (G_Rez, 8 ), " при f = " , f);             
             Print ( " Максимальный лосс по позиции, D = " , DoubleToStr (D, 2 ), " Pow (1/Orders)= " , DoubleToStr (Pow, 8 ));
             Print ( "Закрытых позиций = " ,   Qnt,
                 " Нетто Профит/лосс = " , SUMM,
                 " У последней " ,         Qnt,
                 " закрытой позы профит/лосс = " , Mas_Outcome_of_transactions[Qnt- 1 ]);  
                
             return (lot);         
          }     // Выход из  if (Transaction_number<Qnt)                   
           else {
             lot=Min_Lot; 
             Print ( "Закрытых позиций = " ,   Qnt, " Transaction_number = " , Transaction_number);
             return (lot); 
          } 
  
      }   //Выход из расчета оптимального f     

Yani her şey burada - KESİNLİKLE kitaba göre.

Bu işlevi baykuşlarınıza çevirin, test edin, kontrol edin, sonuçları burada paylaşın.

Dosyalar:
 
ph3onix :

1. Akla gelen ilk şey , parti büyüklüğünün bir sonraki pozisyon için stoploss'a göre hesaplanması gerektiğidir ,

2. Matematikçi Vince'in anlaşmada kullanılmasını önerdiği depozito payını bilmek

3. ...Uzman Danışmanları bu başlıktan test ederken kullanılan hesaplanan parti büyüklüğü biraz yanlış.


1. Burada başvurmanız gerekir.

2. Vince'in matematiğine aşina değilsiniz, tamamen farklı bir yaklaşım öneriyor, siz yazarken herhangi bir "pay" dan bahsetmiyor...

"

Optimum f'nin kendisi, hesabınızın işlem gören yüzdesi değil, en büyük kaybın bölenidir. Bu bölümün bölümü, piyasada kaç tane bahis yapılacağını veya kaç tane sözleşme açılacağını bulmak için toplam hesabın bölünmesi gereken miktardır.

"

3. Her şey kesinlikle orijinal kaynaktan gelen bilgilere göre - daha dikkatli okuyun, özellikle sayfa 31'den itibaren, kendi baykuşlarınızla karşılaştırın, kontrol edin, sonuçları paylaşın.

 

Konu kapanmamıştır, devam...

Parti hesaplama işlevi, burada EA'da (fragmana bakın) açık erişimde yayınlanmıştır.

Dosyalar:
 

Beyler, belli ki bir şeyi abartmışsınız. TWR, ilk hesabın kaç kez artırıldığının bir göstergesidir. Optimum f, mevduatın yüzdesi olarak işlem başına risktir. TWR, optimal f'nin bir türevidir. Strateji test cihazındaki risk yüzdesini işlem başına %1'den %100'e kadar optimize edin. Belirli bir değerden sonra toplam kârın büyümesi duracaktır. Bu değer optimum f olacaktır.

Bunu, mevduatın basit bir yüzdesi için biriktirirseniz, optimal G'yi nasıl hesaplamaya başlayacağınızı hayal etmek korkutucu olur (evet, böyle bir şey var).

 
C-4 :

Beyler, belli ki bir şeyi abartmışsınız. TWR, ilk hesabın kaç kez artırıldığının bir göstergesidir. Optimum f, mevduatın yüzdesi olarak ticaret başına risktir. TWR, optimal f'nin bir türevidir. Strateji test cihazındaki risk yüzdesini işlem başına %1'den %100'e kadar optimize edin. Belirli bir değerden sonra toplam kârın büyümesi duracaktır. Bu değer optimum f olacaktır.

Bunu, mevduatın basit bir yüzdesi için yığarsanız, optimal G'yi nasıl hesaplamaya başlayacağınızı hayal etmek korkutucu olur.


Zaten hesaplandı - her şey atıyor, her şey kontrol edildi, önce şubeye bakın ... :-)

"optimum G'yi hesaplamaya nasıl başlarsınız?" - her şey kaynağa göre hesaplanır ...

 if (Transaction_number<Qnt) { //при репрезентативном кол-ве ордеров на истории открываемся объемом через оптим-ую f 
            Pow = 1 / NormalizeDouble (Orders, 0 );
             for (f = 0.01 ; f<= 1.0 ; f=f+ 0.01 )                   // цикл перебора переменной f для поиска оптимального ее значения,
            {                                                   // при котором TWR - максимально
               G= 1 ;
               for ( orderIndex = 1 ; orderIndex < Qnt; orderIndex++) // при заданной f проходим по всем закрытым ордерам
                {                                                     // и считаем среднее геометрическое от TWR
                  TWR = 1 +f*(-Mas_Outcome_of_transactions[orderIndex]/(D));
                  G *= NormalizeDouble ( MathPow (TWR, Pow), 8 );
                }
               if (G > G_Rez)  G_Rez = G; // если текущий > результирующего, то результирующий делаем равным текущему
               else break ;               // иначе переходим на следующую итерацию цикла по f
            }
               
            
             if (f> 0 ) H=D/(-f); //денежный эквивалент фракций (оптимального f) для торговли 0,1 лотом.
            lot = NormalizeDouble (( AccountFreeMargin ()/H)*Min_Lot, 1 );
 
C-4 :

...

Bunu, mevduatın basit bir yüzdesi için biriktirirseniz, optimal G'yi nasıl hesaplamaya başlayacağınızı hayal etmek korkutucu olur (evet, böyle bir şey var).

Henüz görmedim, aramaya bakacağım, bu ne tür bir kuş - optimal G ?...
 
Optimal G, portföy kapitalizasyon faktörüdür. Optimal G'yi bulmak için, en azından toplam portföyün varyansını optimize etmeli ve Markowitz portföy teorisinde akıcı olmalıdır. Yukarıdaki hesaplamalarda böyle bir şey görmüyorum.
 

C-4 :
1. Оптимальное G - это фактор капитализации портфеля. Для поиска оптимального G нужно как минимум оптимизировать дисперсию совокупного портфеля и свободно разбираться в портфельной теории Марковица.

2. Yukarıdaki hesaplamalarda böyle bir şey görmüyorum.


1. Açıktır - bu, portföy oluşumunun hesaplanmasına ve sırasına daha yakındır ... Soruyla ilgileneceğim.

2. Burası burada değil. Optimal G'yi, hesaplaması burada bulunan geometrik ortalama G ile karıştırdım ... :-)

Konunun ilk sayfasının ilk gönderisine bakın.

"

Ortalama geometrik ticaret

Karların yeniden yatırıldığını ve kısmi sözleşmelerin alınıp satılabileceğini varsayarak, bir tüccarın geometrik ortalama ticaretini (yani ticaret başına sözleşme başına kazanılan ortalama kârı) hesaplaması ilginç olabilir. Bu, ticaret sabit bir paya dayalı olduğunda matematiksel beklentidir. Bu aslında, sabit bir hesap payı kullanıldığında sistemin işlem başına yaklaşık getirisidir. (Aslında, geometrik ortalama ticaret, ticaret başına sözleşme başına dolar cinsinden ortalamadır. Geometrik ortalamadan birini çıkarmak size ortalamayı verir. 1.025'lik bir geometrik ortalama, ticaret başına %2.5'lik bir ortalamaya karşılık gelir.) Çoğu tüccar, bu sistemin ticarete değer olup olmadığını görmek için yalnızca bir piyasa sisteminin ortalama ticaretine bakar. Ancak karar verirken geometrik ortalama ticarete ( GAT ) dikkat etmelisiniz.

nerede G = geometrik ortalama - 1;

f = optimal sabit oran.

(Tabii ki, en büyük kayıp her zaman negatif bir sayı olacaktır).

 
Yerinde olsam bu saçmalığa bu kadar düşkün olmazdım. Vince'in tüm matematiği uydurmaya dayanıyor. f'nin kendisi sabit değildir ve zamanla çökme eğilimi gösterir, ayrıca Z-Skoruna veya kaldıracın asimetrisinin etkisine aşırı duyarlı olmasının yanı sıra son derece eşitsiz bir kâr dağılımı sağlar: zamanın ilk %90'ı kârın %10'unu kazanmak için harcanır.
 
C-4 :
Yerinde olsam bu saçmalığa bu kadar düşkün olmazdım. Vince'in tüm matematiği uydurmaya dayanıyor. f'nin kendisi sabit değildir ve zamanla çökme eğilimi gösterir, Z-Skoruna veya kaldıracın asimetrisinin etkisine son derece duyarlı olmasının yanı sıra, son derece eşitsiz bir kar dağılımı sağlar: zamanın ilk %90'ı kârın %10'unu kazanmak için harcanır.


Vasily, bilgi için teşekkürler, ne olduğu ve neye yol açabileceği ... Bu lot hesaplamalarına pek düşkün değilim, tüm bunları zababah yapmak ve farklı açılardan bakmak ve diğerleriyle karşılaştırmak ilginçti. bir baykuşta MM'ye yaklaşıyor. ..

Burada bu arada portföy teorisi ile çeşitlendirme konusuna da değiniliyor... :-) Hele ki SÖZCÜK kelimeler kırmızı ile vurgulandığında... :-) Bir kitap var, formüller var - nasıl olmaz bu bilgiyi koda aktarın ve lot hesaplamasını çeşitli baykuşlar üzerinde çalışırken görmemek için, ilgileniyorum... Bir kitap açıyorsunuz - ona göre bir sistem yazıyorsunuz, test cihazında, demoda davranışına bakın, yeni başlayanlar için... bu, bu, bu... :-) Genel olarak kazıyorum. Bu arada, yakın zamanda META-COT göstergelerine göre, tamamen temel üzerine , makalenizden Piyasa davranışının diğer analiz türlerinin gölgesi olmadan bir demo hesabı izledim - şimdiye kadar her şey kârda... :-)

"

Daha iyi

sistem, daha yüksek f . Maksimum kayıp (yüzde olarak) f'den az olmadığından, f ne kadar yüksek olursa olası kayıp o kadar büyük olur . Durumun paradoksu, sistem yeterince yüksek bir optimal f yaratabiliyorsa, böyle bir sistem için kayıp da oldukça yüksek olacaktır. Optimum f, bir yandan en geometrik büyümeyi elde etmenizi sağlarken, diğer yandan sizin için kolayca düşebileceğiniz bir tuzak oluşturur.

Sabit bir hisse ile işlem yaparken en uygun f'yi kullanırsanız, önemli kayıplar (bakiyenin yüzdesi olarak) bekleyebileceğinizi biliyoruz. Optimal f, plütonyum gibidir - büyük güç verir, ancak aynı zamanda son derece tehlikelidir. Bu önemli kayıplar, özellikle yeni başlayanlar için büyük bir sorundur, çünkü optimal f seviyesinde ticaret, normal ticaretten daha hızlı büyük bir kayıp yapma tehlikesi yaratır. Çeşitlendirme, kayıpları büyük ölçüde düzeltebilir. Çeşitlendirmenin avantajı, aynı anda birçok girişimde bulunmanıza (birçok oyun oynamanıza) izin vermesi ve böylece toplam kârı artırmasıdır. Adil olmak gerekirse, çeşitlendirme, genellikle kayıpları düzeltmenin en iyi yolu olsa da, onları mutlaka azaltmaz ve hatta bazı durumlarda kayıpları artırabilir!

Çeşitlendirmenin yeterince etkili olması durumunda kayıpların tamamen önlenebileceğine dair yanlış bir kanı vardır. Etkili çeşitlendirme yoluyla kayıpların hafifletilebileceği bir dereceye kadar doğrudur, ancak hiçbir zaman tamamen ortadan kaldırılamazlar. Kendinizi yanıltmayın. Sistemi ne kadar iyi kullanırsanız kullanın, ne kadar etkin çeşitlendirirseniz kullanın yine de önemli kayıplarla karşılaşacaksınız. Bunun nedeni, piyasa sistemlerinizin çapraz korelasyonu değildir, çünkü portföyün piyasa sistemlerinin çoğunun veya tamamının çalışmaması gerektiğini düşündüğünüzde aleyhinize çalıştığı zamanlar vardır. Beş yıllık geçmiş verileri içeren bir portföy bulmaya çalışın, böylece tüm ticaret sistemleri optimum f'de çalışır ve aynı zamanda maksimum kayıp %30'dan az olur! Kolay olmayacak. Kaç tane piyasa sisteminin kullanıldığı önemli değil. Her şeyi matematiksel olarak doğru yapmak istiyorsanız, hesap bakiyesinin %30 ila %95'ini kaybetmeye hazır olmanız gerekir. En katı disiplin gereklidir ve herkes bunu gözlemleyemez.

Bir tüccar sabit sayıda sözleşme ticaretini yapmayı reddederse, ne kadar ticaret yapacağı sorunuyla karşı karşıya kalır. Tüccar sorunu tanısa da tanımasa da bu her zaman olur. Sabit sayıda sözleşme ticareti bir çözüm değildir, çünkü bu şekilde asla geometrik büyüme elde edemezsiniz. Bu nedenle beğenseniz de beğenmeseniz de bir sonraki işlemde ne kadar işlem yapılır sorusu herkes için kaçınılmaz olacaktır. Basitçe rastgele bir sayı seçmek ciddi bir hataya yol açabilir. Optimal f, matematiksel olarak doğru olan tek çözümdür.

Modern Portföy Teorisi

Optimal f ve piyasa sisteminin kaybı ile durumu hatırlayın. Piyasa sistemi ne kadar iyiyse f değeri o kadar yüksek olur. Ancak, optimal f ile işlem yaparsanız, kayıp (tarihsel olarak) asla f'den az olamaz. Genel olarak konuşursak, piyasa sistemi ne kadar iyiyse, optimal f'de işlem yaparken ara kayıplar (hesap bakiyesinin yüzdesi olarak) o kadar büyük olacaktır. Bu nedenle, en büyük geometrik büyümeyi elde etmek istiyorsanız, yol boyunca ciddi kayıplara hazırlıklı olmalısınız.

"

Neden: