Ema Cross! - 页 4 1234567891011...86 新评论 Ahmed Soliman 2006.02.06 17:29 #31 Ema Cross版本? SpecII: 你好。我从EMACross D1 TF中进行的前瞻性测试 欢呼声 你好,SpecII。 非常感谢您与我们分享! 您使用的EMA_CROSS的版本是什么? Ahmed Soliman 2006.02.06 17:59 #32 多头对! SpecII: 嗨,Codersguru我使用的是SL版本,但我已经修改了多对的代码,并对双倍手进行了错误处理。 我稍后将修复双倍手的错误。 谢谢 再次感谢!我可以看看你的多头交易的代码吗? SpecII 2006.02.06 18:34 #33 codersguru: 再次感谢!我可以看看你的多对代码吗? 你好,我把代码贴出来了。它是正确的吗? 谢谢 //+------------------------------------------------------------------+ //| EMA_CROSS.mq4 | //| Coders Guru | //| https://www.forex-tsd.com | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| TODO: Add Money Management routine | //+------------------------------------------------------------------+ #property copyright "Coders Guru" #property link "https://www.forex-tsd.com" //---- input parameters extern double TakeProfit=130; extern double Lots=1; extern double TrailingStop=20; extern int ShortEma = 10; extern int LongEma = 80; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } int Crossed (double line1 , double line2) { static int last_direction = 0; static int current_direction = 0; //Don't work in the first load, wait for the first cross! static bool first_time = true; if(first_time == true) { first_time = false; return (0); } if(line1>line2)current_direction = 1; //up if(line1<line2)current_direction = 2; //down if(current_direction != last_direction) //changed { last_direction = current_direction; return (last_direction); } else { return (0); //not changed } } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int OrdersPerSymbol=0; //---- int cnt, ticket; double SEma, LEma; if(Bars<100) { Print("bars less than 100"); return(0); } if(TakeProfit<10) { Print("TakeProfit less than 10"); return(0); // check TakeProfit } OrdersPerSymbol=0; for(cnt=OrdersTotal();cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol()==Symbol() ) { OrdersPerSymbol++; } } SEma = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0); LEma = iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,0); static int isCrossed = 0; isCrossed = Crossed (LEma,SEma); // total = OrdersTotal(); if(OrdersPerSymbol < 1) { if(isCrossed == 1) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"EMA_CROSS",12345,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } if(isCrossed == 2) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"EMA_CROSS",12345,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } return(0); } for(cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); //OrderPrint(); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()) { if(OrderType()==OP_BUY) // long position is opened { // should it be closed? /* REMOVED - Trailling stop only close if(isCrossed == 2) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position return(0); // exit } */ // check for trailing stop if(TrailingStop>0) { if(Bid-OrderOpenPrice()>Point*TrailingStop) { if(OrderStopLoss()<Bid-Point*TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green); return(0); } } } } else // go to short position { // should it be closed? /* REMOVED - Trailling stop only close if(isCrossed == 1) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position return(0); // exit } */ // check for trailing stop if(TrailingStop>0) { if((OrderOpenPrice()-Ask)>(Point*TrailingStop)) { if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); } //+------------------------------------------------------------------+ 如何编码? Ema Cross! 专业代写各种自动交易系统 SpecII 2006.02.06 18:42 #34 codersguru: 你好,SpecII。非常感谢您与我们分享! 你使用的EMA_CROSS是什么版本的? 嗨,Codersguru 我使用的是SL版本,但我已经修改了多对的代码,并对双倍手进行了修改。 我稍后将修复双倍手的错误。 欢呼声 newoptionz 2006.02.06 20:48 #35 逆向 对我来说,它看起来像一个反转。 代码被设置为当长EMA大于短EMA时买入 并在长线EMA移动到短线EMA以下时卖出。 我想这就是它成功的原因--因为人们被教导要在其他地方做完全相反的事情。 我也得到了多个交易,在EA的第一个版本中,我仍然要尝试第二个版本。 这是由于历史数据不正确造成的吗? 我今晚将进行测试。 谢谢 newoptionz 2006.02.06 21:01 #36 所以 因此,当Sema移动到Lema以下时,人们会买入 当Sema移动到Lema之上时卖出。 还是我又糊涂了? newoptionz 2006.02.07 11:12 #37 当我连接EA时 当我把EA连接到图表上时,我得到一个 "X"--没有笑脸--在EA上或在我身上。 我已经开始工作了--不得不点击播放专家按钮。 BrunoFX 2006.02.07 19:51 #38 你好。 我正在用一个账户演示来测试这个EA。 第一印象是非常好。 目前,尽管有4个开仓图,但它只开了一个交易对。 但随着每次交易的开启,它都在向好的积极方向发展,并得到了恢复。 我在声明中附上昨天以来的数据。 附加的文件: statement-ema-cross-daily-07.02.06.htm 6 kb statement-emacross.07.02.2006.htm 7 kb Kale 2006.02.07 19:53 #39 BrunoFX: 你好,我正在用一个账户演示来测试这个EA。 第一印象非常好。 目前,尽管有4个开仓图,但它只开了一个交易对。 但是,随着每次交易的开启,它都会向好的方向发展,并且会停止。 我在声明中附上昨天以来的数据。 我修改了这个EA以使用神奇的数字。这将在同一时间提供多个货币对的交易。改变魔数参数,使其对每个货币对都是不同的。 附加的文件: ema_cross_2_1.mq4 6 kb BrunoFX 2006.02.07 20:03 #40 你好,Kalenzo。 谢谢你的这一修改,总之也是快速有效的,加油吧 1234567891011...86 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Ema Cross版本?
你好。
我从EMACross D1 TF中进行的前瞻性测试
欢呼声你好,SpecII。
非常感谢您与我们分享!
您使用的EMA_CROSS的版本是什么?
多头对!
嗨,Codersguru
我使用的是SL版本,但我已经修改了多对的代码,并对双倍手进行了错误处理。
我稍后将修复双倍手的错误。
谢谢再次感谢!我可以看看你的多头交易的代码吗?
再次感谢!我可以看看你的多对代码吗?
你好,我把代码贴出来了。它是正确的吗?
谢谢
//| EMA_CROSS.mq4 |
//| Coders Guru |
//| https://www.forex-tsd.com |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| TODO: Add Money Management routine |
//+------------------------------------------------------------------+
#property copyright "Coders Guru"
#property link "https://www.forex-tsd.com"
//---- input parameters
extern double TakeProfit=130;
extern double Lots=1;
extern double TrailingStop=20;
extern int ShortEma = 10;
extern int LongEma = 80;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
int Crossed (double line1 , double line2)
{
static int last_direction = 0;
static int current_direction = 0;
//Don't work in the first load, wait for the first cross!
static bool first_time = true;
if(first_time == true)
{
first_time = false;
return (0);
}
if(line1>line2)current_direction = 1; //up
if(line1<line2)current_direction = 2; //down
if(current_direction != last_direction) //changed
{
last_direction = current_direction;
return (last_direction);
}
else
{
return (0); //not changed
}
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int OrdersPerSymbol=0;
//----
int cnt, ticket;
double SEma, LEma;
if(Bars<100)
{
Print("bars less than 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit less than 10");
return(0); // check TakeProfit
}
OrdersPerSymbol=0;
for(cnt=OrdersTotal();cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol() )
{
OrdersPerSymbol++;
}
}
SEma = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0);
LEma = iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,0);
static int isCrossed = 0;
isCrossed = Crossed (LEma,SEma);
// total = OrdersTotal();
if(OrdersPerSymbol < 1)
{
if(isCrossed == 1)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"EMA_CROSS",12345,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
if(isCrossed == 2)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"EMA_CROSS",12345,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
//OrderPrint();
if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) // long position is opened
{
// should it be closed?
/* REMOVED - Trailling stop only close
if(isCrossed == 2)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
return(0); // exit
}
*/
// check for trailing stop
if(TrailingStop>0){
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else // go to short position
{
// should it be closed?
/* REMOVED - Trailling stop only close
if(isCrossed == 1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
return(0); // exit
}
*/
// check for trailing stop
if(TrailingStop>0){
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
//+------------------------------------------------------------------+你好,SpecII。
非常感谢您与我们分享!
你使用的EMA_CROSS是什么版本的?嗨,Codersguru
我使用的是SL版本,但我已经修改了多对的代码,并对双倍手进行了修改。
我稍后将修复双倍手的错误。
欢呼声
逆向
对我来说,它看起来像一个反转。
代码被设置为当长EMA大于短EMA时买入
并在长线EMA移动到短线EMA以下时卖出。
我想这就是它成功的原因--因为人们被教导要在其他地方做完全相反的事情。
我也得到了多个交易,在EA的第一个版本中,我仍然要尝试第二个版本。 这是由于历史数据不正确造成的吗?
我今晚将进行测试。
谢谢
所以
因此,当Sema移动到Lema以下时,人们会买入
当Sema移动到Lema之上时卖出。
还是我又糊涂了?
当我连接EA时
当我把EA连接到图表上时,我得到一个 "X"--没有笑脸--在EA上或在我身上。
我已经开始工作了--不得不点击播放专家按钮。
你好。
我正在用一个账户演示来测试这个EA。 第一印象是非常好。 目前,尽管有4个开仓图,但它只开了一个交易对。 但随着每次交易的开启,它都在向好的积极方向发展,并得到了恢复。 我在声明中附上昨天以来的数据。
你好,我正在用一个账户演示来测试这个EA。 第一印象非常好。 目前,尽管有4个开仓图,但它只开了一个交易对。 但是,随着每次交易的开启,它都会向好的方向发展,并且会停止。 我在声明中附上昨天以来的数据。
我修改了这个EA以使用神奇的数字。这将在同一时间提供多个货币对的交易。改变魔数参数,使其对每个货币对都是不同的。
你好,Kalenzo。
谢谢你的这一修改,总之也是快速有效的,加油吧