Algoritmik ''santrifüj'' - sayfa 13

 
Aleksei Stepanenko :

TAMAM, ...

- belki başka birşey...

BT'yi aramak için GA'yı bir şekilde kullanmak gerekir (ideal noktalar). Bunun hakkında düşünüyorum.
 
Igor Makanu :

hikayelerde ideal giriş noktaları - ZigZag, reddettiniz

ZigZag kullanmak istemiyorum çünkü bu fikre saygısızlık edecek. ZZ, ideal noktaların mükemmel bir göstergesiyse, o zaman en MÜKEMMEL göstergedir, çünkü ideal noktalara diğerlerinden daha doğru vurur. Her stratejide bir Ticaret Sinyalinin her düzeneğinde bir ZigZag olması gerektiği ortaya çıktı. Ve bu saçmalık.

Tarihte işlem bölümlerinin şu kriterlere göre belirlenmesi gerektiğini düşünüyorum: zaman / kâr / risk ve GA kullanın.

 
Реter Konow :

ZigZag kullanmak istemiyorum çünkü bu fikre saygısızlık edecek. ZZ, ideal noktaların mükemmel bir göstergesiyse, o zaman en MÜKEMMEL göstergedir, çünkü ideal noktalara diğerlerinden daha doğru vurur. Her stratejide bir Ticaret Sinyalinin her düzeneğinde bir ZigZag olması gerektiği ortaya çıktı. Ve bu saçmalık.

Tarihte işlem bölümlerinin şu kriterlere göre belirlenmesi gerektiğini düşünüyorum: zaman / kâr / risk ve GA kullanın.

buna karşı hiçbir şeyim yok

Ne tartışacağımı bilmiyorum, şimdilik kapalıyım

 
Реter Konow :
BT'yi aramak için GA'yı bir şekilde kullanmak gerekir (ideal noktalar). Bunun hakkında düşünüyorum.

anlamadım İdeal noktalar tarihte zaten bilinmektedir. Bunlar uç noktalardır ve onları gözlerinizle görebilirsiniz. Ekstremumları aramak karmaşık algoritmalar gerektirmez. Yalnızca arama koşullarını tanımlamak gerekir (örneğin, karşıt komşu uç noktalar arasındaki belirli sayıda noktanın fazlalığı). Daha sonra bu ekstremumların bir dizisini (fiyat, tarih) oluşturabilir ve aynı geçmiş üzerinde her ekstremumun noktasındaki (iyi veya bu noktaya giden yolda) herhangi bir göstergenin değerini kontrol edebilirsiniz. Böyle?

Örneğin, geçmiş ekstremalarını aramak ve depolamak için dizde bir kod var (performans garantisi olmadan):

 input double Distance= 100 ;

//каждый элемент массива будет содержать три поля: дата, цена и положение экстремума (верх, низ) 
struct sextr{ datetime time; double price; int position;} Extremes[];

void OnStart ()
   {
   int Total= iBars ( Symbol (), 0 );
   for ( int i=Total- 1 ; i>= 0 ; i--)
      {
      WriteExtremum(Extremes,Distance, Symbol (), 0 ,i);
      }
   }   

//здесь записываем экстремумы в массив
void WriteExtremum(sextr &eExtremes[], double eDistance, string eSymbol, int eTimeFrame, int eShift)
   {
   int eFinish= ArraySize (eExtremes)- 1 ;
   double eHigh= iHigh (eSymbol,eTimeFrame,eShift);
   double eLow= iLow (eSymbol,eTimeFrame,eShift);
   datetime eTime= iTime (eSymbol,eTimeFrame,eShift);
   //если массив пустой
   if (eFinish< 0 )
      {
       ArrayResize (eExtremes,++eFinish+ 1 );
      eExtremes[eFinish].time=eTime;
       //пока мы не знаем какой из экстремумов будет в первом элементе, поэтому берём цену по середине
       //можно сделать более грамотнее, но лень. Поэтому первый экстремум у нас будет бракованный 
      //и мы его потом затрём 
      eExtremes[eFinish].price=(eHigh+eLow)/ 2 ;
      eExtremes[eFinish].position= 0 ;
      }
   //если в массиве есть элементы
   else
      {
       //текущий элемент - максимум
       if (eExtremes[eFinish].position== 1 )
         {
         //произошло обновление текущего экстремума
         if (eHigh-eExtremes[eFinish].price> 0 )
            {
            eExtremes[eFinish].time=eTime;
            eExtremes[eFinish].price=eHigh;
            }         
         //произошло превышение расстояния между противоположными экстремумами
         if (eExtremes[eFinish].price-eLow>eDistance)
            {
             ArrayResize (eExtremes,++eFinish+ 1 );
            eExtremes[eFinish].time=eTime;
            eExtremes[eFinish].price=eLow;
            eExtremes[eFinish].position=- 1 ;
            }
         }
       //текущий элемент - минимум
       if (eExtremes[eFinish].position==- 1 )
         {
         //произошло обновление текущего экстремума
         if (eExtremes[eFinish].price-eLow> 0 )
            {
            eExtremes[eFinish].time=eTime;
            eExtremes[eFinish].price=eLow;
            }         
         //произошло превышение расстояния между противоположными экстремумами
         if (eHigh-eExtremes[eFinish].price>eDistance)
            {
             ArrayResize (eExtremes,++eFinish+ 1 );
            eExtremes[eFinish].time=eTime;
            eExtremes[eFinish].price=eHigh;
            eExtremes[eFinish].position= 1 ;
            }
         }
       //эта ситуация, когда первый элемент не закрылся, и не понятно максимум это будет или минимум
       //если произошло превышение в любую сторону, тогда затираем значения первого элемента
       if (extremes[eFinish].position== 0 )
         {
         //произошло превышение расстояния между противоположными экстремумами
         if (eHigh-eExtremes[eFinish].price>eDistance)
            {
            eExtremes[eFinish].time=eTime;
            eExtremes[eFinish].price=eHigh;
            eExtremes[eFinish].position= 1 ;
            }            
         if (eExtremes[eFinish].price-eLow>eDistance)
            {
            eExtremes[eFinish].time=eTime;
            eExtremes[eFinish].price=eLow;
            eExtremes[eFinish].position=- 1 ;
            }
         }
      }   
   }

Ek olarak, bu kodda, saç tokalarını yakalamanız ve işlemeniz gerekir, bu, bir mumun aynı anda hem yüksek hem de düşük ile örtüştüğü zamandır. Aşırı uçlar arasındaki minimum sürenin yanı sıra.

Artık ekstremumlar dizisi dolu olduğuna göre, göstergelerinize nerede ve ne zaman bakacağınızı biliyorsunuz. Ancak kullanışlılık konusundaki şüpheler kaldı :)

 
Реter Konow :

ZigZag kullanmak istemiyorum çünkü bu fikre saygısızlık edecek. ZZ ideal noktaların mükemmel bir göstergesiyse, o zaman en İDEAL göstergedir , çünkü ideal noktalara diğerlerinden daha doğru bir şekilde ulaşır. Her stratejide bir Ticaret Sinyalinin her düzeneğinde bir ZigZag olması gerektiği ortaya çıktı. Ve bu saçmalık.

Tarihte işlem bölümlerinin şu kriterlere göre belirlenmesi gerektiğini düşünüyorum: zaman / kâr / risk ve GA kullanın.

Zig-Zag göstergesinin ÖZÜNÜ anlamıyorsunuz...

33 göstergesi gerçekten de İDEAL bir göstergedir, ancak yalnızca diğer göstergeler için bir ayar olarak ...

 
Serqey Nikitin :

Zig-Zag göstergesinin ÖZÜNÜ anlamıyorsunuz...

33 göstergesi gerçekten de İDEAL bir göstergedir, ancak yalnızca diğer göstergeler için bir ayar olarak ...

TP ile ilgili sorun, işlemlerin zaman/ödül/risk oranını hesaba katmamasıdır.
33 giriş noktası orantısız işlemler verecektir. Trendi / daireyi dikkate almayacaklar. Koridorlar, zirvelerle birlikte ticaret alanlarının içine yerleştirilecek.
ZZ herhangi bir dinamiği içerir ve buna dayalı diğer göstergeleri seçmek anlamsız görünüyor. En azından akıllı değil.

Farklı bir yaklaşıma ihtiyacımız var. Sadece ideal giriş / çıkış noktaları değil, aynı zamanda işlemlerin iç oranlarına uygunluk - pozisyonun süresi, karı ve riski.

Riskten, bu bağlamda lot, stop ve mevduat oranını değil, açık pozisyon ile fiyat istikrarının değişmesini kastediyorum. Değişim (harman) ne kadar az istikrarlı olursa, kar kaybetme riski o kadar büyük olur.

Bu nedenle ideal giriş/çıkış noktaları, “kâr ne kadar yüksekse o kadar iyi” ilkesine göre değil, “ideal bir ticaret, zaman, kâr ve risk oranı en iyi olan ticarettir” ilkesine göre aranmalıdır.

Bu benim görüşüm.
 
Aleksei Stepanenko :

anlamadım İdeal noktalar tarihte zaten bilinmektedir. Bunlar uç noktalardır ve onları gözlerinizle görebilirsiniz. Ekstremumları aramak karmaşık algoritmalar gerektirmez. Yalnızca arama koşullarını tanımlamak gerekir (örneğin, karşıt komşu uç noktalar arasındaki belirli sayıda noktanın fazlalığı). Daha sonra bu ekstremumların bir dizisini (fiyat, tarih) oluşturabilir ve aynı geçmiş üzerinde her ekstremumun noktasındaki (iyi veya bu noktaya giden yolda) herhangi bir göstergenin değerini kontrol edebilirsiniz. Böyle?

Örneğin, geçmiş ekstremalarını aramak ve depolamak için dizde bir kod var (performans garantisi olmadan):

Ek olarak, bu kodda, saç tokalarını yakalamanız ve işlemeniz gerekir, bu, bir mumun aynı anda hem yüksek hem de düşük ile örtüştüğü zamandır. Aşırı uçlar arasındaki minimum sürenin yanı sıra.

Artık ekstremumlar dizisi dolu olduğuna göre, göstergelerinize nerede ve ne zaman bakacağınızı biliyorsunuz. Ancak kullanışlılık konusundaki şüpheler kaldı :)

Kod için teşekkürler. Yine de, BT aramasıyla ilgili her şeyin bu kadar basit olduğundan emin değilim.
 

Peter, çizelgeye elle birkaç işlem örneği çizebilir misin? Giriş ve çıkış. Çeşitli fiyat hareketlerine sahip grafiğin bir parçasını almanız önerilir. Ve neden bu noktalarda açıklayın. Buradaki işlemlerin zaman / kâr / risk oranı nedir?

Ve sonra ideal nokta hakkındaki fikrinizi tam olarak anlamıyorum.

 
Aleksei Stepanenko :

Peter, çizelgeye elle birkaç işlem örneği çizebilir misin? Giriş ve çıkış. Çeşitli fiyat hareketlerine sahip grafiğin bir parçasını almanız önerilir. Ve neden bu noktalarda açıklayın. Buradaki işlemlerin zaman / kâr / risk oranı nedir?

Ve sonra ideal nokta hakkındaki fikrinizi tam olarak anlamıyorum.

Evet, daha sonra yapacağım. Henüz kendim çözemedim. Bakış açımı değiştirebilirim. Yani, eğer bir şey varsa - üzgünüm. ))
 

Sorun yok.

Namluyu Zig-Zag üzerinde yuvarlamanız mantıklı. Zig-Zag trend hakkında hiçbir şey bilmiyor. Hem trendde hem de dairede bir saat gibi işliyor. Dalgaları (dizleri) trend dalgaları değildir. Trend dalgaları aşağıdaki kurala göre oluşturulur: Yeni zirveleri fethederse bir trendin devam ettiği kabul edilir. Bu, bir sonraki trend dalgasının her zaman bir öncekini kesintiye uğrattığı ve kesintiye uğramadığı takdirde bu bir dalga olmadığı anlamına gelir.

Neden: