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

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

スポンサーサイト

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

SAR インジケータソースコード(エコトレFX ボラティリティランナー用)

ボラティリティーランナーで使うインジケータのソースコード改善版です

現在バーの表示が突然動き始める問題が解決されています



パラメータ:
multirange は値幅の倍数を設定します
atrlength は値幅平均の期間を設定します

コメント:
m_Positionが1の時は買いポジション有り
m_Positionがー1の時は売りポジション有り
m_Positionが0の時はポジションなし

ポジションを作る条件は、ストラテジーと同じです

ポジションの有無と売買で条件分けをします

ポジションが出来ると保有期間のバーの本数を数えます
この期間の終値の高値安値を計算します

これを基にSARを計算します

反対ポジションが出来ると保有期間をリセットします

if (countB > 0)、if (countS > 0)は、インジケータSARlineBとSARlineSが切り替わるポイントをそろえるためです

Bars.CurrentBarは、現在バーの番号を示します

*****************************

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

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

private int m_atrlength = 22;

private AvgTrueRange m_avgtruerange1;

private SeriesVar< Double> m_atr;

private int countB;

private int countS;

private int m_entrybar;

private double m_multirange = 1;

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

[Input]
public double multirange{
get { return m_multirange; }
set { m_multirange = value; }
}

[Input]
public int atrlength{
get { return m_atrlength; }
set { m_atrlength = value; }
}

private SeriesVar< Double> m_lowerband;

private SeriesVar< Double> m_upperband;

private SeriesVar< Double> SARlineB;

private SeriesVar< Double> SARlineS;

private int m_Position;

private IPlot Plot1;

private IPlot Plot2;



protected override void Construct() {

m_avgtruerange1 = new AvgTrueRange(this);

m_atr = new SeriesVar< Double>(this);

m_lowerband = new SeriesVar< Double>(this);
m_upperband = new SeriesVar< Double>(this);


SARlineB = new SeriesVar< Double>(this);
SARlineS = new SeriesVar< Double>(this);

Plot1 =
AddPlot(new PlotInfo("SARlineB", ((0)), ColorTranslator.FromWin32(((16776960))),
ColorTranslator.FromWin32(((0))), 0, 0, true));
Plot2 =
AddPlot(new PlotInfo("SARlineS", ((0)), ColorTranslator.FromWin32(((255))),
ColorTranslator.FromWin32(((0))), 0, 0, true));
}



protected override void Initialize() {

m_avgtruerange1.length = new SeriesExpression< Int32>(delegate { return atrlength; });

m_atr.DefaultValue = 0;

countB = 0;
countS = 0;
m_Position = 0;
m_lowerband.DefaultValue = 0;
m_upperband.DefaultValue = 0;
SARlineB.DefaultValue = 0;
SARlineS.DefaultValue = 0;

}



protected override void Execute(){

m_atr.Value = m_avgtruerange1[0];

if (m_Position == 0)
{
countB = countB + 1;
countS = countS + 1;

m_lowerband.Value = Functions.Lowest(Bars.Close, countS, 1);
SARlineB.Value = m_lowerband.Value+ m_atr.Value * multirange ;

if (Functions.CrossesOver(this,Bars.High,SARlineB)){
m_Position = 1;
countB = 0;
countS = 0;
m_entrybar = Bars.CurrentBar ;
}

m_upperband.Value = Functions.Highest(Bars.Close, countB, 1);
SARlineS.Value = m_upperband.Value- m_atr.Value * multirange ;

if (Functions.CrossesOver(this,SARlineS,Bars.Low)){
m_Position = -1;
countB = 0;
countS = 0;
m_entrybar = Bars.CurrentBar ;
}
}

if(m_Position == -1){

countS = Bars.CurrentBar - m_entrybar;

if (countS > 0){
m_lowerband.Value = Functions.Lowest(Bars.Close, countS, 1);
SARlineB.Value = m_lowerband.Value+ m_atr.Value * multirange ;
}

if (Functions.CrossesOver(this,Bars.High,SARlineB)){
m_Position = 1 ;
countS = 0;
m_entrybar = Bars.CurrentBar ;
}
}


if(m_Position == 1){

countB = Bars.CurrentBar - m_entrybar;

if (countB > 0){
m_upperband.Value = Functions.Highest(Bars.Close, countB, 1);
SARlineS.Value = m_upperband.Value- m_atr.Value * multirange ;
}

if (Functions.CrossesOver(this,SARlineS,Bars.Low)){
m_Position = -1;
countB = 0;
m_entrybar = Bars.CurrentBar ;
}
}

Plot1.Set( SARlineB.Value);
Plot2.Set( SARlineS.Value);


}
}
}




[当サイトで使っている自動売買システム]

FXCMはMT4よりも優れていると言っています

中身の分からないストラテジーがいやで
自分でストラテジーを作って運営しています

初めての方はこちらから
ストラテジートレーダー超入門 自動売買プログラミング編

Strategy Trader 紹介ビデオ 取扱説明 関連サイト

ストラテジートレーダー概要

ストラテジートレーダーβ版利用ガイド

[他の自動売買サイトを探す]

人気blogランキング






[相場の流れは]
FX ポータル

今井さん 利上げ観測
西原さん ユーロドルの下落に注意
松田さん ドル円はボックス
陳さん  日本国債の格下げ影響
吉田さん ECB利上げと財政危機の綱引き
スポンサーサイト

コメント

コメントの投稿


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

トラックバック

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

FC2Ad

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