Modify to allow direct specification of the starting point of the Parabolic SAR.
Parameters
- Trailing Mode ・・・ None / Trailing Fixed / Trailing Fixed Parabolic SAR
calcuration part of Parabolic SAR
bool CSampleExpert::LongModifiedEx(void) { bool res=false; //--- check for trailing stop if(m_trailing_max < m_last_bar.high) { double tp=m_position.TakeProfit(); double sl=m_position.StopLoss(); //--- calcurate ParabolicSAR 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()) { //--- modify position if(m_trade.PositionModify(Symbol(),sar_stop,tp)) printf("Long position by %s to be modified",Symbol()); else { printf("Error modifying position by %s : '%s'",Symbol(),m_trade.ResultComment()); printf("Modify parameters : SL=%f,TP=%f",sar_stop,tp); } //--- modified and must exit from expert res=true; } } //--- result return(res); }