论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:3388回复:3
wscr5470
注册时间2007-08-11
均线交叉止赢
楼主发表于:2009-01-08 02:42只看该作者倒序浏览
1楼 电梯直达
电梯直达
下面是两个均线交叉止赢的mq4文件源码,楼主能不能帮我看一下啊?我想把它改成一小时图EM5和EM20交叉就止赢的... 。谢谢了! //+------------------------------------------------------------------+ //| 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); } //+------------------------------------------------------------------+
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
wscr5470
注册时间2007-08-11
楼主发表于:2009-01-08 02:43只看该作者
2楼
//+------------------------------------------------------------------+ //| EMA_CROSS_CONTEST_HEDGED.mq4 | //| Coders Guru | //| http://www.forex-tsd.com | //+------------------------------------------------------------------+ #property copyright "Coders Guru" #property link "http://www.forex-tsd.com" //---- Trades limits extern double TakeProfit=150; extern double TrailingStop=40; extern double StopLoss=150; extern int HedgeLevel=6; extern bool UseClose=true; extern bool UseMACD=true; extern double Expiration=7200; extern int ShortEma=4; extern int LongEma=24; extern int CurrentBar=1; extern double Lots=0.10; string ExpertName="EMA_CROSS_CONTEST_HEDGED"; int Magic=20060328; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------ /*bool NewBar(int bar) { static datetime lastbar=0; datetime curbar = Time[bar]; if(lastbar!=curbar) { lastbar=curbar; return (true); } else { return(false); } } */ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int Crossed() { double EmaLongPrevious=iMA(NULL,0,LongEma,0,MODE_EMA, PRICE_CLOSE, CurrentBar+1); double EmaLongCurrent=iMA(NULL,0,LongEma,0,MODE_EMA, PRICE_CLOSE, CurrentBar); double EmaShortPrevious=iMA(NULL,0,ShortEma,0,MODE_EMA, PRICE_CLOSE, CurrentBar+1); double EmaShortCurrent=iMA(NULL,0,ShortEma,0,MODE_EMA, PRICE_CLOSE, CurrentBar); //---- if (EmaShortPreviousEmaLongCurrent) return(1); //up trend if (EmaShortPrevious>EmaLongPrevious && EmaShortCurrent=0 ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*MarketInfo(Symbol(),MODE_POINT),Ask+TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + 3600,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); //---- OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+HedgeLevel*MarketInfo(Symbol(),MODE_POINT),3,(Ask+HedgeLevel*MarketInfo(Symbol(),MODE_POINT))-StopLoss*MarketInfo(Symbol(),MODE_POINT),(Ask+HedgeLevel*MarketInfo(Symbol(),MODE_POINT))+TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + Expiration,Blue); OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+(HedgeLevel+2)*MarketInfo(Symbol(),MODE_POINT),3,(Ask+(HedgeLevel+2)*MarketInfo(Symbol(),MODE_POINT))-StopLoss*MarketInfo(Symbol(),MODE_POINT),(Ask+(HedgeLevel+2)*MarketInfo(Symbol(),MODE_POINT))+TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + Expiration,Blue); OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+(HedgeLevel+3)*MarketInfo(Symbol(),MODE_POINT),3,(Ask+(HedgeLevel+3)*MarketInfo(Symbol(),MODE_POINT))-StopLoss*MarketInfo(Symbol(),MODE_POINT),(Ask+(HedgeLevel+3)*MarketInfo(Symbol(),MODE_POINT))+TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + Expiration,Blue); OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+(HedgeLevel+4)*MarketInfo(Symbol(),MODE_POINT),3,(Ask+(HedgeLevel+4)*MarketInfo(Symbol(),MODE_POINT))-StopLoss*MarketInfo(Symbol(),MODE_POINT),(Ask+(HedgeLevel+4)*MarketInfo(Symbol(),MODE_POINT))+TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + Expiration,Blue); //---- return(0); } if(Crossed ()==2 && macd<=0 ) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*MarketInfo(Symbol(),MODE_POINT),Bid-TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,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()); //---- OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-HedgeLevel*MarketInfo(Symbol(),MODE_POINT),3,(Bid-HedgeLevel*MarketInfo(Symbol(),MODE_POINT))+StopLoss*MarketInfo(Symbol(),MODE_POINT),(Bid-HedgeLevel*MarketInfo(Symbol(),MODE_POINT))-TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + Expiration,Blue); OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-(HedgeLevel+1)*MarketInfo(Symbol(),MODE_POINT),3,(Bid-(HedgeLevel+2)*MarketInfo(Symbol(),MODE_POINT))+StopLoss*MarketInfo(Symbol(),MODE_POINT),(Bid-(HedgeLevel+2)*MarketInfo(Symbol(),MODE_POINT))-TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + Expiration,Blue); OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-(HedgeLevel+2)*MarketInfo(Symbol(),MODE_POINT),3,(Bid-(HedgeLevel+3)*MarketInfo(Symbol(),MODE_POINT))+StopLoss*MarketInfo(Symbol(),MODE_POINT),(Bid-(HedgeLevel+3)*MarketInfo(Symbol(),MODE_POINT))-TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + Expiration,Blue); OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-(HedgeLevel+3)*MarketInfo(Symbol(),MODE_POINT),3,(Bid-(HedgeLevel+4)*MarketInfo(Symbol(),MODE_POINT))+StopLoss*MarketInfo(Symbol(),MODE_POINT),(Bid-(HedgeLevel+4)*MarketInfo(Symbol(),MODE_POINT))-TakeProfit*MarketInfo(Symbol(),MODE_POINT),ExpertName,Magic,CurTime() + Expiration,Blue); return(0); } return(0); } for(cnt=0;cnt0) { if(Bid-OrderOpenPrice()>MarketInfo(Symbol(),MODE_POINT)*TrailingStop) { if(OrderStopLoss()0) { if((OrderOpenPrice()-Ask)>(MarketInfo(Symbol(),MODE_POINT)*TrailingStop)) { if((OrderStopLoss()>(Ask+MarketInfo(Symbol(),MODE_POINT)*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MarketInfo(Symbol(),MODE_POINT)*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); } //+------------------------------------------------------------------+
mty81
注册时间2008-12-07
发表于:2009-01-28 18:06只看该作者
3楼
兄弟姐妹们都加油把
一修
注册时间2010-02-25

本站免责声明:

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

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

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

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

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

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