Стратегии и роботы > помогите реализовать

Обсуждение, описание стратегий и роботов, идеи для стратегий
TPEHEP
Сообщения: 1
Зарегистрирован: 06 апр 2022, 19:37
Благодарил (а): 1 раз

помогите реализовать

Непрочитанное сообщение TPEHEP » 06 апр 2022, 23:33

Друзья, помогите пожалуйста написать код для кусочка стратегии, я не силен в операторах и переменных C#


Если цена закрытия выше 5EMA но не более 1%-2%
то открыть лонг

Аватара пользователя
evge
Администратор
Сообщения: 1811
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

Re: помогите реализовать

Непрочитанное сообщение evge » 09 апр 2022, 07:35

Приветствую!

Код: Выделить всё

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: помогите реализовать

Непрочитанное сообщение ip851874 » 07 фев 2023, 16:19

При тестировании скользящие стартуют из точки начала тестирования, как сдеалть что бы EMA накладывались на график не зависимо от старта тестирования ?

BugsDigger
Сообщения: 535
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 92 раза

Re: помогите реализовать

Непрочитанное сообщение BugsDigger » 05 мар 2023, 08:59

Вы имеете в виду графики результатов именно после тестирования?

Графики считаются от некоторой точки до левой границы оси времени на графике. Эта точка выбирается программой автоматически при листании графика влево-вправо.

Мне помнится (давно уж не открывал терминал, не вижу смысла), что вроде и на графике тестирования индикаторы показывались так же. М.б. что-то за год изменилось или память подводит ...

Если и вправду разработчики отрезали показ именно в результатах тестирования (что выглядит странно, т.к. для этого нужно прилагать отдельные дополнительные усилия), то только обращение в поддержку поможет вам и нам понять - зачем.


Вернуться в «Стратегии и роботы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 29 гостей