Постов с тегом "Qpile": 88

Qpile


Qpile раз в секунду

Пример о недостатках в самом низу
 www.zerich.com/internet-trading/helpfull-information/qpile.html
Непытливый ум недостаток.


PORTFOLIO_EX ТЕСТ;
DESCRIPTION ОПИСАНИЕ;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;

PROGRAM

FOR XXX FROM 0 TO 0

MESSAGE(«Раз в секунду, ага»,1)

IF 1 = 1
XXX = -1
CONTINUE
END IF
END FOR

END_PROGRAM
PARAMETER COLUMN;
PARAMETER_TITLE Робот;
PARAMETER_DESCRIPTION Описание столбца;
PARAMETER_TYPE STRING(10);
END
END_PORTFOLIO_EX


Спасибо пацанам с квиковского форума
Против цериха ниче не имею
Привет Алгомафии




 

qpile и частота обновления

    • 08 марта 2015, 11:38
    • |
    • v3Rtex
  • Еще
Я так понимаю, максимальная частота обновления данных в таблице qpile = 1раз/сек?
Т.е. к примеру если за секунду цена бида изменится 5 раз, об этом я узнаю только когда таблица обновится, и то только конечную цену?
Это можно как нибудь обойти? Как то же пишут роботов на qpile, неужели с пингом от 1000мс…

Платформа для роботов. Куда смотреть?

Я программист, последние несколько лет занимался веб-разработкой на PHP. (Не визитки на cms плодил, а только движки писал для крупных проектов)
Сейчас заинтересовался трейдингом, приторговываю руками, депо в нуле, сильно не сливаю, нормально вообщем.
Хочу заниматься роботостроением, но даже не предствлял, что разнообразие платформ такое множество.
Lua, QPILE, MQL, StockSharp, TsLab, Wealth Lab
С TsLab'ом успел немного ознакомиться, порой кажется проще код написать, чем на кубиках запрограммировать какой то алгоритм.

Профессионалы, подскажите, какой язык осваивать, в какую сторону смотреть?
P.S. буду рад, если кто-то из опытных возьмет под своё крыло


Запустил первого робота на бою

    • 17 февраля 2015, 15:29
    • |
    • SciFi
  • Еще
Завершил разработку своего первого торгового робота — свинг-трейдера и запустил его без режима отладки. Иду на работу, посмотрим что будет ) Надеюсь, он не сойдет с ума и не сольет мне счет. Все утро делал отладку и вроде исправил все возможные недочеты.

Естественно, он не тупо торгует скользящие средние. Мой алгоритм с диверсификацией, продвинутыми многолинейными индикаторами и учитывает проскальзывание, шаг и точность цены, причем не привязан к одному активу, а торгует заданный набор. Кроме этого, все транзакции и причины открытия сделок подробно записываются в логи, у каждого торгового дня свой отдельный лог файл. 

Не продается и не будет продаваться ) Куриц, несущих золотые яйца, не продают )

Запустил первого робота на бою 

Я не сразу пришел к этому. Начал разработку на QPILE под QUIK с трех простых вспомогательных программ (выгрузка котировок, показания многолинейных индикаторов, отображение состояния портфеля и доходности). На основе этого опыта уже смог написать робота буквально за 4 дня — 2 дня проектировал, 1 день писал, 1 день делал отладку.

( Читать дальше )

Лучший ресурс для qlua, qpile

    • 10 февраля 2015, 10:31
    • |
    • muravey
  • Еще
Доброго торогового дня!

Обращаюсь к знающим и понимающим — подскажите пожалуйста, какой по Вашему мнению самый доходчивый и мастхэв ресурс для изучения языка программирования под quik? 
Лучший ресурс для qlua, qpile 

Автовыставление стопа для квика.

Привет всем! 
Хочу узнать, нужен ли кому функционал автоматического выставления стопа при создании позиции?

Уже есть моя заготовка кода на Qpile, которая при появлении позиции по любому фьючу на счете, автоматически генерит стоп в размере 300 пунктов от текущей чены. Пока примочка работает только для Ri. Для остальных фьючей стоп в 300 пунктов может оказаться не коректным. Да и взятие за основу текущей цены не совсем корректно, так как может отличатся от цены входа в позицию.

Поэтому, отметьте «Хорошо», если данная тема Вам интересна, а в комментариях напишите свои предложения по способу выставления стопа. Доработаю с учетом Ваших пожеланий.

Так же, дабы не создавать «велосипед», подскажите существующие реализации, если у кого имеются.

Результатом будет код на Qpile для квика, который как всегда, обещаю дать в свободный доступ  на своем микро-сайте.

Pivot Point для Quik part2

    • 27 января 2014, 10:15
    • |
    • Aero
  • Еще
Добрый вечер, ранее я уже выкладывал немного доработанную версию пивотов smart-lab.ru/blog/159422.php Сегодня вот, что то мне моча в голову ударила, и я решил, что мне не нравится данное отображение пивот уровней.
Придя домой сразу же сел и начал изменять отображение этих самых уровней.

Вот что собственно и получилось:
 Pivot Point для Quik part2 

Есть два кода, один ведет расчет для недельных свечек (движение цены внутри недели), и код для дневных графиков (для интрадея)

 Для дневных свечек.
PORTFOLIO_EX VFPivot1;
DESCRIPTION VFPivot;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;
PROGRAM
cSrc=«GR21»
cTrgt=«GR100»
LinkR="####\###\####\###.bmp"
LinkPP="####\###\####\###.bmp"
LinkS="####\###\####\###.bmp"
FUNC Text2Date(Year,Month,Day)
if (LEN(Month) < 2)
Month = «0» & Month
end if
if (LEN(Day) < 2)
Day = «0» & Day
end if
result = Year & Month & Day
END FUNC

Func LogData(Prm1,Prm2)
output = CREATE_MAP ()
output = SET_VALUE (output, «Param0», GET_INFO_PARAM(«SERVERTIME»))
output = SET_VALUE (output, «Param1», Prm1)
output = SET_VALUE (output, «Param2», Prm2)
ADD_ITEM (CurLogLine, output)
CurLogLine=CurLogLine+1
End Func
FUNC MyRound1(pValue)
result=APPLY_SCALE(pValue,4)
label_params=create_map()
label_params=set_value(label_params,«TEXT», «R3»)
label_params=set_value(label_params,«IMAGE_PATH», LinkR)
label_params=set_value(label_params,«ALIGNMENT», «TOP»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date1)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 17)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func
FUNC MyRound2(pValue)
result=APPLY_SCALE(pValue,4)
label_params=create_map()
label_params=set_value(label_params,«TEXT», «R2»)
label_params=set_value(label_params,«IMAGE_PATH», LinkR)
label_params=set_value(label_params,«ALIGNMENT», «TOP»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date1)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 17)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func
FUNC MyRound3(pValue)
result=APPLY_SCALE(pValue,4)
label_params=create_map()
label_params=set_value(label_params,«TEXT», «R1»)
label_params=set_value(label_params,«IMAGE_PATH», LinkR)
label_params=set_value(label_params,«ALIGNMENT», «TOP»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date1)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 17)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func
FUNC MyRound4(pValue)
result=APPLY_SCALE(pValue,4)
label_params=create_map()
label_params=set_value(label_params,«TEXT», «PP»)
label_params=set_value(label_params,«IMAGE_PATH», LinkPP)
label_params=set_value(label_params,«ALIGNMENT», «TOP»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date1)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 17)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func
FUNC MyRound5(pValue)
result=APPLY_SCALE(pValue,4)
label_params=create_map()
label_params=set_value(label_params,«TEXT», «S1»)
label_params=set_value(label_params,«IMAGE_PATH», LinkS)
label_params=set_value(label_params,«ALIGNMENT», «TOP»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date1)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 17)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func
FUNC MyRound6(pValue)
result=APPLY_SCALE(pValue,4)
label_params=create_map()
label_params=set_value(label_params,«TEXT», «S2»)
label_params=set_value(label_params,«IMAGE_PATH», LinkS)
label_params=set_value(label_params,«ALIGNMENT», «TOP»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date1)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 17)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func
FUNC MyRound7(pValue)
result=APPLY_SCALE(pValue,4)
label_params=create_map()
label_params=set_value(label_params,«TEXT», «S3»)
label_params=set_value(label_params,«IMAGE_PATH», LinkS)
label_params=set_value(label_params,«ALIGNMENT», «TOP»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date1)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 17)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func
DELETE_ALL_ITEMS()
DELETE_ALL_LABELS(cTrgt)


( Читать дальше )

Кому нужно Pivot point для Quik

    • 13 января 2014, 19:25
    • |
    • Aero
  • Еще
И так вчера создавал тему по поводу пивотов, добавил еще по одному уровню расчета, убрал округление, добавил возможность расчета по недельным графикам
Вот собственно код 
PORTFOLIO_EX VFPivot;
DESCRIPTION VFPivot;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;
PROGRAM
cSrc=«Graph1»
cTrgt=«Graph2»
FUNC Text2Date(Year,Month,Day)
if (LEN(Month) < 2)
Month = «0» & Month
end if
if (LEN(Day) < 2)
Day = «0» & Day
end if
result = Year & Month & Day
END FUNC
Func LogData(Prm1,Prm2)
output = CREATE_MAP ()
output = SET_VALUE (output, «Param0», GET_INFO_PARAM(«SERVERTIME»))
output = SET_VALUE (output, «Param1», Prm1)
output = SET_VALUE (output, «Param2», Prm2)
ADD_ITEM (CurLogLine, output)
CurLogLine=CurLogLine+1
End Func
FUNC MyRound(pValue)
result=APPLY_SCALE(pValue,4)
label_params=create_map()
label_params=set_value(label_params,«TEXT», result)
label_params=set_value(label_params,«IMAGE_PATH», «line.bmp»)
label_params=set_value(label_params,«ALIGNMENT», «RIGHT»)
label_params=set_value(label_params,«YVALUE», result)
label_params=set_value(label_params,«DATE», Date)
label_params=set_value(label_params,«TIME», 0)
label_params=set_value(label_params,«R», 24)
label_params=set_value(label_params,«G», 107)
label_params=set_value(label_params,«B», 139)
label_params=set_value(label_params,«TRANSPARENCY», 0)
label_params=set_value(label_params,«FONT_FACE_NAME», «Tahoma»)
label_params=set_value(label_params,«FONT_HEIGHT», 14)
label_params=set_value(label_params,«HINT», result)
id=ADD_LABEL(cTrgt, label_params)
end func


( Читать дальше )

Вопрос про переменные в qpile

Прошу грамотных  объясниить следующую ситуацию
в начале кода в рамках настроечных параметров
объявляю переменные условия
вот такая рыба кода
 
' продаем если флаг SELL в значении 2
SELL=2
' покупаем если флаг BUY в занчении 1
BUY=1
 
'затем в теле скрипта после случившегося условия с ценой меняю флаги на новые
IF Ext=1
  SELL=0.2
   BUY=0.1
End IF
-----------------------------------------------------
эти переменные BUY и SELL использую как параметр условия при открытии позиции в дальнейшем коде
 
вопрос в следующем
При следующих интерациях у меня какое значение данных переменных будет? Если после выполнения условия я их переставил в 0.2 и 0.1 то поскольку чтение начинается с начала скрипта то их платформа снова поставит в значения 2 и 1?
Как сдеклать чтобы были начальные вводные переменные (которые я задал по дефолту)
а затем если условия изменились то эти же переменные уже были другие или до конца сессии или пока я их не изменю в коде новым условием ?


( Читать дальше )

Скальпинг с помощью бота (QPILE)

 
Всем привет.
 
Во время непоняток на рынке, цена часто движется вокруг определенного центра. Это происходит, по разным причинам, либо перераспределение денег на уровне, либо полное затишье и игроки с более быстрым доступом до бирже зарабатывают… не суть.
 
Скальпинг с помощью бота (QPILE)
 
Еще несколько лет назад. Я написал бота на QPILE, который открывает 10 Лимитированных заявок вверх и 10 Лимитированных заявок внизна заданном расстоянии. Направление заявок в сторону центра.
Если заявка срабатывает, то бот выставляет еще одну против нее, на преведущем уровне, где цена раньше была (чтобы фиксировать прибыль текущей заявки).
На рисунке выше, виден центр этого безобразия (серая линия). Видно, что на заданном растоянии откладываются лимитированные заявки(зеленным цветом). Направление, показано большими красными стрелками.
Вот скриншот работы бота...


( Читать дальше )

....все тэги
UPDONW
Новый дизайн