Buradaki fikir, Devavrat Shah ve Kang Zhang Laboratuvarı Bilgi ve Karar Sistemleri, EECS Massachusetts Teknoloji Enstitüsü tarafından sunulan gerçek ticaret stratejisinin Forex için uygun olup olmadığını anlamaktı.
lilita bogachkova : Fikir, Devavrat Shah ve Kang Zhang Bilgi ve Karar Sistemleri Laboratuvarı, EECS Massachusetts Teknoloji Enstitüsü tarafından sunulan gerçek ticaret stratejisinin Forex için uygun olup olmadığını anlamaktı.
Cevap verdim - hayır, yuvarlanmıyor.
Rusça'da hesaplama ilkesi referans olarak açıklanmaktadır.
" 6. Bayes regresyonu , ridge regresyonuna benzer, ancak verilerde gürültünün (hata) normal olarak dağıldığı varsayımına dayanır - bu nedenle, verilerin yapısı hakkında zaten ortak bir anlayışın olduğu varsayılır "
Forex'te bırakın normal dağılımını, gürültü bile yok. Öyle olsaydı, o zaman bir düz ile bir trend arasında sınır olmayacaktı, yani normal bir dağılımla trend dönüşleri olmayacaktı. Normal bir dağılımla, fiyat, belirli bir açıda ve PPC'de bir yönde gürültü ile gidecektir.
Rusça'da hesaplama ilkesi referans olarak açıklanmaktadır.
" 6. Bayes regresyonu , ridge regresyonuna benzer, ancak verilerde gürültünün (hata) normal olarak dağıldığı varsayımına dayanır - bu nedenle, verilerin yapısı hakkında zaten ortak bir anlayışın olduğu varsayılır "
Forex'te bırakın normal dağılımını, gürültü bile yok. Öyle olsaydı, o zaman bir düz ile bir trend arasında sınır olmayacaktı, yani normal bir dağılımla trend dönüşleri olmayacaktı. Normal bir dağılımla, fiyat, belirli bir açıda ve PPC'de bir yönde gürültü ile gidecektir.
Gürültülü 'Bitcoin'in bir açıda ve PPC'de bir yöne gittiğini düşünebilirsiniz.
Bir konu varsa, o konunun tartışılması beklenir. Konu, sunulan strateji ile ilgilidir ( Bayesian regresyon - Bu algoritmayı kullanan bir danışman yaptı mı? ) ancak regresyon hesaplama yöntemleri arasında bir seçim olarak değil.
Görünüşe göre her şey mql araçları kullanılarak uygulanıyor - ALGLIB var - k-ortalama ve çok boyutlu doğrusal uyum - mevcut. Algoritmanın hala nasıl çalıştığını bulmak için kalır (ve bu kimseyi ilgilendirmiyor - bazıları R'yi övüyor, diğerleri genel olarak ne hakkında konuştuğunu söyleyen gerilemeye sarıldı). Algoritmayı tartışmak isteyen var mı?
Görünüşe göre her şey mql araçları kullanılarak uygulanıyor - ALGLIB var - k-ortalama ve çok boyutlu doğrusal uyum - mevcut. Algoritmanın hala nasıl çalıştığını bulmak için kalır (ve bu kimseyi ilgilendirmiyor - bazıları R'yi övüyor, diğerleri genel olarak ne hakkında konuştuğunu söyleyen gerilemeye sarıldı). Algoritmayı tartışmak isteyen var mı?
Bunu yapmak için herkesi doğru yöne göndermeniz gerekir. k-mean, dataanalysis.mqh dosyasında bulunan CKMeans sınıfı tarafından yapılır.
İşte sınıfın kendisi:
class CKMeans
{
private :
//--- private methodstaticbool SelectCenterPP(CMatrixDouble &xy, constint npoints, constint nvars,CMatrixDouble ¢ers, bool &cbusycenters[], constint ccnt, double &d2[], double &p[], double &tmp[]);
public :
//--- constructor, destructor
CKMeans( void );
~CKMeans( void );
//--- public methodstaticvoid KMeansGenerate(CMatrixDouble &xy, constint npoints, constint nvars, constint k, constint restarts, int &info,CMatrixDouble &c, int &xyc[]);
};
//+------------------------------------------------------------------+//| Constructor without parameters |//+------------------------------------------------------------------+
CKMeans::CKMeans( void )
{
}
//+------------------------------------------------------------------+//| Destructor |//+------------------------------------------------------------------+
CKMeans::~CKMeans( void )
{
}
//+------------------------------------------------------------------+//| k-means++ clusterization |//| INPUT PARAMETERS: |//| XY - dataset, array [0..NPoints-1,0..NVars-1]. |//| NPoints - dataset size, NPoints>=K |//| NVars - number of variables, NVars>=1 |//| K - desired number of clusters, K>=1 |//| Restarts - number of restarts, Restarts>=1 |//| OUTPUT PARAMETERS: |//| Info - return code: |//| * -3, if task is degenerate (number of |//| distinct points is less than K) |//| * -1, if incorrect |//| NPoints/NFeatures/K/Restarts was passed|//| * 1, if subroutine finished successfully |//| C - array[0..NVars-1,0..K-1].matrix whose columns|//| store cluster's centers |//| XYC - array[NPoints], which contains cluster |//| indexes |//+------------------------------------------------------------------+staticvoid CKMeans::KMeansGenerate(CMatrixDouble &xy, constint npoints,
constint nvars, constint k,
constint restarts, int &info,
CMatrixDouble &c, int &xyc[])
{
//--- create variablesint i= 0 ;
int j= 0 ;
double e= 0 ;
double ebest= 0 ;
double v= 0 ;
int cclosest= 0 ;
bool waschanges;
bool zerosizeclusters;
int pass= 0 ;
int i_= 0 ;
double dclosest= 0 ;
//--- creating arraysint xycbest[];
double x[];
double tmp[];
double d2[];
double p[];
int csizes[];
bool cbusy[];
double work[];
//--- create matrix
CMatrixDouble ct;
CMatrixDouble ctbest;
//--- initialization
info= 0 ;
//--- Test parametersif (npoints<k || nvars< 1 || k< 1 || restarts< 1 )
{
info=- 1 ;
return ;
}
//--- TODO: special case K=1//--- TODO: special case K=NPoints
info= 1 ;
//--- Multiple passes of k-means++ algorithm
ct.Resize(k,nvars);
ctbest.Resize(k,nvars);
ArrayResizeAL(xyc,npoints);
ArrayResizeAL(xycbest,npoints);
ArrayResizeAL(d2,npoints);
ArrayResizeAL(p,npoints);
ArrayResizeAL(tmp,nvars);
ArrayResizeAL(csizes,k);
ArrayResizeAL(cbusy,k);
//--- change value
ebest=CMath::m_maxrealnumber;
//--- calculationfor (pass= 1 ;pass<=restarts;pass++)
{
//--- Select initial centers using k-means++ algorithm//--- 1. Choose first center at random//--- 2. Choose next centers using their distance from centers already chosen//--- Note that for performance reasons centers are stored in ROWS of CT,not//--- in columns. We'll transpose CT in the end and store it in the C.
i=CMath::RandomInteger(npoints);
for (i_= 0 ;i_<=nvars- 1 ;i_++)
ct[ 0 ].Set(i_,xy[i][i_]);
cbusy[ 0 ]= true ;
for (i= 1 ;i<=k- 1 ;i++)
cbusy[i]= false ;
//--- checkif (!SelectCenterPP(xy,npoints,nvars,ct,cbusy,k,d2,p,tmp))
{
info=- 3 ;
return ;
}
//--- Update centers://--- 2. update center positionsfor (i= 0 ;i<=npoints- 1 ;i++)
xyc[i]=- 1 ;
//--- cyclewhile ( true )
{
//--- fill XYC with center numbers
waschanges= false ;
for (i= 0 ;i<=npoints- 1 ;i++)
{
//--- change values
cclosest=- 1 ;
dclosest=CMath::m_maxrealnumber;
for (j= 0 ;j<=k- 1 ;j++)
{
//--- calculationfor (i_= 0 ;i_<=nvars- 1 ;i_++)
tmp[i_]=xy[i][i_];
for (i_= 0 ;i_<=nvars- 1 ;i_++)
tmp[i_]=tmp[i_]-ct[j][i_];
v= 0.0 ;
for (i_= 0 ;i_<=nvars- 1 ;i_++)
v+=tmp[i_]*tmp[i_];
//--- checkif (v<dclosest)
{
cclosest=j;
dclosest=v;
}
}
//--- checkif (xyc[i]!=cclosest)
waschanges= true ;
//--- change value
xyc[i]=cclosest;
}
//--- Update centersfor (j= 0 ;j<=k- 1 ;j++)
csizes[j]= 0 ;
for (i= 0 ;i<=k- 1 ;i++)
{
for (j= 0 ;j<=nvars- 1 ;j++)
ct[i].Set(j, 0 );
}
//--- change valuesfor (i= 0 ;i<=npoints- 1 ;i++)
{
csizes[xyc[i]]=csizes[xyc[i]]+ 1 ;
for (i_= 0 ;i_<=nvars- 1 ;i_++)
ct[xyc[i]].Set(i_,ct[xyc[i]][i_]+xy[i][i_]);
}
zerosizeclusters= false ;
for (i= 0 ;i<=k- 1 ;i++)
{
cbusy[i]=csizes[i]!= 0 ;
zerosizeclusters=zerosizeclusters || csizes[i]== 0 ;
}
//--- checkif (zerosizeclusters)
{
//--- Some clusters have zero size - rare,but possible.//--- We'll choose new centers for such clusters using k-means++ rule//--- and restart algorithmif (!SelectCenterPP(xy,npoints,nvars,ct,cbusy,k,d2,p,tmp))
{
info=- 3 ;
return ;
}
continue ;
}
//--- copyfor (j= 0 ;j<=k- 1 ;j++)
{
v= 1.0 /( double )csizes[j];
for (i_= 0 ;i_<=nvars- 1 ;i_++)
ct[j].Set(i_,v*ct[j][i_]);
}
//--- if nothing has changed during iterationif (!waschanges)
break ;
}
//--- 3. Calculate E,compare with best centers found so far
e= 0 ;
for (i= 0 ;i<=npoints- 1 ;i++)
{
for (i_= 0 ;i_<=nvars- 1 ;i_++)
tmp[i_]=xy[i][i_];
for (i_= 0 ;i_<=nvars- 1 ;i_++)
tmp[i_]=tmp[i_]-ct[xyc[i]][i_];
//--- calculation
v= 0.0 ;
for (i_= 0 ;i_<=nvars- 1 ;i_++)
v+=tmp[i_]*tmp[i_];
e=e+v;
}
//--- checkif (e<ebest)
{
//--- store partition.
ebest=e;
//--- function call
CBlas::CopyMatrix(ct, 0 ,k- 1 , 0 ,nvars- 1 ,ctbest, 0 ,k- 1 , 0 ,nvars- 1 );
//--- copyfor (i= 0 ;i<=npoints- 1 ;i++)
xycbest[i]=xyc[i];
}
}
//--- Copy and transpose
c.Resize(nvars,k);
//--- function call
CBlas::CopyAndTranspose(ctbest, 0 ,k- 1 , 0 ,nvars- 1 ,c, 0 ,nvars- 1 , 0 ,k- 1 );
//--- copyfor (i= 0 ;i<=npoints- 1 ;i++)
xyc[i]=xycbest[i];
}
//+------------------------------------------------------------------+//| Select center for a new cluster using k-means++ rule |//+------------------------------------------------------------------+staticbool CKMeans::SelectCenterPP(CMatrixDouble &xy, constint npoints,
constint nvars,CMatrixDouble ¢ers,
bool &cbusycenters[], constint ccnt,
double &d2[], double &p[], double &tmp[])
{
//--- create variablesbool result;
int i= 0 ;
int j= 0 ;
int cc= 0 ;
double v= 0 ;
double s= 0 ;
int i_= 0 ;
//--- create arraydouble busycenters[];
//--- copyArrayCopy (busycenters,cbusycenters);
//--- initialization
result= true ;
//--- calculationfor (cc= 0 ;cc<=ccnt- 1 ;cc++)
{
//--- checkif (!busycenters[cc])
{
//--- fill D2for (i= 0 ;i<=npoints- 1 ;i++)
{
d2[i]=CMath::m_maxrealnumber;
for (j= 0 ;j<=ccnt- 1 ;j++)
{
//--- checkif (busycenters[j])
{
for (i_= 0 ;i_<=nvars- 1 ;i_++)
tmp[i_]=xy[i][i_];
for (i_= 0 ;i_<=nvars- 1 ;i_++)
tmp[i_]=tmp[i_]-centers[j][i_];
//--- calculation
v= 0.0 ;
for (i_= 0 ;i_<=nvars- 1 ;i_++)
v+=tmp[i_]*tmp[i_];
//--- checkif (v<d2[i])
d2[i]=v;
}
}
}
//--- calculate P (non-cumulative)
s= 0 ;
for (i= 0 ;i<=npoints- 1 ;i++)
s=s+d2[i];
//--- checkif (s== 0.0 )
return ( false );
//--- change value
s= 1 /s;
for (i_= 0 ;i_<=npoints- 1 ;i_++)
p[i_]=s*d2[i_];
//--- choose one of points with probability P//--- random number within (0,1) is generated and//--- inverse empirical CDF is used to randomly choose a point.
s= 0 ;
v=CMath::RandomReal();
//--- calculationfor (i= 0 ;i<=npoints- 1 ;i++)
{
s=s+p[i];
//--- checkif (v<=s || i==npoints- 1 )
{
for (i_= 0 ;i_<=nvars- 1 ;i_++)
centers[cc].Set(i_,xy[i][i_]);
busycenters[cc]= true ;
//--- break the cyclebreak ;
}
}
}
}
//--- return resultreturn (result);
}
Gürültülü 'Bitcoin'in bir açıda ve PPC'de bir yöne gittiğini düşünebilirsiniz.
Bir konu varsa, o konunun tartışılması beklenir. Konu, sunulan strateji ile ilgilidir ( Bayesian regresyon - Bu algoritmayı kullanan bir danışman var mı? ) ancak regresyon hesaplama yöntemleri arasında seçim yapmakla ilgili değil.
Valerie Mazurenko :
Görünüşe göre her şey mql araçları kullanılarak uygulanıyor - ALGLIB var - k-ortalama ve çok boyutlu doğrusal uyum - mevcut. Algoritmanın hala nasıl çalıştığını bulmak için kalır (ve bu kimseyi ilgilendirmiyor - bazıları R'yi övüyor, diğerleri genel olarak ne hakkında konuştuğunu söyleyen gerilemeye sarıldı). Algoritmayı tartışmak isteyen var mı?
TAMAM.
Pratik uygulama, projenin buna değmesi koşuluyla her zaman bir projeyle başlar.
Neden bu yöntemin forex için geçerli olduğuna karar verdiniz?
Büyük ihtimalle 10'dan 10'unu denerdim... //Bayesian, bence, hiç yuvarlanmıyor
http://datareview.info/article/10-tipov-regressii-kakoy-vyibrat/
Senin görüşün?
Buradaki fikir, sunulan gerçek ticaret stratejisinin Forex için uygun olup olmadığını anlamaktı.
Fikir, Devavrat Shah ve Kang Zhang Bilgi ve Karar Sistemleri Laboratuvarı, EECS Massachusetts Teknoloji Enstitüsü tarafından sunulan gerçek ticaret stratejisinin Forex için uygun olup olmadığını anlamaktı.
Cevap verdim - hayır, yuvarlanmıyor.
Rusça'da hesaplama ilkesi referans olarak açıklanmaktadır.
" 6. Bayes regresyonu , ridge regresyonuna benzer, ancak verilerde gürültünün (hata) normal olarak dağıldığı varsayımına dayanır - bu nedenle, verilerin yapısı hakkında zaten ortak bir anlayışın olduğu varsayılır "
Forex'te bırakın normal dağılımını, gürültü bile yok. Öyle olsaydı, o zaman bir düz ile bir trend arasında sınır olmayacaktı, yani normal bir dağılımla trend dönüşleri olmayacaktı. Normal bir dağılımla, fiyat, belirli bir açıda ve PPC'de bir yönde gürültü ile gidecektir.
Cevap verdim - hayır, yuvarlanmıyor.
Rusça'da hesaplama ilkesi referans olarak açıklanmaktadır.
" 6. Bayes regresyonu , ridge regresyonuna benzer, ancak verilerde gürültünün (hata) normal olarak dağıldığı varsayımına dayanır - bu nedenle, verilerin yapısı hakkında zaten ortak bir anlayışın olduğu varsayılır "
Forex'te bırakın normal dağılımını, gürültü bile yok. Öyle olsaydı, o zaman bir düz ile bir trend arasında sınır olmayacaktı, yani normal bir dağılımla trend dönüşleri olmayacaktı. Normal bir dağılımla, fiyat, belirli bir açıda ve PPC'de bir yönde gürültü ile gidecektir.
Gürültülü 'Bitcoin'in bir açıda ve PPC'de bir yöne gittiğini düşünebilirsiniz.
Bir konu varsa, o konunun tartışılması beklenir. Konu, sunulan strateji ile ilgilidir ( Bayesian regresyon - Bu algoritmayı kullanan bir danışman yaptı mı? ) ancak regresyon hesaplama yöntemleri arasında bir seçim olarak değil.
Görünüşe göre her şey mql araçları kullanılarak uygulanıyor - ALGLIB var - k-ortalama ve çok boyutlu doğrusal uyum - mevcut. Algoritmanın hala nasıl çalıştığını bulmak için kalır (ve bu kimseyi ilgilendirmiyor - bazıları R'yi övüyor, diğerleri genel olarak ne hakkında konuştuğunu söyleyen gerilemeye sarıldı). Algoritmayı tartışmak isteyen var mı?
Görünüşe göre her şey mql araçları kullanılarak uygulanıyor - ALGLIB var - k-ortalama ve çok boyutlu doğrusal uyum - mevcut. Algoritmanın hala nasıl çalıştığını bulmak için kalır (ve bu kimseyi ilgilendirmiyor - bazıları R'yi övüyor, diğerleri genel olarak ne hakkında konuştuğunu söyleyen gerilemeye sarıldı). Algoritmayı tartışmak isteyen var mı?
Bunu yapmak için herkesi doğru yöne göndermeniz gerekir. k-mean, dataanalysis.mqh dosyasında bulunan CKMeans sınıfı tarafından yapılır.
İşte sınıfın kendisi:
Parametreye dikkat edin:
K - desired number of clusters, K>=1
Bu nedenle, istediğiniz merkez sayısını bağımsız olarak ayarlamanız gerekir.
Gürültülü 'Bitcoin'in bir açıda ve PPC'de bir yöne gittiğini düşünebilirsiniz.
Bir konu varsa, o konunun tartışılması beklenir. Konu, sunulan strateji ile ilgilidir ( Bayesian regresyon - Bu algoritmayı kullanan bir danışman var mı? ) ancak regresyon hesaplama yöntemleri arasında seçim yapmakla ilgili değil.
Görünüşe göre her şey mql araçları kullanılarak uygulanıyor - ALGLIB var - k-ortalama ve çok boyutlu doğrusal uyum - mevcut. Algoritmanın hala nasıl çalıştığını bulmak için kalır (ve bu kimseyi ilgilendirmiyor - bazıları R'yi övüyor, diğerleri genel olarak ne hakkında konuştuğunu söyleyen gerilemeye sarıldı). Algoritmayı tartışmak isteyen var mı?
TAMAM.
Pratik uygulama, projenin buna değmesi koşuluyla her zaman bir projeyle başlar.
Neden bu yöntemin forex için geçerli olduğuna karar verdiniz?
TAMAM.
Pratik uygulama, projenin buna değmesi koşuluyla her zaman bir projeyle başlar.
Neden bu yöntemin forex için geçerli olduğuna karar verdiniz?
Şimdi bununla ilgili bir konuşma var. algoritma nasıl çalışır.
Uygulanabilirliğe gelince, yararlı olduğu bazı görevler var. Fiyatlar kümelenmeyecek.
Şimdi bununla ilgili bir konuşma var. algoritma nasıl çalışır.
Bununla ilgili.
TAMAM.
Pratik uygulama, projenin buna değmesi koşuluyla her zaman bir projeyle başlar.
Neden bu yöntemin forex için geçerli olduğuna karar verdiniz?
Araştırmacılar belirgin bir eğilimi olmayan bir dönem seçtiler, bu nedenle elde edilen sonuçlar ilgi çekici.