Пример за скриптQLua (Lua), който извършва търговски операции в терминала QUIK, BOT

Последни записи

Пример за QLua (Lua) скрипт, който извършва търговски операции в терминала QUIK

пример
Скриптът ви позволява да отваряте и затваряте позиции от следния тип: - купете 2, избрани с помощта на бутоните,опция кол върху фючърси на RTS индекс, - продайте 1, избрани с помощта на бутоните,фючърси на RTS.

Когато има позиция, отворена от този скрипт, таблицата показва информация за нея (печалба, баланс, средна цена, дата на отваряне).

Печалбата се изчислява по формулата:"Текуща цена, на която можете да затворите позиция" -"Цена на отваряне на позиция" -"Комисионна 8 рубли за всеки лот".

Освен това се записва в регистрационния файл ("Log.txt" ) на операциите, извършени от скрипта, а файлът със състоянието ("State.txt" ) съхранява информация за текущо избраните инструменти и текущата позиция, отворена от скрипта.

ВАЖНО. Когато избирате опция, използвайте бутоните "/\","\/", за да промените удара на опцията на стъпки от 500, уверете се, че такава опция съществува.

Задаването на цвета на клетка става с setColor. Но в сценария виждам

Къде можете да прочетете за това? В документите за ключ "цвят" или "Зелен" не намирам нищо такова.

Ако погледнете кода на скрипта, там ще намерите функции със същото име, които използват setColor вътре в себе си, това се прави само за удобство. Можете също така да създавате свои собствени функции, които улесняват живота на програмиста.

Готина идея! Благодаря ти!

Можете ли да предложите кои редове да гледате и редактирате. да деактивирате проверката на ценовия лимит в приложението?

Факт е, че в моята демо версия има надценена волатилност за опциите. И оттук и теорията. цена. Скриптът обикновено поставя поръчки за закупуване на 2 обаждания и продажба на фючърси. И наобратнострана, само закупуването на фючърси работи нормално, а разговорите не се продават. Скриптът не извежда никакви грешки.

Опитвайки се да затворя позицията ръчно, получих следното съобщение: „Грешка при създаване на поръчка. „Търговската цена е извън ограничението“

Беше възможно да затворите позицията ръчно само след премахване на отметката от квадратчето „проверете ценовия лимит“.

Здравейте. Можете да видите параметрите на транзакцията в помощния файл info.chm, който се намира в папката с терминала Quik. Можете също да използвате джоба за транзакции, за да изследвате.

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

Да, разбирам, че е за обучение. Мислех да взема работещ скрипт и да го довърша според нуждите си, като по този начин се науча. И тогава веднага се натъкнах на препятствие. Ще копая! Колкото по-интересно.

Имате 3 възможности: учете сами, като използвате статии и примери от сайтове; запишете се за платено обучение; поръчайте скрипт, който ще работи според вашия алгоритъм.

Ако някой друг срещне това, тогава за транзакцията за затваряне на позиция по опции (след ред 259) добавяме:

Страхотни сте, бързо решихте проблема! Бих могъл да подскажа, но не съм се сблъсквал с такава задача, така че нямах решение.

Благодаря ти! Но задачата е само един ред))

Ще бъда страхотен, когато най-накрая успея да излъчвам нормална волатилност, а не извън мащаба (сега показва 80% на RTS, с нормални 24%). Но тази задача не е за програмиста, а за потребителя)) Но когато я реша, тогава патерицата с анулирането на проверката на ценовия лимит може да бъде премахната. Техн. поддръжката на брокера е безсилна. Явно скоро ще пиша в подкрепа на Quick, ако пак не намеря решение.

Между другото, тази патерица вероятно ще помогне не само на демо версията с грешнаталетливост. Но също и когато самата борса "коси" и не позволява пускане на поръчки, отчитане на лимитите неправилно. Видях подобен проблем във форумите, докато търсех решение.

Здравейте. Възможно ли е да се увеличи височината на линията?

Здравейте, само общи настройки на шрифта в самия бърз

Кажете ми, възможно ли е да преправя скрипта, така че да спечелите позиция с повече от 2 опции + 1 бъдеще. Какво трябва да се промени? Благодаря предварително.

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

моля, добавете колона за променливост към таблицата "число печалба дата цена" или обяснете как може да се направи това.

Здравейте. Във функцията CreateTable на скрипта трябва да добавите още една колона за показване на променливостта. Във функцията OnParam, използвайки getParamEx, вземете стойността на променливостта (поле VOLATILITY) за избраната опция и покажете стойността в таблицата с помощта на функцията SetCell.

Здравейте. Кажете ми, възможно ли е ръчно да свържете вече отворени фючърсни/опционни позиции чрез файла state.txt? Моля, качете записания файл state.txt във всяка услуга за хостване на файлове.

Здравейте! Сега не помня в какъв формат той записва този файл, направете го по-лесно: стартирайте този скрипт на демо сметка, отворете позиция и спрете скрипта, след това отворете този файл и коригирайте кодовете, количеството и датите на отваряне там. Форматът всъщност е прост, всяка нова стойност на нов ред, но ето общ списък с редове:

ФЮЧЪРС код за отваряне на ОПЦИЯ кодза отваряне Код на ОПЦИЯ в позиция Брой лотове в позиция по ОПЦИИ Средна цена на отваряне на позиция по ОПЦИИ Дата на отваряне на позиция по ОПЦИИ Код на ФЮЧЪРС в позиция Лоти в позиция по ФЮЧЪРС Средна цена на отваряне на позиция по ФЮЧЪРС Дата на отваряне на позиция по ФЮЧЪРС

не позволява добавяне на позиция, пише "позицията вече е отворена"

Ако пише така, значи файла State.txt вече съществува и в него е записана информация за позицията, отворете го и вижте какво има.

Здравейте! Кажете ми, моля, как да се уверя, че при затваряне на сделка спирането за нея не се премахва. Пример: купихте 1 лот спестявания и поставих стоп и тейк след това продадохте 1 лот спестявания и тейк беше премахнат автоматично. Как да не се снима.

Здравейте! Как купувате и продавате? Всъщност stop and take не трябва да се премахват сами, те не са обвързани с транзакции по никакъв начин.

Сделки с фючърси Отварям сделка като тази:

Слагам спирка така:

Затваряте ли го и с функцията sendMarket?

Отварям продажба (функция sendMarket) за 1 лот, поставям стоп и тейк. след това отварям покупка (функция sendMarket) за 1 лот, слагам стоп и тейк. резултатът е нетна позиция от 0 и 2 стопа и 2 вземания (1 спиране и вземане за продажба и 1 спиране и вземане за покупка).

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

Просто разчитам, че ще останат, но ги махат, в който случай още не разбрах. моята система дава сигнали за покупка или продажба, много сделки се затварят взаимно и стоповете и тейковете остават, но тогава, когато всички стопове се задействатнетната позиция трябва да е 0, което на практика не е така. Когато проверя в таблицата с поръчки, някои поръчки се анулират.

Може би се премахват по време на разчистването? Задавате ли достатъчно време за действие (EXPIRY_DATE) за тях?

Такива поръчки се анулират по време на клиринг "GTC" - преди анулиране, "ДНЕС" - преди края на текущата търговска сесия, Дата във формат "ГГММДД".

GTC в този случай означава до анулиране от борсата, а не от вас. Задайте дата с малък марж, след което те няма да бъдат премахнати.

Мога да ви предложа готов пакет от функции (може да са ви полезни):

Само имайте предвид, че в демо акаунт от Quick developments не можете да правите поръчки с изтичащ срок

все пак премахна постави днес отново се оттегли. може би това е инструментът, такива странности на SiH7

system-settings-main settings-trading-closing-positions-remove stop orders имате ли нужда от отметка?

Имам това квадратче за отметка, дори не знаех за него 🙂 Но стоп поръчките остават, когато позицията е затворена, сега специално я проверих: купих я, зададох тейк печалба и стоп лимит, продадох я, стоп поръчката остана. Ако срещнете такъв проблем на демо, тогава пишете тук: [email protected] Ако е на реална сметка или на демо сметка на брокер, тогава се свържете с брокера.

На теория ДНЕС се теглят при вечерния клиринг, GTC само когато теглите, добре, датата е ясна. Съжалявам, че написах по-рано, че GTC се оттегля от борсата, не е така. Ако GTC ви бъде изтеглен, тогава пишете на лицето, което ви е предоставило акаунт, това е грешка.

изтеглени извън клиринга

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

така че заявките се отхвърлят, разбрах го

Сега за демо акаунт ли говорите, илиза истински?

Ако дори не по време на изчистването те бъдат премахнати, а не при опит за изпълнение, тогава това определено е някакъв вид грешка и трябва да се обърне към брокера или разработчиците. Освен ако нямате робот, който да ги сваля.

роботът не тегли, акаунтът не е демо. Избяга при опит за изпълнение

Ако не е демонстрация и когато се опитвате да изпълните, тогава най-вероятно няма достатъчно средства по това време.

Средства със сигурност има.

Тогава определено трябва да се обадите на брокера, нещо не е наред с тях.

Първоначално написахте, че искате спирането и вземането да бъдат премахнати при затваряне на позицията, според вашата история те така или иначе не се премахват, не разбирам какво не ви устройва.

Все още не съм разбрал четенето от файлове - възможно ли е например да прочета ред от бърз tri файл и веднага да попълня променливата Transaction. Или трябва да анализирам този ред за всяка стойност?

Здравейте, според мен не би трябвало да има проблеми с изпращането на низ от файл чрез sendTransaction.

Добре, ще опитам - благодаря)

Това поле е CLIENT_CODE

О, направих грешка, съжалявам, brokerref определено трябва да се използва, беше тежък ден, главата ми е малко несготвена. Наистина има много неясноти с ръководството, всички се измъчват, затова направих сайта, защото аз самият се измъчвах, когато изучавах QLUA, реших да улесня малко за другите, разбира се, не можах да покрия всичко, но ако има нещо, попитайте, ще се опитам да помогна с каквото мога.

Пример за двигател:

Е, да, объркване, но не при вас, а при квиковците в обителта.

Димитри, какво странно нещо. Тествам скрипта в случай на прекъсване на връзката и други екстремни ситуации. Умишлено спирам скрипта и премахвам поръчката за затваряне на позицията, която той контролира ръчно. Поръчката е свързана със стоп поръчката, но в случая, доколкото разбирам, това няма значение. стартиранескрипт и го доведе до ситуация, в която логично той трябва да оттегли тази поръчка (която премахнах на ръка) и да я затвори на пазара. И той твърди, че премахва тази вече отменена заявка, поне Резултат = sendTransaction(Transaction) произвежда ""! Ако премахна свързаната стоп поръчка - същият резултат. Може би това е нормално и трябва да проверите дали заявлението е оттеглено или не? В края на краищата, как се държи скриптът при прекъсване и след това възобновяване на връзката?

Здравейте! За какъв сценарий говориш? Този скрипт изобщо не поставя никакви стоп поръчки и не реагира на прекъсване на връзката.

Транзакция за премахване на несъществуваща поръчка няма да върне грешка при изпращане, фактът, че поръчката не може да бъде премахната, трябва да се провери в резултатите от транзакцията, функцията OnTransReply. Самият скрипт не реагира по никакъв начин на прекъсвания на връзката, т.к. той обработва данните, когато пристигнат, при прекъсвания просто спира да идва. Ако за вас е важно да следите прекъсванията, можете да използвате обратните извиквания OnDisconnected и OnConnected или да проверите дали има връзка с функцията isConnected.

Дмитрий, благодаря ти много. Може би можете също да погледнете предварително ФЛАГОВЕ в таблицата с приложения. trans_id знам?

Моля! Можете да гледате знамената, да.

Мога ли да попитам? 285 ще бъде поставена линия за фючърси в количества от 0. получите опции за покупка или продажба? и имаме таблица само с дати на опции. не е необходим хедж. един бутон по-бързо. Опитах се да включа този скрипт, но не търгувах. той намира технически опции.fuches. или как да отделите или разделите покупката или продажбата на инструменти. да го използваш сам? или този скрипт не се отваря едновременно, но се предлага отделно?

Много неща ще трябва да се променят, изучават, разбират.