背離(Divergence)
背離又稱背馳,是指當股票或指數在下跌或上漲過程中,不斷創新低(高),而一些技術指標不跟隨創新低(高),稱為背離。在背離過程中,升勢或跌勢會放緩,股價的走勢將會逆轉。所謂底背離就是股價或指數處於相對低位。頂背離反之。
背離的形式
1、頂背離(top divergence)
頂背離,意即升勢放緩,指數或股價難再企穩於高位,甚至有機會掉頭回落;若見此,投資者應趁早賣出。
2、底背離(bottom divergence)
底背離,意即跌勢將盡,指數或股價開始見底回升,這屬於買入訊號。
#include <Trade\Trade.mqh>
#include <MagicMT5_函數庫V1.mqh>
ENUM_TIMEFRAMES 時間週期 = PERIOD_H6 ;
int OnInit()
{
LoadEA = TimeCurrent();
return(INIT_SUCCEEDED);
}
void OnTick()
{
if(AccountInfoDouble(ACCOUNT_BALANCE) <= 資金風控)
{
Alert("********** 資金不足 *************");
return;
}
BarNumber = iBarShift(Symbol(),時間週期,LoadEA);
BarSinceExit = BarNumber-CloseOrderNo ;
if((BarNumber == 1 && BarNumber != JudgeNo))
{
多單進場單號 = Buy_at_MARKET(Symbol(),Lots,0,0,"1st_K",MagicNumber) ;
LX_CloseByTicket(多單進場單號,Lots) ;
CloseOrderNo = iBarShift(Symbol(),時間週期,LoadEA);
FastSma = MathMin(LenA1, LenB1);
SlowSma = MathMax(LenA1, LenB1);
}
if(BarNumber != JudgeNo)
{
換K棒();
//時間濾網
允許交易時段 = true ; //無濾網
}
Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
Bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
AccountBalance=AccountInfoDouble(ACCOUNT_BALANCE);
Tickvalue=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE);
SP = NormalizeDouble(MathAbs(Ask-Bid),Digits()) ;
//+------------------------------------------------------------------+
//|計算交易手數
//+------------------------------------------------------------------+
if(Lots_AutoCal == true)
{
Lots = get_dynamic_lot_size(Lots_Even,Symbol(),RiskPercent,AccountBalance,SL) ;
Lots = MathMin(0.3,MathMax(0.01,Lots)) ;
}
if(允許交易時段 == true)
{
//+------------------------------------------------------------------+
//|多單進場 RSI 低檔背離
//+------------------------------------------------------------------+
LE_Cond = (RSI_LDiv_01()) ;
if(LE_Cond == true)
{
if(多單部位() == 0 && 空單部位() == 0 && BarNumber != OrderBarNo)
{
買入價格 = NormalizeDouble((HighD[1]+HighD[2])*0.5,Digits()) ;
//距離上筆出場經過一根K棒 且當日未進場
if(BarSinceExit > 1 && EntriesToday(MagicNumber,Symbol()) < 1)
{
// 空手+掛單突破買入
if(Close[1] < 買入價格)
{
多單進場單號 = Buy_at_STOP(Symbol(),MagicNumber,買入價格,Lots,TP,SL,"BUY STOP",3600) ;
OrderBarNo = iBarShift(Symbol(),時間週期,LoadEA);
}
} // end of BarSinceExit > 1
} // end of 空手且不同根K棒() == true
} // end of LE_Cond == true
//+------------------------------------------------------------------+
//|空單進場 MACD 高檔背離
//+------------------------------------------------------------------+
SE_Cond = (MACD_HDiv_01()) ;
if(SE_Cond == true)
{
if(多單部位() == 0 && 空單部位() == 0 && BarNumber != OrderBarNo)
{
賣出價格 = NormalizeDouble((a_FastSma[2] - a_ATR[2]*2,Digits()) ;
//距離上筆出場經過一根K棒 且當日未進場
if(BarSinceExit > 1 && EntriesToday(MagicNumber,Symbol()) < 1)
{
// 空手+掛單跌破賣出
if(Close[1] > 賣出價格)
{
空單進場單號 = Short_at_STOP(Symbol(),MagicNumber,賣出價格,Lots,TP,SL,"Short STOP",3600) ;
OrderBarNo = iBarShift(Symbol(),時間週期,LoadEA);
}
} //end of BarSinceExit > 1
} // end of 空手且不同根K棒() == true
} // end of SE_Cond == true
} //end of 允許交易時段 == true
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
if(隔日沖 == true && getTM_hour(TimeCurrent()) == 隔日沖出場時間)
{
if(多單部位() > 0 || 空單部位() > 0)
{
隔日沖平倉();
}
}
if(多單部位() > 0)
{
//+------------------------------------------------------------------+
//| Buy Exit Method 多單 MACD高檔背離 & 固定停損平倉
//+------------------------------------------------------------------+
double 多單最小停利 = 0.0;
bool LX_MinPF = false ;
多單進場價格 = LE_EntryPrice(MagicNumber,多單進場單號);
多單最小停利 = NormalizeDouble(多單進場價格 + SP*3,Digits()) ;
LX_MinPF = Bid > 多單最小停利 ;
多單停利價格 = NormalizeDouble(多單進場價格 + TP * Point(),Digits()) ;
多單停損價格 = NormalizeDouble(多單進場價格 - SL * Point(),Digits()) ;
LX_Cond = ((LX_MinPF == true && (MACD_HDiv_01() == true)) || (Close[1] >= 多單停損價格 && Bid < 多單停損價格)) ;
//---------------------------------------------------------多單出場
if(LX_Cond == true && BarNumber != CloseOrderNo && BarNumber != OrderBarNo && LE_BarsSinceEntry(MagicNumber,多單進場單號,時間週期) > 0)
{
LX_CloseByTicket(多單進場單號,Lots) ;
if(多單部位() == 0)
{
CloseOrderNo = iBarShift(Symbol(),時間週期,LoadEA) ;
}
}
} // end of 多單部位() > 0
if(空單部位() > 0)
{
//+------------------------------------------------------------------+
//| Short Exit Method 空單 以一目均衡表雲層界線平倉
//+------------------------------------------------------------------+
空單進場價格 = SE_EntryPrice(MagicNumber,空單進場單號);
空單停利價格 = NormalizeDouble(空單進場價格 - TP * Point(),Digits()) ;
空單停損價格 = NormalizeDouble(空單進場價格 + SL * Point(),Digits()) ;
bool SXcond51,SXcond52 ;
空單停利價格 = NormalizeDouble(MathMin(a_ICHI_SA[1], a_ICHI_SB[1]) - Range[1] * 2,Digits());
空單停損價格 = NormalizeDouble(MathMin((空單進場價格 + SL * Point()),MathMax(a_ICHI_SA[1], a_ICHI_SB[1]) + Range[1] * 2),Digits());
SXcond51 = (空單進場價格 > 空單停利價格 && Close[1] >= 空單停利價格 && Ask < 空單停利價格) ;
SXcond52 = (空單進場價格 < 空單停損價格 && Close[1] <= 空單停損價格 && Ask > 空單停損價格) ;
SX_Cond = (SXcond51 == true || SXcond52 == true) ;
//---------------------------------------------------------空單出場
if(SX_Cond == true && BarNumber != CloseOrderNo && SE_BarsSinceEntry(MagicNumber,空單進場單號,時間週期) > 0)
{
SX_CloseByTicket(空單進場單號,Lots) ;
if(空單部位() == 0)
{
CloseOrderNo = iBarShift(Symbol(),時間週期,LoadEA) ;
}
}
} // end of 空單部位() > 0
JudgeNo = iBarShift(Symbol(),時間週期,LoadEA);
} //end of onTick
//+------------------------------------------------------------------+
//| 自訂函數庫 |
//+------------------------------------------------------------------+
int 多單部位()
{
int count;
count = get_TradeCounts(Symbol(), MagicNumber,POSITION_TYPE_BUY) ;
return count ;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int 空單部位()
{
int count;
count = get_TradeCounts(Symbol(), MagicNumber,POSITION_TYPE_SELL) ;
return count ;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void 換K棒()
{
// 新K棒刪除所有掛單
if(total_pending_order_count(Symbol(), MagicNumber,-1) != 0)
{
delete_pending_orders_all(Symbol(), MagicNumber, -1, 0x0000ff);
}
Set_OHLC_Bar_Series(); //保留
Set_OHLC_Day_Series(); //保留
Get_OHLC_Bar(10) ; //保留
Get_OHLC_Day(10) ; //保留
set_BarInfo(); //保留
set_MACD();
set_RSI();
FloatTwoLine();
set_ICHIMOKU();
//+------------------------------------------------------------------+
//|
//+------------------------------------------------------------------+
void 隔日沖平倉()
{
if(getTM_hour(TimeCurrent()) == 隔日沖出場時間)
{
if(多單部位() > 0 && BarNumber != CloseOrderNo)
LX_CloseByTicket(多單進場單號,Lots) ;
if(空單部位() > 0 && BarNumber != CloseOrderNo)
SX_CloseByTicket(空單進場單號,Lots) ;
CloseOrderNo = iBarShift(Symbol(),時間週期,LoadEA) ;
}
}
//+------------------------------------------------------------------+
//| RSI 低檔背離 |
//+------------------------------------------------------------------+
bool RSI_LDiv_01()
{
if((ArrayMinimum(Low) !=0 && ArrayMinimum(Low) <= 2) && (ArrayMinimum(a_RSIA) > 2) && (a_RSIA[1] > 30))
{
return true;
}
return false;
}
//+------------------------------------------------------------------+
//| MACD 高檔背離 |
//+------------------------------------------------------------------+
bool MACD_HDiv_01()
{
if((ArrayMaximum(High) !=0 && ArrayMaximum(High) <= 2) && (ArrayMaximum(a_DIF) > 2) && (a_RSIA[1] < 70))
{
return true;
}
return false;
}
//+------------------------------------------------------------------+
交易商品 XAUUSD 樣本內區間 2019/1/1 ~2022/12/31 交易手數 固定 0.1手
隔日沖


沒有留言:
張貼留言