френк френков
френк френков личный блог
15 мая 2016, 23:24

быстрые средние на луа

--Параметры: p_classcode=«SPBFUT» --Код класса p_seccode=«RIH5» --Код инструмента p_account="...." --Код счета p_clientcode="...." --Клиенткий код p_count=2 --Размер позиции p_spread=170 --Проскальзывание

is_run = true count = 0

function main()  while is_run do   sleep(100)   robot()  end end

function robot()  local N1=getNumCandles(«MA1-RIH5»)  local N2=getNumCandles(«MA2-RIH5»)  local N=getNumCandles(«RIH5»)  t1,n1,i1=getCandlesByIndex(«MA1-RIH5», 0, N1-3, 2)  t2,n2,i2=getCandlesByIndex(«MA2-RIH5», 0, N2-3, 2)  t,n,i=getCandlesByIndex(«RIH5», 0, N-1, 1)    --сигнал на продажу (первый мувинг пересекает втрой сверху вниз  if t1[0].close>t2[0].close and t1[1].close<t2[1].close then   Trade(«S»,count+p_count,t[0].close-p_spread)  end    --сигнал на покупку (первый мувинг пересекает второй снизу вверх  if t1[0].close<t2[0].close and t1[1].close>t2[1].close then   Trade(«B»,p_count-count,t[0].close+p_spread)  end   end

function Trade(a_oper,a_count,a_price)  if a_count>0 then   t = {     [«CLASSCODE»]=p_classcode,     [«SECCODE»]=p_seccode,     [«ACTION»]=«NEW_ORDER»,     [«ACCOUNT»]=p_account,     [«CLIENT_CODE»]=p_clientcode,     [«TYPE»]=«L»,     [«OPERATION»]=a_oper,     [«QUANTITY»]=tostring(a_count),     [«PRICE»]=tostring(a_price),     [«EXPIRY_DATE»]=«GTS»,     [«TRANS_ID»]=«1»    }   res=sendTransaction(t)   message(«Количество до »..tostring(count).."  количество сделки "..tostring(a_count).."  тип операции"..a_oper,1)   if a_oper==«B» then    count=count+a_count   else    count=count-a_count   end   message(«Количество после »..tostring(count),1)  end end

function OnStop(stop_flag)  is_run=false  stop_flag=1 end

2 Комментария

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн