智能交易的缺点分析
试验了均线上下变化为依据的智能交易系统测试。
double diMA0=iMA(NULL,5,5,0,MODE_EMA,PRICE_MEDIAN,0);
double diMA1=iMA(NULL,5,10,0,MODE_EMA,PRICE_MEDIAN,0);
double diMA2=iMA(NULL,5,20,0,MODE_EMA,PRICE_MEDIAN,0);
double diMA3=iMA(NULL,5,288,0,MODE_EMA,PRICE_MEDIAN,0);
//四条均线
lFlagBuyOpen = (diMA0>diMA1 && diMA2diMA3);
lFlagBuyClose = False;
lFlagSellClose = False;
//当条件满足时执行开单,否则放弃。
for (int i=0; i 0 && OrderMagicNumber() != MAGIC)
lMagic = false;
//只做一张单,多于一张放弃。
结果发现开单并不是理想位置开,并因为此单未了结(止损或止盈),妨碍下一个理想位置的开单。
2楼
复盘图象,以下是有利的表现形式,符合编程思想。
2030-3.gif
2030-2.gif
2030.gif



发表于:2010-03-10 04:09只看该作者
3楼
复杂点的多周期 多条件的 EA 你能写出来吗
帮我写一个吧
挣的是卖白菜的钱,操的是卖白粉的心!!
一年不再3单~!!HOHO
4楼
我现只在别人的程序上作参数改动来试,有现成的太多了,没必要再写。更复杂条件,写应该是可以的,BOOL而已。
做好一单再一单,以利生利不简单。
5楼
继续试验。以下是一个很不理想的结晶论,已空形势下面对更空,程序不做空单。就是因为在长期均线MA3下方妨碍了开单。
20100308GBPJPY5min.gif

做好一单再一单,以利生利不简单。
发表于:2010-03-10 05:41只看该作者
6楼
多均线会不会太复杂?大道至简,个人觉得简单的2均线或者3均线比较合适。看《海龟法则》似乎2均线表现还是最优异的。当然哈,我也只是粗陋的想法,对这方面没有研究,所知有限。
去年记得有一场程式化交易峰会,后来有事情没有去参加,如果去了今天能多谈点。呵呵,不过老实说,实在不看好这些东西哈,人心的东西,用程序去描述,总觉得有所欠缺
发表于:2010-03-10 05:48只看该作者
7楼
智能交易就是把自己原本就能够盈利的交易模式自动化,好处是解放人和保证纪律执行。
但是谁也不能指望原本赔钱,挂到电脑上就稳定盈利了。
[ 本帖最后由 Livingston 于 2010-3-10 13:49 编辑 ]
只投机,不赌博。
毁誉,墓地,不靠谱。
8楼
// check for long position (BUY) possibility
if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,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);
}
// check for short position (SELL) possibility
if(MacdCurrent>0 && MacdCurrentSignalPrevious &&
MacdCurrent>(MACDOpenLevel*Point) && MaCurrent0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
}
else Print("Error opening SELL order : ",GetLastError());
return(0);
}
return(0);
}
这样有MACD判据,也不能为帐户带来多大利润。
做好一单再一单,以利生利不简单。
9楼
MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);
如果将以上的 12、26、9分别改为6、13、3可能会为你争得更多机会。因为反应更敏锐。
做好一单再一单,以利生利不简单。
发表于:2010-03-10 06:02只看该作者
10楼
很好的尝试
发表于:2010-03-10 06:47只看该作者
11楼
那不看技术指标,只看形态加均线的怎么弄啊?
韬客社区www.talkfx.co
12楼
extern double TakeProfit = 50; //盈利目标点数
extern double Lots = 0.1; //每单入场的手数
extern double TrailingStop = 30; //追踪止损的点数
extern double MACDOpenLevel=3; //MACD开仓的参考位置
extern double MACDCloseLevel=2; //MACD出场的参考位置
extern double MATrendPeriod=26; //条件中使用的MA均线的周期数
MACDOpenLevel变量是一个用户指定变量,它不可能改变程序文本,但是却有很大的灵活性。参考位置?不明为什么是3是2?。其实这些都可以改回你认为好的值,网上查没见有人说改和改的影响。
做好一单再一单,以利生利不简单。
13楼
做好一单再一单,以利生利不简单。
发表于:2010-03-11 12:37只看该作者
14楼
这是憋了1个月的结果,M30,1年的数据复盘。
写了200多行代码。。
还在继续憋。。
ea.jpg
