サマリー
Welles WilderのDirectional Movementインジケーター計算。
備考
Welles WilderのDirectional Movementシステムは、3つのインジケーターを使用して、市場がトレンドにあるかどうか、およびその方向を判断し、取引シグナルを送信します。+DIラインが-DIラインを上抜けると買いシグナルが発生し、-DIラインが+DIラインを下抜けると売りシグナルが発生します。
シグネチャー
1 |
|
名前空間
cAlgo.API.Indicators
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
//...
[Indicator(IsOverlay = true)]
public class SampleADX : Indicator
{
private DirectionalMovementSystem _dms;
private double _dIplus;
private double _dIminus;
[Parameter("ADX Period", DefaultValue = 14)]
public int Period <span="p">{ get; set<span="p">; }
[Output("Buy", PlotType = PlotType.Points, Color = Colors.Green, Thickness = 4)]
public <span="n">IndicatorDataSeries <span="n">Buy { get; set<span="p">; }
[Output("Sell", PlotType = PlotType.Points, Color = Colors.Red, Thickness = 4)]
public <span="n">IndicatorDataSeries <span="n">Sell { get; set<span="p">; <span="p">}
protected override void Initialize<span="p">()
{
_dms <span="o">= Indicators<span="p">.<span="n">DirectionalMovementSystem<span="p">(<span="n">Period<span="p">);
}
public override void Calculate<span="p">(<span="kt">int <span="n">index<span="p">)
{
_dIplus <span="o">= _dms<span="p">.<span="n">DIPlus<span="p">[<span="n">index<span="p">];
_dIminus <span="o">= <span="n">_dms<span="p">.<span="n">DIMinus<span="p">[<span="n">index<span="p">];
if <span="p">(<span="n">_dIminus <span="o">> _dIplus<span="p">)
{
Sell<span="p">[<span="n">index<span="p">] <span="o">= MarketSeries<span="p">.<span="n">Close<span="p">[<span="n">index<span="p">] <span="o">+ Symbol<span="p">.<span="n">PointSize<span="o">*<span="m">100<span="p">;
<span="p">}
else
{
Buy<span="p">[<span="n">index<span="p">] <span="o">= MarketSeries<span="p">.<span="n">Close<span="p">[<span="n">index<span="p">] <span="o">- <span="n">Symbol<span="p">.<span="n">PointSize<span="o">*<span="m">100<span="p">;
}
<span="p">}
<span="p">}
//...
プロパティ
ADX
概要
平均方向性移動指数(ADX)は、市場がトレンドにあるか、レンジにあるかを示します。
シグネチャー
1 |
|
戻り値
IndicatorDataSeries
例
1 2 <span="normal"> 3 <span="normal"> 4 <span="normal"> 5 <span="normal"> 6 <span="normal"> 7 <span="normal"> 8 <span="normal"> 9 <span="normal">10 <span="normal">11 <span="normal">12 <span="normal">13 <span="normal">14 <span="normal">15 |
//...
[Robot]
public <span="k">class <span="nc">SampleRobot <span="p">: <span="n">Robot
//...
private <span="n">DirectionalMovementSystem <span="n">_dms<span="p">;
protected <span="k">override <span="k">void <span="nf">Initialize<span="p">()
<span="p">{
<span="n">_dms <span="o">= <span="n">Indicators<span="p">.<span="n">DirectionalMovementSystem<span="p">(<span="n">Period<span="p">);
<span="p">}
<span="c1">//...
<span="k">protected <span="k">override <span="k">void <span="nf">OnBar<span="p">()
<span="p">{
<span="n">Print<span="p">(<span="s">"現在の平均方向性移動指数(ADX)は:{0}"<span="p">, <span="n">_dms<span="p">.<span="n">ADX<span="p">.<span="n">LastValue<span="p">);
<span="p">}
<span="c1">//...
DIPlus
概要
Positive Direction Indicator (+DI) は上昇トレンドの動きを示します。
シグネチャー
1 |
public <span="k">abstract <span="n">IndicatorDataSeries <span="n">DIPlus <span="p">{get<span="p">;}
戻り値
IndicatorDataSeries
例
1
<span="normal"> 2
<span="normal"> 3
<span="normal"> 4
<span="normal"> 5
<span="normal"> 6
<span="normal"> 7
<span="normal"> 8
<span="normal"> 9
<span="normal">10
<span="normal">11
<span="normal">12
<span="normal">13
<span="normal">14
<span="normal">15 |
//...
<span="na">[Robot]
<span="k">public <span="k">class <span="nc">SampleRobot <span="p">: <span="n">Robot
//...
<span="k">private <span="n">DirectionalMovementSystem <span="n">_dms<span="p">;
<span="k">protected <span="k">override <span="k">void <span="nf">Initialize<span="p">()
<span="p">{
<span="n">_dms <span="o">= <span="n">Indicators<span="p">.<span="n">DirectionalMovementSystem<span="p">(<span="n">Period<span="p">);
<span="p">}
<span="c1">//...
<span="k">protected <span="k">override <span="k">void <span="nf">OnBar<span="p">()
<span="p">{
<span="n">Print<span="p">(<span="s">"現在のPositive Direction Indicator (+DI)は:{0}"<span="p">, <span="n">_dms<span="p">.<span="n">DIPlus<span="p">.<span="n">LastValue<span="p">);
<span="p">}
<span="c1">//...
DIMinus
概要
Negative Direction Indicator (-DI) は下降トレンドの動きを示します。
シグネチャー
1 |
public <span="k">abstract <span="n">IndicatorDataSeries <span="n">DIMinus <span="p">{<span="k">get<span="p">;}
戻り値
IndicatorDataSeries
例
<span="normal"> 1 <span="normal"> 2 <span="normal"> 3 <span="normal"> 4 <span="normal"> 5 <span="normal"> 6 <span="normal"> 7 <span="normal"> 8 <span="normal"> 9 <span="normal">10 <span="normal">11 <span="normal">12 <span="normal">13 <span="normal">14 <span="normal">15 |
<span="c1">//...
<span="na">[Robot]
<span="k">public <span="k">class <span="nc">SampleRobot <span="p">: <span="n">Robot
<span="c1">//...
<span="k">private <span="n">DirectionalMovementSystem <span="n">_dms<span="p">;
<span="k">protected <span="k">override <span="k">void <span="nf">Initialize<span="p">()
<span="p">{
<span="n">_dms <span="o">= <span="n">Indicators<span="p">.<span="n">DirectionalMovementSystem<span="p">(<span="n">Period<span="p">);
<span="p">}
<span="c1">//...
<span="k">protected <span="k">override <span="k">void <span="nf">OnBar<span="p">()
<span="p">{
<span="n">Print<span="p">(<span="s">"現在のNegative Direction Indicator (-DI)は:{0}"<span="p">, <span="n">_dms<span="p">.<span="n">DIMinus<span="p">.<span="n">LastValue<span="p">);
<span="p">}
<span="c1">//...