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

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

スポンサーサイト

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

Rangefilterのソースコード 1

既存のインジケータPriceChannel から新規にRangefilterというインジケータを作ります
PriceChannelのソースコードをコピーして変更しています
アンダ―ラインをしたところが削除、変更箇所です
新規追加もあります

個々の箇所にコメントを入れます

using System;
using System.Drawing;

namespace Broker.StrategyLanguage.Indicator
{
public class PriceChannel : BaseIndicator

         Rangefilter 名前の変更  
{
private int m_length = 20;

private int m_displace; →削除 ずらさないので削除

private SeriesVar m_lowerband;

private SeriesVar m_upperband;

private SeriesVar m_range; →新規追加 「高値ラインー安値ライン」の計算値に使います

private IPlot Plot1; →削除 高値ラインは表示しないので削除します

private IPlot Plot2; →削除 安値ラインは表示しないので削除します

  private IPlot Plot3; →新規追加  上記m_rangeの表示に使います

public PriceChannel(object ctx) :

Rangefilter 名前の変更

base(ctx) {}

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

[Input]
public int displace{
get { return m_displace; }
set { m_displace = value; } →削除 ずらさないので削除
}


protected override void Construct(){
m_lowerband = new SeriesVar(this);
m_upperband = new SeriesVar(this);
m_range = new SeriesVar(this); →新規追加 m_rangeはシリーズ変数なのでこのタイプします

Plot1 =
AddPlot(new PlotInfo("UpperBand", ((0)), ColorTranslator.FromWin32(((16776960))),
ColorTranslator.FromWin32(((0))), 0, 0, true));
Plot2 =
AddPlot(new PlotInfo("LowerBand", ((0)), ColorTranslator.FromWin32(((255))),
ColorTranslator.FromWin32(((0))), 0, 0, true));
}
→削除 高値安値ラインは表示しないので削除します

Plot3 =
AddPlot(new PlotInfo("Range", ((0)), ColorTranslator.FromWin32(((255))),
ColorTranslator.FromWin32(((0))), 0, 0, true)); →新規追加 m_range表示用です
PlotInfoの使い方は、Help Contentsの Structureの中のPlotInfo Structureに説明が有ります


protected override void Initialize(){
m_lowerband.DefaultValue = 0;
m_upperband.DefaultValue = 0;
m_range.DefaultValue = 0; →新規追加
}

protected override void Destroy() {}

protected override void Execute(){
m_lowerband.Value = Functions.Lowest(Bars.Low, length, 1); →0に変更
m_upperband.Value = Functions.Highest(Bars.High, length, 1);  →0に変更
高値安値ラインは現在バーを計算に入れるので 0にします 
 
m_range.Value = m_upperband.Value - m_lowerband.Value ; →新規追加 計算しています

if (((displace >= 0)
|| Functions.DoubleGreater(Bars.CurrentBar, Math.Abs(displace)))){
Plot1.Set(displace, m_upperband.Value);
Plot2.Set(displace, m_lowerband.Value);
  →削除 表示の条件はないので削除します
Plot3.Set(m_range.Value); →新規追加 づらしは無いので表示する変数値のみ( )の中に入れます    

Plot Setの使い方は、Help ContentsのInterfaceの中のIPlot Interfaceに説明があります


if ((displace <= 0)){
if (Functions.CrossesUnder(this, Bars.Low, m_lowerband)){
Alerts.Alert("Price making new low");
}
if (Functions.CrossesOver(this, Bars.High, m_upperband)){
Alerts.Alert("Price making new high");
}
}
}
 →削除 アラートは必要ないので削除します
}
}
}

コラム執筆陣:松田哲、吉田恒、陳満咲杜、マット今井
FX ポータル
陳さん  fomc後の予想
今井さん ユーロドルはヘッドアンドショルダー形成か?
松田さん ユーロドルの行方 そのうち下がる
吉田さん G20後の協調介入の可能性

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

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

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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