Блог им. 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

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

103 | ★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

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

Читайте на SMART-LAB:
Фото
Обзор портфеля - итоги 2025 года
Самые прибыльные и убыточные сделки в 2025 году, а также ближайшие планы.
Фото
Биткоин попробует разыграть «треугольную карту»?
«Цифровое золото» прорвало верхнюю границу восходящего треугольника на уровне 94 500 и сейчас тестирует пробитую горизонталь, формируя серию...
Фото
Индикатор Fractal: торговые сигналы и робот для OsEngine. Видео
В этом видео разбираем индикатор Fractal Билла Вильямса — один из самых известных инструментов в трейдинге. Покажем, как формируются фракталы,...
Фото
Стратегия 2026 по рынку акций от Mozgovik Research: трудный год, но, возможно, последний год низких цен
Сегодня у меня первый день официального отпуска. За окном темная звездная ночь, яркая белая луна, +24С и шум волн Андаманского моря. Неудачный...

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

....все тэги



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