价格变动的规律性:第一部分。价格定位 - 页 11

 
HideYourRichess:
说几句测试方法。你是老老实实地生成一系列条形图,然后检查外部/内部,还是仅仅使用SB的数字?


我已经有了一个预先准备好的300万个独立条的随机系列。生成机制很简单:它是通常的+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 + "%)");
                }
        }
}

帕累托分布也很容易出来。我没有使用固定的点数,而是使用了欧元兑美元的5mtick量。事实证明,每个条形图都相当准确地模仿了真实欧元兑美元的波动。
 
poruchik:
我把它贴在这里:)
森克。已经下载了...
 
Roman100:
将有50/50的机会朝一个方向移动或另一个方向移动。

你有没有测试过,还是你在猜测?让我重复一下这个问题:在打破渐缩三角形后,价格运动的方向与波动(外部)柱的方向有什么统计?我想,方向应该是相反的。
 
C-4:


我已经有了一个预先准备好的300万个独立条的随机系列。生成机制很简单:它是通常的+1-1二进制徘徊组装成具有相同数量刻度的条。下面是C#语言的完整代码(顺便说一下,该算法的生成速度惊人)。

酷,是的。那么这个功能是如何从WL上运行的呢?顺便问一下,是五还是六?
 
C-4:

对帕累托型分布的检验。

范围扩大: 69206(8.04%)
范围缩小: 68867(8%)

数字?概率是相等的!波动的版本没有得到证实。

可以看出,差异是很大的。

这意味着帕累托分布并没有反映出真正的牛的影响。这个剧本是根据真实的剧本编写的,内杠和外杠的比例与真实的剧本几乎相同。
 

不幸的是,我使用的是未经许可的5。真正的算法是在Stock C#下交易的,不需要WL6这样的许可证。但对于研究来说,Wealth几乎是一个理想的平台。你可以把任何你想要的东西装进去。

WL代码本身通常是特殊的XML-文件,里面有C#代码。但你也可以使用C# dll和相应的开发环境。我直接在WL中测试简单的想法,同时我在VS2008中以dlls的形式编写特殊的类,并在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 库中。作为这个代码的结果,在图表上出现了另一个图表,显示了一个平行的随机斜面。试着在MT4/5中用4行代码做同样的事情:)

 
Avals:

这意味着帕累托型分布并不反映真实的牛的影响。我已经给出了一个版本的脚本,其中的牛是取自真实的牛,内杠和外杠的比例与真实的牛几乎相同。

我们将挖掘。我将仔细检查分配情况。
 
gpwr:

你有没有测试过,还是你在猜测?我再重复一下问题:在突破收窄三角形后,价格运动的方向与波动(外)柱的方向有什么统计?我想,方向应该是相反的。

我做了一些计算,间接表明了这一点。
但这是对问题的一种略微不同的表述)

如果比率是一个绝对的总和,那么你是对的;如果是一个数量比,那么你是错的。

我想是的...但为了兴趣,最好还是要检查一下。

 
poruchik:
迪马,我今天想起了这件事--主蜡烛-- 4支蜡烛中的1支。
结果是相当有利的
看看这个的统计数字,但也有一个P的范围,所以60
好的,我以后会看的。我现在正在为一个新的主题编写脚本--"价格运动的规律性 "的下一部分。
 
DmitriyN:

一个非常有用的话题。Dmitriy,做得好!)