Стратегии и роботы > Зациклить работу робота

Обсуждение, описание стратегий и роботов, идеи для стратегий
Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Зациклить работу робота

Непрочитанное сообщение Den » 23 ноя 2017, 13:56

Запущенный на М1 Выдает каждые 10 секунд сообщение "РАБОТАЕТ!!!" , графики останавливаются

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

function Initialize()
{
StrategyName = "Alfa_AO";
AddParameter("Pfast", 8, "", 1);
AddParameter("Pslow", 35, "", 1);
AddInput("Input1", Inputs.Candle, 60, true, "SBER=МБ ЦК");
LongLimit = 0;
ShortLimit = 0;
AddChartIndicator("AwesomeOscillator", new Dictionary <string, string>{{"Fast", "Pfast"},{"Slow", "Pslow"}});
}

function OnUpdate()
{
while( true)
{
ShowMessage("РАБОТАЕТ!!!");
/// ПРАВИЛО 1
if ( (AO(Input1, Pfast, Pslow) > AO(Input1, Pfast, Pslow)[1]) )
{
//   EnterLong();
}

/// ПРАВИЛО 2
if ( (AO(Input1, Pfast, Pslow) < AO(Input1, Pfast, Pslow)[1]) )
{
//EnterShort();
}
System.Threading.Thread.Sleep(10000);
}   

}

Arteshka
Сообщения: 71
Зарегистрирован: 10 ноя 2017, 12:43
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Зациклить работу робота

Непрочитанное сообщение Arteshka » 23 ноя 2017, 14:02

Странно у меня работает. А если другого робота запускаете, тоже тормозят или только с этим циклом?

Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Зациклить работу робота

Непрочитанное сообщение Den » 23 ноя 2017, 14:13

У вас робот проверяет каждые 10 секунд и подает торговые сигналы?

Другие естественно работают. Этот не тормозит - он запускается, после этого графики останавливаются, стаканы работают по-прежнему, а сам робот не подаёт заявок.

Он просто стоит запущенный.

Arteshka
Сообщения: 71
Зарегистрирован: 10 ноя 2017, 12:43
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Зациклить работу робота

Непрочитанное сообщение Arteshka » 23 ноя 2017, 14:19

Не подает заявки потому, что //EnterShort(); и //EnterLong(); выделены как комментарий, если убрать "// "то по идее должен отдавать приказы. Эти команды я специально скрыл комментариями, чтобы не совершал сделок. Это как пример того, чтобы роботу не ждать следующего тика. Если я что то не понял поясните.

Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Зациклить работу робота

Непрочитанное сообщение Den » 23 ноя 2017, 14:20

вы убрали вход в позицию, так заработал. Ща проверим как он подает

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

function Initialize()
{
StrategyName = "Alfa_AO";
AddParameter("Pfast", 8, "", 1);
AddParameter("Pslow", 35, "", 1);
AddInput("Input1", Inputs.Candle, 60, true, "SBER=МБ ЦК");
LongLimit = 0;
ShortLimit = 0;
AddChartIndicator("AwesomeOscillator", new Dictionary <string, string>{{"Fast", "Pfast"},{"Slow", "Pslow"}});
}

function OnUpdate()
{
while( true)
{
ShowMessage("РАБОТАЕТ!!!");
/// ПРАВИЛО 1
if ( (AO(Input1, Pfast, Pslow) > AO(Input1, Pfast, Pslow)[1]) )
{
EnterLong();
}

/// ПРАВИЛО 2
if ( (AO(Input1, Pfast, Pslow) < AO(Input1, Pfast, Pslow)[1]) )
{
EnterShort();
}
System.Threading.Thread.Sleep(10000);
}   

}

Arteshka
Сообщения: 71
Зарегистрирован: 10 ноя 2017, 12:43
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Зациклить работу робота

Непрочитанное сообщение Arteshka » 23 ноя 2017, 14:22

В тестере скорее всего тайминг не работает. Либо из-за Sleep будет тормозить.

Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Зациклить работу робота

Непрочитанное сообщение Den » 23 ноя 2017, 14:26

Мой тоже заработал ( на моих условиях), щас проверим.

Так у вас он запущенный на , скажем M30 , подает при появлении сигнала? Не дожидаясь окончания бара?

Arteshka
Сообщения: 71
Зарегистрирован: 10 ноя 2017, 12:43
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: Зациклить работу робота

Непрочитанное сообщение Arteshka » 23 ноя 2017, 14:29

По задумке у него внутри бесконечный цикл while(true). Строкой System.Threading.Thread.Sleep(10000); вы задаете тайминг время остановки( робот ничего не делает). Робот может даже работать на не торгующем инструменте. По идее ;) Как то так.

Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Зациклить работу робота

Непрочитанное сообщение Den » 23 ноя 2017, 14:43

Евгений может прокомментирует.

проверить неудобно так как графики останавливаются при запуске робота (если он не запущен, графики двигаются, робот обновляет прибыль/убыток серыми цифрами), но можно

При появлении сигнала на М10 он не переворачивается, ждет окончания бара походу ;)

То есть сообщения-то он выдает, а вот торговые сигналы не посылает до закрытия бара на заданном ему при запуске ТФ

oxi
Сообщения: 160
Зарегистрирован: 20 сен 2016, 23:20
Благодарил (а): 12 раз
Поблагодарили: 67 раз

Re: Зациклить работу робота

Непрочитанное сообщение oxi » 23 ноя 2017, 19:01

Так нельзя.
В таком варианте не будут обновляться данные и, как следствие, не будут выдаваться сигналы


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

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

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