MT4MT5之家-MT4MT5指标脚本EA,这里只有干货!
 
昨日:篇  今日:篇   总帖:篇   会员:
今日:0    总帖:83
admin
4822
MT4历史数据测试的时候出现stopped because of Stop Out的错误提示,然后EA停止运行了,是怎么回事?是什么原因呢?阿右回答:这是由于老板您测试的时候可能采用了百分比手数模式,导致手数过大,账户资金不够,浮动亏损超过了账户余额。解决方法,要么采用固定手数,要么将起始资金调大,要么采用比较小的百分比手数算法即可。
1 0 1252天前
admin
4678
有些人突发奇想,稳定亏损的策略是否反过来就可以稳定盈利呢?首先说在前面,因为你能想到的办法其它人也能想到,所以投机博弈的本质终归还是人性的博弈。无论是与“亏货”反过来操作,还是采用其它交易理论做交易,想要稳定地从对手口袋里掏钱都不是一件简单的事情。正所谓“不幸的人各有各的不幸”,所谓亏钱的策略也不尽相同。下面以股票策略为例简单加以梳理:    1. 忽略交易费率与滑点等因素可以赚钱,但由于交易频率过高导致各类成本很高从而亏钱的策略实例:市场中很多T+0团队不赚钱的原因就是因为支出了超出盈利能力的交易费用(据我了解,很多策略光是印花税就会吞噬掉年化10%以上的收益。)——反过来做会让你【亏得更惨】。    2. 由于策略过差导致凭实力亏钱的人——反过来做可能会赚,但这个“反”操作起来难度也相当大,甚至可能大到你宁愿使用一个“正着操作的策略”。举个简单例子:一个“只买近一个月涨幅在市场排名前5%的股票”的策略。想都不用想,即使免佣金印花税,长期下来也能亏得您裤衩都不剩。若要反过来操作而实现赚钱的目的,无外乎以下两种选择:             反策略一:去除近一个月涨幅前5%的股票,全部买入剩余95%的股票并像基准指数一样加权组合。——恭喜你,从现有市场角度来说,长期下来,你大概率可以【微幅跑赢指数】。             反策略二:只买近一个月跌幅前5%的股票并像基准指数一样加权组合。——很遗憾,你会【踩到无数个雷直到被炸死】。    通过这个例子,我是想说,每个成功的策略背后都是有一套靠谱的【逻辑】在支撑的。上述讲的“反策略一”跑赢指数的逻辑是尽量避开那些被炒得很热的股票不要去当接盘侠。而“反策略二”就是纯粹地把一个很愚蠢的策略毫无逻辑地反向运用,从而导致你走向另一个极端。    综上所述,一个亏钱的策略,反过来做【可能会赚钱】。但你做之前一定要想想你的反向操作是否可以把它亏钱的逻辑避开又不至于陷入另一个“坑”里。你这种想法,很流行。可惜,行不通。赢面不均等原理为了求证从身边抓个稳定亏损的“亏货”与他反过来做交易是否能稳定盈利,我们先来搞清楚投机博弈为什么永远都是亏损者占多数这个问题。从纯概率的角度看,投机博弈应该有一半交易者赚钱、一半交易者亏钱才合理。但是为什么永远都是大部分人在亏钱呢?深入解释这种现象需要很大篇幅,交易真经其它文章里已经有详细论述,本文仅从策略和人性角度做简单分析。客观分析一个行为的结果,首先要搞清楚动机是什么。赚钱就是投机博弈的原始动机。进一步分析,是什么因素让一个交易者感觉自己参与博弈可以赚到钱呢?❶ 比如以小博大,炒“非农数据”可以一夜翻几倍等等;❷ 又比如,听说朋友炒股炒期货等赚了很多钱等等。追逐利润是资本的本能。马克思在《资本论》中曾引用邓宁格的话描述资本是如何疯狂追逐利润的:一有适当的利润资本就会非常胆壮起来。只要有10%的利润它就会到处被人使用;有20%就会活泼起来;有50%就会引起积极的冒险;有100%就会使人不顾一切法律;有300%就会使人不怕犯罪甚至不怕绞首的危险。再结合上面的策略测试结果,就不难理解为什么投机交易活动能长盛不衰。运用手头的本钱去追逐潜在的巨大的回报预期,甚至可以不劳而获。这就是很多交易者参悟博弈的充分理由。进一步分析盈利者和亏损者的概率分布不对等问题。❶ 多数交易者骨子里认为自己的能力随随便便就能在市场上捞钱,而专业的交易则认为世界上没有随随便便就能捞到的钱。❷ 多数交易者都将精力放在如何搞到几套万能的战法上(等于搞个印钞机),而专业的交易者则认为尽量避免掉进坑里才是交易的头等大事(风险控制)。正是因为多数交易者都认为自己不笨,导致整个市场上绝大多数都是自认为“很聪明的交易者” ,而科学的交易系统正是反着“聪明的交易者” 的群体行为特征开发的。人通常都是短视性动物,很容易因为眼前巨大的潜在机会冲晕头脑,淡化了风险管理意识。一旦风险管理做不到位,必然会出问题。在之前的文章里曾经举过一个例子:0.9^63=0.0010.8^30=0.0010.7^19=0.0010.6^13=0.0010.5^10=0.001持续进行63次胜率90%的生死博弈最后生还的机会是千分之一,如果胜率为50%则在第10次时生还率千分之一。虽然投机交易不是非生即死的博弈,但是在时间及诸多风险因素面前,缺乏持续风险控制能力的多数散户注定是“韭菜”的宿命。趋利和避害是生存本能的一体两面呈现,但是要在利害关系之间取得平衡,这对于交易者的认知维度已经上升到格局和谋略层面。格局和谋略一直都是稀缺资源,所以投机博弈必定是多数人在亏钱。这就是导致投机参与者的赢面分布不均等的根本原因,俗称二八定律。至此,不难理解为什么做投机交易的人十有八九最终都是以亏钱收场。那么机会来了,我们从身边随便抓一个交易者,并且和他反向做交易,最终是否十有八九的可能性能实现盈利呢?投机博弈的反人性本质可以肯定的说,在交易行为上和多数“聪明的交易者”反过来就是建立优秀交易系统的准确入口。但是这里的“反过来”并不是指将“亏货”的买卖信号反过来执行。一套亏损策略即使反过来做也很有可能是亏的结果。比如MT4里有常见的普通双均线策略测试,即常说的金叉做多、死叉做空策略。(平均持仓时间在一两天之内)这稳定亏损的结果,可以说明该策略的表现简直糟糕透了。如果按照这个策略的交易信号反向严格操作,是否会得到稳定盈利的效果呢?你可以自己在MT4里测试,我这里就不提供代码了,一样的稳定亏损。由此可见,稳定亏损的短线策略即使严格反向执行也是亏损的结果,其中主要原因是实际交易中会产生手续费和滑点等损耗。这也是为什么很多做量化的朋友想做一条漂亮的曲线很容易,但想做一个有适应性的策略却很困难的原因。(注:滑点损耗的设置要根据具体策略而定,并非所有角度的策略都需要考虑滑点损耗,有的策略甚至要考虑数百个点的滑点损耗,有的则只需一两个点。)二 常规突破策略测试(海龟交易法则)。像道氏理论、波浪理论、江恩理论、缠论等等,很多交易理论之所以能够闻名遐迩是有道理的。(注:本文的策略仅作举例分析问题使用,不具备独立专业论证能力者切勿盲目以此作为入市操作的依据。)测试结果表明,即使是在原策略亏损的时间段里进行反向交易,最终亏损的可能性还是很大的。至于为什么会出现这样的结果,解释起来会比例一策略反向操作失败的原因更加复杂。简单来说,交易系统却涉及到全方位的逻辑辩证,所以针对不同的交易策略必须从具体逻辑层面才能说明客观原因。总之,在任何时候将一个普适性较强的策略反过来做都是不理性的。通过以上两例子的分析结果,可以得出结论:企图找一个“亏货”并且简单地和他反向做交易的思路是行不通的。虽然机构常用反向交易作为一种对冲风险的手段,但是那已经不属于简单的反向操作范畴。还有一种情况,有的做市商会利用反向操作手段谋求更激进的预期收益。比如,根据散户对手总体头寸方向差额的动态情况做反向交易。具体情况比较复杂,下面用“赌马”博采做比喻说明。村里的大姨妈、三叔公等一众人是我的稳定客户,他们都在我这里下注。经历了时间的沉淀,我对他们博采的赢面情况已经相当了解,于是我开始不满足抽佣的这点收入,选择自己做个小庄。有一天我的经验更丰富了,发现还可以通过另外一种手段赚到更多的钱。因为长期下来在我这里玩的一众客户多数情况都是亏钱的,所以我是否可以和他们反向押一些注呢?但是还有一个问题,如果我只和大姨妈一个人反向押注风险是比较大的,因为有时候她会踩狗屎运赌对了。不过长期下来十赌九输,从这一众客户的总体表现来看,稳定亏钱的概率却是非常大的。只要计算出他们总体下注方向的具体差额,并且根据这个差额的方向反过来下注,那么就利用了他们总体输钱的大概率这个事实来指导我的下注操作,从而大大增加赢面。做市商和客户反过来操作的原理基本如上,不过计算过程复杂得多。即使很大的做市商进行这种操作也需要专业的部门来进行,如果操作不当风险还不小,而且做市失败的例子并不鲜见。这进一步说明,作为小散想找个稳定亏损的“亏货”和他反过来做交易的思路是不靠谱的。你觉得亏钱的策略,反过来做能不能赚钱?
3 0 1288天前
admin
6164
Pinbar外汇交易系统是一种非常受欢迎的策略,Pinbar是很重要的交易信号,Pinbar交易信号表示一方力量先占据优势,后来反向力量绝地反击占据主导,长上影线的Pinbar表示上方阻力较强,长下影线的pinbar表示下方支撑力较强。其实并非非要很标准的Pinbar才有参考意义,具有长影线的K线都值得去关注,长影线告诉我们在某一个价位具有一定的强阻力或支撑作用,是一种价格测试动作信号。以特殊的蜡烛形态和随后的价格行为提供进出场的位置,Pinbar形态由Martin Pring在他的Pring价格形态中首次创建。特征保守的策略,提供低风险高收益的机会。如果应用了盈亏平衡,那么保本几率非常高。产生的信号很少。时间非常关键。支撑/阻力位很难正式确认。策略设置可设置于任何货币对和任何时间框架下,但在较长时间框架(如 H4、D1和W1)下,效果会更好。Pinbar设置:该形态由三根蜡烛组成:左眼,鼻子和右眼。对于看跌Pinbar形态,左眼应该是一根上涨的蜡烛,对于看涨形态,左眼则是一根下跌的蜡烛。作为鼻子的蜡烛的开盘价和收盘价都必须包含在左眼内,但它的高位(或低位,看涨时)应该突出,远高于(或低于)左眼的高位(或低位)。作为鼻子的蜡烛的开盘价和收盘价都应位于该蜡烛底部(顶部,看涨时)的1/4,右眼则是发出交易信号的位置。构成一个好形态设置的额外条件是形成于眼睛后方或者接近鼻子顶端位置的强支撑/阻力水平,能组合进该形态的支撑/阻力水平越强,也就越准确。进场条件激进的进场位置是当右眼的价格回撤到左眼收盘价后方时进场。保守的进场位置是当右眼的价格低于(看涨时为高于)鼻子实体的价格时进场。离场条件保守止损可设置在眼睛后方最近的支撑/阻力水平后面。一个次保守的方案是将止损设置在鼻子顶端的后面(这样设置,会有一定的收益/回报比率)。保守止盈可设置在左眼低位处(看涨时则为高位)。激进的止盈位可设置的更远一些 — 到下一个强支撑水平(看涨时则为强阻力)。范例看跌Pinbar设置:下方是一个激进设置的例子。进场位置(蓝线)设置在左眼的收盘价(价格回撤时进场),止损(红线)设置在鼻子顶端的后面(在这种情况下,即使设置的是保守的止损也不会触发,因为右眼价格的回拉发生在进场之前),止盈(绿线)设置在支撑水平附近,很容易触发。看涨Pinbar设置:下方是一个保守设置的例子。进场位置(蓝线)设置在紧挨鼻子顶端的位置,止损(红线)设置在左眼的下方,止盈(绿线)设置在紧挨左眼的上方。Pinbar报警指标下载:Pinbar交易系统报警指标      
8 1 1370天前
admin
4265
之前在网上看了这么一段话,大意是说,学医之前,人会觉得这个世界上大多数疾病都是可以治愈的,只有癌症艾滋病等少数绝症目前还没办法,等学了医以后才明白,这世界上真正能有效治愈的病比例很小,除了常见的绝症以外,还有非常多的病也是没什么办法的,甚至连病因都是没有搞清楚的。我没学过医,但我对这个世界的认识差不多也是经历了类似的过程。我过去遇到什么问题的时候就相信,这世界上一定有科学家、工程师或者什么老师傅是有办法的,总会有人能出来搞定这一切,就好像这世界是一片明亮的草原,只不过天上飘着几朵小片的乌云,其投下的影子是目前人类无能为力的领域。但现在不了,我渐渐发现,这个世界其实是一片阴云密布的荒滩,举目四望,看到的是黑暗辽阔的无奈,这世界上大多数事情就是毫无办法的,无数的人们都是凑合地活着,或者勉强对付过去,天空汹涌着不可为的乌云,偶有几道光芒从缝隙中射向大地,人们争相拥挤在局促的光芒里,日复一日地生活。在辽阔的无奈中,站在局促的可行性里,这大概才是这个世界本来的样子。
8 1 1399天前
admin
4339
刚把网站服务器由新加坡换到韩国,速度提高了300%,快的都让老衲有点不适应了,放出个MACD的策略,60%胜率1:1.5的盈利比。这是一个经过10000次测试的简单可靠的MACD策略,EURJPY 30分钟TM的结果显示胜率为62%,风险奖励为1:1.5。买入:-200 EMA上方的市场-MACD线必须低于0线才能向上穿越信号线。卖出:-低于200 EMA的市场-MACD信号在0线以上时必须向下交叉。SL:- 止损位于最后一个分形点之上/之下TP:-目标风险为1.5倍风险当达到1:1时止损于开仓价。
7 1 1411天前
admin
6864
很多老板想把自己的发财策略写成的ea出售,或者给别人使用,但是自己辛辛苦苦搞出来的策略,怕被无限传播,那么这个时候就用到账号绑定以及限制使用时间的功能了,也就是说让ea仅仅在指定的某个账号使用,其他账号不能使用。或者指定ea的使用时间,到期后ea就报废不能再继续使用了。社会我右哥,人狠话不多,接下来请看视频教程:https://www.bilibili.com/video/bv1jt4y1Q77o
8 2 1434天前
admin
6796
很多老板不知道如何在一台电脑上打开和安装多个MT4,因为默认安装的话会自动覆盖掉最先安装的,其实在一台电脑上打开和安装多个MT4非常简单,步骤就是安装MT4后,直接复制安装目录的整个文件夹到另一个路径,例如下图这样:复制出3个副本,再加上安装的本体,就可以到打开4个MT4了。需要注意,多开时,要进入每个副本所在文件夹内,找到MT4的terminal.exe执行文件,双击打开,这样才能实现多开。如果你嫌进入文件夹找terminal.exe麻烦的话就可以在terminal.exe上点右键,挨个进入选"发送到"-"桌面快捷方式",这样就可以在桌面上直接双击打开了。如果嫌打开后默认的数据文件夹目录长不好记录,设置便携方式的话看MT4MT5便携模式设置教程这个教程。
9 0 1439天前
admin
5420
来自国外merlin大神的99.9%的准确性的剥头皮策略>您每天在EURUSD上进行1笔交易>您的“日”在美国东部标准时间4:59结束并在美国东部标准时间下午5点开始>使用60分钟图表,图表上带有MACD和RSI>每个在美国东部标准时间下午5点的一天开始观察图表。可能需要花费数小时和数小时的时间来观察图表,但是请继续观察直到达到当天的高点或低点。>一旦在60分钟图表上触及了每日高点或低点,请切换到1分钟图表。如果在1分钟图表上也触及了每日高点或低点,则信号被确认。>信号确认后立即进入交易。如果是当日的最高价,则做空。如果达到的是每日低点,请继续做多。>将止损设置为15点,利润目标为25点。
10 0 1469天前
admin
6730
MT4MT5在初始安装后有个很恶心的问题,就是所有的数据会在系统盘C盘下,导致万一重装系统啥的很容易数据丢失,现在阿右教大家一个简单的方法,可以把ea脚本历史数据等转移到安装目录下,以后要想转移随便一复制就可以,简单方便高效快捷。步骤,首先将terminal.exe发送快捷方式到桌面,然后右键属性,在快捷方式最后加上 /portable,然后确定即可。再重新双击发送到桌面的这个快捷图标打开MT4,一切豁然开朗,成功转移到MT4安装目录。视频教程:https://www.bilibili.com/video/bv1Lg4y1v7Kq
11 0 1490天前
admin
6395
MT4全局变量GlobalVariable详解:全局变量在MT4编程中有两层含义,一是编程领域中常规的全局变量含义,即独立于所有函数之外定义的变量,生命周期覆盖整个程序;还有一个就是MT4中独有的:在同一MT4客户端内,所有的指标、脚本和EA都可共享同一全局变量:这里的 客户端全局变量 不要与MQL4程序中定义的 全局变量 混淆。最后访问的 "客户端全局变量" 可以在客户端内保存4个星期,然后将自动删除。对于 "客户端全局变量" 的访问不仅仅是新值的设定,也可以对其进行读取。在客户端启动的所有MQL4程序可以同时访问 "客户端全局变量"。GlobalVariableCheck() – 检查全局变量是否存在GlobalVariableDel() – 删除全局变量GlobalVariableGet() – 获取全局变量的值GlobalVariableName() – 获取指定索引的全局变量名GlobalVariableSet() – 设置全局变量的值GlobalVariableSetOnCondition() – 根据条件设置全局变量值GlobalVariablesDeleteAll() – 删除全部全局变量GlobalVariablesTotal() – 获取全局变量总数GlobalVariableCheck() – 检查全局变量是否存在bool GlobalVariableCheck(string name)如果 "客户端全局变量" 存在,返回TRUE,否则,返回FALSE。要获得详细的错误信息,查看 GetLastError() 函数。参量:name - 客户端全局变量名称。示例:// 使用前先检查变量  if(!GlobalVariableCheck("g1"))    GlobalVariableSet("g1",1);GlobalVariableDel() – 删除全局变量bool GlobalVariableDel(string name)删除 "客户端全局变量" 。如果执行成功,返回TRUE,否则,返回FALSE。 参量:name - 客户端全局变量名称。示例://  删除名称为 "gvar_1"的客户端全局变量   GlobalVariableDel("gvar_1");GlobalVariableGet() – 获取全局变量的值double GlobalVariableGet(string name)返回现有的 "客户端全局变量" 的值,如果发生错误,返回0。 参量:name - 客户端全局变量名称。示例:double v1=GlobalVariableGet("g1");  //---- 检查函数调用结果  if(GetLastError()!=0) return(false);  //---- 继续程序GlobalVariableName() – 获取指定索引的全局变量名string GlobalVariableGet(int index)本函数通过全局变量列表中索引号返回 "客户端全局变量" 的名称。 参量:index - 全局变量列表中索引号,该索引号必须大于等于0,或者小于 GlobalVariablesTotal() 返回的值。示例:int    var_total=GlobalVariablesTotal();  string name;  for(int i=0;i<var_total;i++)    {     name=GlobalVariableName(i);     Print(i,": 全局变量名称 - ",name);    }GlobalVariableSet() – 设置全局变量的值datetime GlobalVariableSet(string name, double value)设置 "客户端全局变量" 新的值。如果它不存在,系统将创建个新的全局变量。如果函数成功,其返回值将是最后存取时间,否则,返回值将是0。参量:name - 客户端全局变量名称。value - 新的数值 示例://---- 尝试设定新值  if(GlobalVariableSet("BarsTotal",Bars)==0)    return(false);  //---- 继续程序GlobalVariableSetOnCondition() – 根据条件设置全局变量值bool GlobalVariableSetOnCondition(string name, double value, double check_value)如果 "客户端全局变量" 的当前值等于第三个参数check_value,就设置现有的全局变量的新值。如果全局变量不存在,函数将产生错误ERR_GLOBAL_VARIABLE_NOT_FOUND(4058) 并且返回FALSE;当函数执行成功,返回TRUE,否则,返回FALSE。如果全局变量的当前值与check_value不同,函数将返回FALSE。函数为 "客户端全局变量" 提供了强大的访问能力,这就是为什么在一个客户端内同时运行的几个智能交易程序用它作为通信信号进行相互通信的原因。参量:name - 客户端全局变量名称。value - 新的数值。check_value - 与当前全局变量的值相比较的值。示例:int init()    {     //---- 创建客户端全局变量     GlobalVariableSet("DATAFILE_SEM",0);     //...    }    int start()    {     //---- 尝试锁住公共资源     while(!IsStopped())       {        //---- 锁住        if(GlobalVariableSetOnCondition("DATAFILE_SEM",1,0)==true)  break;        //---- 可以删除变量吗?        if(GetLastError()==ERR_GLOBAL_VARIABLE_NOT_FOUND) return(0);        //---- 等待        Sleep(500);       }     //---- 资源被锁     // ...做些工作     //----解锁资源     GlobalVariableSet("DATAFILE_SEM",0);    }GlobalVariablesDeleteAll() – 删除全部全局变量int GlobalVariablesDeleteAll(void prefix_name)删除 "客户端全局变量"。如果全局变量名称的前缀没有指定,所有全局变量将被删除,否则,只有那些符合指定前缀开头的变量被删除。函数返回被删除的变量个数。参量:prefix_name - 要被删除的全局变量名称前缀。示例:Print(GlobalVariablesDeleteAll("test_")," test_为开头的变量被删除");GlobalVariablesTotal() – 获取全局变量总数int GlobalVariablesTotal()获取 "客户端全局变量" 的总数。示例:Print(GlobalVariablesTotal(),"全局变量检测到");GlobalVariable,这个概念类似于编程领域中的共享内存区域;下面简单介绍一下其用法。首先是必须用到的三个函数:GlobalVariableSet()、GlobalVariableGet()、GlobalVariableDel()。顾名思义,这三个函数的作用分别是设置、获取和删除GlobalVariable。在任何一个指标、脚本和EA中,可用GlobalVariableSet来设置一个GlobalVariable,如:GlobalVariableSet(“test”, 1.2345);这就设置好了,把这个指标挂到任何一张图表之上后,在同一个MT4客户端下运行的任何指标、脚本和EA都能读取到这个GlobalVariable了,读取方法:GlobalVariableGet(“Test”);最后,如果我们不需要这个GlobalVariable了,就可以这样把它删除了:GlobalVariableDel(“Test”);需要注意:一是GlobalVariable只能是double类型的数据,不能把string、数组之类的赋给它,否则编译的时候虽然不会报错,但其实是无效的;二是GlobalVariable的生命周期是名符其实的“全局”,在设置了一个GlobalVariable后,如果不用GlobalVariableDel来删除它,它将会一直存在,无论设置它的指标、脚本和EA是否已被删除,甚至MT4关闭后也会存在,下次重新启动MT4时这个GlobalVariable仍然是可用的!善用这点,在设计交易程序的时候可说是如虎添翼,呵呵!
9 0 1501天前
快速发帖 高级模式
您的IP:3.145.84.198,2024-07-27 14:36:33,Processed in 0.0625 second(s).
外汇实盘交易、外汇保证金交易、贵金属交易及其他金融投资产品均存在较高风险,并不适合每一位投资者。如有必要,请咨询专业的投资顾问或法律人士。因各国或地区监管规定 不同,本站所提供的广告信息或服务未必适用于所有国家或地区的投资者。投资者进行相关投资,可能不受所在地法律保护,敬请深入研究,审慎决策。本站登载的所有 内容仅出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不构成任何投资建议。投资者据此操作,需自行承担由此产生的任何风险。