我写的一个随机交易程序,可是并没有我预想的那样完全随机,请高手帮忙! 新评论 [删除] 2011.04.21 08:37 extern int zs=500; extern int zy=500; extern double Lots=1; int init() { return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if(OrdersTotal()<1) { int a=MathRand()%2; if(a>0) {OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-zs*Point,Ask+zy*Point,"suijibuy",16384,0,Green);} if(a==0) {OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+zs*Point,Bid-zy*Point,"suijisell",16384,0,Red);} //---- return(0); } //+------------------------------------------------------------------+ 以上的代码为了简便,我省略了下单的错我检错。 1 2011.03.21 00:00 buy 1 1.00 1.4168 1.4118 1.4218 0.00 100000.00 2 2011.03.21 17:37 t/p 1 1.00 1.4218 1.4118 1.4218 500.00 100500.00 3 2011.03.21 17:37 buy 2 1.00 1.4221 1.4171 1.4271 0.00 100500.00 4 2011.03.22 23:38 s/l 2 1.00 1.4171 1.4171 1.4271 -503.04 99996.96 5 2011.03.22 23:38 sell 3 1.00 1.4171 1.4221 1.4121 0.00 99996.96 6 2011.03.23 13:22 t/p 3 1.00 1.4121 1.4221 1.4121 490.87 100487.82 7 2011.03.23 13:22 sell 4 1.00 1.4118 1.4168 1.4068 0.00 100487.82 8 2011.03.24 07:06 t/p 4 1.00 1.4068 1.4168 1.4068 472.61 100960.43 .......................... 这是我的测试记录,测试的是2011.3.21 到 4.21 的欧元 一小时数据。我只复制了一部分。 现在有个问题,就是按照我的设想,我用的是随机交易, 也就是说,测试某段历史数据(3.21-4.21),每次测试出来的结果应该是不一样的, 而目前的情况是,我不管测试多少次,其结果是一样的,根本不是完全随机,所以我很无奈,是不是哪里出错了,还是随机没有写好。 举例,测试3.21 到 4.21 的欧元一小时历史数据,其结果应该是测试多次之后,第一单有可能是多单,或者有可能是空单,而现在的情况是 不管怎么测,结果都是,第一单永远是多单,后面的,第二单,第三单.......,每次测试都和前一次一样。所以,我想要的是完全的随机, 就是,随便以测试,其下单结果是不一样的。 各位大哥,帮帮忙!!!! Avalanche [ARCHIVE] Any rookie question, so as not to clutter up the forum. Professionals, don't pass by. Nowhere without you - 3. D Alembert Forex EA [删除] 2011.04.21 08:38 #1 我的联系QQ1601187939 cnyxj 2011.06.27 12:14 #2 兄弟,你要种一个随机种子呀,加MathSrand(),试试 [Supprimé] 2011.12.18 03:21 #3 楼上说的对,没有种子,就等于每次种子都是默认值,种子相同,结果就会想同。 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
extern int zs=500;
extern int zy=500;
extern double Lots=1;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(OrdersTotal()<1)
{
int a=MathRand()%2;
if(a>0)
{OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-zs*Point,Ask+zy*Point,"suijibuy",16384,0,Green);}
if(a==0)
{OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+zs*Point,Bid-zy*Point,"suijisell",16384,0,Red);}
//----
return(0);
}
//+------------------------------------------------------------------+
以上的代码为了简便,我省略了下单的错我检错。
1 2011.03.21 00:00 buy 1 1.00 1.4168 1.4118 1.4218 0.00 100000.00
2 2011.03.21 17:37 t/p 1 1.00 1.4218 1.4118 1.4218 500.00 100500.00
3 2011.03.21 17:37 buy 2 1.00 1.4221 1.4171 1.4271 0.00 100500.00
4 2011.03.22 23:38 s/l 2 1.00 1.4171 1.4171 1.4271 -503.04 99996.96
5 2011.03.22 23:38 sell 3 1.00 1.4171 1.4221 1.4121 0.00 99996.96
6 2011.03.23 13:22 t/p 3 1.00 1.4121 1.4221 1.4121 490.87 100487.82
7 2011.03.23 13:22 sell 4 1.00 1.4118 1.4168 1.4068 0.00 100487.82
8 2011.03.24 07:06 t/p 4 1.00 1.4068 1.4168 1.4068 472.61 100960.43
..........................
这是我的测试记录,测试的是2011.3.21 到 4.21 的欧元 一小时数据。我只复制了一部分。
现在有个问题,就是按照我的设想,我用的是随机交易, 也就是说,测试某段历史数据(3.21-4.21),每次测试出来的结果应该是不一样的,
而目前的情况是,我不管测试多少次,其结果是一样的,根本不是完全随机,所以我很无奈,是不是哪里出错了,还是随机没有写好。
举例,测试3.21 到 4.21 的欧元一小时历史数据,其结果应该是测试多次之后,第一单有可能是多单,或者有可能是空单,而现在的情况是
不管怎么测,结果都是,第一单永远是多单,后面的,第二单,第三单.......,每次测试都和前一次一样。所以,我想要的是完全的随机,
就是,随便以测试,其下单结果是不一样的。 各位大哥,帮帮忙!!!!