new_global(«total_net2»,0)
total_net2=total_net2+0
new_global(«cur_bar», 0)
new_global(«send_trans», 0)
new_global(«long», 0)
new_global(«trans_id», 1)
new_global(«bar_enter», 0)
new_global(«number_stop»,0)
new_global(«enter_price»,0)
new_global(«deals»,0)
new_global(«first_start»,0)
new_global(«last2»,0)
new_global(«changeBu»,0)
changeBu=changeBu+0
quant=1
servertime=GET_INFO_PARAM («SERVERTIME»)
hournow=SUBSTR(servertime,0,2)
minnow=SUBSTR(servertime,3,2)
secnow=SUBSTR(servertime,6,2)
SecInfo = GET_SECURITY_INFO("", code)
Lot = GET_VALUE (SecInfo, «LOT_SIZE»)
class=get_class(code)
market=get_market(class)
time=get_datetime()
minute=get_value(time,«MIN»)
hour=get_value(time,«HOUR»)
sec=get_value(time,«SEC»)
curtime=hour*10000+minute*100+sec
dayofweek=get_value(time,«DAYOFWEEK»)
year=get_value(time,«YEAR»)
month=get_value(time,«MONTH»)
day=get_value(time,«DAY»)
curdate=year*10000+month*100+day
TOTAL_NET=get_total_net(market,client,code)+0
CBPLPLANNED=get_CBPLPLANNED(market,client)
timeframe=0
if market&""=«micex»
lot =get_value(get_param_ex(class, code, «LOTSIZE»),«PARAM_VALUE»)+0
total_net=0+total_net'/lot
end if
line=0
string=create_map()
delete_all_items()
last= GET_PARAM (class, code, «LAST»)
bid = GET_PARAM (class, code, «BID»)
offer = GET_PARAM (class, code, «OFFER»)
error=0
open0=0
if first_start==0
if total_net!=0
enter_price=READ_LINE (path&«enter_price.txt», GET_FILE_LEN(path&«enter_price.txt»), error)
end if
first_start=1
end if
if (get_permission()+0)==1
Кто знает как сделать, чтобы при значении индикатора MACD Histogram > или < 0 на дневном графике выскакивало стандартное оповещение QUIK (окно или смс). Пробовал на Lua, искал примеры, несколько дней мурыжил, не получилось. Мне кажется там пара строчек кода.
Или вариант, когда значение индикатора MACD Histogram пишется в таблице QUIK. Я пробовал на Lua, но там была ошибка или пустые значения в таблице.
PORTFOLIO_EX 5ka;
DESCRIPTION 5ka;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;
PROGRAM
'========= НАСТРОЙКИ
INSTRUMENT=«SRM1»
ACCOUNT=«SPBFUT....» ' ПРОПИСЫВАЕМ АККАУНТ НА ФОРТС
' *********************
'========= ПЕРЕМЕННЫЕ
'========= ДАТА И ВРЕМЯ СЕРВЕРНОЕ
SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)
SERVERDATE=GET_INFO_PARAM(«TRADEDATE»)
TIMESERV=SUBSTR(SERVERTIME,0,2)&SUBSTR(SERVERTIME,3,2)&SUBSTR(SERVERTIME,6,7)
HOUR=SUBSTR(TIMESERV,0,2)+0
MIN=SUBSTR(TIMESERV,2,2)+0
SEC=SUBSTR(TIMESERV,4,2)+0
TIME=TIMESERV+0
DATE=SUBSTR(SERVERDATE,6,4)&SUBSTR(SERVERDATE,3,2)&SUBSTR(SERVERDATE,0,2)
TRID=TIME&DATE
TRID=TRID+0
'========= ПРОВЕРКА СОЕДИНЕНИЯ С СЕРВЕРОМ
IF IS_CONNECTED()<>1
RETURN
END IF
OPEN=GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«OPEN»)+0
HIGH=GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«HIGH»)+0
LOW=GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«LOW»)+0
VOLA=GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«HIGH»)+0-GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«LOW»)
Год уже заканчивается и пора подводить некоторые итоги. Начну свою ежегодную серию итогов со своего хобби – программирование в области финансовых рынков. Увлёкся этим делом в конце 2005-го года. Тогда начал осваивать MQL4 в MetaTrader 4, но, через пару лет, поняв кухню ДЦ, перешёл в QUIK на реальную биржу. Тогда же, начал монетизировать своё хобби. Моя история прошлых лет, если кому интересно.
В статье будет, возможно, много не интересного не посвящённым в программирование, поэтому можете смело прокрутить в «Выводы».
Итоги.
В начале года не было желания что-то программировать. Часто собирался с друзьями. Мой робот в январе ушёл в минус 2% по всему счёту. Робот был настроен только в продажу рынка на деривативах, хеджируя основной портфель акций. В общем-то, это моя основная идея последних двух лет. Звёздный час робота настал в конце февраля. Как раз, когда я уехал из города, робот исправно накапливал продажи на летящем вниз рынке. Тогда я в очередной раз убедился в необходимости автоматизации. На мартовской экспирации часть средств удалось удачно перекинуть в подешевевшие акции.
PORTFOLIO_EX RIH9 1 volume;
DESCRIPTION RIH9;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
PROGRAM
' Настраиваемые параметры
ClassCodeList=«SPBFUT» ' код класса инструмента
Instrument=«RIH9» ' название инструмента
Interval=1' интервал (таймфрейм) на графике
DayToFind=15 ' сколько дней назад искать свечи (можно уменьшить, чтобы ускорить работу программы)
CandleToFind=50' сколько свечей надо найти
OutFile = «c:\quotes.csv» ' файл, куда записывать данные в формате CSV
DELETE_ALL_ITEMS()
CandleCount=0
CurYear=get_value(GET_DATETIME(), «YEAR»)
CurMonth=get_value(GET_DATETIME(), «MONTH»)
CurDay=get_value(GET_DATETIME(), «DAY»)
CurHour = GET_VALUE(GET_DATETIME(), «Hour»)
CurMin = GET_VALUE(GET_DATETIME(), «Min»)
CurMin = Interval*Floor(CurMin/Interval) ' округляем минуты до «интервальных»
ID=«ID2» 'идентификатор графика