В: Что мне не хватает?
MT4-Terminal, программируемое устройство доступа к торговле на стороне клиента, использует (по историческим причинам) индексацию регистров с обратным временем, в которых хранятся фактические/исторические значения { open, high, low, close, volume }
для соответствующих единиц времени (конкретные по продолжительности для каждого TimeFRAME).
Другие значения получаются/вычисляются из этих кардинальных значений (либо с помощью "предопределенных" (реализованных) индикаторов { iRSI(), iMFI(), ... }
, либо программно с помощью вашего MQL4-кода).
Первая распространенная проблема заключается в том, что время идет... (очевидно..., но удивительно, что в PriceDOMAIN есть некоторые искусственные побочные эффекты, которые, как ни странно, возникают из TimeDOMAIN, введенные историческими упрощениями для максимально быстрая обработка данных о ценах в режиме реального времени, которые вызывают проблемы, такие как ваша идея).
Как только появляется aNewBarEVENT
, происходит особый случай (всегда)...
Регистры open[0] == high[0] == low[0] == close[0] & volume[0] == 1
По прошествии времени и благодаря последующим поступлениям anFxMarketEVENT
в программное обеспечение вашего терминала MT4 volume[0]
> 1 растет, а регистр close[0]
получает все новые и новые значения (обычно отличные от open[0]
)
Таким образом, этот механизм «усложняет» любое принятие решений, связанных с «только что представленным» значением close[0]
, поскольку следующее поступление anFxMarketEVENT
(новая цена Ask
/Bid
от брокера) перемещает значение регистра в какое-то другое значение. значение, чем могло быть использовано в предыдущую (милли-)секунду.
Таким образом, ваш код мог начать некоторую активность прямо в тот момент (производное) значение iRSI( ..., PRICE_CLOSE, ... )
действительно было > 70, однако в течение оставшегося времени до anEndOfBAR
последующие close[0]
цены пошли в таком направлении, что последнее значение iRSI()
на " оставляя" бар был намного меньше 70 ... (как вы, кажется, пытаетесь изобразить на своем (обрезанном без масштабов) PrintScreen)
Вторая проблема связана с расстоянием между маркерами aPriceDOMAIN "выше" уровня свечи close[aBarPTR]
.
ДЛИННАЯ сделка была открыта по цене, заданной как Bid
== close[0]
, так и Spread
, тем не менее, на графике показаны цены свечей как цены на основе Bid
, поэтому в случае, если визуальное расстояние равно Spread
во время XTO (где значение Spread
может иметь постоянный или переменный размер, в зависимости от условий и положений вашего брокера), позиция входа в ДЛИННУЮ сделку является справедливой и правильной.
Третья проблема, которая может быть, но не обязательно иметь место в данном случае, заключается в том, что функция MT4-Terminal, называемая Тестер стратегии, была не совсем справедливой и удобной при работе с несколькими таймфреймами. расчеты во время бэктестинга. Несколько лет назад наша команда просто отказалась от использования встроенных функций и начала использовать нашу собственную обработку регистров, чтобы поддерживать наши собственные независимые значения с несколькими TimeFRAME, на которые мы действительно могли положиться.
В: Как я могу это исправить?
Из-за характера обработки событий горячего [0]
-бара вашему коду нужны другие фильтры или дополнительные индикаторы, которые не запаздывают (не добавляют дополнительную задержку и перекос во времени, когда срабатывает торговое решение) и не вызывают флаттера (повторение срабатывания в течение одного и того же бара).
MQL4
дает некоторые инструменты для этого, если нужно получить больше, можно прибегнуть к дополнительным внешним средствам (полностью распределенные многоагентные вычисления на основе grid/cloud/GPU).
Итак, наслаждайтесь великим миром FX/MT4.
Все эти возможности у вас под рукой.
person
user3666197
schedule
07.05.2015
shift
). Если ваша количественная модель подтвердит, что ваша стратегия не чувствительна к такой задержке TimeDOMAIN, вы можете закончить. В противном случае следует понимать, что такой обходной путь, основанный на синтаксисе, может также оказать огромное и разрушительное влияние на итоговую производительность торговой стратегии. Итак, количественный тест + количественный тест + количественный тест, прежде чем предположить его осуществимость. - person user3666197   schedule 08.05.2015