KimIV的有用功能 - 页 46 1...394041424344454647484950515253...128 新评论 Комарских Александр 2008.09.09 06:01 #451 SK. писал (а)>> 这就是我的意思。你必须考虑到现有的限制,一般来说,这些限制一直在变化。 是否有一些函数可以分析所有可能的约束? 修改的情况也一样。 -- (我有16个函数 - 每个好的订单(OP,SL,TP)有3个,每个市场订单(SL,TP)有2个。 然后还有一些分析许可证组合的函数)。 是的,我也有一个单独的函数用于设置订单,检查所有可能的限制,还有一个单独的函数(部分类似于第一个)用于修改。我不会给出代码--那里有很多只有我需要的 "剩余 "东西,--哎哟。:-)但一般来说--在真正的交易专家顾问中没有它是很困难的。:-) Сергей Ковалев 2008.09.09 10:50 #452 Shu писал (а)>> 是的,我也有一个单独的函数用于设置订单,它检查所有可能的限制,还有一个单独的函数(部分类似于第一个函数)用于修改。 我不会给你代码--有这么多 "左 "的技巧,只有我需要,所以--哎哟。:-)但一般来说--在真正的交易专家顾问中没有它是很困难的。:-) 实际上,我想检查一下自己--我是否已经考虑到了所有的事情。如果你不检查它们,你可能会遇到一系列的退信(有时可能会被禁止)。 我将简要地列出我的支票。 1) StopLevel。例如,在修改SL BuyStop时。 它不只是检查距离。你应该分析StopLevel的当前位置和止损单的移动方向。 如果SL在StopLevel走廊之外,你可以把它移近或无限期地移动它。 如果SL在走廊内,那么向上的运动就会被拒绝。接受向下移动,但要考虑到StopLevel:如果距离走廊内的修改距离被设定为3p,而走廊是30p,那么接受执行的实际值是由StopLevel走廊边界定义。 2) FreezeLevel。 3. StopLevel和TICKSIZE的比例。该订单可能在所有通道之外,但不是TICKSIZE的倍数--那么它就是麻烦。它需要向修改方向变圆。对 "非货币 "来说至关重要。 4.地段。 米洛特+/-米洛特。考虑到部分关闭和反关闭也只限于迷你区(虽然在我看来这是不合逻辑的,但这就是事实)。 在个人支票之后,如果每张支票的结果都是积极的(没有禁止),就会发出订单。 Igor Kim 2008.09.09 16:39 #453 完全公布的函数库。 b-Graphics.rar - 与图形对象一起工作。 b-Indicators.rar - 与指标一起工作。 Igor Kim 2008.09.10 05:30 #454 ArrayLR()函数。 该函数生成一个线性回归值的数组。该函数接受以下强制性参数。 x 是一个数字系列值的数组。这是输入参数。这个数组必须包含函数被调用前的数值。 y 是一个线性回归值的数组。这是输出参数,即该数组将在函数执行后被填充。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 20.05.2008 | //| Описание : Формирует массив значений линейной регрессии. | //+----------------------------------------------------------------------------+ //| Параметры: | //| x - массив значений числового ряда | //| y - массив значений линейной регрессии | //+----------------------------------------------------------------------------+ void ArrayLR(double& x[], double& y[]) { double a, b, c, sx=0, sx2=0, sxy=0, sy=0; int i, n=ArraySize(x); if (n>1) { for (i=0; i<n; i++) { sx+=i+1; sy+=x[i]; sxy+=(i+1)*x[i]; sx2+=(i+1)*(i+1); } a=sx*sy-n*sxy; c=sx*sx-n*sx2; if (c!=0) a=a/c; else a=0; b=(sy-a*sx)/n; ArrayResize(y, n); for (i=0; i<n; i++) y[i]=a*(i+1)+b; } else Print("ArrayLR(): Недостаточное количество элементов ряда! n=", n); } Igor Kim 2008.09.10 05:37 #455 使用ArrayLR()函数的例子。 让我们标出前30个柱子的线性回归 的价格水平。 #define r 30 double x[r], y[]; for (int i=0; i<r; i++) x[i]=Close[i+1]; ArrayLR(x, y); for (i=0; i<r; i++) SetArrow(170, Red, "arr"+i, Time[i+1], y[i]); P.S. 附上一个测试ArrayLR()函数的脚本。 附加的文件: test_arraylr.mq4 4 kb Rid 2008.09.10 07:24 #456 KimIV писал (а)>> 完全公布的函数库。 b-Graphics.rar - 与图形对象一起工作。 b-Indicators.rar - 与指标一起工作。 非常酷!>> 谢谢你! Parabellum 2008.09.10 08:07 #457 Parabellum писал (а)>> 伊戈尔,有一个很好的指标,可以把几个蜡烛合并成一个。但它只在小时图上起作用。是否有可能使其普及? 谢谢你。 ? Igor Kim 2008.09.10 08:23 #458 Parabellum писал (а)>> ? ooh...对不起... 这样的指标已经写过了,我不记得是谁写的,也不记得在哪里看到过......我以为你会自己找到它,或者有人会给你链接......。 Prival 2008.09.10 09:08 #459 ArrayLR()函数不能准确工作。 1.没有考虑到酒吧的时间位置。当条形图缺失时,它的工作是不正确的。 2.用于计算系数的算法有一个缺点,就是四舍五入的误差积累,见'帮我写一个线性回归'(Rosh 页面的最底部证实了这个缺陷)。 3.我提出一种没有这些缺点的算法。 4.如果你把 X[i]=Time[i+1];改为 X[i]=i+1;,算法类似,但没有错误累积。 5.不仅是在周末,酒吧也会被跳过 :-( ( ) 这里是我的变体 //+----------------------------------------------------------------------------+ //| Автор : Сергей Привалов aka Prival, Skype: privalov-sv | //+----------------------------------------------------------------------------+ //| Версия : 10.09.2008 | //| Описание : Формирует массив значений линейной регрессии y(x)=A*x+B. | //+----------------------------------------------------------------------------+ //| Параметры: | //| X - массив значений числового ряда, ось X | //| Y - массив значений числового ряда, ось Y | //+----------------------------------------------------------------------------+ void Array_LR(double &X[], double& Y[]) { double mo_X = 0, mo_Y = 0, var_0 = 0, var_1 = 0; int i,N=ArraySize(X); double A,B; if(N>1) { for ( i = 0; i < N; i ++ ) { mo_X +=X[i]; mo_Y +=Y[i]; } mo_X /=N; mo_Y /=N; for ( i = 0; i < N; i ++ ) { var_0 +=(X[i]-mo_X)*(Y[i]-mo_Y); var_1 +=(X[i]-mo_X)*(X[i]-mo_X); } // значение коэффициента A if(var_1!=0) A = var_0 / var_1; else A=0; // значение коэффициента B B = mo_Y - A * mo_X; ArrayResize(Y, N); for (i=0; i<N; i++) Y[i]=A*X[i]+B; } else Print("ArrayLR(): Недостаточное количество элементов ряда! n=", N); } 这里有一张图片 工作实例 #define r 280 void start() { double X[r], Y[r]; for (int i=0; i<r; i++) { Y[i]=Close[i+1]; X[i]=Time[i+1]; } Array_LR(X, Y); for (i=0; i<r; i++) {SetArrow(170, Blue, "arr"+i, X[i], Y[i]); } 所附的检查脚本 附加的文件: test_array_lr.mq4 6 kb Igor Kim 2008.09.10 10:07 #460 Prival писал (а)>> 这里是我的变体 好的,谢尔盖!让这个函数有两个变体。 我的变体是好的,因为它与内置图形对象OBJ_REGRESSION相同。如果有人需要从这个物体上获取价格,我的功能会帮助他们,而你的,唉......。但它可以用于其他方面...谢谢你! 1...394041424344454647484950515253...128 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这就是我的意思。你必须考虑到现有的限制,一般来说,这些限制一直在变化。
是否有一些函数可以分析所有可能的约束?
修改的情况也一样。
--
(我有16个函数 - 每个好的订单(OP,SL,TP)有3个,每个市场订单(SL,TP)有2个。
然后还有一些分析许可证组合的函数)。
是的,我也有一个单独的函数用于设置订单,检查所有可能的限制,还有一个单独的函数(部分类似于第一个)用于修改。我不会给出代码--那里有很多只有我需要的 "剩余 "东西,--哎哟。:-)但一般来说--在真正的交易专家顾问中没有它是很困难的。:-)
是的,我也有一个单独的函数用于设置订单,它检查所有可能的限制,还有一个单独的函数(部分类似于第一个函数)用于修改。 我不会给你代码--有这么多 "左 "的技巧,只有我需要,所以--哎哟。:-)但一般来说--在真正的交易专家顾问中没有它是很困难的。:-)
实际上,我想检查一下自己--我是否已经考虑到了所有的事情。如果你不检查它们,你可能会遇到一系列的退信(有时可能会被禁止)。
我将简要地列出我的支票。
1) StopLevel。例如,在修改SL BuyStop时。
它不只是检查距离。你应该分析StopLevel的当前位置和止损单的移动方向。
如果SL在StopLevel走廊之外,你可以把它移近或无限期地移动它。
如果SL在走廊内,那么向上的运动就会被拒绝。接受向下移动,但要考虑到StopLevel:如果距离走廊内的修改距离被设定为3p,而走廊是30p,那么接受执行的实际值是由StopLevel走廊边界定义。
2) FreezeLevel。
3. StopLevel和TICKSIZE的比例。该订单可能在所有通道之外,但不是TICKSIZE的倍数--那么它就是麻烦。它需要向修改方向变圆。对 "非货币 "来说至关重要。
4.地段。 米洛特+/-米洛特。考虑到部分关闭和反关闭也只限于迷你区(虽然在我看来这是不合逻辑的,但这就是事实)。
在个人支票之后,如果每张支票的结果都是积极的(没有禁止),就会发出订单。
完全公布的函数库。
b-Graphics.rar - 与图形对象一起工作。
b-Indicators.rar - 与指标一起工作。
ArrayLR()函数。
该函数生成一个线性回归值的数组。该函数接受以下强制性参数。
使用ArrayLR()函数的例子。
让我们标出前30个柱子的线性回归 的价格水平。
P.S. 附上一个测试ArrayLR()函数的脚本。
完全公布的函数库。
b-Graphics.rar - 与图形对象一起工作。
b-Indicators.rar - 与指标一起工作。
非常酷!>> 谢谢你!
伊戈尔,有一个很好的指标,可以把几个蜡烛合并成一个。但它只在小时图上起作用。是否有可能使其普及?
谢谢你。
?
?
ooh...对不起...
这样的指标已经写过了,我不记得是谁写的,也不记得在哪里看到过......我以为你会自己找到它,或者有人会给你链接......。
ArrayLR()函数不能准确工作。
1.没有考虑到酒吧的时间位置。当条形图缺失时,它的工作是不正确的。
2.用于计算系数的算法有一个缺点,就是四舍五入的误差积累,见'帮我写一个线性回归'(Rosh 页面的最底部证实了这个缺陷)。
3.我提出一种没有这些缺点的算法。
4.如果你把 X[i]=Time[i+1];改为 X[i]=i+1;,算法类似,但没有错误累积。
5.不仅是在周末,酒吧也会被跳过 :-( ( )
这里是我的变体
这里有一张图片
工作实例
所附的检查脚本
这里是我的变体
好的,谢尔盖!让这个函数有两个变体。
我的变体是好的,因为它与内置图形对象OBJ_REGRESSION相同。如果有人需要从这个物体上获取价格,我的功能会帮助他们,而你的,唉......。但它可以用于其他方面...谢谢你!