Rastgele bir fiyat aralığından kar edin - sayfa 8

 
avatara :

Konu benim için daha fazla tartışmayı hak ediyor. Zaman geçti - düşünülecek ve öğrenilecek bir şey vardı.

Dahası, Fisher dönüşümü anlatıldığı gibi ...

;)

Test serisi oluşturmak için hızlı bir şekilde iki komut dosyası hazırladım. (tekdüze ve normal artışlar için).

Lütfen beni büyücülük ve özensizlik için acele koda atmayın...

Fisher dönüşümü, diğer herhangi bir genişletici gibi, aralığın üst ve alt sınırları yakınında ve sınırda (sınırın kendisinde) - sonsuz bir katsayı ile atış gürültüsünü çılgınca yükseltir. Piyasa için bu sadece önemlidir - tüm fiyatlar Point ile nicelenir, bu da bir dereceye kadar tüm göstergeler anlamına gelir.
 
NorthernWind :

Ancak yukarıdaki linkte önerdiğim gibi oynarsanız mo=0 ile rastgele bir yürüyüşte kesinlikle kazanabilirsiniz. Ama bir kez daha tekrar ediyorum, bu teoremlerde anlatılan pek de oyun değil. Aynı zamanda, orada paradoksal bir durum gelişir, öyle ki, ne kadar çok yanlış tahmin ederseniz, o kadar çok kazanırsınız. Bir kez daha tekrar ediyorum, bu oyunun gerçeklikle hiçbir ilgisi yoktur ve doğru testin önemini göstermeyi amaçlamıştır. Gerçek şu ki, kazanılan ve kaybedilen bahislerin küçümsenmesi nedeniyle oradaki kazançlar birikir. Böylece.

Önerdiğim gibi bir oyun oynamayı başarırsanız, kesinlikle zengin olursunuz. :) Ve bu oyundaki dağılımın da çok önemli olduğunu eklemeliyim. Oyun, bazı rastgele yürüyüş türlerinde uygulanabilir değildir.

not. ne konuşulduğunu düşünmeden, mevcut dağıtımı başka bir dağıtıma dönüştürürseniz, bazen gerçekten avantaj elde edebilirsiniz, ancak bu çok sallantılı.

Fikri doğru anladıysam, normal artış dağılımıyla "fiyatları" hızlı bir şekilde kontrol etmek için bir kod çizdim:

 #property strict

extern int AmountPrices = 10000 ;
extern int TakeProfit = 100 ;
extern int StopLoss = 100 ;
extern double point = 0.0001 ;
extern int Temp = 0 ;

#define MAX_RAND 32767.0

double GetRand()
{
   return ( 2 * MathRand () / MAX_RAND - 1 );
}

void GetRandGauss( double & Rand1, double & Rand2 )
{
   double X1, X2, W = 2 ;
  
   while (W >= 1 )
  {
    X1 = GetRand();
    X2 = GetRand();
    
    W = X1 * X1 + X2 * X2;
  }
  
  W = MathSqrt (- 2 * MathLog (W) / W);
  
  Rand1 = X1 * W;
  Rand2 = X2 * W;
    
   return ;
}

void GetPrices( double &Prices[], int Amount )
{
   static uint Tmp = 0 ;
   double Rand1, Rand2;
  
   MathSrand (( int ) TimeLocal () + Tmp);
  
  Amount <<= 1 ;
  
   ArrayResize (Prices, Amount);
  
  Prices[ 0 ] = 0 ;
  
   for ( int i = 2 ; i < Amount; i += 2 )
  {
    GetRandGauss(Rand1, Rand2);
    Prices[i - 1 ] = Prices[i - 2 ] + Rand1;
    Prices[i] = Prices[i - 1 ] + Rand2;    
  }
  
  Tmp += GetTickCount ();
  
   return ;
}

void NormalizeArray( double &Array[] )
{
   const int Size = ArraySize (Array);
   const double Interval = ArrayMaximum (Array) - ArrayMinimum (Array);  
  
   for ( int i = 0 ; i < Size; i++)
    Array[i] /= Interval;
    
   return ;
}

double System( const double &Prices[], const double TP, const double SL )
{
   const int Amount = ArraySize (Prices);
   bool Flag = TRUE;
   double OpenPrice = Prices[ 0 ];
   double Balance = 0 ;
  
   for ( int i = 0 ; i < Amount; i++)
  {
     if (Flag)
    {
       if ((Prices[i] >= OpenPrice + TP) || (Prices[i] <= OpenPrice - SL))
      {
        Balance += Prices[i] - OpenPrice;
        
        Flag = ( MathRand () > ( SHORT_MAX + 1 ) / 2 - 1 );  
        OpenPrice = Prices[i];
      }
    }
     else if ((Prices[i] <= OpenPrice - TP) || (Prices[i] >= OpenPrice + SL))
    {
      Balance -= Prices[i] - OpenPrice;

      Flag = ( MathRand () > ( SHORT_MAX + 1 ) / 2 - 1 );  
      OpenPrice = Prices[i];
    }
  }
  
   return (Balance);
}

double GetRandProfit( int Amount, const double TP, const double SL )
{
   double Prices[];
   
   GetPrices(Prices, Amount >> 1 );
   NormalizeArray(Prices);
   
   return (System(Prices, TP, SL));  
}


double OnTester ( void )
{
   return (GetRandProfit(AmountPrices, TakeProfit * point, StopLoss * point));
}

Özel kriterlere göre optimizasyon (alma ve kaybetme), antik efsanenin (veya benimkinin) beklenen başarısızlığını zaten açıkça göstermiştir.

 
hrenfx :

Fikri doğru anladıysam, normal artış dağılımıyla "fiyatları" hızlı bir şekilde kontrol etmek için bir kod çizdim:

Özel kriterlere göre optimizasyon (alma ve kaybetme), antik efsanenin (veya benimkinin) beklenen başarısızlığını zaten açıkça göstermiştir.

Efendim, hanımınız nispeten yakın zamanda ayrıldı.
 
hrenfx :

Fikri doğru anladıysam, normal artış dağılımıyla "fiyatları" hızlı bir şekilde kontrol etmek için bir kod çizdim:

Özel kriterlere göre optimizasyon (alma ve kaybetme), antik efsanenin (veya benimkinin) beklenen başarısızlığını zaten açıkça göstermiştir.

ne hakkında efsane?
 
ZaPutina :
ne hakkında efsane?

Bazı amcalar, oluşturulan SB fiyatları (daha spesifik olarak, normal dağılıma sahip artışlar) üzerinde karlı bir TS yaratma olasılığını tartıştı. TS'yi resmileştirdik, çok araştırma yaptık ...

Bu konuya dolaylı olarak ilgili olan özel bir tartışma sayesinde geldim. Belki de gelecekte bir gün ortaya çıkan bir şüpheci için, halka gereksiz bir doğrulama kodu çizmeye karar verdim.

 

hrenfx için, ancak başka bir dağıtımla deneyecek misiniz? örneğin - piyasa fiyatı (yapay olarak oluşturulmuş). Peki, bir şeyler atıştırmak için ve hangi dağıtımdan kâr edebilirsiniz?

 
YOUNGA :

hrenfx için, ancak başka bir dağıtımla deneyecek misiniz? örneğin - piyasa fiyatı (yapay olarak oluşturulmuş). peki, bir şeyler atıştırmak için - ve hangi dağıtımdan kâr edebilirsiniz?

Garantili kâr, "kabarık" fiyatlara sığdırılabilir. Bunun için kabarıklığın tanımını ve TS'nin resmileştirilmesini vermeyeceğim. Belki başka bir yerde. Bütün bunların gerçek ticaretle çok az ilgisi var.

Kod herhangi bir dağıtım için yeniden yazılabilir. Bunu yapmak için, yalnızca GetRandGauss işlevini istenen dağılımın nicelik işleviyle değiştirmeniz gerekir - bu, eşit olarak dağıtılmış (MathRand) bir rastgele değişkeni karşılık gelen dağılıma dönüştürür.

 
hrenfx :

Garantili kâr, "kabarık" fiyatlara sığdırılabilir. Bunun için kabarıklığın tanımını ve TS'nin resmileştirilmesini vermeyeceğim. Belki başka bir yerde. Bütün bunların gerçek ticaretle çok az ilgisi var.

Kod herhangi bir dağıtım için yeniden yazılabilir. Bunu yapmak için, yalnızca GetRandGauss işlevini istenen dağılımın nicelik işleviyle değiştirmeniz gerekir - bu, eşit olarak dağıtılmış (MathRand) bir rastgele değişkeni karşılık gelen dağılıma dönüştürür.

Kodunuzun 100 satırdan fazla olmayan TÜM olası seçeneklerden geçtiğini söylemek ister misiniz? Ve değilse, sözde SB'den para kazanmanın imkansız olduğunun kanıtı ile ne ilgisi var (doğada saf SB yoktur).
 
ZaPutina :
Kodunuzun 100 satırdan fazla olmayan TÜM olası seçeneklerden geçtiğini söylemek ister misiniz? Ve değilse, sözde SB'den para kazanmanın imkansız olduğunun kanıtı ile ne ilgisi var (doğada saf SB yoktur).

Beyaz gürültüyü ilgilendiğiniz dağıtım işlevine değiştirin ve bir istek olup olmadığını kontrol edin. Sadece bu saçmalık: para kazanmanın imkansız olduğunu kanıtlamak. Aksini kanıtlayın.

Not Bu arada, piyasanın rastgele doğası hakkında: mevcut durumu ( bugünkü kapanış fiyatı ) 23 Mart'ta 19:00 + 3:00 Moskova saatinde önceden belirlendi.

 
tara :

Beyaz gürültüyü ilgilendiğiniz dağıtım işlevine değiştirin ve bir istek olup olmadığını kontrol edin. Sadece bu saçmalık: para kazanmanın imkansız olduğunu kanıtlamak. Aksini kanıtlayın.

Not Bu arada, piyasanın rastgele doğası hakkında: mevcut durumu (bugünkü kapanış fiyatı) 23 Mart'ta Moskova saatiyle 19:00+3:00'da önceden belirlendi.

Seninle sadece damadın aracılığıyla ... beni suçlama.