뒤로가기 시작할 수 있습니다.
- 주어진 막대 수에 대해 몇 점을 취해야 하는지에 대한 조건을 설정합니다.
- 그런 장소에 대한 추가 검색
- "물고기" 장소를 찾은 후 "물고기" 장소 앞에 있는 막대(패턴)의 실제 조합이 무엇인지 분석합니다.
Maxim Dmitrievsky :
할 수 있습니다. 이것은 그래픽 이미지(머신 비전) 인식 분야에서
이 작업을 수행하는 가장 좋은 방법에 대한 아이디어가 있습니까? 다양한 확률적 특성과 가격 수준을 계산하는 것이 가능합니다. 어떻게 할까요?
아마도 여기 에 당신이 찾고있는 것입니다.
Как искать паттерны в биржевых данных и использовать их в торговле?
- habrahabr.ru
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли. Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения. В статье есть несколько приятных бонусов в виде кода...
Vladimir Karputov :
뒤로가기 시작할 수 있습니다.
- 주어진 막대 수에 대해 몇 점을 취해야 하는지에 대한 조건을 설정합니다.
- 그런 장소에 대한 추가 검색
- "물고기" 장소를 찾은 후 "물고기" 장소 앞에 있는 막대(패턴)의 실제 조합이 무엇인지 분석합니다.
원칙적으로 그렇습니다. 그러나 여기에서 패턴이 한 방향 또는 다른 방향으로 "가는" 경우 이익의 확률은 고려되지 않습니다. 초기에 이러한 위험을 감수하고 도중에 조정하지 않는 것이 바람직합니다.
즉, 패턴에 대한 클러스터링도 설정(계산)하고 싶습니다.
Maxim Dmitrievsky :
원칙적으로 예, 그러나 여기에서 패턴이 한 방향 또는 다른 방향으로 "가는" 경우 이익 확률은 고려되지 않습니다.
원칙적으로 예, 그러나 여기에서 패턴이 한 방향 또는 다른 방향으로 "가는" 경우 이익 확률은 고려되지 않습니다.
뭐라고요? 어쨌든 먼저 "물고기 장소"를 찾고 있습니다. 2단계에서는 낚시터 앞 바의 상태를 분석한다.
Igor Yeremenko :
할 수 있습니다. 이것은 그래픽 이미지(머신 비전) 인식 분야에서
할 수 있습니다. 이것은 그래픽 이미지(머신 비전) 인식 분야에서
지금은 mql에 고정합니다... 예, 예측은 필요하지 않지만 최고의 진입 및 퇴장 검색
Vladimir Karputov :
뭐라고요? 어쨌든 먼저 "물고기 장소"를 찾고 있습니다. 2단계에서는 낚시터 앞 바의 상태를 분석한다.
뭐라고요? 어쨌든 먼저 "물고기 장소"를 찾고 있습니다. 2단계에서는 낚시터 앞 바의 상태를 분석한다.
나는 발견된 패턴과 그 하위 파동에 확률적 추정치를 할당하고 싶었습니다. n-포인트에서 섹션을 찾는 것이 어찌보면 너무 원시적인 것 같았습니다. 패턴을 통계적으로 설명해야 합니다.
Maxim Dmitrievsky :
나는 발견된 패턴과 그 하위 파동에 확률적 추정치를 할당하고 싶었습니다. n-포인트에서 섹션을 찾는 것이 어찌보면 너무 원시적인 것 같았습니다. 패턴을 통계적으로 설명해야 합니다.
나는 발견된 패턴과 그 하위 파동에 확률적 추정치를 할당하고 싶었습니다. n-포인트에서 섹션을 찾는 것이 어찌보면 너무 원시적인 것 같았습니다. 패턴을 통계적으로 설명해야 합니다.
단계별로 진행해야 합니다. 먼저 주어진 크기의 양초를 찾으십시오. 어떤 일이 일어났는지 시각적으로 확인하세요.
패턴 검색, 버전 "1.000"
//+------------------------------------------------------------------+ //| Search of a pattern.mq5 | //| Copyright © 2017, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2017, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" #property description "Индикатор поиска свечей с заданным размером тела" #property description "Найденные свечи отмечаются символами из набора Wingdings" #property indicator_chart_window #property indicator_buffers 2 #property indicator_plots 2 //--- plot Arrows #property indicator_label1 "Bull candle" #property indicator_type1 DRAW_ARROW #property indicator_color1 clrBlue #property indicator_width1 1 #property indicator_label2 "Bear candle" #property indicator_type2 DRAW_ARROW #property indicator_color2 clrRed #property indicator_width2 1 //--- input параметры sinput string __1__ = "" ; // Параметр тела свечи input ushort min_size_candel = 15 ; // Минимальный размер тела свечи () input ushort bull_code = 226 ; // Код символа бычьего бара(32-255) input ushort bear_code = 225 ; // Код символа медвежьего бара(32-255) sinput string __2__ = "" ; // Параметр смещения input uchar vertical_shift = 15 ; // Смещение стрелок по вертикали (0-255) //--- индикаторные буфера для построения double BufferBull[]; double BufferBear[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit () { //--- indicator buffers mapping SetIndexBuffer ( 0 ,BufferBull, INDICATOR_DATA ); SetIndexBuffer ( 1 ,BufferBear, INDICATOR_DATA ); //--- зададим код символа для отрисовки в PLOT_ARROW PlotIndexSetInteger ( 0 , PLOT_ARROW ,bull_code); PlotIndexSetInteger ( 1 , PLOT_ARROW ,bear_code); //--- зададим cмещение стрелок по вертикали в пикселях PlotIndexSetInteger ( 0 , PLOT_ARROW_SHIFT ,-( int )vertical_shift); PlotIndexSetInteger ( 1 , PLOT_ARROW_SHIFT ,( int )vertical_shift); //--- установим в качестве пустого значения 0 PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , 0 ); PlotIndexSetDouble ( 1 , PLOT_EMPTY_VALUE , 0 ); //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate ( const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { static datetime prev_time= 0 ; //--- работаем только в момент рождения нового бара, внутри бара не работаем if (prev_time==time[rates_total- 1 ]) return (rates_total); //--- на новом баре запоминает время его рождения prev_time=time[rates_total- 1 ]; //--- блок расчета значений индикатора int start= 1 ; if (prev_calculated> 0 ) start=prev_calculated; //--- цикл расчета for ( int i=start;i<rates_total;i++) { //--- если предыдущая свеча имеет тело больше минимального if ( MathAbs (open[i- 1 ]-close[i- 1 ])/ Point ()>min_size_candel) { if (open[i- 1 ]<close[i- 1 ]) BufferBull[i- 1 ]=high[i- 1 ]; if (open[i- 1 ]>close[i- 1 ]) BufferBear[i- 1 ]=low[i- 1 ]; } } //--- return value of prev_calculated for next call return (rates_total); } //+------------------------------------------------------------------+
MetaQuotes Software Corp., MetaTrader 5, 데모
패턴 검색, 버전 "1.000"
파일:
그래프 조각이 있다고 가정해 보겠습니다. 거래를 시작하는 가장 최적의 방법을 (역사에 대해) 알아낼 필요가 있습니다. 구매처, 판매처, 기타 구매처, 마감 장소 등. 그러나 패턴이 다를 수 있다는 점을 고려해야 하며 위험을 최소화하면서 모든 패턴에 대해 포지션을 여는 장소를 계산하는 가장 효과적인 방법을 선택해야 합니다. 패턴에 대해 여러 거래가 있을 수 있습니다. 또 다른 중요한 조건이 있습니다. 패턴은 특정 범위 내에서 변할 수 있습니다. 예를 들어 20%씩 변한다고 가정해 보겠습니다. 즉, 처음에는 하나의 패턴이 표시되고 다음 막대에서는 주요 특성이 동일하게 유지되었지만 이미 다소 변경되었습니다(그러나 항상 전체 패턴과 모든 후속 변경 사항을 관찰할 것입니다). 즉, 더 많은 오류 요인을 도입해야 합니다.
이 작업을 수행하는 가장 좋은 방법에 대한 아이디어가 있습니까? 다양한 확률적 특성과 가격 수준을 계산하는 것이 가능합니다. 어떻게 할까요?