晴れ時々、FX

My dairy fx life

第11回 AIトレードシステム開発

今日から、地道にコーディングをやっていく

ソースコードの置き換え → これまでインジケータの新部分をmql4で書いていた。これをまずpythonに書き換える必要がある。

https://github.com/chanmoto/rsi_breakout

ソースはMQL4であるが、要はCライクな言語である。

最近はPYTHONを触り始めたので、これに書き換えるところから始めることにする。

乖離率の計算は下記

Kairi_buffer[i] = (RSI[i]-mov_rsi[i])/mov_rsi[i];

区間に分けて考えていく

j=0;

for(i=1; j

if (Kairi_buffer[i] * Kairi_buffer[i+1] <= 0){

ii[j] = i;

j++;

if(j>2){

if(ii[j-1]-ii[j-3]

j=j-2;

}

}

}

}

乖離率の変曲点で、上下をグループ分けする。

if(Kairi_buffer[ii[0]]<0)

{

for(ll=0; ll

{

Hi_stack[ll] = ArrayMaximum(RSI, ii[1+ll*2]-ii[0+ll*2]+1, ii[0+ll*2]+1);

Lo_stack[ll] = ArrayMinimum(RSI, ii[2+ll*2]-ii[1+ll*2]+1, ii[1+ll*2]+1);

}

}

else

{

for(ll=0; ll

{

Hi_stack[ll] = ArrayMaximum(RSI, ii[2+ll*2]-ii[1+ll*2], ii[1+ll*2]+1);

Lo_stack[ll] = ArrayMinimum(RSI, ii[1+ll*2]-ii[0+ll*2], ii[0+ll*2]+1);

}

}

ここからが実体線と予想線を作るところ(最大のポイント)

for(ll=0;ll

{

hp1=RSI[Hi_stack[ll]];

hp2=RSI[Hi_stack[ll+1]];

hp1n=Hi_stack[ll];

hp2n=Hi_stack[ll+1];

hp3n=Hi_stack[ll-1];

if(hp2n!=hp1n) { rh=*1;}

lp1=RSI[Lo_stack[ll]];

lp2=RSI[Lo_stack[ll+1]];

lp1n=Lo_stack[ll];

lp2n=Lo_stack[ll+1];

lp3n=Lo_stack[ll-1];

if(lp1n!=lp2n){ rl=*2;}

for(k=0;k

for(k=0;k

for(k=1;k<=hp1n-hp3n;k++){ buf3[hp1n-k]=hp1-rh*k;}

for(k=1;k<=lp1n-lp3n;k++){ buf4[lp1n-k]=lp1+rl*k;}

}

for(i=0; i

buf5[i]=EMPTY_VALUE;

buf6[i]=EMPTY_VALUE;

}

いかが売買サイン

for(i=0; i

// SELL

if ( buf4[i]>=buf4[i+1] && MathAbs*3<0.001 && RSI[i] < buf4[i] && RSI[i+2] > buf4[i+2] && buf4[i+1] - RSI[i+1] > margin){

buf6[i]=RSI[i];

} else {

buf6[i]=EMPTY_VALUE;

}

// BUY

if ( buf3[i]<=buf3[i+1] && MathAbs*4<0.001 && RSI[i]>buf3[i] && RSI[i+2] margin){

buf5[i]=RSI[i];

} else {

buf5[i]=EMPTY_VALUE;

}

}

return(0);

}

*1:hp2-hp1)/(hp2n-hp1n

*2:lp1-lp2)/(lp2n-lp1n

*3:buf4[i]-buf4[i+1])-(buf4[i-1]-buf4[i]

*4:buf3[i]-buf3[i+1])-(buf3[i-1]-buf3[i]