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

 

现在介绍一下不包括在FLG 函数中的标志 ,因为 本身是独立的。

A)Flg 是一个初始化标志,需要它来避免在故障或开始运行后,如果有输入信号(这个信号是持久的)时打开姿势,因为它可能太晚了。逻辑如下,如果VSR!=0,即有信号,则设置Flg=false; ,一旦信号消失,标志就被重置。

if (!Flg){if (VSR () ==0) {Flg=true; return (0);}}.

B)Flq - 有趣的旗帜,禁止在同一根柱子上建立第二个头寸。起初我想禁止在一个柱子上亏损开仓,但当我完成我的函数BuSll时,我将实现它,这将使它变得简单。目前,有这样一种变体。

它被设置在开口位置

{如果(Trd_Up_X && VSR() > 0 && bu <HM_Up_X ) {

如果(MOS( 0, lots, sl, tp, WindowExpertName(), mn)>=1) {Flq=false;}}

如果(Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y ) {

如果(MOS( 1, lots, sl, tp, WindowExpertName(), mn)>=1) {Flq=false;}}

顺便说一下,我在前面写了关于这个函数的修复。

它每4小时重置一次。如果你认为这对某些货币对来说太多,你可以在函数中加入 H1() 除了某些货币对之外,每小时重置一次标志 if (Symbol()!="GBPJPY" || Symbol()!="USDCHF"){ Flq = true ; }。

 
WitoHOH писал(а)>>

关于最新版本的东西不工作了。

优化器在第一阶段甚至没有开出一笔交易。

为前一个EA优化了参数的测试器也是这样工作的。

你有没有想明白为什么它没有被优化?

 
SHOOTER777 писал(а)>>

你有没有弄清楚为什么它没有被优化?

没有。

没有太多的时间。

上次有一个问题,因为缺乏历史。

我只是在让历史恢复运行。

我明天早上会让你知道。

 
SHOOTER777 писал(а)>>

你想出了为什么没有优化的原因了吗?

它不想优化。

第七个版本是用同样的历史数据进行优化。

最新的一个不会。

所有地方的结果都是0。

 

转发了专家的文章。可能是一个损坏的版本。论坛被冻结了。

并注意专家顾问中的这几行字

初始余额,最低和最高,当专家顾问在交易时。

//------------------------------------------------------------------//
bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000。
//------------------------------------------------------------------//

该禁令是在函数bool FLG (int cs )中实现的。

附加的文件:
 

再谈一下顾问的逻辑。

有一个问题--频繁的差距。在缺口期间,优化的参数和入市条件是不同步的,因为指标值和价格变得很纠结。这需要时间来恢复。对于AO,我定义了12个小时,我认为明显的差距是价格变化超过20个标准点(对于某些货币对,可以而且应该有其他的值)。

因此,我们所做的一切。

起初,我们确定是否存在差距

string dttm =StringConcatenate(Year(),".",Month(),".",Day() )。
数据时间smtm=StrToTime(dttm)。
bool Gp;
int shft = iBarShift(NULL,0,smtm);
double iOpn = iOpen (NULL,0,shft); double iCls = iClose (NULL,0,shft+1) 。
double dOC = MathAbs ((iOpn - iCls)/(Point*10));
如果(dOC>20)Gp = true ;

如果是而且Gp=真,那么禁止的条件是

((DayOfWeek( ) ==1 && Hour( ) <14) && Gp))

然而,我有些疑虑的是,在这个函数中

iBarShift (NULL,0,smtm)。

也许用下面的方式写会更好

iBarShift (NULL,60,smtm,true); 但是没有,最后一个默认参数仍然是假的?

我在等待你的想法和建议。

 
SHOOTER777 >> :

还要注意EA中的这几行字

初始余额,最低和最高,当EA进行交易时。

//------------------------------------------------------------------//
bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000。
//------------------------------------------------------------------//

这一禁令是在函数 bool FLG (int cs ) 中实现的。

你为什么需要这样的限制?

 
capellini писал(а)>>

你为什么需要这样的限制?

如果你不需要它,就不要使用它!我正在准备将该EA用于实际,并作为一个多币种EA。在未来,这将是一个分叉,EA将不允许从底部交易,以免在不可抗力的情况下失去一切,以及从上面 - 手中的鸟比起重机更好)))。然而,MM

 

现在是来自战场或前线的消息))

上周末,我没有时间准备L9版本的设定文件,我很晚才完成工作,加上假期))))。

因此决定把这个实验。我把L9的版本与上周和另一个版本的套装放在一起。

两天后我们的情况是:余额-70美元 股本+420美元 好棋!

 
SHOOTER777 писал(а)>>

因此,如果你正在测试或优化,确保股权在参数中设定的范围内

bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000。

添加 int init() if (IsOptimization( ) )TrBlnc = false;//if ( IsTesting() ) TrBlnc = false。

它起作用了。

优化工作正在进行。

也许这样的变量应该被移到代码之外?

在优化过程中和实际工作中也会比较容易。

专家顾问将不必在每次改变余额时重新编译。