株式市場のトレンドを特定するための Java プログラムを作成しており、次のパターンを特定したいと考えています。
値が約 100 を超えてEMA
下回っている場合。0.7% (1 日目)、次の 2 ~ 3 日間の 2 つの間のSMA
0.2% ~ 0.5% の変動 (上下関係の変化) を探すことができますSMA
。EMA
これは売りシグナルを示します。
andの float 値の配列がEMA
あり、次にEMA と SMA のパーセンテージ差を含むSMA
別の float 配列が呼び出されます。percentDif
たとえば、これらはEMA
、SMA
およびpercentDif
配列の最初の 2 セットの値です。
EMA 314.395 SMA 314.9859884 percentDif -0.001876237
EMA 313.9476 SMA 314.4888908 percentDif -0.001721176
必要なパターンを識別するためにこのメソッドを作成しましたが、正しく機能していません。これを行うためのより良い方法はありますか?
public void trend(){
/*
* Trend indicator pattern
*/
float valueDrop = -0.7f;
float minFluxPos = 0.2f;
float maxFluxPos = 0.5f;
float minFluxNeg = -0.2f;
float maxFluxNeg = -0.5f;
for(int i = 0; i< percentDif.length-2; i++)
{
//If the difference between EMA and SMA is greater or equal to -0.7 percent
if(percentDif[i] >= valueDrop){
//If the next day the percentage difference fluctuates between 0.2 or 0.5 either way
if( ((percentDif[i+1] > minFluxPos) && (percentDif[i+1] < maxFluxPos))
|| ((percentDif[i+1] > minFluxNeg) && (percentDif[i+1] < maxFluxNeg)) )
{
//Indicates price drop and therefore sell signal
System.out.println("Trend Indicated - SELL");
}
}
}
}
配列に次の値を入力しましたpercentDif
: 5 -0.8 -0.3
これらの値はパターンの説明に適合するため、print ステートメントをトリガーする必要がありますが、実行していません。