分类
用技术指标进行交易

MACD神秘用法

二、KDJ指标运用关键点是:

MT4自带EA:MACD Sample详解与实战分析

input double TakeProfit =50; // 盈利目标点数
input double Lots =0.1; // 每单入场的手数
input double TrailingStop =30; // 追踪止损的点数
input double MACDOpenLevel =3; // MACD开仓的参考位置
input double MACDCloseLevel =2; // MACD平仓的参考位置
input int MATrendPeriod =26; // 交易条件中使用的MA均线的周期数

多头开仓条件:MACD位于0轴下方 并且 小于指定的参数MACDOpenLevel*Point 同时 MACD神秘用法 MACD信号线上穿基准线(金叉)
并且 MA趋势向上。
多头平仓条件:MACD位于0轴上方 并且 大于指定的参数MACDCloseLevel*Point 同时 MACD信号线下穿基准线(死叉)。

空头开仓条件:MACD位于0轴上方 并且 大于指定的参数MACDOpenLevel*Point 同时 MACD信号线下穿基准线(死叉)
并且 MA趋势向下。
空头平仓条件:MACD位于0轴下方 并且 大于指定的参数MACDCloseLevel*Point 同时 MACD信号线上穿基准线(金叉)。

void OnTick(void)
double MacdCurrent,MacdPrevious;
double SignalCurrent,SignalPrevious;
double MaCurrent,MaPrevious;
int MACD神秘用法 cnt,ticket,total;
//---
// initial data checks
// it is important to make sure that the expert works with a normal
// chart and the user did not make any mistakes setting external
// variables (Lots, StopLoss, TakeProfit,
// TrailingStop) in our case, we check TakeProfit
// on a chart of less than 100 bars
//--- MACD神秘用法 MACD神秘用法
if(Bars <100)
Print("bars less than 100");
return;
>
if(TakeProfit <10)
Print("TakeProfit less than 10");
return;
>

if(Bars <100)
Print("MACD神秘用法 bars less than 100");
return;
>

if(TakeProfit MACD神秘用法 <10)
Print("TakeProfit less than 10");
return;
>

//--- to simplify the coding and speed up access data are put into internal variables
MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,MACD神秘用法 0);
MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);

total=OrdersTotal(); MACD神秘用法 MACD神秘用法
if(total <1)
//--- no opened orders identified

if(AccountFreeMargin() <(1000*Lots))
Print("We have no money. Free MACD神秘用法 Margin = ",AccountFreeMargin());
return;
>

上面这段就是多单开仓部分了,条件是这样:如果当前MACD主线在0轴以下,MACD“金叉”,MACD的主线不在0轴附近(MACD神秘用法 MACD神秘用法 这块是EA的参数来指定0轴附近多少点)并且还要当前的均线是上升的。 这里最精彩的部分在于如何判断MACD“金叉”,如何判断MACD值不在0轴附近和均线目前是上升的还是下降的。 “金叉”的判断是EA里用的比较多的,这里我们用了判断大小的方法就能很容易的计算它,首先得到MACD两根线当前的值和上一根K线的MACD值,如果上一根K线的MACD主线大于信号线并且当前的MACD主线小于信号线那么就相当于这两根线做了一个“交叉”,因此我们可以认为MACD“金叉”了。从这里我们也能看出来用计算机的方法来解决我们人类所认知的问题靠的都是这种具体数值的计算,所以计算机还是比较“死板”的,如果两根线“扭”在了一起那么用计算机程序很难判断出来,这些就是目前计算机程序的缺点。 0轴附近这种判断方法这里利用了一点数学方面的知识,不过不用担心都是很简单的算法。把MACD值做绝对值运算然后判断是否大于指定的值,因为MACD会是负值做绝对值运算后直接判断是否大于设定的值就行了,这块相当于是简化了判断语句的条件。 均线的上升和下降判断和“金叉”的算法差不多,得到当前均线值和前一根线的均线值,如果前一根均线值小于当前值那么就说明均线是上升的。

if(ticket>0)
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
>
else
Print("Error opening BUY order : ",GetLastError());
return;
>

//--- it is important to enter the market correctly, but it is more important to exit it correctly.
for(cnt=0;cnt

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//--- check for trailing stop
if(TrailingStop>0)
if(Bid-OrderOpenPrice()>Point*TrailingStop)
if(OrderStopLoss() //--- modify order and exit
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green))
Print("OrderModify error ",GetLastError());
return;
>
>
>
>

细心的读者会发现,上面针对空单执行移动止损的代码相比针对多单移动止损的代码多了|| (OrderStopLoss()==0)) 这一段,这是因为对空单执行第一次移动止损时,如果该空单没有设置初始止损价的话,那么按照上面类似多单移动止损设置的代码编写的话空单的移动止损就不会执行,因为OrderStopLoss()等于0,所以(OrderStopLoss()>(Ask+Point*TrailingStop)便不成立,因此,针对空单设置移动止损的代码需要增加|| (OrderStopLoss()==0)) 这一段,以防碰到空单没有设置初始止损时程序无法执行。

二、基本策略
根据以上分析,可以看出该EA所使用的基本策略如下:
1、多头开仓:MACD处于0轴下方+MACD指标低位金叉+均线上升
空头开仓:MACD处于0轴上方+MACD指标高位死叉+均线下降
2、多头平仓:MACD处于0轴上方+MACD指标高位死叉
空头平仓:MACD处于0轴下方+MACD指标低位金叉
3、多头移动止损:订单止损价>卖价+移动止损*点,修改订单止损价
空头移动止损:订单止损价

终极指标:MACD 相忘于胡斐的股市江湖

(二)MACD 其实就是改良了的均线系统。0 轴在MACD 中很重要,占有很重要的地位,是多空分界线。相对应的,60日线在K线图也是短线牛熊分界线。在选择股票的时候,要尽量选择60日线已经走平或者翘头向上的股票同时,所以均线呈多头排列。越是贴近0 MACD神秘用法 轴,越是有爆发力。同时0 轴也是很重要的一个变盘点位。大的行情的爆发,不管是上涨还是小跌,基本从0 轴附近开始。也就是说,双线在0 轴附近容易爆发行情,0 轴上下都可以,但是越贴近0 轴越好。

(三) MACD顶底背离战法, 在一轮多头行情中,价格是创新高后还有新高,均线是完美的多头排列,光看价格和均线似乎上涨行情厉害. 然而,当市场情绪完全被当前趋势所感染的时候,市场往往已经运行在第五浪了.这时侯上涨空间有限,而下行空间无限. 一旦出现顶背离,立刻撤退!反之,跌势行情中,K线和均线无限下探,似乎是无底洞,但是一旦出现底背离,并且二次金叉,就会出现相应级别的行情,至少双线会回抽0轴。

(四)MACD顶背离:当股价K线图上的股票走势一峰比一峰高,股价一直在向上涨,而MACD指标图形上的由红柱构成的图形的走势是一峰比一峰低,黄白线也一波比一波低,即当股价的高点比前一次的高点高、而MACD指标的高点比指标的前一次高点低,这叫顶背离现象。顶背离现象一般是股价在高位即将反转转势的信号,表明股价短期内即将下跌,是卖出股票的信号。 MACD底背离 :底背离一般出现在股价的低位区。当股价K线图上的股票走势,股价还在下跌,而MACD指标图形上的由绿柱构成的图形的走势是一底比一底高,即当股价的低点比前一次低点底,而指标的低点却比前一次的低点高,黄白线也一波比一波高,这叫底背离现象。底背离现象一般是预示股价在低位可能反转向上的信号,表明股价短期内可能反弹向上,是短期买入股票的信号。 顶背离 死叉=几乎必跌;底背离 金叉=几乎必涨。

MT4自带EA:MACD Sample详解与实战分析

input double TakeProfit =50; // 盈利目标点数
input double Lots =0.1; // 每单入场的手数
input double TrailingStop =30; // 追踪止损的点数
input double MACDOpenLevel =3; // MACD开仓的参考位置
input double MACDCloseLevel =2; // MACD平仓的参考位置
input int MATrendPeriod =26; // 交易条件中使用的MA均线的周期数

多头开仓条件:MACD位于0轴下方 并且 小于指定的参数MACDOpenLevel*Point 同时 MACD信号线上穿基准线(金叉)
并且 MA趋势向上。
多头平仓条件:MACD位于0轴上方 并且 大于指定的参数MACDCloseLevel*Point 同时 MACD信号线下穿基准线(死叉)。

空头开仓条件:MACD位于0轴上方 并且 大于指定的参数MACDOpenLevel*Point 同时 MACD信号线下穿基准线(死叉)
并且 MA趋势向下。
空头平仓条件:MACD位于0轴下方 并且 大于指定的参数MACDCloseLevel*Point 同时 MACD信号线上穿基准线(金叉)。

void OnTick(void)
double MacdCurrent,MacdPrevious;
double SignalCurrent,SignalPrevious;
double MaCurrent,MaPrevious;
int cnt,ticket,total;
//---
// initial data checks
// it is important to make sure that the expert works MACD神秘用法 with a normal
// chart and the user did not make any mistakes setting external
// variables (Lots, StopLoss, TakeProfit,
// TrailingStop) in our case, we check TakeProfit
// on a chart of less than 100 bars
//---
if(Bars <100)
MACD神秘用法 Print("bars less than 100");
return;
> MACD神秘用法
if(TakeProfit <10)
Print("TakeProfit less than 10"); MACD神秘用法
return;
>

if(Bars <100)
Print("bars less than 100");
return;
>

if(TakeProfit <10)
Print("TakeProfit less than 10");
return;
>

//--- to simplify the coding and speed up access data are put into internal variables
MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,MACD神秘用法 0);
SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,MACD神秘用法 0,MODE_EMA,PRICE_CLOSE,1);

total=OrdersTotal();
if(total <1)
//--- no opened orders identified

if(AccountFreeMargin() <(1000*Lots))
Print("We have no money. Free Margin = ",AccountFreeMargin());
return;
>

上面这段就是多单开仓部分了,条件是这样:如果当前MACD主线在0轴以下,MACD“金叉”,MACD的主线不在0轴附近(这块是EA的参数来指定0轴附近多少点)并且还要当前的均线是上升的。 这里最精彩的部分在于如何判断MACD“金叉”,如何判断MACD值不在0轴附近和均线目前是上升的还是下降的。 “金叉”的判断是EA里用的比较多的,这里我们用了判断大小的方法就能很容易的计算它,首先得到MACD两根线当前的值和上一根K线的MACD值,如果上一根K线的MACD主线大于信号线并且当前的MACD主线小于信号线那么就相当于这两根线做了一个“交叉”,因此我们可以认为MACD“金叉”了。从这里我们也能看出来用计算机的方法来解决我们人类所认知的问题靠的都是这种具体数值的计算,所以计算机还是比较“死板”的,如果两根线“扭”在了一起那么用计算机程序很难判断出来,这些就是目前计算机程序的缺点。 0轴附近这种判断方法这里利用了一点数学方面的知识,不过不用担心都是很简单的算法。把MACD值做绝对值运算然后判断是否大于指定的值,因为MACD会是负值做绝对值运算后直接判断是否大于设定的值就行了,这块相当于是简化了判断语句的条件。 均线的上升和下降判断和“金叉”的算法差不多,得到当前均线值和前一根线的均线值,如果前一根均线值小于当前值那么就说明均线是上升的。

if(ticket>0)
if(OrderSelect(ticket,SELECT_BY_TICKET,MACD神秘用法 MACD神秘用法 MODE_TRADES))
Print("BUY order opened : ",OrderOpenPrice());
>
else
Print("Error opening BUY order : ",GetLastError());
return;
>

//--- it is important to enter the market correctly, but it is more important to exit it correctly.
for(cnt=0;cnt

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//--- check for trailing stop
if(MACD神秘用法 TrailingStop>0)
if(Bid-OrderOpenPrice()>Point*TrailingStop)
if(OrderStopLoss() //--- modify order and exit
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green))
Print("OrderModify error ",GetLastError());
return;
>
>
>
>

细心的读者会发现,上面针对空单执行移动止损的代码相比针对多单移动止损的代码多了|| (OrderStopLoss()==0)) 这一段,这是因为对空单执行第一次移动止损时,如果该空单没有设置初始止损价的话,那么按照上面类似多单移动止损设置的代码编写的话空单的移动止损就不会执行,因为OrderStopLoss()等于0,所以(OrderStopLoss()>(Ask+Point*TrailingStop)便不成立,因此,针对空单设置移动止损的代码需要增加|| (OrderStopLoss()==0)) 这一段,以防碰到空单没有设置初始止损时程序无法执行。

二、基本策略
根据以上分析,可以看出该EA所使用的基本策略如下:
1、多头开仓:MACD处于0轴下方+MACD指标低位金叉+均线上升
空头开仓:MACD处于0轴上方+MACD指标高位死叉+均线下降
2、多头平仓:MACD处于0轴上方+MACD指标高位死叉
空头平仓:MACD处于0轴下方+MACD指标低位金叉
3、多头移动止损:订单止损价>卖价+移动止损*点,修改订单止损价
空头移动止损:订单止损价

周线cci和kDJ:退役老股民讲解的MACD结合KDJ和CCI运用,让散户看了在看!

周线cci和kDJ:退役老股民讲解的MACD结合KDJ和CCI运用,让散户看了在看!

周线cci和kDJ:退役老股民讲解的MACD结合KDJ和CCI运用,让散户看了在看!

二、KDJ指标运用关键点是: