【トレステ】簡単な分析テクニックを自作してみよう【初級編】ーPart5ー5日、20日、60日、100日移動平均線の向きを表示する。前日の移動平均の表示の仕方。



5日、20日、60日、100日移動平均線の向きを表示する騰落率時系列(5日前まで)を表示する。

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

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

5日、20日、60日、100日移動平均線の向きを表示する』を調べていきます。

  • まず、各移動平均線の値はaverage関数を使って、それぞれ
    『5日移動平均:average(close,5)』『20日移動平均:average(close,20)』『60日移動平均:average(close,60)』『100日移動平均:average(close,100)』
  • 向きは、前日の各移動平均の値の比較になるので、現在の移動平均の値が前日の移動平均値より大きければ、傾きは上になるので、
    前日の各移動平均を調べる。
  • 各移動平均の前日の値は、それぞれ
    『5日移動平均:average(close[1],5)』『20日移動平均:average(close[1],20)』『60日移動平均:average(close[1],60)』『100日移動平均:average(close[1],100)』
    1日前の終値をいれるとでます。
  • 移動平均の向きが上向きなら、”○”、”下向きなら”X” と表示する。上下とかでも良い。好みです。
  • 前日だけの比較だと精度が低いので、前々日も比較するので、前々日の移動平均もだしておく。

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

  1. 事前変動宣言valueを使って、各移動平均の式を代入する。Value1 = average(close,5); //5日移動平均
    Value2 = average(close,20); //20日移動平均
    Value3 = average(close,60); //60日移動平均
    Value4 = average(close,100); //100日移動平均Value5 = average(close[1],5); //1日前の5日移動平均
    Value6 = average(close[1],20); //1日前の20日移動平均
    Value7 = average(close[1],60); //1日前の60日移動平均
    Value8 = average(close[1],100); //1日前の100日移動平均Value9 = average(close[2],5); //2日前の5日移動平均
    Value10 = average(close[2],20); //2日前の20日移動平均
    Value11 = average(close[2],60); //2日前の60日移動平均
    Value12 = average(close[2],100); //2日前の100日移動平均
  2. If文で移動平均を比べる。上向きなら、”○”、”下向きなら”X” と表示する。*Plot文に記号いれれないので、英語のOとXで対応。文字なので””でくくる。

    If Value1 > Value5 then Plot1(“o”,”5日移動平均の向き”) else Plot1(“X”,”5日移動平均の向き”);
    If Value5 > Value9 then Plot2(“o”,”1日前の5日移動平均の向き”) else Plot1(“X”,”1日前の5日移動平均の向き”);
    If Value2 > Value6 then Plot3(“o”,”20日移動平均の向き”) else Plot3(“X”,”20日移動平均の向き”);
    If Value6 > Value10 then Plot4(“o”,”1日前の20日移動平均の向き”) else Plot4(“X”,”1日前の20日移動平均の向き”);
    If Value3 > Value7 then Plot5(“o”,”60日移動平均の向き”) else Plot5(“X”,”60日移動平均の向き”);
    If Value7 > Value11 then Plot6(“o”,”1日前の60日移動平均の向き”) else Plot6(“X”,”1日前の60日移動平均の向き”);
    If Value4 > Value8 then Plot7(“o”,”100日移動平均の向き”) else Plot7(“X”,”100日移動平均の向き”);
    If Value8 > Value12 then Plot8(“o”,”1日前の100日移動平均の向き”) else Plot8(“X”,”1日前の100日移動平均の向き”);

見やすくするために、上向き(○)ならその背景色を赤、下向きなら(☓)ならその背景色を青にする。

  1. SetPlotBGColorを使って背景色を色付けする。If Value1 > Value5 then SetPlotBGColor(1,Red) else SetPlotBGColor(1,Blue);
    If Value5 > Value9 then SetPlotBGColor(2,Red) else SetPlotBGColor(2,Blue);
    If Value2 > Value6 then SetPlotBGColor(3,Red) else SetPlotBGColor(3,Blue);
    If Value6 > Value10 then SetPlotBGColor(4,Red) else SetPlotBGColor(4,Blue);
    If Value3 > Value7 then SetPlotBGColor(5,Red) else SetPlotBGColor(5,Blue);
    If Value7 > Value11 then SetPlotBGColor(6,Red) else SetPlotBGColor(6,Blue);
    If Value4 > Value8 then SetPlotBGColor(7,Red) else SetPlotBGColor(7,Blue);
    If Value8 > Value12 then SetPlotBGColor(8,Red) else SetPlotBGColor(8,Blue);まとめて、実際のプログラムを作ると

実際のプログラム

Value1 = average(close,5); //5日移動平均
Value2 = average(close,20); //20日移動平均
Value3 = average(close,60); //60日移動平均
Value4 = average(close,100); //100日移動平均

Value5 = average(close[1],5); //1日前の5日移動平均
Value6 = average(close[1],20); //1日前の20日移動平均
Value7 = average(close[1],60); //1日前の60日移動平均
Value8 = average(close[1],100); //1日前の100日移動平均

Value9 = average(close[2],5); //2日前の5日移動平均
Value10 = average(close[2],20); //2日前の20日移動平均
Value11 = average(close[2],60); //2日前の60日移動平均
Value12 = average(close[2],100);//2日前の100日移動平均

If Value1 > Value5 then Plot1(“o”,”5日移動平均の向き”) else Plot1(“X”,”5日移動平均の向き”);//もし5日移動平均が1日前の移動平均より高ければ、○を表示、そうでなければ☓を表示
If Value5 > Value9 then Plot2(“o”,”1日前の5日移動平均の向き”) else Plot2(“X”,”1日前の5日移動平均の向き”);

If Value2 > Value6 then Plot3(“o”,”20日移動平均の向き”) else Plot3(“X”,”20日移動平均の向き”);
If Value6 > Value10 then Plot4(“o”,”1日前の20日移動平均の向き”) else Plot4(“X”,”1日前の20日移動平均の向き”);

If Value3 > Value7 then Plot5(“o”,”60日移動平均の向き”) else Plot5(“X”,”60日移動平均の向き”);
If Value7 > Value11 then Plot6(“o”,”1日前の60日移動平均の向き”) else Plot6(“X”,”1日前の60日移動平均の向き”);

If Value4 > Value8 then Plot7(“o”,”100日移動平均の向き”) else Plot7(“X”,”100日移動平均の向き”);
If Value8 > Value12 then Plot8(“o”,”1日前の100日移動平均の向き”) else Plot8(“X”,”1日前の100日移動平均の向き”);

If Value1 > Value5 then SetPlotBGColor(1,Red) else SetPlotBGColor(1,Blue);//もし5日移動平均が1日前の移動平均より高ければ、その枠の背景色を赤、そうでなければ背景色を青に表示
If Value5 > Value9 then SetPlotBGColor(2,Red) else SetPlotBGColor(2,Blue);

If Value2 > Value6 then SetPlotBGColor(3,Red) else SetPlotBGColor(3,Blue);
If Value6 > Value10 then SetPlotBGColor(4,Red) else SetPlotBGColor(4,Blue);

If Value3 > Value7 then SetPlotBGColor(5,Red) else SetPlotBGColor(5,Blue);
If Value7 > Value11 then SetPlotBGColor(6,Red) else SetPlotBGColor(6,Blue);

If Value4 > Value8 then SetPlotBGColor(7,Red) else SetPlotBGColor(7,Blue);
If Value8 > Value12 then SetPlotBGColor(8,Red) else SetPlotBGColor(8,Blue);

Follow me!