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

интересный робот на нефть.2 рси .микро уровни.5 минут.

-Параметры: p_classcode=«SPBFUT» --Код класса p_seccode=«BRK5» --Код инструмента p_account="...." --Код счета p_clientcode="...." --Клиенткий код p_count=2 --Размер позиции p_spread=0.2 --Проскальзывание p_sell_level_RSI=60 --уровень RSI, при котором продаем p_buy_level_RSI=40 --уровень RSI, при котором покупаем

is_run = true count = 0

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

function robot()  local N1=getNumCandles(«RSI-5-BRK5»)  local N2=getNumCandles(«RSI-15-BRK5»)  local N=getNumCandles(«BRK5-1»)  t1,n1,i1=getCandlesByIndex(«RSI-5-BRK5», 0, N1-3, 2)--(«RSI-1», 0, N1-3, 2)  t2,n2,i2=getCandlesByIndex(«RSI-15-BRK5», 0, N2-3, 2)--(«RSI-2», 0, N2-3, 2)  t,n,i=getCandlesByIndex(«BRK5-1», 0, N-1, 1)

        --сигнал на продажу (первый мувинг пересекает втрой RSI-15-BRK5 сверху вниз         --if t1[0].close<t2[0].close  then  --if t1[0].close<t2[1].close then--and t1[0].close>p_sell_level_RSI  then--без фильтра уровня--проба t0 и t1 в скобках со свечками         --if t1[1].close<t2[0].close  then         if t1[1].close<t2[1].close  then--запаздывание

            --if t1[1].close>p_sell_level_RSI --фильтр уровня   Trade(«S»,count+p_count,t[0].close-p_spread)  --end  end    --сигнал на покупку (первый мувинг RSI-5-BRJ5 пересекает второй снизу вверх         --if t1[0].close>t2[0].close then          --if t1[0].close>t2[1].close then--and t1[0].close<p_buy_level_RSI  then--без фильтра уровня         --if t1[1].close>t2[0].close then         if t1[1].close>t2[1].close then--без фильтра уровня

  Trade(«B»,p_count-count,t[0].close+p_spread)  --end  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»]=«TODAY»,     [«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

не выше часа. работает.
лучше средних. мало лотов меньше риска
4 Комментария
  • Юрий Долгорукий
    15 мая 2016, 23:08
    ясн
  • ch5oh
    16 мая 2016, 22:08

    Отредактируйте пост: поместите код в соответствующий тег с форматированием.

    =) Или киньте файл на публичный хостинг...

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

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