"Alım-satımda ahlaki beklenti" makalesi için tartışma - sayfa 2

 

Güzel slogan, ilginçti, yazara teşekkürler. Formüller ve örnekler, kod uygulamasından çok daha hızlı bir şekilde içine girmeyi sağlıyor.

Yazarın önceki makalelerine ulaşamadım. Onları da okumam gerekecek. Tekrar teşekkürler.

Aleksej Poljakov
Aleksej Poljakov
  • www.mql5.com
Профиль трейдера
 

Makale için teşekkürler.

Lot büyüklüğünün, geçmişte elde edilen ve lotu hesaplamak için kullanılan karlı ve kaybeden işlemler serisinden büyük ölçüde etkileneceğini anlıyorum. Bu nedenle, işlemlerin sonucunu rastgele alarak sonuçları görmek ilginçtir. Geçiş ölçümlerinin sonuçlarının çok farklı olacağını varsayıyorum.

 
Aleksey Vyazmikin #:

Yazı için teşekkür ederim.

Lot büyüklüğünün, geçmişte elde edilen ve lotu hesaplamak için kullanılan karlı ve kaybeden işlemler serisinden güçlü bir şekilde etkileneceğini anlıyorum. Bu nedenle, işlemlerin sonucunu rastgele alarak sonuçları görmek ilginçtir. Pas ölçümlerinin sonuçlarının çok farklı olacağını varsayıyorum.

Komut dosyalarında, işlemlerin sonucu rastgele oluşturulur. Aynı zamanda, komut dosyasının kendisi lotu hesaplarken başlangıçta hangi olasılığın ayarlandığını bilmez. Olabilecek en kötü şey, özellikle bir serinin sonunda art arda birkaç kaybeden işlemdir. En kolay yol, hesaplama yaparken depozitonun tamamını değil, bir yüzdesini almaktır. Diyelim ki% 5-10, o zaman denge eğrisi daha istikrarlı olacaktır - büyük kayıplar olmayacak, ancak karlar da azalacaktır.

 
Aleksej Poljakov #:

Komut dosyalarında, işlemlerin sonucu rastgele oluşturulur. Aynı zamanda, komut dosyasının kendisi lotu hesaplarken başlangıçta hangi olasılığın ayarlandığını bilmez. Olabilecek en kötü şey, özellikle bir serinin sonunda art arda birkaç kaybeden işlemdir. En kolay yol, hesaplama yaparken depozitonun tamamını değil, bir yüzdesini almaktır. Diyelim ki %5-10, o zaman denge eğrisi daha istikrarlı olacaktır - büyük kayıplar olmayacak, ancak karlar da azalacaktır.

Makalenin son bölümü hakkında yazıyorum:

Riskin ticareti nasıl etkileyebileceğini birlikte görelim. Test için iki hareketli ortalamanın kesişiminde basit bir Uzman Danışman kullanacağız. EA'nın testi aşağıdaki parametrelerle gerçekleşti:

Ve yine, nasıl değiştiği de dahil olmak üzere geçmiş başarıları / başarısızlıkları hesaplamak için pencereyi incelemek önemlidir. Örneğin, strateji test cihazında bir stratejinin seçilmesinden sonra 10 yıl boyunca oran almayacaksınız.

 
Mükemmel çalışma.
Aferin yazar, makaleyi yer imlerine ekleyin.
 

Bu ilginç bir yaklaşım. Ancak bir soru ortaya çıktı: ahlaki beklenti matematiksel beklenti ile aynı fiziksel anlama mı sahip? Makalede matematiksel beklentinin iki yorumu var - toplam yoluyla (örneğin makalenin başında 11 düka) ve noktalar yoluyla (p*TP - (1-p)*SL formülünde). Ahlaki beklenti hakkında bir açıklama yoktur, ancak temel formüle bakılırsa - ahlaki beklenti toplamdır, çünkü depozitoya karşılık gelir.

O zaman bir sonraki soru. IMHO'ya göre, makalede bulunmayan, talep edilen bir sorunu ele almak istiyorum. Bir depozito verilir, istenen ahlaki beklenti depozitonun bir kesri (Mr = Kesir * Depozito) ve bir lot olarak verilir. Kazanma olasılığının farklı değerleri için SL/TP eğrilerini çizin. Görünüşe göre, 0,5 olasılık için görev tanımlanmamıştır.

Muhtemelen hatalarla birlikte el yordamıyla yapmaya çalıştım. Her yerde ya garip sayılar ya da NaN'lar kök tanımı bölgesinden dışarı uçuyor.

Burada, örneğin, SL'den TP'yi hesaplamak için yandan:

#property script_show_inputs

input double Amount = 10000;
input double MoralExpectationPercent = 0.01;
input double Lot = 0;
input double WinProbability = 0.75;

void OnStart()
{
   const double pv = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)
      * SymbolInfoDouble(_Symbol, SYMBOL_POINT) / SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
   const double lot = (Lot == 0 ? SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN) : Lot);

   const double sls[] = {10, 100, 1000};

   for(int i = 0; i < ArraySize(sls); ++i)
   {
      const double sl = sls[i];
      const double slp = sl * lot * pv;
      const double y1 = (1 + MoralExpectationPercent) * Amount * MathPow(Amount - slp, WinProbability - 1);
      const double tp = (MathPow(y1, 1 / WinProbability) - Amount) / (lot * pv);
      Print(sl, " ", tp);
   }
}

Çıktı:

10.0 13358.8842517167
100.0 13389.287146464994
1000.0 13693.516911708502
 
Stanislav Korotky #:

Bu ilginç bir yaklaşım. Ancak bir soru ortaya çıktı: ahlaki beklenti matematiksel beklenti ile aynı fiziksel anlama mı sahip? Makalede matematiksel beklentinin iki yorumu var - toplam yoluyla (örneğin makalenin başında 11 düka) ve noktalar yoluyla (p*TP - (1-p)*SL formülünde). Ahlaki beklenti hakkında bir açıklama yoktur, ancak temel formüle bakılırsa - ahlaki beklenti toplamdır, çünkü mevduata karşılık gelir.

O zaman bir sonraki soru. IMHO'ya göre, makalede bulunmayan, talep edilen bir sorunu ele almak istiyorum. Bir depozito verilir, depozitonun bir kesri (Mr = Kesir * Depozito) ve bir lot olarak istenen bir ahlaki beklenti verilir. Kazanma olasılığının farklı değerleri için SL/TP eğrilerini çizin. Görünüşe göre, sorun 0,5 olasılığı için tanımlanmamıştır.

Bunu el yordamıyla yapmaya çalıştım, muhtemelen hatalarım oldu. Her yerde ya garip sayılar ya da NaN'lar ortaya çıkıyor - kök tanım alanının ötesine geçiyor.

Örneğin, TP'yi SL tarafından hesaplamak için:

Çıktı:

string const double y1 = (1 + MoralExpectationPercent) * Amount * MathPow(Amount - slp, WinProbability - 1);

WinProbability - 1 her zaman negatif bir değerdir... ve kesinlikle negatif olmamalıdır

bu daha doğru

Dosyalar:
 
Stanislav Korotky #:

Bu ilginç bir yaklaşım. Ancak bir soru ortaya çıktı: ahlaki beklenti matematiksel beklenti ile aynı fiziksel anlama mı sahip? Makalede matematiksel beklentinin iki yorumu var - toplam yoluyla (örneğin makalenin başında 11 düka) ve noktalar yoluyla (p*TP - (1-p)*SL formülünde). Ahlaki beklenti hakkında bir açıklama yoktur, ancak temel formüle bakılırsa - ahlaki beklenti toplamdır, çünkü mevduata karşılık gelir.

O zaman bir sonraki soru. IMHO'ya göre, makalede bulunmayan, talep edilen bir sorunu ele almak istiyorum. Bir depozito verilir, depozitonun bir kesri (Mr = Kesir * Depozito) ve bir lot olarak istenen bir ahlaki beklenti verilir. Kazanma olasılığının farklı değerleri için SL/TP eğrilerini çizin. Görünüşe göre, sorun 0,5 olasılığı için tanımlanmamıştır.

Bunu el yordamıyla yapmaya çalıştım, muhtemelen hatalarım oldu. Her yerde ya garip sayılar ya da NaN'lar ortaya çıkıyor - kök tanım alanının ötesine geçiyor.

Örneğin, TP'yi SL tarafından hesaplamak için:

Çıktı:

İkinci hata ise..... herhangi bir ahlaki beklenti atayamayacağımızdır.

Ahlaki beklenti her zaman matematiksel beklentiden daha azdır. Mevduat arttıkça birbirlerine yaklaşırlar. Bu nedenle, sorun kesinlikle aşağıdaki koşullara indirgenir: matematiksel beklenti pozitifse, pozitif bir ahlaki beklenti elde edin

 
Aleksej Poljakov #:

string const double y1 = (1 + MoralBeklentiYüzdesi) * Miktar * MathPow(Miktar - slp, KazanmaOlasılığı - 1);

WinProbability - 1 her zaman negatiftir... ve kesinlikle negatif olmamalıdır

bu daha doğru

Katı matematiksel dönüşümleri takip etmiş gibi görünüyorum - hatanın nerede olduğunu göremiyorum? Şimdilik, değerin kendisinin anlamını parantezlerin arkasında bırakalım ve formüle sadece bir soyutlama olarak bakalım.

Orijinali, orijinal Mr yerine F depozit D'nin ikame edilmiş kısmı ile: F * D = (D + L * TP * PV)^p * (D - L * SL * PV)^(1-p) - D

Onlu sayılarda ahlaki beklenti rakamları alıyorduk, neden herhangi bir rakamı mevduatın %'si olarak gösteremiyoruz? Yapabiliriz.

Sonra şunu elde ederiz:

(1+F)*D = (...)^p * (...)^(1-p)

(1+F)*D / (...)^(1-p) = (...)^p

1 / x^y -> x^-y olduğuna dikkat edin, bu nedenle bilgisayarın sayması için çok önemli olmasa da kesirden kurtulabiliriz, ancak kesirsiz formülün okunması daha kolaydır.

(1+F)*D * (...)^(p-1) = (...)^p

[ (1+F)*D * ( D - L * SL *PV )^(p-1 ) ] ^ (1/p) = ( D + L * TP * PV )

Kodumdaki y1 değişkeninde köşeli parantez içinde olan şey var.

Kodun sizin versiyonunda eksik bir formül var.

 
Stanislav Korotky #:

Katı matematiksel dönüşümleri takip etmiş gibi görünüyorum - hatanın nerede olduğunu göremiyorum? Şimdilik, değerin anlamını parantezin dışında bırakalım ve formüle sadece bir soyutlama olarak bakalım.

Orijinal Mr yerine F depozito D'nin ikame edilmiş kısmı ile orijinali: F * D = (D + L * TP * PV)^p * (D - L * SL * PV)^(1-p) - D

Onlu sayılarda ahlaki beklenti rakamları alıyorduk, neden herhangi bir rakamı mevduatın %'si olarak gösteremiyoruz? Yapabiliriz.

Sırada biz varız:

(1+F)*D = (...)^p * (...)^(1-p)

(1+F)*D / (...)^(1-p) = (...)^p

1 / x^y -> x^-y olduğuna dikkat edin, bu nedenle bilgisayarın sayması için çok önemli olmasa da kesirden kurtulabiliriz, ancak kesirsiz formülün okunması daha kolaydır.

(1+F)*D * (...)^(p-1) = (...)^p

[ (1+F)*D * ( D - L * SL *PV )^(p-1 ) ] ^ (1/p) = ( D + L * TP * PV )

Kodumda y1 değişkeninde köşeli parantez içinde olan şey var.

Kod versiyonunuzda eksik bir formül var.

İşleme arzu edilen bir ahlaki beklenti atarsak, o zaman (ahlaki beklentinin matematiksel beklentiden daha az olması özelliğinden hareketle) bu eşitsizliği elde ederiz:

p* L * TP * PV - (1-p) *L * SL *PV > F*D

Yani, ahlaki beklentinin pozitif hale geldiği TP değerini bulmak yerine, matematiksel beklentinin belirli bir değerden daha büyük olacağı TP değerini aramaya başlarız.