FX取引ルール確立のために

取引方針が定まらぬ臆病者の外国為替証拠金取引の行方。 取引ルールの柱にテクニカルな売買サインを導入中。システム開発状況を全て公開。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Rangefilterのソースコード 2

前回でレンジ幅のインジケータは出来たので、その平均値のインジケータを作ります
これまで作ったソースコードに平均値を追加して行きます
削除変更部分は有りません
新規追加部分を赤で表示します

//でコメントを記します


using System;
using System.Drawing;
using Broker.StrategyLanguage.Function.BuiltIn;
using Fx2GoCommon;

namespace Broker.StrategyLanguage.Indicator
{
public class Rangefilter : BaseIndicator
{
private int m_length = 20;
private int m_avglength = 40;
//平均値の期間を示す変数の宣言です

private double m_avgrange;
//平均値の変数の宣言です

private SeriesVar m_lowerband;

private SeriesVar m_upperband;

private SeriesVar m_range;

private IPlot Plot3;
private IPlot Plot4;
//平均値を表示するインジケータの宣言です

public Rangefilter(object ctx) :
base(ctx) {}

[Input]
public int length{
get { return m_length; }
set { m_length = value; }
}
[Input]
public int avglength{
get { return m_avglength; }
set { m_avglength = value; }
}

//平均値の期間を手動で変更する部分です


protected override void Construct(){
m_lowerband = new SeriesVar(this);
m_upperband = new SeriesVar(this);
m_range = new SeriesVar(this);

Plot3 =
AddPlot(new PlotInfo("Range", ((0)), ColorTranslator.FromWin32(((255))),
ColorTranslator.FromWin32(((0))), 0, 0, true));
Plot4 =
AddPlot(new PlotInfo("AvgRange", ((0)), ColorTranslator.FromWin32(((16776960))),
ColorTranslator.FromWin32(((0))), 0, 0, true));

//平均値のインジケータの仕様を決めます
//16776960がインジケータの色を決めます

}

protected override void Initialize(){
m_lowerband.DefaultValue = 0;
m_upperband.DefaultValue = 0;
  m_range.DefaultValue = 0;
  m_avgrange = 0;
//平均値の初期値を0にします
//m_avgrangeは実数doubleなのでm_rangeのようにDefaultValueはつきません
}

protected override void Destroy() {}

protected override void Execute(){
m_lowerband.Value = Functions.Lowest(Bars.Low, length, 0);
m_upperband.Value = Functions.Highest(Bars.High, length, 0);
   m_range.Value = m_upperband.Value - m_lowerband.Value ;
m_avgrange = Functions.Average(m_range, avglength);
//avglengthの期間のm_rangenの単純平均を計算します
// m_rangeはシリーズ、avglengthは整数です

Plot3.Set(m_range.Value);
Plot4.Set(m_avgrange);
//m_avgrange(平均値)を表示します
//m_avgrangeは実数なのでm_rangeのようにValueはつきません

}
}
}


手順としては、ソースコードの下部から作って行くのが分かりやすいような気がします。
つまり、表示しようとするインジケータをPlot.Set で作っておいて
その変数の計算をして
初期設定をして
そこまでに使った変数の宣言をする という順番かなと思いました。

今回のソースコードを作るにあたっては、
ファンクションstochasticのソースコードの中にあるm_num2に関連する部分を参考にしました

コラム執筆陣:松田哲、吉田恒、陳満咲杜、マット今井
FX ポータル
松田さん 今週が大事 ユーロ円の行方 売りが基本
吉田さん 11月は変化の月 ヘッジファンドの決算が原因?
陳さん  fomc後の予想
今井さん ユーロドルのヘッド&ショルダー

参考になったらクリックよろしく 人気blogランキング

fxcmのストラテジートレーダーはこちら
外国為替のFXCMジャパン
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://fxrun.blog55.fc2.com/tb.php/1635-cfd26c87
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。