가격 움직임 패턴: 1부. 가격 방향 - 페이지 11

 
HideYourRichess :
테스트 방법론에 대해 몇 마디 말하십시오. 솔직히 여러 개의 막대를 생성한 다음 외부/내부 막대를 확인했습니까? 아니면 그냥 SB 번호를 사용했습니까?


나는 이미 3,000,000개의 독립 막대로 구성된 무작위 시리즈를 미리 준비했습니다. 생성 메커니즘은 간단합니다. 동일한 수의 틱이 있는 막대로 수집되는 일반 바이너리 워크 +1 -1입니다. 다음은 완전한 C# 코드입니다(그런데 알고리즘은 매우 빠르게 생성합니다).

 /// <summary>
         /// Возвращает случайно сгенерированную серию баров
         /// </summary>
         /// <param name="Сount"> Количество баров </param>
         /// <returns> </returns>
         public static Bars GetRandomBars( int Count)
        {
            Bars RandomBars = new Bars( "Random Bars" , BarScale.Minute, 1 );
            Random rnd = new Random();
             byte [] byte_array = new byte [ 375 ];
             int open = 100000 ;
             int close;
             int high;
             int low;
            DateTime first_data = DateTime.Now.AddMinutes(Count * (- 1 ));
             for ( int bar = 0 ; bar < Count; bar++)
            {
                close = open;
                high = open;
                low = open;
                rnd.NextBytes(byte_array);
                BitArray MyBit = new BitArray(byte_array);
                 for ( int k = 0 ; k < MyBit.Count; k++)
                {
                    close += MyBit[k] ? 1 : - 1 ;
                     if (close < high && close > low) continue ;
                     if (close > high) high = close;
                     else if (close < low) low = close;
                }
                RandomBars.Add(first_data, open, high, low, close, MyBit.Count);
                first_data = first_data.AddMinutes( 1 );
                open = close;
            }
            SaveBarsToCSV(RandomBars);
             return RandomBars;
        }

다음으로 결과 차트에서 다음 WL 스크립트가 실행됩니다.

namespace WealthLab.Strategies
{
         public class MyStrategy : WealthScript
        {
                 protected override void Execute()
                {
                         int ExBar= 0 , EnBar= 0 ;
                         for ( int bar = 1 ; bar < Bars .Count; bar++)
                        {
                                 if (High[bar] < High[bar- 1 ] && Low[bar] > Low[bar- 1 ])
                                        EnBar++;
                                 if (High[bar] > High[bar- 1 ] && Low[bar] < Low[bar- 1 ])
                                        ExBar++;
                        }
                         double percent_ex = Math.Round(( double )ExBar /( double ) Bars .Count * 100.0 , 2 );
                         double percent_en = Math.Round(( double )EnBar /( double ) Bars .Count * 100.0 , 2 );
                        PrintDebug( "Расширение диапозона: " + ExBar + "(" + percent_ex + "%)" );
                        PrintDebug( "Сужение диапозона: " + EnBar + "(" + percent_en + "%)" );
                }
        }
}

파레토 분포도 간단한 것으로 판명되었습니다. 고정된 수의 틱 대신 5m의 EURUSD 틱 볼륨을 사용했습니다. 각 막대는 실제 EURUSD의 변동성을 매우 정확하게 모방하는 것으로 나타났습니다.
 
poruchik :
여기에 올렸습니다 :)
센크-에스. 이미 다운로드...
 
Roman100 :
한 방향 또는 다른 방향으로 이동할 확률은 50/50입니다.

테스트했거나 추측하고 있습니까? 나는 질문을 반복합니다. 변동성(외부) 막대의 방향과 관련하여 좁아지는 삼각형을 돌파한 후 가격 움직임의 방향에 대한 통계는 무엇입니까? 나는 방향이 반대 방향이어야 한다고 가정한다.
 
C-4 :


나는 이미 3,000,000개의 독립 막대로 구성된 무작위 시리즈를 미리 준비했습니다. 생성 메커니즘은 간단합니다. 동일한 수의 틱이 있는 막대로 수집되는 일반 바이너리 워크 +1 -1입니다. 다음은 완전한 C# 코드입니다(그런데 알고리즘은 엄청나게 빠르게 생성합니다).

쿨, 네. 그리고 이 기능은 WL에서 어떻게 시작됩니까? 그건 그렇고, 다섯 또는 여섯?
 
C-4 :

파레토 분포에 대한 테스트:

범위 확장: 69206(8.04%)
범위 축소: 68867(8%)

피규어? 확률은 동일합니다! 변동성 버전은 확인되지 않았습니다.

보시다시피, 그들은 상당히 다릅니다.

이는 파레토형 분포가 실제 화폐의 효과를 반영하지 않는다는 것을 의미합니다. 그는 소를 실제에서 가져오고 내부 막대와 외부 막대의 비율이 실제와 거의 비슷하게 얻어지는 스크립트 버전을 제공했습니다.
 

불행히도, 나는 라이센스가 없는 5를 사용합니다. 실제 알고리즘은 Stock C #로 거래되며 WL6 라이센스가 필요하지 않습니다. 그리고 연구를 위해 Wealth는 거의 완벽한 플랫폼입니다. 무엇이든 로드할 수 있습니다.

WL의 코드 자체는 일반적으로 C # 코드가 있는 특수 XML 파일입니다. 그러나 C# dll과 적절한 개발 환경을 모두 사용할 수 있습니다. 나는 간단한 아이디어를 WL에서 직접 확인하고 복잡한 것을 확인합니다. VS2008에 dll 형식으로 특수 클래스를 작성하고 이미 XML 래퍼에 연결합니다. 다음은 전체 작업 예입니다.

 using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
using WealthLab.MyIndicators;

namespace WealthLab.Strategies
{
         public class MyStrategy : WealthScript
        {
                 protected override void Execute()
                {
                        //Получить последовательность из 1000 случайных баров
                        Bars RandomBars = PriceGenerator.GetRandomBars( 1000 );
                        //Подготовить новое окно чарта.
                        ChartPane RandomPane = CreatePane( 50 , false, true );
                        //Синхронизировать по времени данные текущего графика с данными RandomBars
                        RandomBars = Synchronize(RandomBars);
                        //Отобразить в виде свечей график случайного блуждания под окном основного инструмента.
                        PlotSymbol(RandomPane, RandomBars, Color.Black, Color.Black);
                }
        }
}

PriceGenerator 클래스 및 해당 GetRandomBars() 메서드는 WealthLab.MyIndicators 네임스페이스가 있는 외부 라이브러리 dll 에 정의되어 있습니다. 이 코드의 결과로 차트에 다른 그래프가 병렬로 랜덤 워크를 표시하는 것으로 나타납니다. 4줄의 코드로 MT4/5에서 동일한 작업을 시도하십시오. :)

 
Avals :

이는 파레토형 분포가 실제 화폐의 효과를 반영하지 않는다는 것을 의미합니다. 그는 소를 실제에서 가져오고 내부 막대와 외부 막대의 비율이 실제와 거의 비슷하게 얻어지는 스크립트 버전을 제공했습니다.

파헤쳐 봅시다. 분포를 확인하겠습니다.
 
gpwr :

테스트했거나 추측하고 있습니까? 나는 질문을 반복합니다. 변동성(외부) 막대의 방향과 관련하여 좁아지는 삼각형을 돌파한 후 가격 움직임의 방향에 대한 통계는 무엇입니까? 나는 방향이 반대 방향이어야 한다고 가정한다.

간접적으로 증언하는 일부 계산이 수행되었습니다.
그러나 그것은 약간 다른 질문입니다.)

비율이 절대 총액이면 당신이 옳고, 수량이라면 당신이 틀립니다.

나는 그렇게 생각합니다 ... 그러나 재미를 위해 확인하는 것이 좋습니다.

 
poruchik :
디마, 오늘 나는 그런 일을 기억했다- 마스터 캔들 -1 일 안에 4 개의 양초
결과는 상당히 유리하다
그녀의 통계를 살펴보십시오. 여전히 p.의 범위가 있지만 60
알겠습니다. 나중에 살펴보겠습니다. 이제 나는 "가격 움직임의 패턴"의 다음 부분인 새로운 주제에 대한 스크립트를 작성하고 있습니다.
 
DmitriyN :

매우 유용한 주제입니다. 드미트리, 당신은 훌륭합니다!