[原创]MT 4.0编程Step by Step
发表于:2006-03-14 15:33只看该作者
21楼 电梯直达
大老,对于慢速随机指标,请帮忙解释一下,浪费您时间了!!!
//+------------------------------------------------------------------+
//| Stochastic.mq4 |
//| Copyright ?2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 2
#property indicator_color1 LightSeaGreen
#property indicator_color2 Red
//---- input parameters
extern int KPeriod=5;
extern int DPeriod=3;
extern int Slowing=3;
//---- buffers
double MainBuffer;
double SignalBuffer;
double HighesBuffer;
double LowesBuffer;
//----
int draw_begin1=0;
int draw_begin2=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- 2 additional buffers are used for counting.
IndicatorBuffers(4);
SetIndexBuffer(2, HighesBuffer);
SetIndexBuffer(3, LowesBuffer);
//---- indicator lines
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0, MainBuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1, SignalBuffer);
//---- name for DataWindow and indicator subwindow label
short_name="Sto("+KPeriod+","+DPeriod+","+Slowing+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
SetIndexLabel(1,"Signal");
//----
draw_begin1=KPeriod+Slowing;
draw_begin2=draw_begin1+DPeriod;
SetIndexDrawBegin(0,draw_begin1);
SetIndexDrawBegin(1,draw_begin2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Stochastic oscillator |
//+------------------------------------------------------------------+
int start()
{
int i,k;
int counted_bars=IndicatorCounted();
double price;
//----
if(Bars<=draw_begin2) return(0);
//---- initial zero
if(counted_bars<1)
{
for(i=1;i<=draw_begin1;i++) MainBuffer[Bars-i]=0;
for(i=1;i<=draw_begin2;i++) SignalBuffer[Bars-i]=0;
}
//---- minimums counting
i=Bars-KPeriod;
if(counted_bars>KPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double min=1000000;
k=i+KPeriod-1;
while(k>=i)
{
price=Low[k];
if(min>price) min=price;
k--;
}
LowesBuffer=min;
i--;
}
//---- maximums counting
i=Bars-KPeriod;
if(counted_bars>KPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double max=-1000000;
k=i+KPeriod-1;
while(k>=i)
{
price=High[k];
if(maxdraw_begin1) i=Bars-counted_bars-1;
while(i>=0)
{
double sumlow=0.0;
double sumhigh=0.0;
for(k=(i+Slowing-1);k>=i;k--)
{
sumlow+=Close[k]-LowesBuffer[k];
sumhigh+=HighesBuffer[k]-LowesBuffer[k];
}
if(sumhigh==0.0) MainBuffer=100.0;
else MainBuffer=sumlow/sumhigh*100;
i--;
}
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
//---- signal line is simple movimg average
for(i=0; i
发表于:2006-03-14 16:01只看该作者
22楼
赫赫,兄弟好学问,大奔佩服
发表于:2006-03-18 13:46只看该作者
23楼
只有vb基础,实在是抗不住阿
韬客社区www.talkfx.co
发表于:2006-03-23 00:19只看该作者
24楼
终于可以找到老师问问题了 !
韬客社区www.talkfx.co
发表于:2006-03-26 06:11只看该作者
25楼
大老,我是一直在想学编程作backtest,
因为我的感觉是如果你想检测一个高胜率的系统,
用目测还是可以的,
但是一个正期望值得系统,用目测就有点犯难,
还是用软件好,
但是我实在不知道用哪一个好啊,
mt的c语言是在是太难啦,,看得像天书一样,
相对而言,ts和wld就好多了,ts更加简单,
但是wld破解版更多,基本上看得懂,但是要我编的话。。。。。。。。
而且用的指标是mt的,要做的话还要转成wld的,
我真是头也大了。
怎么办?
发表于:2006-03-29 05:31只看该作者
26楼
..........能多出几个有中文解释的编程例子就好了!
韬客社区www.talkfx.co
发表于:2006-03-29 13:40只看该作者
27楼
原来楼主会写智能交易系统啊,太好了
能写个5日均线上穿10日均线买进
下穿 卖出
的智能交易系统 吗?
你的头脑是牢笼会要你的命,是一种奴役
发表于:2006-03-31 04:20只看该作者
28楼
原帖由 一苇渡江 于 2006-3-14 21:53 发表 找了一个根据均线交易的例子,我自己择主要的加了一些中文注释,看看有没有帮助。 //+------------------------------------------------------------------+ //| ...
你的头脑是牢笼会要你的命,是一种奴役
发表于:2006-03-31 04:32只看该作者
29楼
原帖由 一苇渡江 于 2006-3-14 21:53 发表 找了一个根据均线交易的例子,我自己择主要的加了一些中文注释,看看有没有帮助。 //+------------------------------------------------------------------+ //| ...
你的头脑是牢笼会要你的命,是一种奴役
发表于:2006-03-31 04:37只看该作者
30楼
Strategy Tester Report
Moving Average
商品 EURUSD (Euro vs US Dollar (1 Lot = 100 000 EUR))
时间周期 日线图 1999.01.04 00:00 - 2006.03.30 00:00
模式 控制点数(根据最近最小期限内的12 个控制点的分数维插值法)
Bars in test 2241 Ticks modelled 48677 Modelling quality 41.31%
初期存款 10000.00
总净盈利 10151.00 总获利 22967.00 总损失 -12816.00
Profit factor 1.79 Expected payoff 101.51
绝对减少 622.00 最多下降 % 3068.00 (17.7%)
交易总计 100 Short positions (won %) 36 (36.11%) Long positions (won %) 64 (31.25%)
盈利交易 33 (33.00%) 损失交易 67 (67.00%)
Largest 最大获利的交易 2844.00 最大损失的交易 -1335.00
Average 最大获利的交易 695.97 最大损失的交易 -191.28
Maximum 最大连续盈利者 4 (6178.00) 最大连续失败者 9 (-1734.00)
启动利息模式 最大连续获利 6178.00 (4) 最大连续损失 -1782.00 (2)
Average 平均连续盈利者 2 平均连续失败者 4StrategyTester4.gif
你的头脑是牢笼会要你的命,是一种奴役
发表于:2006-03-31 04:41只看该作者
31楼
这是我吓测试的,连这是多少均线的都不知道,请搂主多帮助啊
具体怎么设置的?
智能交易系统属性怎么设置?商品属性怎么设置的额?
你的头脑是牢笼会要你的命,是一种奴役
发表于:2006-04-10 22:30只看该作者
32楼
用print语句好象不行。。。
谢谢。。
一切有为法如梦幻泡影如露亦如电应做如是观
发表于:2006-04-12 08:56只看该作者
33楼
我是新人,请问你们用过自己弄的这些程序好用吗?成功率达到多少,如果理想的话拼了老命也要把他学会....
发表于:2006-11-22 12:08只看该作者
35楼
楼主,能帮忙将这个MT3的指标转到MT4上用吗,感谢了
Variable : shift(0),value1(0),value2(0);
SetLoopCount(0);
// loop from first bar to current bar (with shift=0)
For shift=Bars-1 Downto 0 Begin
value1 = iMAEx(8,MODE_EMA,0,PRICE_CLOSE,shift);
value2 = iMAEx(20,MODE_EMA,0,value1,shift);
SetIndexValue(shift, value1);
SetIndexValue2(shift, value2);
End;
相信自己,尊重市场,总结经验,改进错误
发表于:2006-12-15 17:20只看该作者
36楼
学习.......
I believe !& I can !
发表于:2006-12-23 22:56只看该作者
37楼
好强!:) 如果用这个不就可以完全的遵守纪律了吗?:o 如果成功率高不就是刷钱的机器了?:D