作者walking (巫龙王之说)
看板Trading
标题[心得]发表 外汇mt4 程式交易程式码. for EURUSD.
时间Fri Jan 29 12:03:30 2010
前几天逛到的,抓来研究看看,
用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.1;
return(Lot);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.81.196.201
如果要看 有语法亮度的版本,可到
http://groups.google.com/group/forex_base/web/%E8%81%96%E6%9D%AF+a1
※ 编辑: walking 来自: 219.81.196.201 (01/29 12:10)
1F:推 Xcd15:thx 01/29 12:13
※ 编辑: walking 来自: 219.81.196.201 (01/29 12:20)
※ 编辑: walking 来自: 219.81.196.201 (01/29 12:23)
2F:推 tedinroc:有分享有推,不过回测时间过短,绩效参考价值不高 :P 01/29 12:42
3F:→ walking:其实mt4的程式交易我也算是新手,如有推荐的还请告知. 01/29 17:38
4F:推 MarketWizard:台湾人有改了原俄国人的程式吗? 01/29 19:37
5F:→ Ting1024:好强阿 01/30 00:08
6F:推 lovebeast:我不太喜欢mt4 01/30 15:55
7F:→ tedinroc:我也不喜欢MT4 XD 01/30 21:59
8F:→ walking:免费的,大概就mt4最强,又最普及. 超过6成外汇商有提供. 01/30 22:05
9F:→ walking:如有其他推荐的,再来说吧. (不然不就没得用啦) 01/30 22:06
10F:→ walking:外汇商直接提供 可自行修改程式交易的client,好像没几款. 01/30 22:10
11F:→ walking:就算没6成,也应该有超过5成. 上次看一个清单,满多有提供. 01/30 22:13
12F:→ tedinroc:很多外汇商提供不一定代表好,data不足是很大的问题 01/30 22:43
13F:→ walking:data 不够久,这倒是真的不足之处. 01/30 23:09
14F:→ walking:也难怪一些讨论,经常可以看到有人在要N年的历史data. 01/30 23:10