Пара слов о клиенте для криптотрейдинга Qt Bitcoin Trader. Часть 2.
Приветствую, Друзья!
Сегодня у нас вторая часть цикла статей о Qt Bitcoin Trader. Для тех, кто упустил первую статью, искать ее тута.
Продолжение
Сегодня я расскажу об интересующей всех и вся идее автоматизации торговли криптовалютой. Для этого создателем клиента разработан специальный cкриптовый язык для автоматизации торгов - JL Script. Язык довольно простой, при желании его освоит даже сейчас буду врать ПТУшник, прогулявший половину семестра. За основу языка взят JavaScript с полной поддержкой функций и методов. Во всяком случае, так утверждает разработчик.
Особенностью языка является то, что все методы и функции начинаются "trader.". Не, ну а как ещё. После этого слова с точкой можно обратиться к одному из трех методов: событию, функции и команде.
Пример - получаем комиссию аккаунта:
trader.get("Fee")
Рассмотрим События.
Событие является функцией которая в момент изменения значения индикатора возвращает новое значение.
Синтаксис методов событий примерно такой:
trader.on("LastPrice").changed()
{
//Хочу спать. На самом деле тут должен быть ваш код.
}
Далее расскажу о функциях.
Привожу цитату самого разработчика, так как боюсь Вас обмануть и научить плохому:
Функция это метод, который возвращает значение индикатора или каких-либо вычислений.
Вы можете достать значение любого индикатора используя метод "get". Пример:trader.get("LastPrice").
Функции которые возвращяют значения индикаторов поддерживают два аргумента, первый это пара (символ) а второй название индикатора. Пример: trader.get("BTCUSD","LastPrice").
Вы можете доставать значения индикаторов из любого места в скрипте.
Примеры:
trader.get("AskPrice") - получаем цену спроса;
trader.get("Balance","USD") - получаем баланс USD.
Несколько слов о командах
Тут тоже ничего сложного, команды представляют собой строку кода, которая должна немедленно что-то выполнить.
Примеры:
trader.log("Не читайте историю переписки трехлетней давности") - Вывод лога;
trader.beep() - получаем звуковой писк. Например, можно поставить на срабатывание ордера;
trader.buy(amount,price); - выставляем ордер на покупку.
Есть таймер и команда задержки выполнения по времени, но последняя описана неправильно.
На это надо обратить внимание. Делаем не так:
trader.delay(15, "trader.log("Должно пройти 15 секунд")");
А вот так, через одиночные кавычки:
trader.delay(15, 'trader.log("Должно пройти 15 секунд")');
Приведенный мной материал не является полным, с руководством от самого разработчика можно ознакомиться тут.
На этом теоретическую часть закончу и перейдем к практике.
Скрипты вызываются так:
Код можно не прописывать руками, а получить из клиента вот так:
Работа запущенного скрипта может выглядеть примерно так. Красными стрелками выделил что можно сделать с выставленными ордерами. А можно воспользоваться таким скриптом (отменяет ордера на покупку, спустя секунду отключается сам):
trader.cancelBids();
trader.delay(1, 'trader.groupStop("Снятие ордеров")');
В окне выполнения скрипта есть кнопка проверки кода на корректность:
На сегодня, пожалуй хватит, вы изучайте, а я спать)).
P.S. В следующей статье расскажу про правила, но ближе концу недели. Не расходитесь.)))