淘宝网上有卖的,有卖的,有卖的,有卖的,有卖的,有卖的,有卖的,有卖的。 - 页 30

 
SHOOTER777 >> :

А

不幸的是,这种观察是不幸的......也注意到......

 

SHOOTER你能不能简单地告诉我们,参数组的优化到底是什么?

  • x
  • y
  • z
  • X
  • Y
  • Z
我大概明白了一些,但我还不能在头脑中得到整个画面。
 

这里还有一个奇怪的现象,也许只是一个小故障

double BTS() {
	if (( prcptrnz1() > 0 || F==0) && bu< HM_Up_X) {
		if ( prcptx1 > 0 && Delta_G12>0) {
			sl = slx; 
			tp = tpx * slx; 
			mn = mnx1; 
			return (1);
		}
	} 
	if (( prcptrnz1() < 0 || F==0) && sll< HM_Dn_Y) {
		if ( prcpty1 > 0 && Delta_G12<0) {
			sl = sly; 
			tp = tpy * sly; 
			mn = mny1;
			return (-1);
		}
	}
	return (0);
}

事实证明,如果现在F==0,而且根本没有开仓--那么我们可以先进入第一块,然后再进入第二块,这随后会导致不正确的结果。

还是我错过了什么?

 

不过,可能不会。我们不能同时进入两个街区,因为他们不让我们进去。

Delta_G12

不让我们进去。

 
ShestkoFF писал(а)>>

我不喜欢批评那些有效的东西。我只给你一些对代码的批评。

Spsb.我不把批评当做批评,而是当做行动指南,即至少阅读 MQL 手册》的一小部分内容。

  • 我不想把所有东西都写成行,因为不可能读懂代码

接受,但可能在今后的工作中。我是在其他一些比较全局性的项目之后,由于我的12英寸显示器的分辨率较浅,才有了这种 "手写"。你的版本看起来无疑更好,但我不得不不断地向前和向后滚动列表。但是,既然我不是为自己而来,我还是要说--我会牢牢记住。

  • 以有意义的方式为变量命名

见上文!虽然我喜欢我的名字,但你必须习惯它们,就像我们习惯了GOELRO、OBHSS、IMHO等的缩写一样。如果你仔细看,我给一些变量起了或多或少有意义的名字,但缩写了所有元音。

  • 如果变量是局部的,就不要把它们变成全局的。

我还没有掌握变量的情况。当你从头开始写代码时,你不知道一个变量会在哪里,所以几乎所有东西都是全局的。

  • 不让全局变量成为静态变量是没有意义的。如果不是这种情况,请解释。

经验上不是这样的,我会记得我在哪里遇到的--我想是在函数 BuSll()中。

  • 使用语言中定义的标准常量。例如,指定一个时间间隔。 double iA_C (int pr){int tmfr=60; return(iAO(Symbol(), tmfr, pr));} 我认为用double iA_C (int pr){return(iAO(Symbol(), PERIOD_H1, pr));}来代替它更好。

我同意,让我们再次纠正它, ,当你从零开始写一个块时,你还不知道你要传入函数的参数是什么,然后眼睛就会 "变脏 " ,你就不会注意这种 "小事"))

 
ShestkoFF писал(а)>>

SHOOTER你能不能简单地告诉我们,参数组的优化到底是什么?

  • x
  • y
  • z
  • X
  • Y
  • Z
我可能部分地理解了,但我还不能在头脑中得到整个画面。

专家顾问的主要驱动力和指导力是著名的))功能 G12()。它用于根据指标计算出可取的订单方向。但只有一个方向是不够的--我们需要切入点。在 "经典 "中,如果在一个时间框架上,要么搜索模式,要么 ,如果有外部参数,指标本身是匹配的,如果有两个或更多,它们也被优化。我尝试了另一种对我来说新的方法NN

这里 ,这个 函数

double prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)

{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1)。

如果(MathAbs(qw)>at)返回(qw);否则返回(0);}。

一种叫做感知器的东西,旨在获得....。这里详细介绍了许多问题的一些答案,而且比我的回答要好'如何找到一个有利可图的交易策略' 神经网络食谱 不可否认, 我自己都是斜着看的,通过研究别人的作品得到了更多的乐趣,见下文。

这个EA是在BatohovMTS "神经网络+MACD" ReshetovMTS "Сombo"、"Combo_Right "和 AI PraVedNiKPROphet zerkmaxRSI_TestIgor Malcevauto_optimization.mqh 和其他一些人的基础上创建的。

 
ShestkoFF писал(а)>>

这里还有一个奇怪的现象,也许只是一个小故障

事实证明,如果现在F==0,而且根本没有开仓--那么我们可以先进入第一块,然后再进入第二块,这随后会导致不正确的结果。

或者,也许我不明白什么?

只有在前两个优化阶段,当除了Delta_G12之外,还有Trd_Up_X和Trd_Dn_Y时,F==0。

如果所有六个步骤都正常通过,而且优化集文件是按顺序使用的,那么F应该总是等于1。

而我在审查代码时发现了我的另一个错误。我看到最新版本的工作更糟糕。这个错误出现在第7和第9版。

有人注意到了吗?

 
SHOOTER777 >> :

这里 ,这个 函数

double prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)

{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1)。

如果(MathAbs(qw)>at)返回(qw);否则返回(0);}。

一种被称为感知器的东西,目的是为了得到....。

目前,这对我来说是个谜。当然,我明白它的作用和用途。但这个公式本身有些不寻常。
神经元工作的结果应该是一个数字,即神经元的输入乘以这些输入的权重的总和。
也就是说,从逻辑上讲,它应该是下面这样的。

double qw = (q1-50) * iA_C(1) + (q2-50) * iA_C(pr) + (q3-50) * iA_C(2 * pr) + (q4-50) * iA_C(3 * pr)

很明显,两者都是4个变量(或者是8个?)的一些函数,涉及到寻找最大(结果是平衡),但还是很奇怪:)

 
ShestkoFF писал(а)>>

这个功能对我来说仍然是个谜。当然,我明白它的作用和它为什么这样做。但这个公式本身有些不寻常。
神经元工作的结果应该是一个数字,即神经元的输入乘以这些输入的权重的总和。
因此,从逻辑上讲,它应该是这样的。

double qw = (q1-50) * iA_C(1) + (q2-50) * iA_C(pr) + (q3-50) * iA_C(2 * pr) + (q4-50) * iA_C(3 * pr)

显然,两者都是4个变量(或者是8个?)的一些函数,涉及到寻找最大值(结果平衡),但还是很奇怪:)

你给出了一个简化版的函数,至少我是这样理解的

这里是讨论的地方

'MTS'Sombo'。

'公平地说,这不是一个最纯粹的神经网络。首先,它缺乏一个阈值,没有它,NS的分割能力就会小得多。其次,IMHO,值得添加一个输出激活阈值。它是什么意思?只有在超过激活阈值的情况下,才将信号返回交易。比如说。

double res = (w1 * a1 + w2 * a2 + w3*a3 + w4 * a4 // )/Close[0] - T); //除以 Close[0] ,以便统一
if(MathAbs(res) > ActivityThreshold) return(res); // ActivityThreshold -- 激活阈值

 
gorby777 писал(а)>>

早期版本在感知器公式z1中使用Close(0),但在7和9中使用Close(1)。这就是我们正在谈论的问题吗?

不,我不认为是这个问题,毕竟有一个规则,在成型的酒吧工作。

但事实上,标志Flq=false;买入和卖出各一个,对这两个交易方向的分离有很大影响,因此对结果也有影响。