作者walking (巫龙王之说)
看板ForeignEX
标题[心得]发表 外汇mt4 程式交易程式码. for EURUSD.
时间Fri Jan 29 12:05:37 2010
※ [本文转录自 Trading 看板]
作者: walking (巫龙王之说) 看板: Trading
标题: [心得]发表 外汇mt4 程式交易程式码. for EURUSD.
时间: Fri Jan 29 12:03:30 2010
前几天逛到的,抓来研究看看,
前1~2,用mt4跑测试,标的是 EURUSD ,绩效却是本金不断递减,
随便改一些参数,以及小部分程式码後,发现竟然是能稳定递增.
测试数据小节,固定下 0.1 手. 时间范围的选项:不打勾.
用H1跑,下单次数 150 多次,获利约 500 左右.
用M5跑,下单次数约 100多次,获利约300左右.
有些细节我还不是很清楚,算是抛砖引玉,有兴趣的欢迎切磋.
// 改自网友 "圣杯" 的范例 by Andrew Chen ,於 高雄.台湾.
//
[email protected]
// 2010/1/29
// 原文网址
http://articles.mql4.com/cn/570
// 原作者资讯 Sergey Kovalyov, Dnepropetrovsk (Ukraine),
[email protected],ICQ 64015987,
http://autograf.dp.ua/
extern int TakeP =11; // 获利
extern int StopL = 66; // 止损
extern int Distan = 12;
extern int Cls = 25;
extern int period_MA=16;
extern int Prots = 0;
//--------------------------------------------------------------------------------------------
int
Nom_bl,
Nom_sl,
total,
bl = 0,
sl = 0,
b = 0,
s = 0;
//--------------------------------------------------------------------------------------------
double
OP,
SL,
TP,
dist,
Level,
OP_bl,
OP_sl,
cls,
MA,
spred,
Lot;
int init()
{
Level=MarketInfo(Symbol(),MODE_STOPLEVEL);
Level=(Level+1)*Point;
SL=StopL*Point;
TP=Takep*Point;
dist=Distan*Point;
cls=Cls*Point;
spred=Ask-Bid;
return;
}
int start()
{
//============================================================================================
total=OrdersTotal();
bl=0;
sl=0;
b=0;
s=0;
//--------------------------------------------------------------------------------------------
for (int i=total; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS)==true &&
OrderSymbol()==Symbol())
{
//--------------------------------------------------------------------------------------------
if (OrderType()==OP_BUY)
{
b =1;
Close_B(OrderTicket(),OrderLots());
}
//--------------------------------------------------------------------------------------------
if (OrderType()==OP_SELL)
{
s =1;
Close_S(OrderTicket(),OrderLots());
}
//--------------------------------------------------------------------------------------------
if (OrderType()==OP_BUYLIMIT)
{
OP_bl=NormalizeDouble(OrderOpenPrice(),Digits);
Nom_bl=OrderTicket();
bl=1;
}
//--------------------------------------------------------------------------------------------
if (OrderType()==OP_SELLLIMIT)
{
OP_sl=NormalizeDouble(OrderOpenPrice(),Digits);
Nom_sl=OrderTicket();
sl=1;
}
//--------------------------------------------------------------------------------------------
}
}
//--------------------------------------------------------------------------------------------
MA = iMA(NULL,0, period_MA, 0,MODE_LWMA, PRICE_TYPICAL, 0);
Open_order() ;
//============================================================================================
return;
}
void Close_B(int Nomber, double lots)
{
if (NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=cls)
{
OrderClose( Nomber, lots, Bid, 1, Yellow);
b = 0;
}
return;
}
void Close_S(int Nomber, double lots)
{
if (NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=cls)
{
OrderClose( Nomber, lots, Ask, 1, Yellow);
s = 0;
}
return;
}
void Open_order()
{
if (b==0 && bl==0)
{
OP=MA-dist;
if(OP>Ask-Level) OP=Ask-Level;
OP=NormalizeDouble(OP,Digits);
OrderSend(Symbol(),OP_BUYLIMIT, Lots(),OP,3,OP-SL,OP+TP,"",0,0,Blue);// Open
bl=1;
}
if (s==0 && sl==0)
{
OP=MA+spred+dist;
if(OP<Bid+Level) OP=Bid+Level;
OP=NormalizeDouble(OP,Digits);
OrderSend(Symbol(),OP_SELLLIMIT,Lots(),OP,3,OP+SL,OP-TP,"",0,0,Red);
sl=1;
}
return;
}
double Lots()
{
Lot=0.11;
return(Lot);
}
--
如果要看 有语法亮度的版本,可到
http://groups.google.com/group/forex_base/web/%E8%81%96%E6%9D%AF+a1
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.81.196.201
※ 编辑: walking 来自: 219.81.196.201 (01/29 12:20)
1F:推 herculus6502:几点意见:1.下买单的判断没考虑spread 01/29 14:50
2F:→ herculus6502:2.这是一个单纯的trend reversal的策略,原出处是 01/29 14:51
3F:→ herculus6502:把它拿来作反面教材 01/29 14:52
难怪欧,还奇怪原版的 [获利]目标只设 5点.
另外,我只测11点,并没有测 10,12,13..等,说不定有更好的..
如果有不错的sample,还请推荐.
後来有跑一次,获利 11~16,停损 52~88的组合,其他不变,
其中分数较高的,大概是以获利 14,15,16, 等, 搭配停损 70~80上下的为主.
不过这次测试的 M5历史资料,只有半年左右, -_-"
4F:推 herculus6502:可以试着用matlab之类的程式把各参数对绩效作图看看 01/30 12:50
我後来发现 mt4 也有内建跑多组参的功能了,
真是吓人,本来才懒的一组一组测.还在想会不会有热心网友.. :p
不过输出结果,只能排序,如果要做进一步的各种分析,还要还要在想想..
另,它有内建 遗传基因演化的选项,但我还不太清楚一些选项意义.
※ 编辑: walking 来自: 219.80.142.187 (01/31 11:35)