如何正确优化一个顾问 - 页 6 123456789 新评论 Loring 2008.07.28 16:51 #51 X上的第一个是SL,Y上的是TP。 我认为左边是正区,右边是乱打......。好吧,以欧元计价的SL不可能是190或更多的M5时期......。 Victor Nikolaev 2008.07.28 16:58 #52 Loring писал (а)>> 和相应的。 注意,不要被马蹄铁所迷惑。EAs是定制的,我只是警告他们,我将把它们放在那里。我不喜欢这种技术。这是很有风险的。当好结果的概率相当高时,你可以使用它。唯一要做的就是建立这样一个机制。 Loring 2008.07.28 17:28 #53 但可以进行一点测试....顺便说一下,这个结果与我的算法很接近。所以我不会撕掉我的头发......但我想认识一下。 Loring 2008.07.28 17:52 #54 是的,嗯...正如兹维列夫曾经说过的,"明星受到了冲击"...该算法确实表现得很奇怪,或者说它喜欢...这就是你开启再投资的时候。Strategy Tester Report VininE_Game_1 FxProfit-Demo (Build 217) Символ EURUSD (Euro vs US Dollar) Период 5 Минут (M5) 2008.06.01 22:05 - 2008.06.27 21:55 (2008.06.01 - 2008.06.29) Модель Все тики (наиболее точный метод на основе всех наименьших доступных таймфреймов) Параметры Lots=0.1; MaximumRisk=6; cmd=0; TP=262; SL=18; MagicNumber=0; Баров в истории 6749 Смоделировано тиков 152889 Качество моделирования 90.00% Ошибки рассогласования графиков 0 Начальный депозит 1500.00 Чистая прибыль 7908.10 Общая прибыль 11037.80 Общий убыток -3129.70 Прибыльность 3.53 Матожидание выигрыша 790.81 Абсолютная просадка 662.60 Максимальная просадка 4846.40 (54.75%) Относительная просадка 54.75% (4846.40) Всего сделок 10 Короткие позиции (% выигравших) 5 (20.00%) Длинные позиции (% выигравших) 5 (40.00%) Прибыльные сделки (% от всех) 3 (30.00%) Убыточные сделки (% от всех) 7 (70.00%) Самая большая прибыльная сделка 6359.60 убыточная сделка -1280.00 Средняя прибыльная сделка 3679.27 убыточная сделка -447.10 Максимальное количество непрерывных выигрышей (прибыль) 2 (4678.20) непрерывных проигрышей (убыток) 4 (-612.60) Максимальная непрерывная прибыль (число выигрышей) 6359.60 (1) непрерывный убыток (число проигрышей) -1280.00 (1) Средний непрерывный выигрыш 2 непрерывный проигрыш 2 № Время Тип Ордер Объём Цена S / L T / P Прибыль Баланс 1 2008.06.01 22:06 buy 1 0.90 1.5555 1.5535 1.5815 2 2008.06.02 03:31 s/l 1 0.90 1.5535 1.5535 1.5815 -192.60 1307.40 3 2008.06.03 00:00 sell 2 0.80 1.5539 1.5559 1.5279 4 2008.06.03 08:30 s/l 2 0.80 1.5559 1.5559 1.5279 -160.00 1147.40 5 2008.06.04 00:01 buy 3 0.70 1.5439 1.5419 1.5699 6 2008.06.04 08:26 s/l 3 0.70 1.5419 1.5419 1.5699 -140.00 1007.40 7 2008.06.05 00:05 sell 4 0.60 1.5425 1.5445 1.5165 8 2008.06.05 01:39 s/l 4 0.60 1.5445 1.5445 1.5165 -120.00 887.40 9 2008.06.06 00:00 buy 5 0.50 1.5584 1.5564 1.5844 10 2008.06.09 09:39 t/p 5 0.50 1.5844 1.5564 1.5844 1293.00 2180.40 11 2008.06.10 00:00 sell 6 1.30 1.5640 1.5660 1.5380 12 2008.06.12 14:34 t/p 6 1.30 1.5380 1.5660 1.5380 3385.20 5565.60 13 2008.06.13 00:00 buy 7 3.30 1.5454 1.5434 1.5714 14 2008.06.13 02:20 s/l 7 3.30 1.5434 1.5434 1.5714 -660.00 4905.60 15 2008.06.15 22:10 sell 8 2.90 1.5417 1.5437 1.5157 16 2008.06.16 10:47 s/l 8 2.90 1.5437 1.5437 1.5157 -577.10 4328.50 17 2008.06.17 00:02 buy 9 2.60 1.5470 1.5450 1.5730 18 2008.06.26 13:44 t/p 9 2.60 1.5730 1.5450 1.5730 6359.60 10688.10 19 2008.06.27 00:00 sell 10 6.40 1.5751 1.5771 1.5491 20 2008.06.27 10:39 s/l 10 6.40 1.5771 1.5771 1.5491 -1280.00 9408.10 这一切开始得多好... Loring 2008.07.28 17:55 #55 但是,如果缩减量大于50%......。我不知道谁会冒险投资。看来我们应该按原样使用它。然而,这又是一个新事物是最好的敌人的例子......。 Loring 2008.07.29 11:17 #56 在把你的头(顽固地)撞向桌子之后,手数计算函数的形式如下 double getLots() { if (MaximumRisk>0) { double minlot = MarketInfo(Symbol(),MODE_MINLOT); double maxlot = MarketInfo(Symbol(),MODE_MAXLOT); double lot = NormalizeDouble(AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/MaximumRisk,1); lot=MathMax(MathMin(lot,maxlot),minlot); } else lot=Lots; return(lot); } 其中MaximumRisk - 开仓时可使用的部分资本(计算为1/MaximumRisk)。 除法和乘法的必要性不复存在,因为这个函数并不丢弃小数部分,而是根据数学规则四舍五入。现在手数是用保证金值计算的,这就减少了风险。lot=MathMax(MathMin(lot,maxlot),minlot); "这一行无论如何都会尝试开一个最小手数(通常是0.1)的头寸,这将增加操作的风险。你可能想完全禁用它。同样,只有在存款不足的情况下才会出现这种情况。 我想再一次感谢Viktor提供的源代码。 Victor Nikolaev 2008.07.29 11:34 #57 Loring писал (а)>> 在把你的头(顽固地)撞向桌子之后,手数计算函数的形式如下 其中MaximumRisk - 可用于开仓的部分资产(计算为1/MaximumRisk)。 没有必要进行除法或乘法的步骤,因为这个函数没有切断小数部分,而是根据数学规则进行四舍五入。 记住,不是所有的经纪公司都有0.1的增量,还有其他的变种。 Loring 2008.07.29 12:18 #58 我觉得有点毛骨悚然......看上去是对的,但有些地方不对。然后真的 /MaximumRisk/step,0)*step...我忘了,在一些经纪公司里,这个步骤可能是0,001。很高兴有人能纠正... Loring 2008.07.29 12:28 #59 那么它必须是这样的...(不确定四舍五入函数中的'0'是什么意思) double getLots() { if (MaximumRisk>0) { double minlot = MarketInfo(Symbol(),MODE_MINLOT); double maxlot = MarketInfo(Symbol(),MODE_MAXLOT); double step = MarketInfo(Symbol(),MODE_LOTSTEP); double lot = NormalizeDouble(AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/MaximumRisk/step,0)*step; lot=MathMax(MathMin(lot,maxlot),minlot); } else lot=Lots; return(lot); } Loring 2008.07.29 12:38 #60 我不明白为什么把职位的开设 放在一个单独的功能中。一个命令可以在本地执行...或者它是一个更大的东西的碎片......ТР和SL不是按照它们在OrderSend中的那个顺序传送的。谢天谢地,它们在传送过程中被接收。当然不是什么大问题,但.... 123456789 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
X上的第一个是SL,Y上的是TP。
我认为左边是正区,右边是乱打......。好吧,以欧元计价的SL不可能是190或更多的M5时期......。
和相应的。
注意,不要被马蹄铁所迷惑。EAs是定制的,我只是警告他们,我将把它们放在那里。我不喜欢这种技术。这是很有风险的。当好结果的概率相当高时,你可以使用它。唯一要做的就是建立这样一个机制。
但可以进行一点测试....顺便说一下,这个结果与我的算法很接近。所以我不会撕掉我的头发......但我想认识一下。
这一切开始得多好...
但是,如果缩减量大于50%......。我不知道谁会冒险投资。看来我们应该按原样使用它。然而,这又是一个新事物是最好的敌人的例子......。
在把你的头(顽固地)撞向桌子之后,手数计算函数的形式如下
其中MaximumRisk - 开仓时可使用的部分资本(计算为1/MaximumRisk)。
除法和乘法的必要性不复存在,因为这个函数并不丢弃小数部分,而是根据数学规则四舍五入。现在手数是用保证金值计算的,这就减少了风险。lot=MathMax(MathMin(lot,maxlot),minlot); "这一行无论如何都会尝试开一个最小手数(通常是0.1)的头寸,这将增加操作的风险。你可能想完全禁用它。同样,只有在存款不足的情况下才会出现这种情况。
我想再一次感谢Viktor提供的源代码。
在把你的头(顽固地)撞向桌子之后,手数计算函数的形式如下
其中MaximumRisk - 可用于开仓的部分资产(计算为1/MaximumRisk)。
没有必要进行除法或乘法的步骤,因为这个函数没有切断小数部分,而是根据数学规则进行四舍五入。
记住,不是所有的经纪公司都有0.1的增量,还有其他的变种。
那么它必须是这样的...(不确定四舍五入函数中的'0'是什么意思)
我不明白为什么把职位的开设 放在一个单独的功能中。一个命令可以在本地执行...或者它是一个更大的东西的碎片......ТР和SL不是按照它们在OrderSend中的那个顺序传送的。谢天谢地,它们在传送过程中被接收。当然不是什么大问题,但....