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

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

スポンサーサイト

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

PriceChannelの中身(レンジフィルターの作成) 

レンジフィルターを作成しています。

元になるインジケータPriceChannelのソースコードは以下になります。

頭の中を整理するためにコメントを入れます(//で示した部分)

結論としては、FunctionsのLowestとHighestを調べる必要があることが分かりました。

/*
(Channel)
A price channel is a continuation pattern that slopes up or down and is bound by an upper and lower trend line.
The upper trend line marks resistance and the lower trend line marks support.
Price channels with negative slopes are denoted bearish and those with positive slopes are denoted bullish.
*/
using System;
using System.Drawing;

namespace Broker.StrategyLanguage.Indicator
{
public class PriceChannel : BaseIndicator
{
private int m_length = 20;

private int m_displace;

private SeriesVar m_lowerband;

private SeriesVar m_upperband;

private IPlot Plot1;

private IPlot Plot2;

public PriceChannel(object ctx) :
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_lowerband と m_upperband には、チャート上のバーに対応した実数のシリーズデータを入れる


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));
}

//表示させるインジケータの形式を設定している


protected override void Initialize(){
m_lowerband.DefaultValue = 0;
m_upperband.DefaultValue = 0;
}

//m_lowerband と m_upperband の初期値は 0 とする


protected override void Destroy() {}

protected override void Execute(){
m_lowerband.Value = Functions.Lowest(Bars.Low, length, 1);
m_upperband.Value = Functions.Highest(Bars.High, length, 1);

//m_lowerband と m_upperband の値を計算しています
//計算は Functions.Lowest と Functions.Highest を使って行っています
//Functions.Lowestの場合、lengthの期間の一番の安値(Bars.Low)を出力します
//1は計算を始めるバーの番号です。0は現在バー、1は現在よりも1つ前(過去)のバーになります
//Functionの使い方の説明は、StrategyLanguageEditorのHelpの ClassesのFunctions Classを参照

if (((displace >= 0)
|| Functions.DoubleGreater(Bars.CurrentBar, Math.Abs(displace)))){
Plot1.Set(displace, m_upperband.Value);
Plot2.Set(displace, m_lowerband.Value);

//インジケータを表示する条件を設定して、m_upperbandとm_lowerbandの値を描画します


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 ポータル
陳さん  G20と通貨安戦争
今井さん FOMCまでのユーロドル
松田さん ドル円の行方 80円割れ
吉田さん ドル安反転は元しだい

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

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

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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