О торговле на бирже


Как написать торговый робот – пояснение кода (кнопки ConnectButton и StartButton)



Прошлую свою статью-урок я посвятил пошаговому созданию нашего первого и самого простого торгового робота. Я намеренно не давал пояснения по коду, чтобы хоть как-то разобщить информацию и сделать ее более понятной. В этом же уроке я объясню, что означает каждая строка и выражения, которые мы вставляли в программу-оболочку.

Первым делом хочу отметить то, что кнопки ConnectButton и StartButton можно оставлять без изменений для всех других роботов, которые мы будем делать и которые в будущем будете делать вы сами. Нужно лишь разобраться в том, какую функцию они выполняют.

Код кнопки ConnectButton выполняет соединение с QUIK, которое необходимо для того, чтобы можно было общаться с терминалом, отправлять в него торговые приказы, например, на покупку или продажу. Кроме того, код выполняет и некоторые внутренние функции, которые будут полезны в самом роботе. Рассмотрим его еще раз.

if Massage = 'EXECUTE' then
    begin
     StatusEdit.Text:= 'Соединен...';
     Status:= 'Соединен...';
    end
    else
    begin
     StatusEdit.Text:= 'Не удалось...';
     Status:= 'Не удалось...';
    end;


Код кнопки отправляет запрос на соединение с QUIK и если соединение произошло, то в ответ придет сообщение EXECUTE. Вот от него мы и отталкиваемся. Упростим код.

if Massage = 'EXECUTE' then (если сообщение = EXECUTE, то)
begin (начать выполнение кода)
end (закончить выполнение кода)
else (иначе, т.е. если сообщение не равно EXECUTE)
begin (начать выполнение кода)
end; (закончить выполнение кода)

В случае, когда условие выполняется, код выполняет следующие действия:

StatusEdit.Text:= 'Соединен...'; (В окно-строку StatusEdit.Text, которую мы создали, выводится надпись "Соединен...". Это нам нужно для того, чтобы мы визуально могли проконтролировать соединение с QUIK)

Status:= 'Соединен...'; (Текстовой переменной Status присваиваем текст "Соединен...". Далее мы сможем обращаться к этой переменной с помощью кода)

В случае, когда условие не выполняется, код выполняет действия, о которых вы уже наверное смогли догадаться и сами. Все тоже самое, за исключением текста, который мы присваиваем, теперь он выглядит так – "Не удалось...".

Теперь о том, что касается кнопки StartButton. Напомню, она выполняет следующий код:

if StartButton.Caption = 'START' then
 begin
 Status:= 'Запущен';
 StartButton.Caption:= 'STOP';
 end
 else
 begin
 Status:= 'Остановлен';
 StartButton.Caption:= 'START';
 end;
 StatusEdit.Text:= Status;


Суть кода заключается в том, что если мы нажимаем на кнопку и на ней написано START, то она переименовывается в STOP. Кроме того, в переменную Status записывается статус робота либо "Запущен", либо "Остановлен".

Итак, нажимаем на кнопку и...

if StartButton.Caption = 'START' then (Если на кнопке надпись START, то)
begin (начать выполнение кода)
Status:= 'Запущен'; (Меняем статус на "Запущен")
StartButton.Caption:= 'STOP'; (Меняем надпись на кнопке на STOP)
end (закончить выполнение кода)
else (иначе, т.е. если на кнопке надпись не START)
begin (начать выполнение кода)
Status:= 'Остановлен'; (Меняем статус на "Остановлен")
StartButton.Caption:= 'START'; (Меняем надпись на кнопке на START)
end; (закончить выполнение кода)
StatusEdit.Text:= Status; (В окно-строку StatusEdit.Text, которую мы создали, выводится текущий статус из переменной Status)

С кнопками ConnectButton и StartButton торгового робота мы разобрались. Чтобы не перегружать одну статью слишком большим количеством информации, продолжу описание кода в следующий раз.

Подписывайтесь на обновления и добавляйтесь в друзья (вопросы, советы и т.п.):



Инстаграм:



Торговля на бирже и торговые роботы


Теги: торговый робот, QUIK

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам
зарегистрироваться либо войти на сайт под своим именем
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.