论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:1894回复:9
能悟空
注册时间2005-07-09
友爱维和奖图文并茂奖
[MT4-EA]请问哪一位编程高手可以解释一下这个EA的进出场规矩?
楼主发表于:2013-07-02 03:56只看该作者倒序浏览
1楼 电梯直达
电梯直达
我对MT4编程不熟悉,想了解和优化此EA,不知道哪一位编程高手可以解释其进出场规矩? 先行谢谢! extern int MagicNumber=10001; extern double Lots =0.01; extern double StopLoss=200; extern double TakeProfit=50; extern int TrailingStop=0; extern int Slippage=3; //+------------------------------------------------------------------+ // expert start function //+------------------------------------------------------------------+ int start() { double MyPoint=Point; if(Digits==3 || Digits==5) MyPoint=Point*10; double TheStopLoss=0; double TheTakeProfit=0; if( TotalOrdersCount()==0 ) { int result=0; if((iBands(NULL,PERIOD_M5,10,2,2,PRICE_CLOSE,MODE_LOWER,2)www.ForexEAdvisor.com",MagicNumber,0,Blue); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint; OrderSelect(result,SELECT_BY_TICKET); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } if((iStochastic(NULL,PERIOD_M5,40,5,1,MODE_EMA,1,MODE_MAIN,2)>iStochastic(NULL,0,40,5,1,MODE_EMA,1,MODE_SIGNAL,1))) // Here is your open Sell rule { result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Red); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint; OrderSelect(result,SELECT_BY_TICKET); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } } for(int cnt=0;cntiStochastic(NULL,0,40,5,1,MODE_EMA,1,MODE_SIGNAL,1))) //here is your close buy rule { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red); } if(TrailingStop>0) { if(Bid-OrderOpenPrice()>MyPoint*TrailingStop) { if(OrderStopLoss()iStochastic(NULL,0,40,5,1,MODE_EMA,1,MODE_MAIN,1))) // here is your close sell rule { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,Red); } if(TrailingStop>0) { if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop)) { if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); } int TotalOrdersCount() { int result=0; for(int i=0;i
TK29帖子1楼右侧xm竖版广告90-240
个性签名

波动心不动,心动波不动,心动波也动!

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
wisonli
注册时间2009-03-19
发表于:2013-07-02 10:38只看该作者
2楼
band下轨收缩 stochastic信号线 大于 主线,两个条件满足开多,平多条件:收盘出现stochastic死叉
能悟空
注册时间2005-07-09
友爱维和奖图文并茂奖
楼主发表于:2013-07-02 18:34只看该作者
3楼
wisonli 发表于 2013-7-2 18:38
static/image/common/back.gif band下轨收缩 stochastic信号线 大于 主线,两个条件满足开多,平多条件:收盘出现stochastic死叉
谢谢你的解释! 请问布林带收缩和Stochastic信号线是与5分钟图相比吗?平仓也是以5分钟为准?还是以当下的图为准? 再次感谢。
wisonli
注册时间2009-03-19
发表于:2013-07-03 01:47只看该作者
4楼
不用谢。是与5分钟图相比,iStochastic(NULL,PERIOD_M5
这个限制在5分钟了 ,参数为0 代表当前周期
能悟空
注册时间2005-07-09
友爱维和奖图文并茂奖
楼主发表于:2013-07-03 03:26只看该作者
5楼
wisonli 发表于 2013-7-3 09:47
static/image/common/back.gif 不用谢。是与5分钟图相比,iStochastic(NULL,PERIOD_M5 这个限制在5分钟了 ,参数为0 代表当前周期
好的,明白,感谢! 另外,如果符合了进场条件(买或卖),等平仓了再开新仓,应该如何作出修改呢?因为目前的编程,只要还符合进场条件,就会一直执行开仓。
wisonli
注册时间2009-03-19
发表于:2013-07-03 04:04只看该作者
6楼
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES); if (OrderMagicNumber()==MagicNumber) result++;
orderselect()用错了。那样调用实际上ordermagicnumber()不知道判断哪个订单的 改成:if(orderselect(i,SELECT_BY_POS ,MODE_TRADES)==true) {if (OrderMagicNumber()==MagicNumber) result++;}
能悟空
注册时间2005-07-09
友爱维和奖图文并茂奖
楼主发表于:2013-07-03 05:39只看该作者
7楼
wisonli 发表于 2013-7-3 12:04
static/image/common/back.gif OrderSelect(i,SELECT_BY_POS ,MODE_TRADES); if (OrderMagicNumber()==MagicNumber) result++;
嗯嗯,好,感谢啊! 很想学这编程,可是时间上不允许,只好劳烦您了。 再次感谢!
能悟空
注册时间2005-07-09
友爱维和奖图文并茂奖
楼主发表于:2013-07-03 07:20只看该作者
8楼
wisonli 发表于 2013-7-3 12:04
static/image/common/back.gif OrderSelect(i,SELECT_BY_POS ,MODE_TRADES); if (OrderMagicNumber()==MagicNumber) result++;
请问如果出现开仓执行浮窗,但是不想下单,按了取消,可是新的浮窗不断出现,应该如何处理才不会发生呢?
wisonli
注册时间2009-03-19
发表于:2013-07-03 13:24只看该作者
9楼
static datetime lasttime; if(Time[0]==lasttime) return; lasttime=Time[0]; 把这个代码加到 start()主程序 第一句。这样就只会在新K线出现时运行一次开仓判断了,不知道是不是你要的。
能悟空
注册时间2005-07-09
友爱维和奖图文并茂奖
楼主发表于:2013-07-04 02:37只看该作者
10楼
wisonli 发表于 2013-7-3 21:24
static/image/common/back.gif static datetime lasttime; if(Time[0]==lasttime) return; lasttime=Time[0];
嗯嗯,好。应该是可以了,谢谢啊!
个性签名

波动心不动,心动波不动,心动波也动!

本站免责声明:

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

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

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

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

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

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