пример тестовой стратегии с открытием 1 позиции и закрытием по стопу и записью в log файл этих сигналов:
Код: Выделить всё
function Initialize()
{
StrategyName = "StopTest";
AddParameter("P1", 0, "", 1);
AddInput("Input1", Inputs.Candle, 1, true, "RIZ9=ФОРТС");
LongLimit = 1;
ShortLimit = -1;
}
function OnUpdate()
{
var Sig = GetSignalInfo(SignalType.All);
if (CurrentPosition() == 0 && Sig.Count == 0)
{
EnterLong(1);
StopLoss(0.05, SignalPriceType.DeltaInPercentFromAveragePrice);
}
if (CurrentIndex == MaxIndex)
for (int numSig = 0; numSig <= Sig.Count - 1; numSig++)
LogData(String.Format("Signal: {0} of {1}, ActionType: {2}, ActionSuperType: {3}, OperationSize: {4}, OperationExecuted: {5}, PriceOfSignal: {6}, PriceOfOrder: {7}, PriceOfTrade: {8}, PriceAdditional: {9}, DateTime: {10}, CurrentPosition: {11}, IsStatusFilled: {12}, IsStatusTerminal: {13}", numSig + 1, Sig.Count, Sig[numSig].ActionType, Sig[numSig].ActionSuperType, Sig[numSig].OperationSize, Sig[numSig].OperationExecuted, Sig[numSig].PriceOfSignal, Sig[numSig].PriceOfOrder, Sig[numSig].PriceOfTrade, Sig[numSig].PriceAdditional, Sig[numSig].DateTime.ToString(), Sig[numSig].CurrentPosition, Sig[numSig].IsStatusFilled, Sig[numSig].IsStatusTerminal), StrategyName);
}
В лог-файле X:\Users\CURRENT_USER\AppData\Local\Alfa-Direct\Logs\StopTest.000.log следующее:
2019.11.26 09:33:38.585 Signal: 1 of 2, ActionType: EnterLong, ActionSuperType: EnterLong, OperationSize: 1, OperationExecuted: 1, PriceOfSignal: 145070, PriceOfOrder: 145070, PriceOfTrade: 145070, PriceAdditional: , DateTime: 25.11.2019 22:59:00, CurrentPosition: 1, IsStatusFilled: True, IsStatusTerminal: True
2019.11.26 09:33:38.585 Signal: 2 of 2, ActionType: StopLoss, ActionSuperType: EnterLong, OperationSize: 1, OperationExecuted: 1, PriceOfSignal: 145000, PriceOfOrder: 145000, PriceOfTrade: 145000, PriceAdditional: , DateTime: 25.11.2019 23:12:00, CurrentPosition: 0, IsStatusFilled: True, IsStatusTerminal: True