forts_Delta_MATrail
Добавлено: 24 июн 2025, 17:51
Доброго дня!
Как то на вебинаре обсуждали данную стратегию только с тейком фикс. В данной версии идет переворот по смене сигнала. Помогите с кодом, добавить тейк в %
Заранее благодарю за проявленное внимание к вопросу.
Как то на вебинаре обсуждали данную стратегию только с тейком фикс. В данной версии идет переворот по смене сигнала. Помогите с кодом, добавить тейк в %

Заранее благодарю за проявленное внимание к вопросу.
Код: Выделить всё
/**Идея: построить линию разниц покупок и продаж, определять смену направления при ;
Сигналы:
- сигнал на открытие позиции ЛОНГ выдается, если значение DeltaCumLine больше линии индикатора MATrail;
- сигнал на открытие позиции ШОРТ выдается, если значение DeltaCumLine меньше линии индикатора MATrail;
Параметры:
Period – период индикатора MATrail,
pStop - уровень стопа в % после открытия позиции.
Если стоп <= 0, то стоп не ставится
В стратегии используются:
- индикатор DeltaCumLine - показывает разницу количества покупок и продаж;
- индикатор MATrail - следящий индикатор;
Algorithm = ФОРТС Тренд;**/
function Initialize()
{
StrategyName = "forts_Delta_MATrail";
AddParameter("Period", 85, "Период MATrail", 1);
AddParameter("pStop", 0, "Стоп в процентах", 0);
AddInput("Input1", Inputs.Candle, 1, true, "MXU9=ФОРТС");
AddChartIndicator("MY.str_Delta_MATra", new Dictionary <string, string>{{"Period", "Period"}});
}
function OnUpdate()
{
var delta = MY.DeltaCumLine(Input1);
double line = MY.MATrail(delta, Period)[0];
double line1 = MY.MATrail(delta, Period)[1];
double pos = CurrentPosition();
if ( (delta[0] > line) && (delta[1] <= line1))
{
EnterLong();
if (pStop > 0)
StopLoss(pStop, SignalPriceType.DeltaInPercentFromAveragePrice);
}
if ( (delta[0] < line) && (delta[1] >= line1))
{
EnterShort();
if (pStop > 0)
StopLoss(pStop, SignalPriceType.DeltaInPercentFromAveragePrice);
}
}