今回は、メタトレーダー5で使用できる固定パラボリックSARを利用したトレーリングストップについてお話しします。これを使えば、トレーディングの戦略をさらに強化することができるでしょう。

パラメータ設定

- トレーリングモード ・・・ なし / 固定トレーリング / 固定パラボリックSARトレーリング
ここでの計算部分は、パラボリックSARを使用したストップロスの調整が含まれています。以下のコードは、トレーリングストップを設定するための基本的なロジックを示しています。
bool CSampleExpert::LongModifiedEx(void) { bool res=false; //--- トレーリングストップのチェック if(m_trailing_max < m_last_bar.high) { double tp=m_position.TakeProfit(); double sl=m_position.StopLoss(); //--- パラボリックSARの計算 m_trailing_max = m_last_bar.high; m_trailing_step = fmin(InpPSAR_Maximum, m_trailing_step + InpPSAR_Step); double sar_stop = sl + (m_trailing_max - sl) * m_trailing_step; sar_stop=NormalizeDouble(sar_stop,m_symbol.Digits()); //--- if((sl==0.0 || sl < sar_stop) && sar_stop < m_symbol.Bid()) { //--- ポジションの修正 if(m_trade.PositionModify(Symbol(),sar_stop,tp)) printf("ロングポジションが%sにより修正されました",Symbol()); else { printf("ポジション修正エラー: %s : '%s'",Symbol(),m_trade.ResultComment()); printf("修正パラメータ : SL=%f,TP=%f",sar_stop,tp); } //--- 修正後はエキスパートから退出 res=true; } } //--- 結果 return(res); }