ПредишенСледващото

Вторият етап от плана за публикации - движи по график.

Така че, QPILE има следните типове данни (например):

STRING - низ: "Печалба" (кавичките са такива);

DOUBLE - поплавък: 500.45;

COLLECTION -kollektsiya - списък на обекти с индексиране число ключ, като се започне от нулата;

MAP - асоциативен масив - последователността на данни се определя от стойността и ключа.

Всяка променлива могат да бъдат причислени към някоя от по-горе видове данни.

String данни се използват за идентифициране на променливите и стойностите на таблиците:

ИНСТРУМЕНТ = "RIM9", в този случай, ние присвоите променлива струнен инструмент RIM9.

MESSAGE (ИНСТРУМЕНТ, 1). след изпълнението на тази инструкция QUIK ще се отвори прозорец със съобщение със стойност на променлива инструмент. Тя ще изглежда, че дори изписването на името на променливата, в този случай е по-дълъг от стойността, така че защо не напишете кода просто ценят? Отговорът е прост, има роботи, а ние сме създали, където се извършва търговията в даден момент, ние сме избрали предварително инструмента. Кодът ще бъде десет места, където ние трябва да го сравни с буквален стойност, както и преминаването към друг инструмент, ние трябва да се промени във всички десет области на творчеството му, а когато става дума за една променлива в началото на програмата - само веднъж.

Число с плаваща точка, всичко е просто:

Тук са възложени на променливи стойности число, които след това ще бъдат използвани при изчисленията, например:

А = (MOOVING1 + MOOVING2) * MULTIPLER / 100

Действия в скоби се извършват на първо място, точно като в училище.

По време на програмата, можем да се променя динамично, вида на двете променливи, като например:

KOEF = "3,14" - (! Кавичките) низ и ако направим математическа операция с нея. Качваме се на броя:

А = KOEF + 0 - в резултат на променлив брой А = 3.14 и обратно, ако трябва да се превърне в броя низ, трябва да се комбинират, като се използва символ , То или с празен низ или с текста:

Резултатът е стринга "Ratio 3.14"

Това се прави за по-голяма гъвкавост, но има малък минус: при получаване на таблиците с цифрови данни, е необходимо да се изнеса нула (или да извършва всякакви други прости математически операции с числа) до изхода, за да получите наистина разбера. Така че ние направихме първата ни робот, когато цената, получена от масата на всички транзакции: ЦЕНА = GET_VALUE (GET_ITEM ( «ALL_TRADES», I), «ЦЕНА») + 0. Ето защо, ако си стартиране робот ще се закълна, че се опитвате да сравнявате различните типове данни, на първо място, да видим къде да се добави "плюс едно."

Ще отидем по-далеч - Колекции и Mapy. Подробна и добре описана в тях копие поставите тук няма смисъл "Ръководство за потребителя QPILE" - ние ги анализира в детайли, тъй като при създаването на робот "пробие" за напитките се да ги използвате.

Сега най-важното - функции за достъп до редовете на таблици с произволна QUIK. Правилното функциониране на автономен робот, ние просто искал въздуха трябва следната информация:

  • Текущо салдо - за изчисляване на позицията;
  • Настояща нетна позиция - да се направи оценка на ситуацията;
  • Текущата стойност на ГО - в случай на експлоатация на укрепления, също трябва да се изчисли позицията;
  • Цената на нашия инструмент;
  • Печалба / загуба, като сумата от varmarzhi и начислените приходи - това е ясно защо;
  • Дата;
  • време;

Това е само на първоначалните настройки по-късно, ние все още се нуждаят от много повече. Всички тези параметри трябва да се получи от Quik, за всяко изпълнение на програмата (ние не забравяйте, че това е най-малко 1 път в секунда) за вярна и точна оценка на ситуацията. Всички те идват от различни места, погледни всичко в ред (крепости)

Текущо салдо е взета от масата "на клиент сметки ограничения" на полето "Гранични отворени позиции" на линия №1 (варира в зависимост от брокера) функция:

MoneyCurrentBalance = GET_VALUE (GET_ITEM ( «FUTURES_CLIENT_LIMITS», 1), «CBPLIMIT»)

Ако разглобявате написана със свои думи да се "получи CBPLIMIT стойност на FUTURES_CLIENT_LIMITS маса линия номер 1.

Описание на имена на таблици и възможности, които съществуват, са дадени в QPILE употреба в частта 8.9.3

Настояща нетна позиция:

TP = GET_VALUE (GET_ITEM ( «FUTURES_CLIENT_HOLDINGS», 1), «TOTAL_NET»)

Текущата стойност на движение. Ето малко по-различно, защото GO е достъпно в таблицата на текущите стойности на параметрите, функцията е малко по-различно:

GO = GET_VALUE (GET_PARAM_EX ( «SPBFUT», инструмент, "selldepo"), "param_value")

Цена = GET_VALUE (GET_PARAM_EX ( «SPBFUT», инструмент, "последна"), "param_value")

Печалба = GET_VALUE (GET_ITEM ( «FUTURES_CLIENT_LIMITS», 1), «VARMARGIN») + GET_VALUE (GET_ITEM ( «FUTURES_CLIENT_LIMITS», 1), «ACCRUEDINT»)

Това, което сме забравили? Точно така! Всички получени числени данни добави нула!

Също така, трябва да се отбележи, че създаването на робот за търговия. данни трябва да получават веднъж, като текущата нетна позиция, по време на изпълнение на програмата робот няма да се промени, а това нямаше да се случи в Quik, и до следващия път, е започнало на робота, ще бъде възможно да се получи свежи данни.

В следващата статия, в "Robot Трейдинг" със заглавие Ще обсъдим алгоритъма робот за търговия стратегия "Probojnaja", а след това да го удължи, за да създадете. Всичко, което сме обсъждали днес е полезно за нас.

Eugene, обикновено един от следните си в блога ще бъде интересно да се види промени пример маса с течение на времето на предварително определени разстояния капитал (времева рамка-ти) 1 минута, 5 минути, всеки час. по избор. Такава маса би било полезно след това да изнасят чрез DDE да Excel и нанасят Equity. Основната трудност, по мое мнение, е да организира всички стари от таблиците: различни граници, variatsionka, натрупан доход, обмен на валута, брокерски комисионни и т.н. и за да се отрази една цифра - текущото състояние на сметката (в съответствие с пазарните цени). Би било чудесно да видя вашата версия!

Така че тази таблица, и така може да се изнася в Excel.

Тя не дава резултати с определена периодичност

Текущо състояние на сметката не е отразено никъде. Например, комисиона на брокера се приспада само сутрин.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!