概要
シンボルインターフェースを表します。
署名
public abstract interface SymbolInfo
名前空間
cAlgo.API
例
using cAlgo.API;
using cAlgo.API.Internals;
using System;
namespace cAlgo
{
///
/// このサンプルインジケーターはシンボルデータの取得方法を示します
///
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SymbolInfoSample : Indicator
{
private TextBlock _timeTillOpenTextBlock;
private TextBlock _timeTillCloseTextBlock;
private TextBlock _isOpenedTextBlock;
private SymbolInfo _symbol;
[Parameter("Use Current Symbol", DefaultValue = true)]
public bool UseCurrentSymbol { get; set; }
[Parameter("Other Symbol Name", DefaultValue = "GBPUSD")]
public string OtherSymbolName { get; set; }
protected override void Initialize()
{
var grid = new Grid(44, 2)
{
BackgroundColor = Color.Gold,
Opacity = 0.6,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center
};
var style = new Style();
style.Set(ControlProperty.Padding, 1);
style.Set(ControlProperty.Margin, 2);
style.Set(ControlProperty.BackgroundColor, Color.Black);
style.Set(ControlProperty.FontSize, 8);
_symbol = Symbols.GetSymbolInfo(UseCurrentSymbol ? SymbolName : OtherSymbolName);
grid.AddChild(new TextBlock
{
Text = "Symbol Info",
Style = style,
HorizontalAlignment = HorizontalAlignment.Center
}, 0, 0, 1, 2);
grid.AddChild(new TextBlock
{
Text = "Name",
Style = style
}, 1, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.Name,
Style = style
}, 1, 1);
grid.AddChild(new TextBlock
{
Text = "ID",
Style = style
}, 2, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.Id.ToString(),
Style = style
}, 2, 1);
grid.AddChild(new TextBlock
{
Text = "Digits",
Style = style
}, 3, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.Digits.ToString(),
Style = style
}, 3, 1);
grid.AddChild(new TextBlock
{
Text = "Description",
Style = style
}, 4, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.Description,
Style = style
}, 4, 1);
grid.AddChild(new TextBlock
{
Text = "Lot Size",
Style = style
}, 5, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.LotSize.ToString(),
Style = style
}, 5, 1);
grid.AddChild(new TextBlock
{
Text = "Pip Size",
Style = style
}, 6, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.PipSize.ToString(),
Style = style
}, 6, 1);
grid.AddChild(new TextBlock
{
Text = "Pip Value",
Style = style
}, 7, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.PipValue.ToString(),
Style = style
}, 7, 1);
grid.AddChild(new TextBlock
{
Text = "Tick Size",
Style = style
}, 8, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.TickSize.ToString(),
Style = style
}, 8, 1);
grid.AddChild(new TextBlock
{
Text = "Tick Value",
Style = style
}, 9, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.TickValue.ToString(),
Style = style
}, 9, 1);
grid.AddChild(new TextBlock
{
Text = "Volume In Units Max",
Style = style
}, 10, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.VolumeInUnitsMax.ToString(),
Style = style
}, 10, 1);
grid.AddChild(new TextBlock
{
Text = "Volume In Units Min",
Style = style
}, 11, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.VolumeInUnitsMin.ToString(),
Style = style
}, 11, 1);
grid.AddChild(new TextBlock
{
Text = "Volume In Units Step",
Style = style
}, 12, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.VolumeInUnitsStep.ToString(),
Style = style
}, 12, 1);
grid.AddChild(new TextBlock
{
Text = "Time Till Open",
Style = style
}, 18, 0);
_timeTillOpenTextBlock = new TextBlock
{
Text = _symbol.MarketHours.TimeTillOpen().ToString(),
Style = style
};
grid.AddChild(_timeTillOpenTextBlock, 18, 1);
grid.AddChild(new TextBlock
{
Text = "Time Till Close",
Style = style
}, 19, 0);
_timeTillCloseTextBlock = new TextBlock
{
Text = _symbol.MarketHours.TimeTillClose().ToString(),
Style = style
};
grid.AddChild(_timeTillCloseTextBlock, 19, 1);
grid.AddChild(new TextBlock
{
Text = "Is Opened",
Style = style
}, 20, 0);
_isOpenedTextBlock = new TextBlock
{
Text = _symbol.MarketHours.IsOpened().ToString(),
Style = style
};
grid.AddChild(_isOpenedTextBlock, 20, 1);
grid.AddChild(new TextBlock
{
Text = "Trading Sessions #",
Style = style
}, 21, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.MarketHours.Sessions.Count.ToString(),
Style = style
}, 21, 1);
grid.AddChild(new TextBlock
{
Text = "Trading Session Week Days",
Style = style
}, 22, 0);
var weekDays = string.Empty;
for (var iSession = 0; iSession < _symbol.MarketHours.Sessions.Count; iSession++)
{
var currentSessionWeekDays = string.Format("{0}({1})-{2}({3})", _symbol.MarketHours.Sessions[iSession].StartDay, _symbol.MarketHours.Sessions[iSession].StartTime, _symbol.MarketHours.Sessions[iSession].EndDay, _symbol.MarketHours.Sessions[iSession].EndTime);
weekDays = iSession == 0 ? currentSessionWeekDays : string.Format("{0}, {1}", weekDays, currentSessionWeekDays);
}
grid.AddChild(new TextBlock
{
Text = weekDays,
Style = style
}, 22, 1);
grid.AddChild(new TextBlock
{
Text = "Leverage Tier",
Style = style
}, 23, 0);
var leverageTiers = string.Empty;
for (var iLeverageTier = 0; iLeverageTier < _symbol.DynamicLeverage.Count; iLeverageTier++)
{
var currentLeverageTiers = string.Format("Volume up to {0} is {1}", _symbol.DynamicLeverage[iLeverageTier].Volume, _symbol.DynamicLeverage[iLeverageTier].Leverage);
leverageTiers = iLeverageTier == 0 ? currentLeverageTiers : string.Format("{0}, {1}", leverageTiers, currentLeverageTiers);
}
grid.AddChild(new TextBlock
{
Text = leverageTiers,
Style = style
}, 23, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.BaseAsset),
Style = style
}, 24, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.BaseAsset.Name,
Style = style
}, 24, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.QuoteAsset),
Style = style
}, 25, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.QuoteAsset.Name,
Style = style
}, 25, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.PnLConversionFeeRate),
Style = style
}, 26, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.PnLConversionFeeRate.ToString(),
Style = style
}, 26, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.Commission),
Style = style
}, 27, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.Commission.ToString(),
Style = style
}, 27, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.CommissionType),
Style = style
}, 28, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.CommissionType.ToString(),
Style = style
}, 28, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.MinCommission),
Style = style
}, 29, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.MinCommission.ToString(),
Style = style
}, 29, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.MinCommissionAsset),
Style = style
}, 30, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.MinCommissionAsset.Name,
Style = style
}, 30, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.MinCommissionType),
Style = style
}, 31, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.MinCommissionType.ToString(),
Style = style
}, 31, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.AdministrativeCharge3DaysRollover),
Style = style
}, 32, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.AdministrativeCharge3DaysRollover.ToString(),
Style = style
}, 32, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.AdministrativeCharge),
Style = style
}, 33, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.AdministrativeCharge.ToString(),
Style = style
}, 33, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.GracePeriod),
Style = style
}, 34, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.GracePeriod.ToString(),
Style = style
}, 34, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.SwapLong),
Style = style
}, 35, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.SwapLong.ToString(),
Style = style
}, 35, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.SwapShort),
Style = style
}, 36, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.SwapShort.ToString(),
Style = style
}, 36, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.Swap3DaysRollover),
Style = style
}, 37, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.Swap3DaysRollover.ToString(),
Style = style
}, 37, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.SwapCalculationType),
Style = style
}, 38, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.SwapCalculationType.ToString(),
Style = style
}, 38, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.IsTradingEnabled),
Style = style
}, 39, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.IsTradingEnabled.ToString(),
Style = style
}, 39, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.TradingMode),
Style = style
}, 40, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.TradingMode.ToString(),
Style = style
}, 40, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.MinDistanceType),
Style = style
}, 41, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.MinDistanceType.ToString(),
Style = style
}, 41, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.MinTakeProfitDistance),
Style = style
}, 42, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.MinTakeProfitDistance.ToString(),
Style = style
}, 42, 1);
grid.AddChild(new TextBlock
{
Text = nameof(_symbol.MinStopLossDistance),
Style = style
}, 43, 0);
grid.AddChild(new TextBlock
{
Text = _symbol.MinStopLossDistance.ToString(),
Style = style
}, 43, 1);
Chart.AddControl(grid);
Timer.Start(TimeSpan.FromSeconds(1));
}
protected override void OnTimer()
{
_timeTillOpenTextBlock.Text = _symbol.MarketHours.TimeTillOpen().ToString();
_timeTillCloseTextBlock.Text = _symbol.MarketHours.TimeTillClose().ToString();
_isOpenedTextBlock.Text = _symbol.MarketHours.IsOpened().ToString();
}
public override void Calculate(int index)
{
}
}
}
メソッド
NormalizeVolumeInUnits (2)
NormalizeVolumeInUnits (1 of 2)
概要
取引に適した量にボリュームを丸めます。
署名
public abstract double NormalizeVolumeInUnits(double volume)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
volume | double | 正規化するシンボルのボリューム(単位) |
戻り値
double
NormalizeVolumeInUnits (2 of 2)
概要
取引に適した量にボリュームを丸めます。
署名
public abstract double NormalizeVolumeInUnits(double volume, RoundingMode roundingMode)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
volume | double | 正規化するシンボルのボリューム(単位) |
roundingMode | RoundingMode | ボリュームを正規化するための丸め方 |
戻り値
double
QuantityToVolumeInUnits
概要
数量(ロット単位)を基本通貨の単位ボリュームに変換します。
署名
public abstract double QuantityToVolumeInUnits(double quantity)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
quantity | double | シンボルのボリュームに変更する数量(ロット) |
戻り値
double
VolumeInUnitsToQuantity
概要
基本通貨の単位ボリュームを数量(ロット単位)に変換します。
署名
public abstract double VolumeInUnitsToQuantity(double volume)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
volume | double | 数量(ロット)に変更するシンボルのボリューム(単位) |
戻り値
double
GetEstimatedMargin
概要
特定のボリュームのマージン額を返します。
署名
public abstract double GetEstimatedMargin(TradeType tradeType, double volume)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
tradeType | TradeType | オーダートレードのタイプ |
volume | double | ボリュームの量 |
戻り値
double
関連チュートリアル
マージンの見積もり
VolumeForFixedRisk (2)
VolumeForFixedRisk (1 of 2)
概要
指定されたストップロスに基づいて、リスクにさらされるボリューム(口座の預金通貨のX単位)を計算します。この計算の結果は、市場の動きに依存するため、リスクの正確な度合いを予測することは不可能であることに注意してください。
署名
public abstract double VolumeForFixedRisk(double amount, double stopLossInPips)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
amount | double | 口座の預金通貨でリスクにさらしたい額。 |
stopLossInPips | double | ピップ単位のストップロス。 |
戻り値
double
VolumeForFixedRisk (2 of 2)
概要
指定されたストップロスに基づいて、リスクにさらされるボリューム(口座の預金通貨のX単位)を計算します。この計算の結果は、市場の動きに依存するため、リスクの正確な度合いを予測することは不可能であることに注意してください。
署名
public abstract double VolumeForFixedRisk(double amount, double stopLossInPips, RoundingMode roundingMode)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
amount | double | 口座の預金通貨でリスクにさらしたい額。 |
stopLossInPips | double | ピップ単位のストップロス。 |
roundingMode | RoundingMode | 丸め方法 |
戻り値
double
概要
指定されたストップロスに基づいて、口座の資産または残高のX%をリスクにさらすボリュームを計算します。この計算の結果は、市場の動きに依存するため、リスクの正確な度合いを予測することは不可能であることに注意してください。
署名
public abstract double VolumeForProportionalRisk(ProportionalAmountType type, double percentage, double stopLossInPips)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
type | ProportionalAmountType | リスクにさらす金額の種類(残高または資産のいずれか)。 |
percentage | double | リスクにさらす資産または残高の割合。 |
stopLossInPips | double | ストップロスのピップ数。 |
戻り値
double
VolumeForProportionalRisk (2 of 2)
概要
指定されたストップロスに基づいて、口座の資産または残高のX%をリスクにさらすボリュームを計算します。この計算の結果は、市場の動きに依存するため、リスクの正確な度合いを予測することは不可能であることに注意してください。
署名
public abstract double VolumeForProportionalRisk(ProportionalAmountType type, double percentage, double stopLossInPips, RoundingMode roundingMode)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
type | ProportionalAmountType | リスクにさらす金額の種類(残高または資産のいずれか)。 |
percentage | double | リスクにさらす資産または残高の割合。 |
stopLossInPips | double | ストップロスのピップ数。 |
roundingMode | RoundingMode | 丸め方法。 |
戻り値
double
AmountRisked
概要
指定されたストップロスと取引量に基づいてリスクにさらす金額を計算します。この計算の結果は、市場の動きに依存するため、リスクの正確な度合いを予測することは不可能であることに注意してください。
署名
public abstract double AmountRisked(double volume, double stopLossInPips)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
volume | double | 取引するボリューム。 |
stopLossInPips | double | ストップロスのピップ数。 |
戻り値
double
PipsForFixedRisk
概要
指定されたストップロスと取引量に基づいてリスクにさらすピップ数を計算します。この計算の結果は、市場の動きに依存するため、リスクの正確な度合いを予測することは不可能であることに注意してください。
署名
public abstract double PipsForFixedRisk(double amount, double volume)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
amount | double | リスクにさらす金額。 |
volume | double | 取引するボリューム。 |
戻り値
double
PipsForProportionalRisk
概要
指定されたボリュームに基づいてリスクにさらす比率のストップロス(ピップ単位)を計算します。この計算の結果は、市場の動きに依存するため、リスクの正確な度合いを予測することは不可能であることに注意してください。
署名
public abstract double PipsForProportionalRisk(ProportionalAmountType type, double percentage, double volume)
パラメータ
名前 | タイプ | 説明 |
---|---|---|
type | ProportionalAmountType | リスクにさらす金額の種類(残高または資産のいずれか)。 |
percentage | double | リスクにさらす資産または残高の割合。 |
volume | double | 取引するボリューム。 |
戻り値
double
プロパティ
Id
概要
現在のシンボルIDを取得します。
署名
public abstract long Id {get;}
戻り値
long
Name
概要
現在のシンボル名を取得します。
署名
public abstract string Name {get;}
戻り値
string
Description
概要
現在のシンボルの説明を取得します。
署名
public abstract string Description {get;}
戻り値
string
LotSize
概要
ロットサイズを取得します。
署名
public abstract long LotSize {get;}
戻り値
long
TickValue
概要
ティック値を取得します。
署名
public abstract double TickValue {get;}
戻り値
double
TickSize
概要
ティックサイズを取得します。
署名
public abstract double TickSize {get;}
戻り値
double
PipValue
概要
ピップ値を取得します。
署名
public abstract double PipValue {get;}
戻り値
double
PipSize
概要
ピップサイズを取得します。
署名
public abstract double PipSize {get;}
戻り値
double
Digits
概要
シンボルの桁数を取得します。
署名
public abstract int Digits {get;}
戻り値
int
VolumeInUnitsStep
概要
ステップボリュームを単位で取得します。
署名
public abstract double VolumeInUnitsStep {get;}
戻り値
double
VolumeInUnitsMax
概要
最大単位値を取得します。
署名
public abstract double VolumeInUnitsMax {get;}
戻り値
double
VolumeInUnitsMin
概要
最小単位値を取得します。
署名
public abstract double VolumeInUnitsMin {get;}
戻り値
double
DynamicLeverage
概要
シンボルの動的レバレッジを取得します。
署名
public abstract IReadonlyList<LeverageTier> DynamicLeverage {get;}
戻り値
IReadonlyList
MarketHours
概要
シンボルの市場時間を取得します。
署名
public abstract MarketHours MarketHours {get;}
戻り値
MarketHours
BaseAsset
概要
シンボルの基軸通貨を取得します。
署名
public abstract Asset BaseAsset {get;}
戻り値
Asset
QuoteAsset
概要
シンボルの見積もり資産を取得します。
署名
public abstract Asset QuoteAsset {get;}
戻り値
Asset
PnLConversionFeeRate
概要
シンボルの損益変換手数料率を取得します。
署名
public abstract double PnLConversionFeeRate {get;}
戻り値
double
Commission
概要
シンボルの基本手数料額を取得します。
署名
public abstract double Commission {get;}
戻り値
double
CommissionType
概要
シンボルの基本手数料計算タイプを取得します。
署名
public abstract SymbolCommissionType CommissionType {get;}
戻り値
SymbolCommissionType
MinCommission
概要
シンボルの最小手数料額を取得します。これは、任意の取引でトレーダーが支払う手数料額です。MinCommissionTypeをチェックしてMinCommission値を解釈してください。
署名
public abstract double MinCommission {get;}
戻り値
double
MinCommissionAsset
概要
シンボルの最小手数料資産を取得します。MinCommissionTypeがAssetに設定されている場合、このプロパティを使用してその資産を取得できます。MinCommission値は、取引時にMinCommissionAssetから口座預金資産に変換されます。
署名
public abstract Asset MinCommissionAsset {get;}
戻り値
Asset
MinCommissionType
概要
シンボルの最小手数料タイプを取得します。このプロパティを使用してMinCommission値を解釈します。
署名
public abstract SymbolMinCommissionType MinCommissionType {get;}
戻り値
SymbolMinCommissionType
AdministrativeCharge3DaysRollover
概要
管理手数料の金額が3倍になる曜日(UTC)を取得します。SWAPフリーの取引口座にのみ適用されます。
署名
public abstract DayOfWeek? AdministrativeCharge3DaysRollover {get;}
戻り値
DayOfWeek?
AdministrativeCharge
概要
シンボルの管理手数料を取得します。管理手数料は、口座がSWAPフリーに設定されている場合、SWAPの代わりに課金されます。SWAPフリーの取引口座にのみ適用されます。
署名
public abstract double AdministrativeCharge {get;}
戻り値
double
GracePeriod
概要
シンボルの猶予期間を取得します。これは、ポジションを開いた時点から管理手数料がかからない日数です。SWAPフリーの取引口座にのみ適用されます。
署名
public abstract int GracePeriod {get;}
戻り値
int
SwapLong
概要
シンボルのロングポジションのSWAP料金を取得します。
署名
public abstract double SwapLong {get;}
戻り値
double
SwapShort
概要
シンボルのショートポジションのSWAP料金を取得します。
署名
public abstract double SwapShort {get;}
戻り値
double
Swap3DaysRollover
概要
シンボルのSWAP料金が3倍になる曜日を取得します。
署名
public abstract DayOfWeek? Swap3DaysRollover {get;}
戻り値
DayOfWeek?
SwapCalculationType
概要
シンボルのSWAP計算タイプを取得します。
署名
public abstract SymbolSwapCalculationType SwapCalculationType {get;}
戻り値
SymbolSwapCalculationType
IsTradingEnabled
概要
シンボルに対して取引が有効かどうかを取得します。
署名
public abstract bool IsTradingEnabled {get;}
戻り値
bool
TradingMode
概要
シンボルの取引モードを取得します。
署名
public abstract SymbolTradingMode TradingMode {get;}
戻り値
SymbolTradingMode
MinDistanceType
概要
シンボルの最小距離タイプを取得します。
署名
public abstract SymbolMinDistanceType MinDistanceType {get;}
戻り値
SymbolMinDistanceType
MinTakeProfitDistance
概要
シンボルの最小テイクプロフィット距離を取得します。MinDistanceTypeを使用して解釈します。
署名
public abstract double MinTakeProfitDistance {get;}
戻り値
double
MinStopLossDistance
概要
シンボルの最小ストップロス距離を取得します。MinDistanceTypeを使用して解釈します。
署名
public abstract double MinStopLossDistance {get;}
戻り値
double