Ema Cross! - 页 55 1...484950515253545556575859606162...86 新评论 dedywind 2006.04.04 11:09 #541 鄂玛_十字架_2 亲爱的codersguru。 感谢你的EA和你的逆势概念。 即使是第一次,我和我的朋友也对这种逆势方法持怀疑态度,但在研究和运行测试您的EA后,我们对结果感到惊讶。 我们仍在继续用H1时间框架测试EMA_CROSS_2,但我们在2006年4月3日的欧元/美元货币对 中发现了一些有趣的现象,在交叉下跌后,该EA开出了卖出头寸而不是买入头寸....,这是正常行为吗?(见附件) 谢谢你... 晓风 附加的文件: euremacross2.gif 50 kb detailedstatementemacross_2.htm 27 kb Ahmed Soliman 2006.04.04 14:56 #542 7 嗨,floks。 我已经为比赛写了10个EA,但它们太多,无法测试。 因此,我将选择其中的3个参加比赛,并在这里提交7个 ,它们在前面的测试中都获得了利润。 希望你喜欢! pikachucom 2006.04.04 16:21 #543 编码员。 我将回去阅读完整的主题,但我不记得是否已经解决了这个问题。 当你关闭平台时,无论是InterbanFX,还是MT4,等等,我注意到,如果我不在一个位置,而我有最新的MA EA,它会自动执行交易。 我们怎样才能避免每次重新打开软件时发生这种情况。 谢谢 [删除] 2006.04.04 16:58 #544 新手需要帮助的MA交叉EA... codersguru: amarnath,这是我的报告(附件)! 这是我使用的版本(附后)! 我想我们不能只在回溯测试中接力。但在我的测试中,我使用了从2005/01/01到今天的日期! 有没有人预先测试过MoneyMaker? 嗨,CodersGuru。 我对您原来的EMA_Cross EA进行了一些修改,使之与5 EMA和10 LWMA交叉,并带有RSI和随机指标过滤器。 虽然这个EA可以正确地打开长线和短线订单并关闭它们,但它不允许我同时关闭一个头寸,然后立即打开一个相反方向的新头寸(例如:真正的 "摆动 "交易技术)。 因此,我失去了大量的潜在波段交易。 此外,有时EMA1>WMA1和EMA2<WMA2的交叉条件可能不会触发买入,如果过去一段时间的两条移动平均线是相同的数值或相互之间在1到2个点之内。 因此我想在代码中加入寻找这种条件(经常发生)来触发进场。 我不是一个程序员,所以我希望你能帮我想出如何做这个。 我在下面附上了我的代码以及作为附件的MQ4文件。 如果有任何帮助,我将非常非常感激 //+----------------------------------------------------------------------------------------+ //| 5/10MA交叉,RSI和Stoch过滤器|。 //| Ian Boersma - 2006年版权所有。 //| | //+----------------------------------------------------------------------------------------+ #property copyright "Ian Boersma" (版权所有) //---- 输入参数 extern double TakeProfit=100; extern double Lots=1; extern double TrailingStop=35; 外置int ShortEma=5。 extern int LongWma = 10; 外置 int RSIPer = 14; 外置 int StochK = 10; 外置 int StochD = 3; extern int StochSlow = 3; //+------------------------------------------------------------------+ //|专家初始化函数 //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|专家的去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| 专家启动功能 + //|这是我们初始化内部变量供程序使用的地方 + | | //+------------------------------------------------------------------+ int start() { //---- //LotCalc的声明 int cnt, ticket, total; //MAs和过滤器变量的声明 double RSI; double Stoch; 双 EMA1,EMA2,WMA1,WMA2; 如果(Bars<100) { Print("小于100的条数")。 return(0); } 如果(TakeProfit<10) { Print("TakeProfit小于10")。 return(0); // 检查TakeProfit } //MA和过滤变量的定义 EMA1 = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0)。 WMA1 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,0); EMA2 = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1); WMA2 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,1); RSI = iRSI(NULL,0,RSIPer,PRICE_CLOSE,0)。 Stoch = iStochastic(NULL,0,StochK,StochD,StochSlow,MODE_SMA,0,MODE_MAIN,0)。 int isCrossed = 0; 如果(EMA1 > WMA1 && EMA2 = 50 && Stoch < 80) {isCrossed = 1; } 如果(EMA1 = WMA2 && RSI 20) {isCrossed = 2; } //我们检查交易终端,看它是否为空 total = OrdersTotal(); if(total < 1) //如果交易终端是空的。 { if(isCrossed == 1) //如果十字星表示长线波动...... { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,0,Ask+TakeProfit*Point, "My EA",12345,0,Yellow)。 如果(ticket>0) { 如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY order opened : ",OrderOpenPrice()); } 否则 Print("打开BUY订单错误。",GetLastError())。 return(0); } if(isCrossed == 2) //如果十字星表示空头摆动。 { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,0,Bid-TakeProfit*Point, "My EA",12345,0,Red) 。 如果(ticket>0) { 如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("Sell order opened : ",OrderOpenPrice()); } 否则 Print("打开卖出订单错误。",GetLastError())。 return(0); } return(0); } //位置退出函数... for(cnt=0;cnt<total;cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。 OrderPrint()。 如果(OrderType()<=OP_SELL && OrderSymbol()==Symbol() { 如果(OrderType()==OP_BUY) // 多头头寸被打开 { // 检查我们是否有一个空头交叉条件... if(isCrossed == 2) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // 关闭头寸 return(0); // 退出 } // 检查我们的追踪止损,看是否需要调整 如果(TrailingStop>0){ 如果(Bid-OrderOpenPrice()>Point*TrailingStop) { 如果(OrderStopLoss()<Bid-Point*TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green) 。 返回(0)。 } } } } 否则 // 转入空头头寸 { // 检查我们是否有一个长的交叉条件... 如果(isCrossed == 1) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // 关闭头寸 return(0); // 退出 } // 检查我们的追踪止损,看是否需要调整。 如果(TrailingStop>0){ 如果((OrderOpenPrice()-Ask)>(Point*TrailingStop)) { 如果((OrderStopLoss()>(Ask+Point*TrailingStop))|| (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red) 。 返回(0)。 } } } } } } return(0); } //+------------------------------------------------------------------+ 附加的文件: 5-10_ma_cross_w_rsi_stoch_filter_ea.mq4 6 kb 如何编码? 原始想法 Ema Cross! Ahmed Soliman 2006.04.04 17:02 #545 iboersma: 嗨,CodersGuru。 我对你原来的EMA_Cross EA进行了一些修改,使其与5 EMA和10 LWMA交叉,并带有RSI和Stochastic过滤器。虽然这个EA可以正确地打开长线和短线订单并关闭它们,但它不允许我同时关闭一个头寸,然后立即打开一个相反方向的新头寸(例如:真正的 "波段 "交易技术)。因此,我失去了大量的潜在波段交易。此外,有时EMA1>WMA1和EMA2<WMA2的交叉条件可能不会触发买入,如果过去一段时间的两条移动平均线是相同的数值或相互之间在1到2个点之内。因此我想在代码中加入寻找这种条件(经常发生)来触发进场。我不是一个程序员,所以我希望你能帮我想出办法来。.... 我会检查 的 ! [删除] 2006.04.04 17:17 #546 codersguru: 我会检查的 ! 谢谢你的帮助... - 伊恩 [删除] 2006.04.04 17:31 #547 codersguru: 我会检查的! 编码员大师。 我附上了我的EA的更新版本,因为我发现了一个确定 "isCrossed "条件的问题(我试图将RSI和Stoch过滤器添加到原来的isCrossed条件中,而不是将其作为一个限定符添加到进入一个位置。 希望这更有意义...... - 伊恩 附加的文件: 5-10_ma_cross_w_rsi_stoch_filter_ea_1.mq4 6 kb Ahmed Soliman 2006.04.04 17:39 #548 iboersma: 谢谢你的帮助...... - Ian 我认为第1点是有效的(当收盘买入时打开卖出,当收盘卖出时打开买入),请看附件中的测试。 附加的文件: strategytester_9.htm 54 kb [删除] 2006.04.04 18:43 #549 codersguru: 我认为第1点是有效的(当收盘买入时打开卖出,当收盘卖出时打开买入),请看附件中的测试。 很好。 这看起来绝对是我正在寻找的斜率和反向类型的系统(尽管净利润看起来不是很令人鼓舞...:) 我已经手动使用这个系统一周左右了,取得了一些非常令人鼓舞的结果,所以得到完整的回测 数据,看看我是否发现了什么,或者只是运气好,这将是很有趣的事情...... - 伊恩 Ahmed Soliman 2006.04.06 19:00 #550 gody6000: 这是第2周了,http://9q9q.com/March/1144348631.zip 对不起!但这是什么? 1...484950515253545556575859606162...86 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
鄂玛_十字架_2
亲爱的codersguru。
感谢你的EA和你的逆势概念。
即使是第一次,我和我的朋友也对这种逆势方法持怀疑态度,但在研究和运行测试您的EA后,我们对结果感到惊讶。
我们仍在继续用H1时间框架测试EMA_CROSS_2,但我们在2006年4月3日的欧元/美元货币对 中发现了一些有趣的现象,在交叉下跌后,该EA开出了卖出头寸而不是买入头寸....,这是正常行为吗?(见附件)
谢谢你...
晓风
7
嗨,floks。
我已经为比赛写了10个EA,但它们太多,无法测试。
因此,我将选择其中的3个参加比赛,并在这里提交7个
,它们在前面的测试中都获得了利润。
希望你喜欢!
编码员。
我将回去阅读完整的主题,但我不记得是否已经解决了这个问题。
当你关闭平台时,无论是InterbanFX,还是MT4,等等,我注意到,如果我不在一个位置,而我有最新的MA EA,它会自动执行交易。
我们怎样才能避免每次重新打开软件时发生这种情况。
谢谢
新手需要帮助的MA交叉EA...
amarnath,
这是我的报告(附件)!
这是我使用的版本(附后)!
我想我们不能只在回溯测试中接力。但在我的测试中,我使用了从2005/01/01到今天的日期!
有没有人预先测试过MoneyMaker?嗨,CodersGuru。
我对您原来的EMA_Cross EA进行了一些修改,使之与5 EMA和10 LWMA交叉,并带有RSI和随机指标过滤器。 虽然这个EA可以正确地打开长线和短线订单并关闭它们,但它不允许我同时关闭一个头寸,然后立即打开一个相反方向的新头寸(例如:真正的 "摆动 "交易技术)。 因此,我失去了大量的潜在波段交易。
此外,有时EMA1>WMA1和EMA2<WMA2的交叉条件可能不会触发买入,如果过去一段时间的两条移动平均线是相同的数值或相互之间在1到2个点之内。 因此我想在代码中加入寻找这种条件(经常发生)来触发进场。
我不是一个程序员,所以我希望你能帮我想出如何做这个。
我在下面附上了我的代码以及作为附件的MQ4文件。 如果有任何帮助,我将非常非常感激
//+----------------------------------------------------------------------------------------+
//| 5/10MA交叉,RSI和Stoch过滤器|。
//| Ian Boersma - 2006年版权所有。
//| |
//+----------------------------------------------------------------------------------------+
#property copyright "Ian Boersma" (版权所有)
//---- 输入参数
extern double TakeProfit=100;
extern double Lots=1;
extern double TrailingStop=35;
外置int ShortEma=5。
extern int LongWma = 10;
外置 int RSIPer = 14;
外置 int StochK = 10;
外置 int StochD = 3;
extern int StochSlow = 3;
//+------------------------------------------------------------------+
//|专家初始化函数
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|专家的去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| 专家启动功能 +
//|这是我们初始化内部变量供程序使用的地方 + | |
//+------------------------------------------------------------------+
int start()
{
//----
//LotCalc的声明
int cnt, ticket, total;
//MAs和过滤器变量的声明
double RSI;
double Stoch;
双 EMA1,EMA2,WMA1,WMA2;
如果(Bars<100)
{
Print("小于100的条数")。
return(0);
}
如果(TakeProfit<10)
{
Print("TakeProfit小于10")。
return(0); // 检查TakeProfit
}
//MA和过滤变量的定义
EMA1 = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0)。
WMA1 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,0);
EMA2 = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
WMA2 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,1);
RSI = iRSI(NULL,0,RSIPer,PRICE_CLOSE,0)。
Stoch = iStochastic(NULL,0,StochK,StochD,StochSlow,MODE_SMA,0,MODE_MAIN,0)。
int isCrossed = 0;
如果(EMA1 > WMA1 && EMA2 = 50 && Stoch < 80)
{isCrossed = 1;
}
如果(EMA1 = WMA2 && RSI 20)
{isCrossed = 2;
}
//我们检查交易终端,看它是否为空
total = OrdersTotal();
if(total < 1) //如果交易终端是空的。
{
if(isCrossed == 1) //如果十字星表示长线波动......
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,0,Ask+TakeProfit*Point, "My EA",12345,0,Yellow)。
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("BUY order opened : ",OrderOpenPrice());
}
否则 Print("打开BUY订单错误。",GetLastError())。
return(0);
}
if(isCrossed == 2) //如果十字星表示空头摆动。
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,0,Bid-TakeProfit*Point, "My EA",12345,0,Red) 。
如果(ticket>0)
{
如果(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))Print("Sell order opened : ",OrderOpenPrice());
}
否则 Print("打开卖出订单错误。",GetLastError())。
return(0);
}
return(0);
}
//位置退出函数...
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)。
OrderPrint()。
如果(OrderType()<=OP_SELL && OrderSymbol()==Symbol()
{
如果(OrderType()==OP_BUY) // 多头头寸被打开
{
// 检查我们是否有一个空头交叉条件...
if(isCrossed == 2)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // 关闭头寸
return(0); // 退出
}
// 检查我们的追踪止损,看是否需要调整
如果(TrailingStop>0){
如果(Bid-OrderOpenPrice()>Point*TrailingStop)
{
如果(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green) 。
返回(0)。
}
}
}
}
否则 // 转入空头头寸
{
// 检查我们是否有一个长的交叉条件...
如果(isCrossed == 1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // 关闭头寸
return(0); // 退出
}
// 检查我们的追踪止损,看是否需要调整。
如果(TrailingStop>0){
如果((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
如果((OrderStopLoss()>(Ask+Point*TrailingStop))|| (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red) 。
返回(0)。
}
}
}
}
}
}
return(0);
}
//+------------------------------------------------------------------+
嗨,CodersGuru。
我对你原来的EMA_Cross EA进行了一些修改,使其与5 EMA和10 LWMA交叉,并带有RSI和Stochastic过滤器。虽然这个EA可以正确地打开长线和短线订单并关闭它们,但它不允许我同时关闭一个头寸,然后立即打开一个相反方向的新头寸(例如:真正的 "波段 "交易技术)。因此,我失去了大量的潜在波段交易。
此外,有时EMA1>WMA1和EMA2<WMA2的交叉条件可能不会触发买入,如果过去一段时间的两条移动平均线是相同的数值或相互之间在1到2个点之内。因此我想在代码中加入寻找这种条件(经常发生)来触发进场。
我不是一个程序员,所以我希望你能帮我想出办法来。....
我会检查 的 !
我会检查的 !
- 伊恩
我会检查的!
编码员大师。
我附上了我的EA的更新版本,因为我发现了一个确定 "isCrossed "条件的问题(我试图将RSI和Stoch过滤器添加到原来的isCrossed条件中,而不是将其作为一个限定符添加到进入一个位置。
希望这更有意义......
- 伊恩
我认为第1点是有效的(当收盘买入时打开卖出,当收盘卖出时打开买入),请看附件中的测试。
我认为第1点是有效的(当收盘买入时打开卖出,当收盘卖出时打开买入),请看附件中的测试。
很好。 这看起来绝对是我正在寻找的斜率和反向类型的系统(尽管净利润看起来不是很令人鼓舞...:)
我已经手动使用这个系统一周左右了,取得了一些非常令人鼓舞的结果,所以得到完整的回测 数据,看看我是否发现了什么,或者只是运气好,这将是很有趣的事情......
- 伊恩
这是第2周了,http://9q9q.com/March/1144348631.zip
对不起!但这是什么?