Постов с тегом "qpl": 4

qpl


У кого есть Lua .

    • 20 апреля 2020, 08:29
    • |
    • McDuck
  • Еще
Здравствуйте народ. Хотел спросить может у кого есть Lua скрипт работающий по пересечению индикатором нулевой зоны гистограммой, который можно подключить через идентификатор в QUIK.  Либо чтобы открывались сделки по данным скрипта qpl по перевесу (дельте) оборота сделок. Скрипт прилагаю, в нем подсчитывается объем.  
Написание скрипта тоже рассмотрю, пишите в личку.  
PORTFOLIO_EX LUK;
DESCRIPTION Объёмы купли/продажи за интервал;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST FIRMID;

PROGRAM

'Автор:  Михаил Булычев
'Что делает:
'   подсчитывается объёмы купли\продажи по определённому инструменту за 
'   заданный интервал   
'Как использовать:
'  В следующих строках следует указать код бумаги и код класса для 
'  отслеживаемого инструмента

'=============================НАСТРОЙКИ===============================
SecCode="LKOH" '  Код инструмента
ClassCode="TQBR" 'Код класса
interv=3600 'является интервалом в секундах
razn = 0 'смещение часового пояса относительно времени торговой системы. 
'=============================НАСТРОЙКИ===============================


FUNC is_in_interval(interval, trade_time, sys_time, hour_shift)
  csys_time_value=0
  c_time_value=0
  csys_time_value =0 + (0 + get_value(sys_time, "Hour") + hour_shift)*3600 + _
                    get_value(sys_time, "Min")*60 + _
                    get_value(sys_time, "Sec")
  c_time_value=0 + ((0 + substr("" & trade_time, 0, 2)) * 3600) + ((0 + substr("" & trade_time, 2, 2)) * 60) + ((0 + substr("" & trade_time, 4, 2)))

csys_time_value = csys_time_value + 0
c_time_value = c_time_value + 0

k=csys_time_value - c_time_value

if k <= interval
    result=1
  else
    result=0
  end if
END FUNC

  buy_value=0
  sell_value=0
  total_value=0
  sys_time = GET_DATETIME()
  delete_all_items() 
  mString=create_map()
  


  j=0
  n=get_number_of("ALL_TRADES")
  for i from 0 to n
    mTrade=get_item("ALL_TRADES", n-i)
    trade_time=get_value(mTrade, "TIME")
    if (get_value(mTrade, "SECCODE")= SecCode) AND (get_value(mTrade, "CLASSCODE")= ClassCode)
      if is_in_interval(interv, trade_time, sys_time, 0-razn) = 1
        value=0+get_value(mTrade, "VALUE")
        j=j+1
        if (get_value(mTrade, "OPERATION") = "BUY")
          buy_value=buy_value+value    
        else
          sell_value=sell_value+value      
        end if
        total_value=total_value+value
      else
        break
      end if
    end if    
  end for
  mString=set_value(mString, "vol", total_value)
  mString=set_value(mString, "volbuy", buy_value)
  mString=set_value(mString, "volsell", sell_value)
  add_item(1, mString)
END_PROGRAM

PARAMETER vol;
PARAMETER_TITLE vol;
PARAMETER_DESCRIPTION Купили;
PARAMETER_TYPE NUMERIC(10,0);
END
PARAMETER volbuy;
PARAMETER_TITLE volbuy;
PARAMETER_DESCRIPTION Купили;
PARAMETER_TYPE NUMERIC(10,0);
END
PARAMETER volsell;
PARAMETER_TITLE volsell;
PARAMETER_DESCRIPTION Продали;
PARAMETER_TYPE NUMERIC(10,0);
END
END_PORTFOLIO_EX
  • обсудить на форуме:
  • Quik Lua

Кому нужно 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


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

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