【トレステ】簡単な分析テクニックを自作してみよう【初級編】ーPart8ー20日移動平均の20日比を表示する。過去の移動平均値を表示する。



20日移動平均の20日比を表示する。

それでは、トレードステーション【トレステ】EasyLanguage(イージーランゲージ)でプログラムを作っていきましょう。

これらの言葉をプログラムでどう表現すれば良いか調べます。

20日移動平均の20日比を表示する。』を調べていきます。

  1. 20日移動平均の20日比は、『(現在の20日移動平均値ー20日前の20日移動平均値)÷ 20日前の20日移動平均値』なので、『(Average(close,20)-Average(close[20],20))/Average(close[20],20)』

ここまでをプログラムすると。

  1. わかりやすくするために、事前変動宣言valueを使って、各移動平均の式を代入する。
    Value1=Average(close,20);//20日移動平均
    Value2=Average(close[20],20);//20日前の20日移動平均
    Value3=(Value1-Value2)/Value2;//20日移動平均の20日比

Plot文で表示する。

  1. Plot文で20日移動平均の20日比を表示する。
    Plot1(Value3,”20日移動平均の20日比”);


ここで、前日の20日移動平均の20日比より高いか低いか視覚的に見えるようにするために、
前日の20日移動平均の20日比を出して、If文とSetPlotColorを使い、前日の20日移動平均の20日比より高い場合は赤く、低い場合はシアン色にするプログラムを作る。

  1. 事前変動宣言valueを使って、前日の20日移動平均の式を代入する。
    Value4=Average(close[1],20);//1日前の20日移動平均
    Value5=Average(close[21],20);//21日前の20日移動平均
    Value6=(Value4-Value5)/Value5;//1日前の20日移動平均の20日比
  2. If文を使って『20日移動平均の20日比』と『1日前の20日移動平均の20日比』比較する。
    If Value3 > Value6 then SetPlotColor(1,Red) else SetPlotColor(1,Cyan);

これだと転換したかどうかわからないので、前々日の20日移動平均の20日比を調べて、3つの20日移動平均の20日比を調べ転換した直後がどうか調べる。
転換点を迎える時は、
20日移動平均の20日比 > 1日前の20日移動平均の20日比 < 2日前の20日移動平均の20日比 のパターンか
20日移動平均の20日比 < 1日前の20日移動平均の20日比 > 2日前の20日移動平均の20日比 のパターンか のどちらかになる
もしこのパターンにあてはまるなら枠の背景色を黄色にするようにする。If文とSetPlotBGColorを使いプログラムする。

  1. 事前変動宣言valueを使って、2日前の20日移動平均の式を代入する。
    Value7=Average(close[2],20);//2日前の20日移動平均
    Value8=Average(close[22],20);//22日前の20日移動平均
    Value9=(Value7-Value8)/Value8;//2日前の20日移動平均の20日比
  2. If文を使って『20日移動平均の20日比』と『1日前の20日移動平均の20日比』『2日前の20日移動平均の20日比』比較する。
    If Value3 > Value6 and Value6 < Value9 then SetPlotBGColor(1,Yellow);
    If Value3 < Value6 and Value6 > Value9 then SetPlotBGColor(1,Yellow);

これで終了。まとめると。

実際のプログラム

Value1=Average(close,20);//20日移動平均
Value2=Average(close[20],20);//20日前の20日移動平均
Value3=(Value1-Value2)/Value2;//20日移動平均の20日比

Plot1(Value3,”20日移動平均の20日比”);

Value4=Average(close[1],20);//1日前の20日移動平均
Value5=Average(close[21],20);//21日前の20日移動平均
Value6=(Value4-Value5)/Value5;//1日前の20日移動平均の20日比

If Value3 > Value6 then SetPlotColor(1,Red) else SetPlotColor(1,Cyan);

Value7=Average(close[2],20);//2日前の20日移動平均
Value8=Average(close[22],20);//22日前の20日移動平均
Value9=(Value7-Value8)/Value8;//2日前の20日移動平均の20日比

If Value3 > Value6 and Value6 < Value9 then SetPlotBGColor(1,Yellow);
If Value3 < Value6 and Value6 > Value9 then SetPlotBGColor(1,Yellow);

Follow me!