[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 520 1...513514515516517518519520521522523524525526527...537 新评论 alex 2011.07.16 20:49 #5191 Roger: 一般来说,我添加了两个变量--一个是要达到的存款水平,第二个是要删除的文件数量。它只起一次作用,然后有必要纠正水平为另一个值或重新启动专家顾问。 谢谢 - 现在我将进行测试。或者它不适合在测试器中运行? Alexander 2011.07.16 22:34 #5192 alex12: 谢谢 - 我现在就进行测试。还是说它不适合于测试员运行? 我将如何测试它? Роман 2011.07.17 00:54 #5193 demlin: 向大家问好! 请告知判断平仓的正常指标,提前感谢 )))) 我正在亲自测试这个问题。 可以通过iCustom()轻松添加(插入)到专家顾问中。 AliGarx 2011.07.17 05:31 #5194 一个简单的系统,用于穿越2辆马车。买入--快者越过慢者向上。卖出--快速的一个与慢速的一个向下交叉。关闭--相反的信号或拖网。你能告诉我应该如何修改代码,以便在每次开仓时设置止损=50点? extern double Lots = 0; // лот, если 0, то динамический extern double RiskPercentage = 70; // % от депо на лот, если динамический extern int FastPer = 4; extern int SlowPer = 18; extern int magicnumber = 777; extern int TrailingStop = 20; extern bool PolLots = true; int prevtime; int ticket=0; //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if (!IsDemo()) { // Print ("Эта версия только для демо-счетов"); // return(0); } if(Time[0] == prevtime) { return(0); } prevtime = Time[0]; if(!IsTradeAllowed()) { prevtime = Time[1]; return(0); } int Ord=0; double ClLot=0; int LotsCount=0; int i=0; int total = OrdersTotal(); for(i = 0; i <= total; i++) { if(TrailingStop>0) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() == magicnumber) { ticket=OrderTicket(); ClLot=OrderLots(); if (OrderType()==OP_BUY) { Ord=1; } else { Ord=2; } LotsCount ++; TrailingStairs(OrderTicket(),TrailingStop); } } } /* for(i = 0; i <= OrdersTotal(); i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() == magicnumber) { ticket=OrderTicket(); ClLot=OrderLots(); if (OrderType()==OP_BUY) { Ord=1; } else { Ord=2; } } } */ bool SellOp=false; bool BuyOp=false; double MAFast1=NormalizeDouble(iMA(NULL,0,FastPer,0,MODE_SMA,PRICE_CLOSE,2),Digits); double MAFast2=NormalizeDouble(iMA(NULL,0,FastPer,0,MODE_SMA,PRICE_CLOSE,1),Digits); double MAFast3=NormalizeDouble(iMA(NULL,0,FastPer,0,MODE_SMA,PRICE_CLOSE,0),Digits); double MASlow1=NormalizeDouble(iMA(NULL,0,SlowPer,0,MODE_SMA,PRICE_CLOSE,2),Digits); double MASlow2=NormalizeDouble(iMA(NULL,0,SlowPer,0,MODE_SMA,PRICE_CLOSE,1),Digits); double MASlow3=NormalizeDouble(iMA(NULL,0,SlowPer,0,MODE_SMA,PRICE_CLOSE,0),Digits); if ((MAFast1<MASlow1)&& (MAFast2==MASlow2)&& (MAFast3>MASlow3)) { BuyOp=true; } if ((MAFast1>MASlow1)&& (MAFast2==MASlow2)&& (MAFast3<MASlow3)) { SellOp=true; } if (BuyOp) { if (Ord==2) { OrderClose(ticket,ClLot,Ask,3,Red); } if (Ord!=1) { OrderSend(Symbol(),OP_BUY,Lot(),Ask,3,0,0,"MA_Buy",magicnumber,0,Green); } } if (SellOp) { if (Ord==1) { OrderClose(ticket,ClLot,Bid,3,Green); } if (Ord!=2) { OrderSend(Symbol(),OP_SELL,Lot(),Bid,3,0,0,"MA_Sell",magicnumber,0,Red); } } //---- return(0); } //+------------------------------------------------------------------+ void TrailingStairs(int ticket,int trldistance) { int Spred=Ask - Bid; if (OrderType()==OP_BUY) { if((Bid-OrderOpenPrice())>(Point*trldistance)) { if(OrderStopLoss()<Bid-Point*trldistance || (OrderStopLoss()==0)) { OrderModify(ticket,OrderOpenPrice(),Bid-Point*trldistance,OrderTakeProfit(),0,Green); if (PolLots) if (NormalizeDouble(OrderLots()/2,1)>MarketInfo(Symbol(), MODE_MINLOT)) { OrderClose(ticket,NormalizeDouble(OrderLots()/2,1),Bid,3,Green); } else { OrderClose(ticket,OrderLots(),Bid,3,Green); } } } } else { if((OrderOpenPrice()-Ask)>(Point*trldistance)) { if((OrderStopLoss()>(Ask+Point*trldistance)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*trldistance,OrderTakeProfit(),0,Red); if (PolLots) if (NormalizeDouble(OrderLots()/2,1)>MarketInfo(Symbol(), MODE_MINLOT)) { OrderClose(ticket,NormalizeDouble(OrderLots()/2,1),Ask,3,Green); } else { OrderClose(ticket,OrderLots(),Ask,3,Green); } } } } } double Lot() { double LotQ = Lots; if (Lots==0) { double margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED); double minLot = MarketInfo(Symbol(), MODE_MINLOT); double maxLot = MarketInfo(Symbol(), MODE_MAXLOT); double step = MarketInfo(Symbol(), MODE_LOTSTEP); double account = AccountFreeMargin(); double percentage = account*RiskPercentage/100; LotQ = MathRound(percentage/margin/step)*step; if(LotQ < minLot) { LotQ = minLot; } if(LotQ > maxLot) { LotQ = maxLot; } } return (LotQ); } Artyom Trishkin 2011.07.17 05:51 #5195 Roman.: 我正在亲自测试这个问题。 它很容易通过iCustom()添加(连接)到专家顾问。 我想知道,你如何在EA中定义它的极端低值和极端高值?毕竟,在图表的一个局部区域,0.3800(蓝线)是一个极端值,对应于一个暂时的修正,而在下一个局部区域,0.3041(绿线)成为其极端值,标志着一个反转... 在第一个多头(红线)的极端低值0.4596又如何呢,它没有说什么? 那你如何判断指标极值低值是表示修正还是反转?事实上,在第一种情况下,0.3800的值表示修正(绿色垂直线),而在第二种情况下--趋势的结束(红色垂直线)。 最后--图表上有很多这样的局部极端现象。毕竟,在3-5小时内,肯定会有最低值,而且是该时间段内的极低值。如果我们为寻找指标极值指定一定的时间间隔,它们就会被找到,但...然而,在随后的条形图上,超过指定的时间框架,可能会发生指标值会变得更低(更高),然后这个值将是极端的低(高) - 但如何处理之前发现的那个?越是这样,专家顾问就越是要根据它来做决定。 然而......。 Роман 2011.07.17 06:08 #5196 artmedia70:我想知道,你是如何在你的专家顾问中定义极端低值和极端高值的?毕竟,在图表的一个局部区域,0.3800(蓝线)是一个极端值,对应于一个暂时的修正,而在下一个局部区域,0.3041(绿线)成为其极端值,标志着一个反转...在第一个多头(红线)的极端低值0.4596又如何呢,它没有说什么?那你如何判断指标极低值是否表示修正或反转?事实上,在第一种情况下,0.3800的值表示修正(绿色垂直线),而在第二种情况下--趋势的结束(红色垂直线)。最后--图表上有很多这样的局部极端现象。如果我们设定一个3-5小时的间隔,它肯定是最低值,而且将是该时间间隔的极端低值。如果我们指定某个时间间隔来寻找指标极值,它就会被找到,但...然而,在随后的条形图上,超过指定的时间框架,可能会发生指标值变得更低(更高),然后这个值将是极端的低(高) - 但如何处理之前的指标?越是这样,专家顾问就越是要根据它来做决定...然而......。 我把这个指标看成是进入趋势或平坦策略市场 的过滤器,即对其读数出现以下解释。 double iVAR_1 = iCustom (Symbol(),trend_period, "iVAR", n, nBars, 0, 1); // расчет индикатора iVAR 指标值低于0.5意味着市场处于一种趋势中。 iVAR_1 < 0.5 && // тренд на основном ТФ 极低的价值往往是在当前趋势结束(修正)之前 - 它已经在图上 - 这里拖网工作(当在市场上)。 指标值高于0.5意味着市场状况平稳 iVAR_1 > 0.5 && 极高的数值往往是在一个重要趋势开始之前--见前面的解释。 指标值在0.5左右意味着不确定的市场形势--这里可以使用一些 "水平 "的缩进(我不排除它是多余的,即取值0.5和所有),既低于-x,又高于-y 值0.5(基础水平),把它们放到外部变量中,用0.02的步骤进行优化,比方说,与变量n 一样--开始:2步骤:1停止:7--这不是多余的,我做了--很快我将在Avalanche分支发布结果(它是趋势系统...:-)),只与马丁的MM...和所有...:-)))). Artyom Trishkin 2011.07.17 06:31 #5197 Roman.: 我把这个指标看作是进入市场的过滤器,无论是趋势还是平坦的策略,即我对其读数的解释如下。 指标值低于0.5,表明市场状况呈趋势性发展。 极低的价值往往是在当前趋势结束(修正)之前--这已经适合于这个数字--这里的拖网工作(当在市场上)。 指标值高于0.5意味着市场状况平淡。 极高的数值往往是在一个重要趋势开始之前--见前面的解释。 指标值在0.5左右意味着不确定的市场条件--这里可以使用一些缩进的 "水平"(我不排除它是多余的,也就是说。取值0.5和所有),都低于-x,高于-y 值0.5(基础水平),将它们输入外部变量,并以0.02的步骤进行优化,比方说,与变量n 相同--开始:2步骤:1停止:7--这并不过分,我就是这么做的--很快我将在Lavina分支发布结果(这是趋势系统...:-)),只与马丁的MM...和所有...:-)))). 我不喜欢优化:本质是一种配合...而且我从来没有优化过我的婴儿的参数...我试图为不同的市场条件选择必要的参数。 谢谢你的澄清,不过...:)老实说--抓住上面的帖子是朝火鸡的方向投掷石子......。:) Anatoli Kazharski 2011.07.17 06:34 #5198 下午好! 我有这样一个问题。专家顾问有一个将交易写入csv 文件的功能,但我发现一个问题,当我在专家顾问参数中启用/禁用(TRUE/FALSE)资金管理系统 选项时,会出现这个问题。例如,在编译源文件后,一切工作正常,交易都按计划写入文件中。下图说明了正确写入的数据。 然后在测试器中,我在专家顾问参数中启用资金管理系统选项,运行测试,但数据没有正确写入文件。下图显示了两种变体供比较。左边的是正确的(如上),右边的是不正确的。 我还没能自己弄清楚这可能是怎么回事,但我发现了以下内容。如果我也启用/禁用资金管理系统选项,并在开始测试前再次编译源文件,一切都能正确写入。 你能告诉我问题可能是什么吗? Роман 2011.07.17 07:17 #5199 artmedia70: 我不喜欢优化:本质是适合...而且我从来没有优化过我的产品的参数...我试图让他们为不同的市场条件选择必要的参数。 虽然,谢谢你的澄清......:):) 我明白了...如果你有兴趣,这里有一个类似的东西(在预告片中)。也请看这里(整个主题)--有一个高于/低于0.6的处理方法,以及这里(选择性的页面)。 附加的文件: herst3_1.mq4 10 kb alligatorcherst3_new.mq4 11 kb demlin 2011.07.17 07:23 #5200 Roman.: 我正在亲自测试这个问题。 很容易通过iCustom()添加(插入)到EA中。 谢谢,我下载了它,我将在我的专家顾问中测试它。 1...513514515516517518519520521522523524525526527...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一般来说,我添加了两个变量--一个是要达到的存款水平,第二个是要删除的文件数量。它只起一次作用,然后有必要纠正水平为另一个值或重新启动专家顾问。
谢谢 - 我现在就进行测试。还是说它不适合于测试员运行?
我将如何测试它?
向大家问好!
请告知判断平仓的正常指标,提前感谢 ))))
我正在亲自测试这个问题。
可以通过iCustom()轻松添加(插入)到专家顾问中。
关闭--相反的信号或拖网。你能告诉我应该如何修改代码,以便在每次开仓时设置止损=50点?
我正在亲自测试这个问题。
它很容易通过iCustom()添加(连接)到专家顾问。
我想知道,你如何在EA中定义它的极端低值和极端高值?毕竟,在图表的一个局部区域,0.3800(蓝线)是一个极端值,对应于一个暂时的修正,而在下一个局部区域,0.3041(绿线)成为其极端值,标志着一个反转...
在第一个多头(红线)的极端低值0.4596又如何呢,它没有说什么?
那你如何判断指标极值低值是表示修正还是反转?事实上,在第一种情况下,0.3800的值表示修正(绿色垂直线),而在第二种情况下--趋势的结束(红色垂直线)。
最后--图表上有很多这样的局部极端现象。毕竟,在3-5小时内,肯定会有最低值,而且是该时间段内的极低值。如果我们为寻找指标极值指定一定的时间间隔,它们就会被找到,但...然而,在随后的条形图上,超过指定的时间框架,可能会发生指标值会变得更低(更高),然后这个值将是极端的低(高) - 但如何处理之前发现的那个?越是这样,专家顾问就越是要根据它来做决定。
然而......。
我想知道,你是如何在你的专家顾问中定义极端低值和极端高值的?毕竟,在图表的一个局部区域,0.3800(蓝线)是一个极端值,对应于一个暂时的修正,而在下一个局部区域,0.3041(绿线)成为其极端值,标志着一个反转...
在第一个多头(红线)的极端低值0.4596又如何呢,它没有说什么?
那你如何判断指标极低值是否表示修正或反转?事实上,在第一种情况下,0.3800的值表示修正(绿色垂直线),而在第二种情况下--趋势的结束(红色垂直线)。
最后--图表上有很多这样的局部极端现象。如果我们设定一个3-5小时的间隔,它肯定是最低值,而且将是该时间间隔的极端低值。如果我们指定某个时间间隔来寻找指标极值,它就会被找到,但...然而,在随后的条形图上,超过指定的时间框架,可能会发生指标值变得更低(更高),然后这个值将是极端的低(高) - 但如何处理之前的指标?越是这样,专家顾问就越是要根据它来做决定...
然而......。
我把这个指标看成是进入趋势或平坦策略市场 的过滤器,即对其读数出现以下解释。
指标值低于0.5意味着市场处于一种趋势中。
极低的价值往往是在当前趋势结束(修正)之前 - 它已经在图上 - 这里拖网工作(当在市场上)。
指标值高于0.5意味着市场状况平稳
iVAR_1 > 0.5 &&
极高的数值往往是在一个重要趋势开始之前--见前面的解释。
指标值在0.5左右意味着不确定的市场形势--这里可以使用一些 "水平 "的缩进(我不排除它是多余的,即取值0.5和所有),既低于-x,又高于-y 值0.5(基础水平),把它们放到外部变量中,用0.02的步骤进行优化,比方说,与变量n 一样--开始:2步骤:1停止:7--这不是多余的,我做了--很快我将在Avalanche分支发布结果(它是趋势系统...:-)),只与马丁的MM...和所有...:-)))).
我把这个指标看作是进入市场的过滤器,无论是趋势还是平坦的策略,即我对其读数的解释如下。
指标值低于0.5,表明市场状况呈趋势性发展。
极低的价值往往是在当前趋势结束(修正)之前--这已经适合于这个数字--这里的拖网工作(当在市场上)。
指标值高于0.5意味着市场状况平淡。
极高的数值往往是在一个重要趋势开始之前--见前面的解释。
指标值在0.5左右意味着不确定的市场条件--这里可以使用一些缩进的 "水平"(我不排除它是多余的,也就是说。取值0.5和所有),都低于-x,高于-y 值0.5(基础水平),将它们输入外部变量,并以0.02的步骤进行优化,比方说,与变量n 相同--开始:2步骤:1停止:7--这并不过分,我就是这么做的--很快我将在Lavina分支发布结果(这是趋势系统...:-)),只与马丁的MM...和所有...:-)))).
我不喜欢优化:本质是一种配合...而且我从来没有优化过我的婴儿的参数...我试图为不同的市场条件选择必要的参数。
谢谢你的澄清,不过...:)老实说--抓住上面的帖子是朝火鸡的方向投掷石子......。:)
下午好!
我有这样一个问题。专家顾问有一个将交易写入csv 文件的功能,但我发现一个问题,当我在专家顾问参数中启用/禁用(TRUE/FALSE)资金管理系统 选项时,会出现这个问题。例如,在编译源文件后,一切工作正常,交易都按计划写入文件中。下图说明了正确写入的数据。
然后在测试器中,我在专家顾问参数中启用资金管理系统选项,运行测试,但数据没有正确写入文件。下图显示了两种变体供比较。左边的是正确的(如上),右边的是不正确的。
我还没能自己弄清楚这可能是怎么回事,但我发现了以下内容。如果我也启用/禁用资金管理系统选项,并在开始测试前再次编译源文件,一切都能正确写入。
你能告诉我问题可能是什么吗?
我不喜欢优化:本质是适合...而且我从来没有优化过我的产品的参数...我试图让他们为不同的市场条件选择必要的参数。
虽然,谢谢你的澄清......:):)
我明白了...如果你有兴趣,这里有一个类似的东西(在预告片中)。也请看这里(整个主题)--有一个高于/低于0.6的处理方法,以及这里(选择性的页面)。
我正在亲自测试这个问题。
很容易通过iCustom()添加(插入)到EA中。