为什么我的EA在回测时一直给出负利润? - 页 2 12345 新评论 [删除] 2013.01.31 16:52 #11 deVries:我已经重写了你的代码,并进行了测试,也看到了设置。虽然没有最好的回溯数据,但如果你做得对的话,是可以盈利的。策略测试报告RSI_strategy_cyxstudioAlpariUK-Demo - Micro+Classic (Build 451)符号欧元兑美元(欧元对美元)时间每日(D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)模型Every tick (基于所有可用的最小时间框架的最精确方法)参数RSIPeriod=3; UpperBound=90; LowerBound=5; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI策略"; Slippage.Pips=3;测试中的交易棒1603模拟的点数40187739建模质量不适用不匹配的图表错误2062601初始存款3000.00总净利润967.18毛利润2226.34毛亏损-1259.16利润因素1.77预期报酬率13.62绝对缩水107.10最大跌幅327.47 (7.99%)相对缩减7.99% (327.47)交易总额71空头头寸(赢得%)66 (69.70%)多头头寸(韩元%)5 (80.00%)盈利交易(占总数的百分比)50 (70.42%)亏损交易(占总数的%)21 (29.58%)最大的盈利交易120.07亏损交易-60.00平均值盈利交易44.53亏损交易-59.96最多连胜(以金钱计算的利润)8 (424.26)连续亏损(以金钱计算的亏损)3 (-179.93)最大的连续盈利(赢钱的次数)424.26 (8)连续亏损(亏损数)-179.93 (3)平均数连赢4连败2 我以不同的方式写了至少7-10次,但它要么根本没有执行任何头寸,要么是负利润......你是怎么做到的????? Tjipke de Vries 2013.01.31 16:56 #12 RaptorUK: 这让我觉得有什么地方不对。 if (BUYS<1 && CurrentRSI < LowerBound && pAsk > MA200) { //Condition to execute buy entry Ticket = OrderSend(Symbol(), OP_BUY,...... // LowerBound=5 if (SELLS<1 && CurrentRSI > UpperBound && pBid > MA200) { //Condition to execute sell entry Ticket = OrderSend(Symbol(), OP_SELL, Lots,...... // UpperBound=90 通常情况下是的,但在这种情况下不是,它是由cyxstudio 为RSI选择的 设置完成的。 [删除] 2013.01.31 16:57 #13 deVries:我已经重写了你的代码,并进行了测试,也看到了设置。虽然没有最好的回溯数据,但如果你做得对的话,是可以盈利的。策略测试报告RSI_strategy_cyxstudioAlpariUK-Demo - Micro+Classic (Build 451)符号欧元兑美元(欧元对美元)时间每日(D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)模型Every tick (基于所有可用的最小时间框架的最精确方法)参数RSIPeriod=3; UpperBound=90; LowerBound=5; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI策略"; Slippage.Pips=3;测试中的交易棒1603模拟的点数40187739建模质量不适用不匹配的图表错误2062601初始存款3000.00总净利润967.18毛利润2226.34毛亏损-1259.16利润因素1.77预期报酬率13.62绝对缩水107.10最大跌幅327.47 (7.99%)相对缩减7.99% (327.47)交易总额71空头头寸(赢得%)66 (69.70%)多头头寸(韩元%)5 (80.00%)盈利交易(占总数的百分比)50 (70.42%)亏损交易(占总数的%)21 (29.58%)最大的盈利交易120.07亏损交易-60.00平均值盈利交易44.53亏损交易-59.96最多连胜(以金钱计算的利润)8 (424.26)连续亏损(以金钱计算的亏损)3 (-179.93)最大的连续盈利(赢钱的次数)424.26 (8)连续亏损(亏损数)-179.93 (3)平均数连赢4连败2 请让我看看你的代码,我需要研究它并从我的错误中学习。 Simon Gniadkowski 2013.01.31 17:06 #14 deVries: 通常情况下是的,但在这种情况下不是,它是由cyxstudio 为RSI选择的 设置完成的。 啊,好的,如果你能解释,那么就没有理由担心了;-) Tjipke de Vries 2013.01.31 17:09 #15 上限为90,下限为10策略测试报告RSI_strategy_cyxstudioAlpariUK-Demo - Micro+Classic (Build 451)符号EURUSD (欧元对美元)时间每日(D1) 2010.10.01 00:00 - 2013.01.29 00:00 (2010.10.01 - 2013.01.30)模型Every tick (基于所有可用的最小时间框架的最精确方法)参数RSIPeriod=3; UpperBound=90; LowerBound=10; MASlowPeriod=200; MAFastPeriod=5; Lots=0.1; StopLoss=60; TakeProfit=120; TrailingStop=40; MagicNumber=54333; CommentEA="RSI策略"; Slippage.Pips=3。测试中的交易棒1603模拟的点数40187739建模质量不适用不匹配的图表错误2062601初始存款3000.00总净利润782.62毛利润3062.38毛损失-2279.76利润因素1.34预期报酬率7.38绝对缩水106.90最大跌幅400.70 (9.90%)相对缩减9.90% (400.70)总交易量106空头头寸(赢得%)66 (69.70%)多头头寸(韩元%)40 (55.00%)盈利交易(占总数的百分比)68 (64.15%)亏损交易(占总数的百分比)38 (35.85%)最大的盈利交易120.07亏损交易-60.12平均值盈利交易45.04亏损交易-59.99最多连胜(以金钱计算的利润)8 (425.96)连续亏损(以金钱计算的亏损)4 (-240.12)最大的连续盈利(赢钱的次数)490.51 (6)连续亏损(亏损数)-240.12 (4)平均数连赢3连败2这看起来如何 对EA的建议(从亏损到盈利) Why does my EA BooYa!!!我又对外汇市场感到兴奋了 :)) Tjipke de Vries 2013.01.31 17:25 #16 cyxstudio: 请让我看看你的代码,我需要研究它并从我的错误中学习。这是开始.....把你的评论.....,说说到目前为止和你有什么不同......//+------------------------------------------------------------------+ //| RSI_strategy_cyxstudio.mq4 | //| Copyright 2013, Tjipke de Vries | //| https://forum.mql4.com/53695/ | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern int RSIPeriod = 3; //number of periods for RSI extern double UpperBound = 90; //set upper bound value for RSI extern double LowerBound = 5; //set lower bound value for RSI extern int MASlowPeriod = 200; extern int MAFastPeriod = 5; extern double Lots = 0.1; extern double StopLoss = 60; //Set the stop loss level extern double TakeProfit = 120; //Set the take profit level extern double TrailingStop = 40; //extra settings for OrderSend extern int MagicNumber = 54333; extern string CommentEA = "RSI strategy"; extern int Slippage.Pips = 3; int BUYS=1,SELLS=1; //++++ These are adjusted for 5 digit brokers. int pips2points; // slippage 3 pips 3=points 30=points double pips2dbl; // Stoploss 15 pips 0.015 0.0150 int Digits.pips; // DoubleToStr(dbl/pips2dbl, Digits.pips) //--- //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- if(Digits % 2 == 1) // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262 {pips2dbl = Point*10; pips2points = 10; Digits.pips = 1;} else {pips2dbl = Point; pips2points = 1; Digits.pips = 0;} // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- int Ticket; double SL,TP; int Total; double pAsk = MarketInfo(Symbol(), MODE_ASK); double pBid = MarketInfo(Symbol(), MODE_BID); double MA200 = iMA(NULL, 1440, MASlowPeriod, 0,MODE_SMA,PRICE_CLOSE, 0); //200 day Moving Average double MA5 = iMA(NULL, 1440, MAFastPeriod, 0,MODE_SMA,PRICE_CLOSE, 0); // 5 day Moving Average double CurrentRSI = iRSI (NULL, 1440, RSIPeriod,PRICE_CLOSE ,0); if(Bars<100) { Print("bars less than 100"); return(0); } if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } if(OrdersTotal()<1) { BUYS=0; SELLS=0; } 然后阅读https://www.mql5.com/en/forum/139654,并尝试做一个循环检查交易的倒数。 [删除] 2013.01.31 17:36 #17 deVries:这是开始.....把你的评论.....,说说到目前为止和你有什么不同......然后阅读https://www.mql5.com/en/forum/139654,并尝试做一个循环倒数检查交易。 它并不完整...我现在正试图填写其余部分并测试它...顺便说一下,当一个简单的Ask可以返回相同的值时,你为什么要使用 ?double pAsk = MarketInfo(Symbol(), MODE_ASK); Simon Gniadkowski 2013.01.31 17:38 #18 cyxstudio: 它并不完整...我现在正试图填补其余部分并进行测试......顺便说一下,当一个简单的Ask可以返回相同的值时,你为什么要使用 ? Ask可以是过时的,上面的调用将是最新的,不需要调用RefreshRates()。 [删除] 2013.01.31 17:43 #19 另外,int BUYS=1,SELLS=1;是指是否已经开仓的指标,对吗?我在我自己的脚本中添加了,当我用策略测试器 测试20天时......什么都没有发生,没有交易被执行。 Tjipke de Vries 2013.01.31 18:02 #20 cyxstudio:另外,int BUYS=1,SELLS=1;是指是否已经开仓的指标,对吗?我加入了自己的脚本,当我用策略测试器测试了20天......什么都没有发生,没有交易被执行。当你启动你的Metatrader时,EA必须找出是否有一笔交易。如果有交易,我只做了检查 交易的循环倒计时。如果我在一开始就把它设置为1,并且OrdersTotal()>0,那么我就让它检查交易,如果(.......> ||.......> ){做循环.... 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我已经重写了你的代码,并进行了测试,也看到了设置。
虽然没有最好的回溯数据,但如果你做得对的话,是可以盈利的。
我以不同的方式写了至少7-10次,但它要么根本没有执行任何头寸,要么是负利润......你是怎么做到的?????
这让我觉得有什么地方不对。
我已经重写了你的代码,并进行了测试,也看到了设置。
虽然没有最好的回溯数据,但如果你做得对的话,是可以盈利的。
请让我看看你的代码,我需要研究它并从我的错误中学习。
通常情况下是的,但在这种情况下不是,它是由cyxstudio 为RSI选择的 设置完成的。
上限为90,下限为10
这看起来如何
请让我看看你的代码,我需要研究它并从我的错误中学习。
这是开始.....
把你的评论.....,说说到目前为止和你有什么不同......
然后阅读https://www.mql5.com/en/forum/139654,并尝试做一个循环检查交易的倒数。
这是开始.....
把你的评论.....,说说到目前为止和你有什么不同......
然后阅读https://www.mql5.com/en/forum/139654,并尝试做一个循环倒数检查交易。
它并不完整...
我现在正试图填写其余部分并测试它...
顺便说一下,当一个简单的Ask可以返回相同的值时,你为什么要使用 ?
它并不完整...
我现在正试图填补其余部分并进行测试......
顺便说一下,当一个简单的Ask可以返回相同的值时,你为什么要使用 ?
另外,int BUYS=1,SELLS=1;是指是否已经开仓的指标,对吗?
我在我自己的脚本中添加了,当我用策略测试器 测试20天时......什么都没有发生,没有交易被执行。
另外,int BUYS=1,SELLS=1;是指是否已经开仓的指标,对吗?
我加入了自己的脚本,当我用策略测试器测试了20天......什么都没有发生,没有交易被执行。
当你启动你的Metatrader时,EA必须找出是否有一笔交易。
如果有交易,我只做了检查 交易的循环倒计时。
如果我在一开始就把它设置为1,并且OrdersTotal()>0,那么我就让它检查交易,如果(.......> ||.......> ){做循环....