Блог им. drghestykmb

пробой фрактала.

программа плохо работает

--Параметры: p_classcode=«SPBFUT» --Код класса p_seccode=«RIM6» --Код инструмента p_account="...." --Код счета p_clientcode="...." --Клиенткий код p_count=1 --Размер позиции p_spread=100 --Проскальзывание p_sell_level_zigzag=30 --уровень  при котором продаем p_buy_level_zigzag=30 --уровень  при котором покупаем p_svech=30 p_n=1

is_run = true count = 0

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

function robot()  local N1=getNumCandles(«RIM6-Fractals»)    local N=getNumCandles(«MyPrice-RIM6»)

--надо перебрать верхние и нижние фракталы.и больше меньше

 for i=1,p_svech-1 do

   t1,n1,i1=getCandlesByIndex(«RIM6-Fractals», 0, N1-i, 1)--(«RSI-1», 0, N1-p_svech, 2)    t,n,i=getCandlesByIndex(«MyPrice-RIM6», 0, N-1, 1)

   message(«MyPrice-RIM6: »..t[0].close,1)

           if t1[0].high>t[0].close then           --p_svech=p_svech-1

        if t[0].close<t1[0].high-p_sell_level_zigzag  then                       Trade(«S»,count+p_count,t[0].close-p_spread)  end         if t[0].close>t1[0].high+p_buy_level_zigzag then                        Trade(«B»,count+p_count,t[0].close+p_spread)  end

      p_n=p_n+1         message(«свеча верх фрактал: »..p_n,1)      message(«RIM6-Fractals-high: »..t1[0].high,1)

      break      end

 

     if t1[0].low>t[0].close then

         if t[0].close<t1[0].low-p_sell_level_zigzag then                        Trade(«S»,count+p_count,t[0].close-p_spread)  end         if t[0].close>t1[0].low+p_buy_level_zigzag  then                      Trade(«B»,p_count-count,t[0].close+p_spread)            end       p_n=p_n+1          message(«свеча нижн фрактал: »..p_n,1)               message(«RIM6-Fractals-low: »..t1[0].low,1)       break      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 stop_flag=1--УБРАТЬ ЗА ТИРЕ   end

можно сделать любой индикатор. фрактал не получается.
индикаторы мацд.рси.параболик.средние.идеально срабатывают.
в принципе роботы сливают".
средние.

★2
12 комментариев
мне нравицо…
avatar
смотря что называть фракталом
avatar
Люфт, верхний или нижний. 5 минутку.в функции робот можно изменять всё. свечу нужную подбирать тяжеловато.с сделкой уходит по всей вероятности цикл.и нил пишет. нужен пересброс правильный!
френк френков, не понятно, так что же такое фрактал?
avatar
Люфт, первый класс. снова ходим в школу
френк френков, не, просто подозреваю что вы называете фракталом не совсем то
avatar
Люфт, на графике индикатора название снимается
френк френков, ftp://ftp.quik.ru/public/INDICATORS.zip
 индикатор не надо делать. сигнал транзакции. с индикатора любого! уточнения плохи для интуиции
 

--Параметры: p_classcode=«SPBFUT» --Код класса p_seccode=«RIM6» --Код инструмента p_account="..." --Код счета p_clientcode="..." --Клиенткий код p_count=1 --Размер позиции p_spread=10 --Проскальзывание p_sell_level_zigzag=500 --уровень RSI, при котором продаем p_buy_level_zigzag=500 --уровень RSI, при котором покупаем p_svech=30 p_n=1

is_run = true count = 0

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

function robot()  local N1=getNumCandles(«RIM6-Fractals-5»)    local N=getNumCandles(«MyPrice-RIM6-1»)

--надо перебрать верхние и нижние фракталы.и больше меньше

 for i=1,p_svech-1 do

   t1,n1,i1=getCandlesByIndex(«RIM6-Fractals-5», 0, N1-i, 1)--(«RSI-1», 0, N1-p_svech, 2)            if t1[0].high>0 then           --p_svech=p_svech-1       p_n=p_n+1      --else      message(«свеча верх фрактал: »..p_n,1)      message(«RIM6-Fractals-5-high: »..t1[0].high,1)-- message(«MA1-RIH5: »..t1[0].close,1)       break      end  end

  for i=1,p_svech-1 do    t1,n1,i1=getCandlesByIndex(«RIM6-Fractals-5», 0, N1-i, 1)--(«RSI-1», 0, N1-p_svech, 2)

     if t1[0].low>0 then           --p_svech=p_svech-1

      p_n=p_n+1      --else      message(«свеча нижн фрактал: »..p_n,1)               message(«RIM6-Fractals-5-low: »..t1[0].low,1)-- message(«MA1-RIH5: »..t1[0].close,1)        break       end   end

 

   t,n,i=getCandlesByIndex(«MyPrice-RIM6-1», 0, N-1, 1)

 message(«MyPrice-RIM6-1: »..t[0].close,1)

 

        --сигнал на продажу (первый мувинг пересекает втрой RSI-15-BRJ5 сверху вниз  if t[0].close<t1[0].high and t1[0].high>t[0].close+p_sell_level_zigzag  then--фильтр уровня

            --if t1[1].close>p_sell_level_RSI --фильтр уровня   Trade(«S»,count+p_count,t[0].close-p_spread)  end      --сигнал на покупку (первый мувинг RSI-5-BRJ5 пересекает второй снизу вверх  if t[0].close>t1[0].low and t1[0].low<t[0].close-p_buy_level_zigzag  then--фильтр уровня                    --if t1[1].close<p_buy_level_RSI --фильтр уровня   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»]=«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 --stop_flag=1--УБРАТЬ ЗА ТИРЕ   end
или этот.

 

--Параметры: p_classcode=«SPBFUT» --Код класса p_seccode="....." --Код инструмента p_account="...." --Код счета p_clientcode="....." --Клиенткий код p_count=1 --Размер позиции p_spread=10 --Проскальзывание p_sell_level_zigzag=500 --уровень RSI, при котором продаем p_buy_level_zigzag=500 --уровень RSI, при котором покупаем p_svech=30 p_n=1

is_run = true count = 0

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

function robot()  local N1=getNumCandles(«RIM6-Fractals-5»)    local N=getNumCandles(«MyPrice-RIM6-1»)

--надо перебрать верхние и нижние фракталы.и больше меньше

 for i=1,p_svech-1 do

   t1,n1,i1=getCandlesByIndex(«RIM6-Fractals-5», 0, N1-i, 1)--(«RSI-1», 0, N1-p_svech, 2)            if t1[0].high>0 then           --p_svech=p_svech-1       p_n=p_n+1      --else      message(«свеча верх фрактал: »..p_n,1)      message(«RIM6-Fractals-5-high: »..t1[0].high,1)-- message(«MA1-RIH5: »..t1[0].close,1)      end  --end

  --for i=1,p_svech-1 do    t1,n1,i1=getCandlesByIndex(«RIM6-Fractals-5», 0, N1-i, 1)--(«RSI-1», 0, N1-p_svech, 2)

     if t1[0].low>0 then           --p_svech=p_svech-1

      p_n=p_n+1      --else      message(«свеча нижн фрактал: »..p_n,1)               message(«RIM6-Fractals-5-low: »..t1[0].low,1)-- message(«MA1-RIH5: »..t1[0].close,1)       end   end

 

   t,n,i=getCandlesByIndex(«MyPrice-RIM6-1», 0, N-1, 1)

 message(«MyPrice-RIM6-1: »..t[0].close,1)

 

        --сигнал на продажу (первый мувинг пересекает втрой RSI-15-BRJ5 сверху вниз  if t[0].close<t1[0].high and t1[0].high>t[0].close+p_sell_level_zigzag  then--фильтр уровня

            --if t1[1].close>p_sell_level_RSI --фильтр уровня   Trade(«S»,count+p_count,t[0].close-p_spread)  end      --сигнал на покупку (первый мувинг RSI-5-BRJ5 пересекает второй снизу вверх  if t[0].close>t1[0].low and t1[0].low<t[0].close-p_buy_level_zigzag  then--фильтр уровня                    --if t1[1].close<p_buy_level_RSI --фильтр уровня   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»]=«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 --stop_flag=1--УБРАТЬ ЗА ТИРЕ   end

 при некоторой комбинации нормализуется

теги блога френк френков

....все тэги



UPDONW
Новый дизайн