Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2668

 
Maxim Dmitrievsky #:

Раньше не задумывался, что наиболее реалистично оценивать просадки ТС через Монте-карло, а не по максимальной просадке исторической.

Некоторые ТС показывали просадку больше исторической, а потом снова работали

Было бы полезно сделать это стандартной функцией тестера МТ5

https://medium.com/@ankit_quant/when-to-stop-trading-a-strategy-28d104bb20b6

Худший вариант можно получить не рандомным перемешиванием 10000 раз, а просто склеив вместе все просадки. Но это если стратегия рабочая, как в том примере. У нас скорее всего будет переобученая - тут скорее форвард тест только поможет оценить.
 
elibrarius #:
Худший вариант можно получить не рандомным перемешиванием 10000 раз, а просто склеив вместе все просадки. Но это если стратегия рабочая, как в том примере. У нас скорее всего будет переобученая - тут скорее форвард тест только поможет оценить.

по худшему может оказаться вообще неприемлемая просадка, наверное что-то среднее логичней 

Монте-Карло по форварду тогда
 
Maxim Dmitrievsky #:

Может что-то путаю.. обсуждалась воде оптимизация монтекарлой (как поиск ТС), а тут про оценку рисков готовой стратегии. Вернее даже не рисков, а как определить когда ТС перестала работать.

да, там по ссылке про валидацию заоверфитченных ТС. Она наверное не имеет смысла таким способом. Выходит ли из этого, что определять допустимую просадку тоже нет смысла - вопрос.

Ну, Монте-карло даёт большое количество возможностей и применять его можно по-разному.

По вашей ссылке вроде используют случайное перемешивание сделок (shuffle), чтобы менялась только просадка. По моим представлениям, это скорее определение не "истинной" просадки, а того, является ли полученная реальная просадка "обычной". Если просадка слишком большая или маленькая (попадает в левый или правый хвост смоделированной гистограммы), то это может говорить о зависимости между соседними сделками.

 

Написал интерактивную програмку на R чтобы можно было складывать комбинации синусоид руками

может кто захочет полапать))

my.sin <- function(vec,a,f,p)  a*sin(f*vec+p)

library(shiny)
ui <- fluidPage(
  sidebarPanel(
  sliderInput("am1", "amplitude1", -5, 5,value = 1, step = 0.1),
  sliderInput("frq1", "frequency1", 0, 5,value = 0.2, step = 0.005),
  sliderInput("pha1", "phase1", -10, 10,value = 0.2, step = 0.5),
  
  sliderInput("am2", "amplitude2", -5, 5,value = 1, step = 0.1),
  sliderInput("frq2", "frequency2", 0, 5,value = 0.2, step = 0.005),
  sliderInput("pha2", "phase2", -10, 10,value = 0.2, step = 0.5),
  ),
  mainPanel(  plotOutput("plot1") )
)

server <- function(input, output) {
  
  output$plot1 <- renderPlot({
    s1 <- my.sin(vec = 1:100,input$am1,input$frq1,input$pha1)
    s2 <- my.sin(vec = 1:100,input$am2,input$frq2,input$pha2)
    
    par(mar=(c(2,2,2,2)),mfrow=c(2,1))
    matplot(cbind(s1,s2),t="l",col=c(2,4),lty=1)
    plot(s1+s2,t="l")
    })
}
shinyApp(ui, server)
 
 Не для многих... 
https://youtu.be/rITSSAI5YsM
 
mytarmailS #:

Написал интерактивную програмку на R чтобы можно было складывать комбинации синусоид руками

может кто захочет полапать))

а шо с этим делать

попробуй такие признаки

for i in MA_PERIODS:
        pFixed[str(count)] = price - price.rolling(i).mean().apply(np.log) * price.rolling(i).std() * 150
        count += 1

цена - логарифм МА(i) * скользящее стандартное отклонение(i) * коэффициент

i - период усреднения

150 это коэффициент, от 50 до 250 попробуй. Чем больше тем стационарнее ряд

ну и для нескольких скользящих окон с периодом i (несколько таких признаков)
 
Maxim Dmitrievsky #:

а шо с этим делать

Ну это для того чтобы смочь обясьнить машыне то что сам сабе обяснить не можешь...

например как правильно управлять периодом индикатора?  обяснить ты сам себе не можешь, не говоря уже о машине , но когда увидишь хорошее управление то точно скажешь - "о, это оно!"

так вот эту кривульку по управлению , можно сделать с суммы синусоиз..

Кароч это для того чтобы руками делать целевые, которые ты сам себе обяснить не можешь, а значит и запрограмировать Я нашел вот такое решение)

Maxim Dmitrievsky #:

попробуй такие признаки

цена - логарифм МА(i) * скользящее стандартное отклонение(i) * коэффициент

i - период усреднения

150 это коэффициент, от 50 до 250 попробуй. Чем больше тем стационарнее ряд

ну и для нескольких скользящих окон с периодом i (несколько таких признаков)

А как стацыонарность мерял?

сравнить же надо

Maxim Dmitrievsky #:

О, это твой любимка ))

да

 
mytarmailS #:

Ну это для того чтобы смочь обясьнить машыне то что сам сабе обяснить не можешь...

например как правильно управлять периодом индикатора?  обяснить ты сам себе не можешь, не говоря уже о машине , но когда увидишь хорошее управление то точно скажешь - "о, это оно!"

так вот эту кривульку по управлению , можно сделать с суммы синусоиз..

Кароч это для того чтобы руками делать целевые, которые ты сам себе обяснить не можешь, а значит и запрограмировать Я нашел вот такое решение)

А как стацыонарность мерял?

сравнить же надо

да

Стационарность на глаз мерил. Чем меньше коэффициент тем график больше похож на обычный, чем больше - похож на ретурны
 
mytarmailS #:
Вывод? 

Корреляцию, если это конечно она можно использовать как меру оценки силы воздействующий факторов. Сила здесь тоже не очень уместный термин конечно. Но лучше не нахожу.

 
Maxim Dmitrievsky #:
Стационарность на глаз мерил. Чем меньше коэффициент тем график больше похож на обычный, чем больше - похож на ретурны

rolling это скользящее окно?

если да кто какого оно размера?

Причина обращения: