论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:855回复:0
eagle
注册时间2004-10-21
这是EMA-CROSS的代码,测MA-CROSS应该怎样改?
楼主发表于:2006-10-09 10:01只看该作者倒序浏览
1楼 电梯直达
电梯直达
--//+------------------------------------------------------------------+ //| EMA_CROSS.mq4 | //| Coders Guru | //| http://www.forex-tsd.com | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| TODO: Add Money Management routine | //+------------------------------------------------------------------+ #property copyright "Coders Guru" #property link "http://www.forex-tsd.com" //---- input parameters extern double TakeProfit = 20; extern double StopLoss = 30; extern double Lots = 2; extern double TrailingStop = 50; extern int ShortEma = 5; extern int LongEma = 60; //+------------------------------------------------------------------+ //| 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 cnt, ticket, total; 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 } //---- 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(total < 1) { if(isCrossed == 1) { ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask - StopLoss*Point, 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, Bid + StopLoss*Point, 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 < total; cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) { if(OrderType() == OP_BUY) // long position is opened { // 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 { // 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); } //+----------------------------------------------------------------+ [ 本帖最后由 eagle 于 2006-10-9 18:14 编辑 ]
TK29帖子1楼右侧xm竖版广告90-240
个性签名

Think big-Start small-Move fast

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]