[MT4-EA]顺势而为
发表于:2008-05-24 17:03只看该作者
41楼 电梯直达
为什么发长点的帖子都要审核这么久呢?兄弟不反党反政府很多年了!!
谢谢LHCH兄,让我领悟到很多很多道理
原来一根均线,就可以赚钱啊,呵呵
42楼
雪天 兄弟,在论坛上我本来不想说太多的东西,但你问到了我只有掏心窝子里的东西了。1.判断牛市跟熊市,一根均线就可以了。在这里我们用隧道来界定,价格运行在隧道上面为多头,反之为空头。2.开仓使用EMA13穿越隧道这是经过实战检验的。为什么不用K线穿越呢?因为K线穿越容易出现假信号,也就是假突破。这在写程序时要解决好一点,通常写出来的EA在交易时的价格是落后很多的。而实际上看盘做单时只要出现信号就可以下单。3.平仓条件,你再仔细看一下我周6发的贴。不是使用交叉。4.整理后的策略优于隧道法则和我前期发的策略这也是经过实战检验的。你要做的是更好的让EA表现我的策略而不是质疑它的有效性。至于优化参数,我说过发邮件给你。
韬客社区www.talkfx.co
发表于:2008-05-26 06:22只看该作者
43楼
嗯,俺会努力完善EA,这周事情不一般的多,可能要久一点,十分抱歉LHCH兄
韬客社区www.talkfx.co
44楼
雪天兄辛苦了:lol
韬客社区www.talkfx.co
发表于:2008-05-26 18:40只看该作者
45楼
架子写好了, 现在是使用一仓,似乎效果不大好,可怕的是,俺使用别的周期来测,这破位开仓的第一仓成功率低的可怕:)
俺描述一下条件,您看对不对:
1、基础判断
所有的计算,都是在新bar的第一个tick进行,如果觉得有必要,可以做那种每tick的即时OA,使用“是否在交易状态”来阻止同一信号的持续进场。
市场状态属于多头空头的判断:
价格运行于隧道上方,多头(上一个bar的最低价高于通道上边缘价)
价格运行于隧道下方,空头(上一个bar的最高价低于通道下边缘价)
价格运行于隧道中间,盘整
判断隧道上下边缘:
EMA89和EMA144谁的值大,谁的周期是upPeriod,另外一个周期是downPeriod,此后引用周期计算上下边缘
金叉死叉判断:
假设upPeriod是89,downPeriod是144
EMA金叉通道上边缘:
在当前bar的第一个tick,如果前一个bar的EMA13值小于等于EMA89,并且上一个bar的EMA13大于EMA89,认定为金叉信号。
EMA死叉通道下边缘:
在当前bar的第一个tick,如果前一个bar的EMA13值大于等于EMA144,并且上一个bar的EMA13小于EMA144,认定为死叉信号。
2、开仓信号:
当市场处于多头状态的时候
当EMA13向上金叉隧道上边缘,并且ADX>25,AO>0的时候
开四单分别ABCD,止损隧道下边缘,A,B,C,D单在MAGICNO上累加1
入场金叉信号处于有效期,当EMA13向上金叉EMA34的时候
加开四单ABCD,止损隧道下边缘,A,B,C,D单在MAGICNO上累加1
当市场处于空头状态的时候
当EMA13向下死叉隧道下边缘,并且ADX>25,AO<0的时候
开四单分别ABCD,止损隧道上边缘,A,B,C,D单在MAGICNO上累加1,2,3,4,前面定义的MAGICNO为4的整数倍
入场死叉信号处于有效期,当EMA向下死叉EMA34的时候
加开四单ABCD,止损隧道下边缘,A,B,C,D单在MAGICNO上累加1,2,3,4
3、平仓信号:
正常检测:
当价格触及EMA34,Order的MAGICNO除以4的余数为1,平仓所有A单
当价格触及EMA55, Order的MAGICNO除以4的余数为2,平仓所有B单
当价格触及EMA89,Order的MAGICNO除以4的余数为3,平仓所有C单
当价格触及EMA144,Order的MAGICNO除以4的余数为4,平仓所有D单
漏洞处理:
当市场处于多头状态,平仓所有Sell单,当市场处于空头状态,平仓所有Buy单
[ 本帖最后由 雪天 于 2008-5-27 03:07 编辑 ]EAlhchV0.9.mq4
发表于:2008-05-26 18:53只看该作者
46楼
1、是否有些过滤器?您说的那个隧道距离60尚未加入,不过似乎很少触及这个条件
2、价格突破隧道后的走势,似乎很容易触及第二小周期的均线
这里的触及,是在新bar的第一个tick,计算上一个bar的范围是否包含了指定周期均线的值。
3、尚未加入移动止损,需要每一次都将仓位的止损位移动到上一个bar的通道边缘或者均线上吗?
4、5条均线的周期参数可随意设定,后续程序中始终引用的都是基于参数的变量。
[ 本帖最后由 雪天 于 2008-5-27 02:55 编辑 ]
韬客社区www.talkfx.co
发表于:2008-05-26 18:59只看该作者
47楼
洗了睡了,俺在这个EA的启发下,使用几个均线代表不同周期的趋势,而价格代表目前的趋势
结合一些K线分析与指标背离,居然复盘的胜率很高:)
感谢LHCH兄,让俺对趋势有了理解
韬客社区www.talkfx.co
48楼
雪天兄真是高手 隧道距离60这一条件要加进去,60这个值要可以修改。这其中的奥妙我以后再谈。移动止损可以不用设置,当然可以选择。
韬客社区www.talkfx.co
发表于:2008-05-27 16:54只看该作者
49楼
高手绝不敢当,书还没读完3本呢,菜鸟中的菜鸟
一次开4仓的已经搞完,因为架子扩展性比较强,所以很简单加上去了,加仓的那个如何保持信号有效期俺回头想想
不过俺拿12分形控制测了下H1,H4,D1,赔的好快啊:)
OK,告诉俺这个EA的秘密吧,快被您搞的没信心了,开始原汁原味的隧道交易都能保持72%的胜率,您老优化半天变成18%了,是在是让俺想以头抢地
韬客社区www.talkfx.co
发表于:2008-05-27 16:57只看该作者
50楼
回复又审核了,在这里给您传上V0.9.1
修改:
1 一次4仓
2 过滤器隧道高度60,参数设置
待做:
1 追单
[ 本帖最后由 雪天 于 2008-5-28 01:15 编辑 ]EAlhchV0.9.1.mq4
韬客社区www.talkfx.co
52楼
:handshake 雪天兄客气了,发来的EA我正在测试,目前来看你写得EA最符合我的交易思路。但是现在EA还不能赚钱,我会努和思考怎么让EA与交易策略达到最佳的融合。在这里感谢本版版主提供的交流机会,同时欢迎广大汇友,股友加入讨论,众人拾柴火焰高嘛:) :)
韬客社区www.talkfx.co
发表于:2008-05-28 03:22只看该作者
53楼
0.9.1鑳戒笉鑳藉姞涓婄泩鍒╀繚鎶わ紝寮
韬客社区www.talkfx.co
54楼
这个EA最大的妙处是在于能够判断汇市的中短期趋势。而真正用于下单时有所不同。我常以5分钟形成的条件下第一张单,十五分钟满足条件下第二张单,小时图形成的条件回调时加一张单。这样的话就算是小时图是假信号,前两单已经赚钱了。而写成EA就很复杂,一是太多的判断,二是太多的条件。三需要写EA的人对此有很深的理解。这就是用模版复盘时成功率就很高,EA成功率不高的原因。因为它还不够完善。
韬客社区www.talkfx.co
发表于:2008-05-30 02:26只看该作者
56楼
突破通道后,短期趋势线角度变化的指标
参数:
extern int P_MA = 20; 均线周期
extern int KPeriod = 1; 步长即几个当前图表时间单位作为开始计算的起点,也就是角度的底边
extern int DPeriod = 3; 角度均线周期
extern int SPeriod = 5; 备用
[ 本帖最后由 雪天 于 2008-5-30 10:32 编辑 ]MaGrad.mq4
韬客社区www.talkfx.co
发表于:2008-05-30 07:47只看该作者
57楼
我想,我初步明白一点顺势交易了
更好的过滤器,一个是四周法则,另一个是上面小猫兄提出的关于均线速度的考量
四周法则的突破,才是有力的突破,如果能够配合EMA1,EMA20的速度验证,就更有效
甚至可以再进行过滤,加入stoch的高位低位考虑,这个stoch的使用,其实对于补仓有一定借鉴意义,不过EMA1的速度变化,比stoch更提前,而且可靠一些
长期通道的多空方向,与短期通道的多空方向一致的时候,可以下单
确定了自己的操作周期后,分别乘以一定倍数,选择短期趋势线与长期趋势线,当然,这个线,也可以更谨慎的使用通道代替
价格运行在长期通道与短期通道之间的时候,认为是盘整市,尽量不操作,如果操作,那么可以使用短期通道的操作方法
长期和短期的多空方向一致的时候,顺势操作
突破:
1 四周法则的突破,是有力的突破,这里的四周法则,需要根据市场进行优化,但是最原始的也一样很好用
2 EMA1,EMA20的速度与速度趋势如果同时发生共振,那么,也是很好的验证
3 stoch处于高位或者低位的时候,需要谨慎,因为很可能突破后立即回调
4 其实单纯K线本身在一波趋势中,往往拉起来的速度与消退下去的速度,一波与下一波之间的变化,已经可以起到很好的警示作用了
入场点:
例如,如果使用日图,那么可以参考一点周图的趋势,然后使用日图确定趋势与是否入场,再使用8小时图或者4小时图在日内寻找入场点,争取尽量小的止损(这个我还没开始复盘,只是一点想法)
仓位:
长期通道下两单:
A单: 计算操作周期与波幅以及止损,使用固定止赢(计算)
B单:等待长期通道的反向突破,移动止损通道上边缘
短期通道也下两单:
A单: 固定止赢
B单:使用振荡指标顺着长期与短期共同的趋势在高低位操作
盘整定义:
当价格运行在长期与短期通道之间,并且获得短期通道支撑,就算盘整市
通道参数的寻找与定期优化:
这里只是一点想法,还没有开始实践,这个涉及很多东西,有点说不清楚,其实我自己有些地方,也有些难以自圆其说
简单的说,长期通道代表的是货币的价值,这个价值,就是其可兑换自然资源的数量,包括人工与源自自然的材料等
而长期通道生成的是价格,这个价格与其价值之间,肯定是有误差的,这个是由于所谓基本面以及市场普遍心理等因素,但是,价值就是价值,如果说在汇市还存在价值投资的话,那么这个价值就非常重要.
我想,汉堡算法是其中一种比较不严肃但是或许有效的计算方法.
或许,在月图中仔细使用近些年的平均或许能说明一些问题.
寻找一个比较接近价值的长期通道,作为价值投资的趋势线,而使用EMA均线通道这种方式,也是考虑到类似通胀以及市场参与者的普遍记忆周期等问题,只能说是一个意义上近似价值的模拟
而短期通道就比较好寻找和优化了,依据这种操作规则,再比照自己的操作周期,看谁顺眼就是谁.
最后:
如果是日内操作,长期通道的价值意味就很淡了,但是仍然可以作为法则运用.
日内操作,需要加一个时段的过滤器,回头我穿上来一个论坛前辈搞的,写的比俺都潦草,不过能用,注意自己所有服务器的GMT,哪位兄台有更好的劳驾给大伙儿传一个
四周法则的指标我也传上来,注意,突破是本来平的,这个bar走完后突出来一块就是突破,周期可自定义.平时价格在通道中跑的时候,勉强也能当布林带用用,拿短期通道当布林带中线看.
结语:
顺势交易的模型基础,其实是一个传统低速参照系下的经典力学体系,市场的价格处于大船的中间,大船两边分别对于价格有引力,而这个引力可以简单的线性化为两边分别对于价格有一个常数系数的弹性拉力,这个拉力模拟市场跑到极端后产生的反向惯性引力.
游戏的规则是,作用力是瞬时的(入场的一刻对于价格有作用力),而施加作用力的参与者,必定在将来的某一时刻施加同样大小的反作用力(平仓)
于是,价格产生运动,可以观察速度,也可以观察加速度,顺便说一句,价格缠绕均线或者通道运行的状态,也是引力以及游戏规则的表现.
但是一个很大的问题没有解决,如何衡量市场的质量,这是这个模型的最大问题,价格的tick在这个体系中有什么作用?而游戏的规则是参与者的作用力可能产生一个tick,但是这个tick过去,价格的运动与参与者再也无关.
没有质量,甚至质量的近似模拟,这个模型就不再具备进一步能量模拟的可能了
而质量的问题,正是相对论与经典力学最大的区别所在,或许,市场真的是混沌的,只能从概率的角度去追随市场,从速度等角度观察市场的消长,而无法准确的预测市场的未来
fibo数列的处处存在,到底说明了什么?趋势的生长与进化,为什么很多时候与fibo不谋而合?难道市场真的有生命吗?或者根本就是我的脑子里本来有fibo的惯性,所以对于fibo之外的东西视而不见
再次感谢lhch兄与小猫兄,您的EA如果有什么改进,可以随时找俺,不过现在我现在觉得,能真正获利的EA恐怕好难,但是的确有吸引力.
请查收四周指标:
俩参数,最大值与最小值的周期,使用收盘价.如果用在日内,建议试验一下其他价格组合.
[ 本帖最后由 雪天 于 2008-5-30 15:51 编辑 ]MaPeriodHL.mq4
韬客社区www.talkfx.co
发表于:2008-05-30 08:03只看该作者
58楼
以上都是在日图复盘,G/U
长期通道144,169,短期通道10,20四周上下都是20
速度指标有3个分别是(155,5,3)(20,2,3)(1,10,3)
stoch有2个,这个只起参考作用(10,3,3)(5,3,3)
通道参数都没有专门优化,其实用在周图好像效果更好呵呵
如果哪位大哥愿意使用模拟实时测试,请注意速度指标的颜色变化必须等这个bar走完根据高低才判断出来的,如果一定要提前知道,请去小点的周期参考,注意周期变化后参数设置的变化,这个俺也没仔细搞
忘了传市场时段的过滤器指标了,注意自己服务器的GMT,其实使用交易量看的更准
[ 本帖最后由 雪天 于 2008-5-30 16:37 编辑 ]TalkIndBlock.mq4
韬客社区www.talkfx.co
发表于:2008-05-30 08:48只看该作者
59楼
虽然还有很多很多地方需要完善
复盘完几张图后,突然觉得没动力了,lhch兄
俺去找点别的乐子了,读点书再回来
衷心感谢您lhch兄,衷心感谢小猫兄的均线速度,祝各位汇友汇运长久,数字游戏总是特别迷人:)
lhch兄,对于四周突破的鉴别,刚才我看到有个叫haiyun的人喊空gbp,看了一下刚弄出来的系统,呵呵,1H图上的确算有效突破.
韬客社区www.talkfx.co
60楼
开单加了魔术号码。。。但是。。。
//----
//A单
res =OrderSend(Symbol(),OP_BUY,getLots(),Ask,3,sl,0,expName,LHCHMAGIC+1,0,Red);
if(res < 0) Print("Error opening Sell order : ",GetLastError());
//B单
res =OrderSend(Symbol(),OP_BUY,getLots(),Ask,3,sl,0,expName,LHCHMAGIC+2,0,Red);
if(res < 0) Print("Error opening Sell order : ",GetLastError());
。。。关闭单子的时候没有辨别魔术号码的个别单子
case 1: //平A仓
if(OrderType()==OP_BUY)
{
if((dMA2>=Low[1]&&dMA2<=High[1])|| marketState == -1)
OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
}
if(OrderType()==OP_SELL)
{
if((dMA2>=Low[1]&&dMA2<=High[1])|| marketState == 1)
OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
}
break;
case 2:
if(OrderType()==OP_BUY)
{
if((dMA3>=Low[1]&&dMA3<=High[1])|| marketState == -1)
OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
}
if(OrderType()==OP_SELL)
{
if((dMA3>=Low[1]&&dMA3<=High[1])|| marketState == 1)
OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
}
所有没有符合“五线”闭仓条件
break;