Друзья, помогите пожалуйста написать код для кусочка стратегии, я не силен в операторах и переменных C#
Если цена закрытия выше 5EMA но не более 1%-2%
то открыть лонг
Стратегии и роботы > помогите реализовать
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: помогите реализовать
Приветствую!
Код: Выделить всё
function Initialize()
{
StrategyName = "5EMA";
AddParameter("Percent", 2, "Максимально допустимый процент", 1);
AddParameter("Take", 0.5, "TakeProfit процент", 1);
AddParameter("Period1", 10, "EMA1 период", 1);
AddParameter("Period2", 20, "EMA2 период", 1);
AddParameter("Period3", 30, "EMA3 период", 1);
AddParameter("Period4", 40, "EMA4 период", 1);
AddParameter("Period5", 50, "EMA5 период", 1);
AddInput("Input1", Inputs.Candle, 60, true, "SBER=МБ ЦК");
LongLimit = 100;
ShortLimit = -100;
AddChartIndicator("EMA", new Dictionary <string, string>{{"Period", "Period1"}});
AddChartIndicator("EMA", new Dictionary <string, string>{{"Period", "Period2"}});
AddChartIndicator("EMA", new Dictionary <string, string>{{"Period", "Period3"}});
AddChartIndicator("EMA", new Dictionary <string, string>{{"Period", "Period4"}});
AddChartIndicator("EMA", new Dictionary <string, string>{{"Period", "Period5"}});
}
function OnUpdate()
{
// evge 09.04.2022 https://alfadirect4.ru
var I = Input1;
var C = I.Close[0];
var E1 = EMA(I, Period1)[0];
var E2 = EMA(I, Period2)[0];
var E3 = EMA(I, Period3)[0];
var E4 = EMA(I, Period4)[0];
var E5 = EMA(I, Period5)[0];
double[] E = {E1, E2, E3, E4, E5};
double Max = E.Max();
if (C > Max && (C - Max) / Max * 100 < Percent) EnterLong();
if (CurrentPLper() >= Take) ClosePosition();
}
никогда такого не было и вот опять
- ip851874
- Сообщения: 42
- Зарегистрирован: 21 ноя 2020, 22:56
- Откуда: Москва
- Благодарил (а): 14 раз
- Контактная информация:
Re: помогите реализовать
При тестировании скользящие стартуют из точки начала тестирования, как сдеалть что бы EMA накладывались на график не зависимо от старта тестирования ?
-
- Сообщения: 535
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 92 раза
Re: помогите реализовать
Вы имеете в виду графики результатов именно после тестирования?
Графики считаются от некоторой точки до левой границы оси времени на графике. Эта точка выбирается программой автоматически при листании графика влево-вправо.
Мне помнится (давно уж не открывал терминал, не вижу смысла), что вроде и на графике тестирования индикаторы показывались так же. М.б. что-то за год изменилось или память подводит ...
Если и вправду разработчики отрезали показ именно в результатах тестирования (что выглядит странно, т.к. для этого нужно прилагать отдельные дополнительные усилия), то только обращение в поддержку поможет вам и нам понять - зачем.
Графики считаются от некоторой точки до левой границы оси времени на графике. Эта точка выбирается программой автоматически при листании графика влево-вправо.
Мне помнится (давно уж не открывал терминал, не вижу смысла), что вроде и на графике тестирования индикаторы показывались так же. М.б. что-то за год изменилось или память подводит ...
Если и вправду разработчики отрезали показ именно в результатах тестирования (что выглядит странно, т.к. для этого нужно прилагать отдельные дополнительные усилия), то только обращение в поддержку поможет вам и нам понять - зачем.
Вернуться в «Стратегии и роботы»
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и 3 гостя