SHooter777ру: Советник понравился. После сегодняшнего слива демки оптимизацию делаю под 200$ (MiniForex). В принципе почти не отличается от 2000$. в оптимизационных сетах стоплоссы ставлю 50 с шагом 10, но все равно лучшие профиты со стоплоссами от 500 получаются. Уже в конечных сетах подбираю приемлемые в пределах 50-200 вручную. Влияет ли шаг и стоп в сетах на торговлю? (По наблюдениям не заметил). Еще вопрос: Можно ли оптимизировать под MicroForex (мин. лот 0,01)? Торгую на Pro Finance Group Inc платформа PFG FX Trader 4 (поддерживает MQL4). К сожалению на МикроФорексе нет демки.
我想问一个后续问题...
有一些交易对,EA没有以任何方式进行优化,甚至没有出现第一个结果。例如,USDCHF。
它可能与什么有关?
好吧,我们又来了。
再一次的第二十六次。
在价格变动方面没有完全相同的工具,有的是类似的。
我们不会试图猜测或在图表上想象在哪里和何时进入。
这就是为什么如果没有结果,或者只有差的结果,我们应该改变范围和优化时期,你也可以玩玩SL和追踪水平。对于一些符号,我把周期减少到三周甚至两周,我试图增加日元交叉盘的SL。一般来说,我试图找到最佳值,在优化过程中提供良好的结果。因此,我认为在用遗传学进行优化时,在1万次运行中能提供6-8千种盈利组合的参数是相对正确的。那么根据大数法则,盈利的概率是亏损概率的两倍,这意味着优化只是一种形式,在有大量周数的情况下,利润至少会超过亏损两倍。现实上更多。
因此,请分享你是如何测试的,以及结果是什么。这在一个星期内是不容易的。
我这周的余额是+690美元,股权....。资产净值为+750美元多一点,嗯,今天下午接近1000美元。几乎所有的职位都已关闭。
关于这个错误。它就在startM1()函数中。因为它在测试者和演示者的首次交易中存在差异。
//+------------------------------------------------------------------+
void startM1() {ticket = -1;RefreshRates();
if (total < HM_ALL) { BuSll (0,1,772012000); cmmnt();
if( !(DayOfWeek( ) == 1 && Hour( ) <2) && !(DayOfWeek( ) == 5 && Hour( ) >=18))
{if (Trd_Up_X && VSR() > 0 && bu<HM_Up_X&&Flq) {
如果(MOS( 0, lots, sl, tp, WindowExpertName(), mn)==1) {Flq=false;}//用>=代替
如果(Trd_Dn_Y && VSR() < 0 && sll<HM_Dn_Y&&Flq){
if (MOS( 1, lots, sl, tp, WindowExpertName(), mn)==1) {Flq=false;}//用>=
}}替换。}
//+------------------------------------------------------------------+
这个错误并不关键,因为它的存在,禁止在一个酒吧再开一个交易的规定没有发挥作用。
我将在新的版本中纠正它,但现在你可以手动进行。
SHooter777ру: Советник понравился. После сегодняшнего слива демки оптимизацию делаю под 200$ (MiniForex). В принципе почти не отличается от 2000$. в оптимизационных сетах стоплоссы ставлю 50 с шагом 10, но все равно лучшие профиты со стоплоссами от 500 получаются. Уже в конечных сетах подбираю приемлемые в пределах 50-200 вручную. Влияет ли шаг и стоп в сетах на торговлю? (По наблюдениям не заметил). Еще вопрос: Можно ли оптимизировать под MicroForex (мин. лот 0,01)? Торгую на Pro Finance Group Inc платформа PFG FX Trader 4 (поддерживает MQL4). К сожалению на МикроФорексе нет демки.
有人在现实生活中尝试过EA吗?它与演示有很大不同吗?
图片显示的是本周用 SHooter777r 套装在演示中的交易 。有了+800的交易余额,我决定在3个货币对上使用另一个EA,并且...贪婪害死人--可用资金降到了100以下,当然也没有开出反仓,所以我的账户几乎破产了。
祝大家交易顺利!
我下载了EA,并再次确信,要快速阅读别人的年,你需要对mql语言有更专业的了解,要写自己的代码,知识和经验是最基本的。作者,如果你发布了代码,就在其中写上评论,并将整个代码分成若干块。
这可能是一个有趣的专家顾问,我可能根据自己的经验推荐了一些东西,但我不想深入研究原始代码。时间是宝贵的。
关于最新版本的东西不工作了。
优化器在第一阶段甚至没有开出一笔交易。
为前一个EA优化了参数的测试器也是这样工作的。
我很抱歉!我花了半个小时来写说明,但这个有故障的论坛不仅掩盖了字母,还丢失了所有的文字。
我准备用wordpress写,然后粘贴在这里。稍微等一下。
L9 的新版本包含一些次要的,但我认为必要的补充和改变。
首先:增加了FLG()函数--它负责两件事
//+------------------------------------------------------------------+
bool FLG (int cs )
{ int AE = AccountEquity( ) ;
switch(cs)
{case 0: if((DayOfWeek( ) ==5 && Hour( ) >=22) || (TrBlnc && (AE > UBlnc))
返回(true);否则返回(false)。
case 1: 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)。
string var1=TimeToStr(smtm,TIME_DATE|TIME_SECONDS)。
如果((TrBlnc && ((AE > UBlnc)|(AE < DBlnc)) || (! Flq)
|| ((DayOfWeek( ) == 1 && Hour( ) <2) || (DayOfWeek( ) == 5 && Hour( ) >=18))
|| ((DayOfWeek( ) ==1 && Hour( ) <14) && Gp))
返回(false);否则返回(true)。
}
}
//+------------------------------------------------------------------+
a)FLG( 0 ) - 在指定条件下强制平仓。
b)FLG( 1 ) - 在特定条件下禁止开仓。
在这里你可以插入任何附加条件 ,并且不要 "重载 "void startM1()函数和其他地方。
我选择了周末进行强制平仓,如果((DayOfWeek( )==5 &&Hour( )>=22),并将Equity增加到一定规模。
并禁止在gep超过一定值时打开 if(dOC>20)Gp=true ; and if Equity increases to if((TrBlnc&& ((AE>UBlnc)
或减少到||(AE<DBlnc))
因此,如果你正在测试或优化,确保股权在参数中设定的范围内
bool TrBlnc = true; int StrtBlnc = 3000; int DBlnc = 1500; int UBlnc = 4000。
或 添加 到 int init() 行 if (IsOptimization( ) )TrBlnc = false;//if ( IsTesting() ) TrBlnc = false。
以下不是改变,而是增加了更多内容,指的是Delta_G12 现在不是deltaAO ,而是函数G12()。
其中,根据其参数 extern int Indctr; 如果 Indctr = 1,则使用前一个AO
或如果 Indctr = 2 任何其他函数或指标(我使用我自己的, TSM 附), 如果int Indctr = 0 ,那么信号将从两个指标中求和&。
//+ffffffffffffffffffffffffffffffffffff+
double G12() {switch(Indctr)
{case 0:
iCusAO_1 = iAO(NULL, 240, 1); iCusAO_2 = iAO(NULL, 240, 2) 。
iCusTSM_1 = iCusTSM(24,1);iCusTSM_2 = iCusTSM(24,2)。
Dlt_AO12 = iCusAO_1 -iCusAO_2; Dlt_TSM12 = iCusTSM_1-iCusTSM_2。
如果 ( Dlt_AO12>=0 && Dlt_TSM12 <=0) 返回 (0)。
如果 ( Dlt_AO12<=0 && Dlt_TSM12 >=0) 返回 (0)。
返回(Dlt_AO12)。
案例1:
iCusAO_1 = iAO(NULL, 240, 1); iCusAO_2 = iAO(NULL, 240, 2) 。
Dlt_AO12 = iCusAO_1 -iCusAO_2; return(Dlt_AO12);
案例2:
iCusTSM_1 = iCusTSM(24,1);iCusTSM_2 = iCusTSM(24,2)。
Dlt_AO12 = iCusTSM_1-iCusTSM_2; return(Dlt_AO12);}}
//+--------------------------------------------------------------------------------------+
double iCusTSM (int pr, int shft)
{ 返回(iCustom(NULL, 240, "iCus_N7S_TSM_forExp", pr,1,shft)); }
//+--------------------------------------------------------------------------------------+