フィボナッチなんちゃら
cTraderではフィボナッチリトレースメント、フィボナッチエクスパンジョン、フィボナッチファンと3つのフィボナッチ系のオブジェクトがあり、これらのベースとなるインターフェースが定義されています。
ChartFibonacciBaseインターフェース
フィボナッチ共通のメンバをもつインターフェースです。
public interface ChartFibonacciBase : ChartObject
関連するインターフェース:ChartFibonacciRetracement,ChartFibonacciExpansion,ChartFibonacciFan
プロパティ
(Color) Color {get; set;}
フィボナッチ~の色を取得、設定します。
(LineStyle) LineStyle {get; set;}
フィボナッチ~の線のスタイルを取得、設定します。n%の場所に引かれる線です。点同士を結ぶラインのスタイルは変えられません。
(int) Thickness {get; set;}
フィボナッチ~の線の太さを取得、設定します。同上。
(IReadonlyList<FibonacciLevel>) FibonacciLevels
下記FibonacciLevelのリストを取得、設定します。
(bool) DisplayPrices {get; set;}
各レベルの%表示の横に価格を表示するかどうかを取得、設定します。
ChartObjectのプロパティ
IsAlive、IsIntaractive、Name、Commentなど。
FibonacciLevelインターフェース
FibonacciLevelsの中身の要素です。フィボナッチの何%のところを管理するか、そこに線を表示するかどうかを表すためのオブジェクトを示します。
プログラムからフィボナッチリトレースメントを描画する場合はやたらとたくさん線が出るため、設定必須です。
public interface FibonacciLevel
プロパティ
(double) PercentLevel {get; set;}
パーセントレベルの数値を取得、設定します。一応set可能ですが、普通変えないと思います。
(bool) IsVisible {get; set;}
PercentLevelの%位置の線を表示するかどうかを取得、設定します。
サンプルコード
説明がわかりにくいと思うのでサンプルコードでご確認ください。
// チャート上のフィボナッチリトレースメントを取得
var frs = Chart.FindAllObjects<ChartFibonacciRetracement>();
if (frs.Count() == 0) return;
var fiboRetracement = frs.Last();
// 表示する%レベルを設定する
var displayLevels = new double[]{ 0.0, 38.2, 50.0, 61.8, 100.0 };
foreach(var level in fiboRetracement.FibonacciLevels) {
if (displayLevels.Contains(level.PercentLevel)) {
level.IsVisible = true;
}else {
level.IsVisible = false;
}
}
チャート上にフィボナッチリトレースメントを一つ描いてから実行してください。最初に表示したい%を配列で用意しておいて、FibonacciLevelsの中で配列内と一致するFibonacciLevelだけをIsVisible=trueとしています。
初期状態だと、やたらとたくさん表示されてた%を示す横線が、上記のコードを実行すると0%,38.2%,50.0%,61.8%,100.0%の5本になったことが確認できます。