Коллеги, помогите с алгоритмом
как переделать фразу if ((CrossOver(bar, (Synchronize(MACDExt.Series(newSymbol.Close, parameter0.ValueInt, parameter1.ValueInt))), (Synchronize(EMA.Series(MACDExt.Series(newSymbol.Close, parameter0.ValueInt, parameter1.ValueInt), parameter2.ValueInt)))[bar])) по такому принципу :
Вашей стратегии MACD строит от синхронизированного инструмента, но это не правильно.
(MACDExt.Value(bar, newSymbolSynchronized.Close, parameter3.ValueInt, parameter4.ValueInt) > 0))
Правильно строить сначала MACD, а потом его уже синхронизировать с основным таймфреймом:
(Synchronize(MACDExt.Series(newSymbol.Close, parameter3.ValueInt, parameter4.ValueInt))[bar]
Тем кто поможет, скину алгоритм полностью, он с хорошей прибылью.
dsmacd = Synchronize(dsmacd);
DataSeries dsema = EMA.Series(dsmacd,(int)param2.Value);
dsema = Synchronize(dsema);
if( CrossOver(bar,dsmacd,dsema) )
{
код, если да
}
C#
Synchronize — это функция WelathLab — реализует синхронизацию данных разных таймфреймов для работы в активном таймфрейме.
на мой взгляд не очень удобная функция