не могу разобраться, на какой стратегии основан алгоритм, входные параметры это только условия торговли...?
не могу разобраться, на какой стратегии основан алгоритм, входные параметры это только условия торговли...?
Сама стратегия прописана в этих строках:
//--- it may be a good idea to also avoid NFP days, first thursday in any month. if((!session_found) && (str1.hour==Start_hour_US_session)) { //--- first time through, compute EU session highs and lows. TopRange=iHighest(m_symbol.Name(),Period(),MODE_HIGH,24,1); // 24 M15 bars during EU session LowRange=iLowest(m_symbol.Name(),Period(),MODE_LOW,24,1); // 24 M15 bars during EU session //--- if(TopRange<=0.0 || LowRange<=0.0) return; //--- if((TopRange-LowRange)<=ExtSmallEUSessionPips) small_session=true; else small_session=false; session_found=true; string text=(small_session)?"true":"false"; Print("Identified new EU session + ["+ DoubleToString(LowRange,m_symbol.Digits())+","+ DoubleToString(TopRange,m_symbol.Digits())+"]"+ " DayOfYear()="+IntegerToString(str1.day_of_year)+" small? "+text); }
У нас есть входной параметр "Start_hour_US_session" - как только находим соответствие текущего времени (сравниваем только часы) с этим параметром, начинаем искать наибольшие значение максимальных цен за период 24 бара и наименьшее значение минимальных цен за период 24 бара. Если разность этих цен меньше или равно входному параметру "Small EU Session (in pips)" - значит обнаружена "маленькая сессия" (с небольшой волатильностью) - "small_session".
Когда мы находимся внутри "US session" и при этом найдена "маленькая сессия" (с небольшой волатильностью) - "small_session"
if(session_found && small_session && (str1.hour>=Start_hour_US_session) && (str1.hour<End_hour_US_session)) // Within US session hours? { //--- Calculate EU session range //--- Print("Am in US session... small_session, bought, sold = " + small_session+bought+sold); //--- Print("TopRange = "+ TopRange + "LowRange = " + LowRange); int h=str1.hour; int m=str1.min; if(h>Start_hour_EU_session+5 && h<Start_hour_EU_session+10) {//--- at least one US session bar should be completed //--- Print("Could be buying/selling..."+h+":"+m); double low=iLow(1); double high=iHigh(1); //--- if(low==0.0 || high==0.0) return; //--- if(!RefreshRates()) return; if((!bought) && (low>(TopRange+Point()*3))) { if(OpenBuy(m_symbol.Bid()-ExtStopLoss,m_symbol.Ask()+ExtTakeProfit)) bought=true; } if((!sold) && (high<(LowRange-Point()*3))) { if(OpenSell(m_symbol.Ask()+ExtStopLoss,m_symbol.Bid()-ExtTakeProfit)) sold=true; } } // end if in 2nd US time. }// end if small session
мы ждём когда окажемся внутри "EU session" и получаем значения Low и High с первого бара.
Условие для открытия BUY: если в этот день ещё не было открыто ни одной позиции BUY и Low бара номер 1 БОЛЬШЕ наибольшего значение максимальных цен за период 24 бара в "US_session":
if((!bought) && (low>(TopRange+Point()*3))) { if(OpenBuy(m_symbol.Bid()-ExtStopLoss,m_symbol.Ask()+ExtTakeProfit)) bought=true; }
Условие для открытия SELL: если в этот день ещё не было открыто ни одной позиции SELL и High бара номер 1 МЕНЬШЕ наименьшего значение минимальных цен за период 24 бара в "US_session":
if((!sold) && (high<(LowRange-Point()*3))) { if(OpenSell(m_symbol.Ask()+ExtStopLoss,m_symbol.Bid()-ExtTakeProfit)) sold=true; }
ds
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
EURUSD breakout:
Автор: Vladimir Karputov