Спрашивайте! - страница 147

 
AceFX:
Бен,

Не могу не поблагодарить вас за быстрый и полезный ответ. Вы были абсолютно правы, и благодаря этому я стал на шаг ближе!

Однако у меня есть еще один вопрос: я пытаюсь добавить точку безубыточности на уровне, меньшем, чем трейлинг-стоп, но не могу пройти дальше:

extern bool UseBreak_Even = True;

extern int Break_Even = 20;

...

Есть ли шанс получить совет и здесь?

Еще раз спасибо и всего доброго!

-Ace

Здравствуйте, Breakeven - это простая функция, вам просто нужно понять, что вам нужно, и тогда вы сможете придумать, что написать, чтобы это произошло.

1. Безубыток = перемещение стоплосса к цене открытия ордера, когда стоплосс ниже открытия (для покупки, выше открытия для продажи).

Чтобы проверить, ниже ли он, мы обычно используем следующее: OrderStopLoss()<OrderOpenPrice()

2. Перед переходом к безубытку необходимо проверить, истинны ли условия. Я использую что-то вроде этого:

if(bid>orderopenprice()+breakeven*point) move

3. Перемещение. Я использую что-то вроде этого:

ordermodify(symbol(),bla-bla-bla,,,,stoploss,takeprofit,0);

bla-bla-bla = набор параметров, которые не меняются для открытых ордеров, например, цена открытия ордера (может быть изменена для отложенных ордеров)

stoploss = я обычно ставлю здесь orderopenprice(), чтобы ордер был закрыт с прибылью в 0 пунктов.

takeprofit = если вы не хотите, чтобы TP менялся, просто введите OrderTakeProfit() (с учетом регистра!).

Надеюсь, это поможет и да, это оставляет вам возможность сделать работу самостоятельно.

О, и как найти ордер, который вы хотите изменить:

for(int i=0;i<=OrdersTotal();i++) {

if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;

if(OrderSymbol()!=Symbol()) continue;

if(OrderMagicNumber!=MagicNumber) continue;

if(your-condition-here) your-action-here;

}

Это должно сделать работу просто отлично этот цикл просто перебирает ордера и находит каждый ордер, открытый в данный момент. Затем он отфильтровывает ордера с различным магическим числом (вам нужно будет сначала определить магическое число) и ордера с различным символом(валютной парой).

Надеюсь, это поможет

nck

спасибо, но код бесполезен без индикаторов goldminer1 и goldminer2.

Новый советник прилагается. Не смог протестировать его по понятным причинам, поэтому, пожалуйста, не вините меня, если он работает не так, как должен. Он должен закрывать существующий ордер при получении нового сигнала, но может возникнуть конфликт сигналов, так как для покупки и продажи используются разные индикаторы.

Удачной работы с новым советником!

Файлы:
 

Размер сделки на тик или бар в MT4

Здравствуйте,

Я надеюсь, что кто-то с хорошим знанием внутреннего устройства MT4 сможет ответить на мой вопрос, и этот ответ может быть полезен всем: Я нигде не могу найти, как получить размер сделки для входящих тиков или для бара. Кажется, что это основная характеристика рынка, но функция MarketInfo не предоставляет ее. Возможно ли это вообще в MT4?

Спасибо

 
atkfam:
Здравствуйте,

Я надеюсь, что кто-то с хорошим знанием внутреннего устройства MT4 сможет ответить на мой вопрос, и этот ответ может быть полезен всем: Я нигде не могу найти, как получить размер сделки для входящих тиков или для бара. Кажется, что это основная характеристика рынка, но функция MarketInfo не предоставляет ее. Возможно ли это вообще в MT4?

Спасибо

double Volume[]

Серийный массив, содержащий тиковые объемы каждого бара текущего графика.

double iVolume( string symbol, int timeframe, int shift)

Возвращает значение тикового объема для бара указанного символа с таймфреймом и сдвигом. Если локальная история пуста (не загружена), функция возвращает 0.

Для текущего графика информация о тиковых объемах баров находится в предопределенном массиве Volume[].

Это то, что вы искали? Объемы основаны на количестве тиков, полученных во время бара, могут быть сгенерированы во время бэк-теста, различны для каждого брокера. Боюсь, что они не имеют большого значения.

 

Размер сделки на тик или бар в MT4

Shinigami,

Спасибо за ваш ответ, но я ищу фактический размер сделки, связанный с каждым тиком. Каждый тик, кажется, является сделкой купли/продажи, и я действительно хотел бы знать фактический размер такой сделки. Это 100 стандартных лотов или 1 лот или микролот? Это имеет значение.

 

Здравствуйте кодеры и коллеги трейдеры, у меня есть вопрос, но больше о логике.

Я уже довольно долго (безуспешно) пытаюсь сделать простой советник и надеюсь, что вы поможете мне сделать следующий шаг.

У меня есть пользовательский индикатор (2MA CrossoverWithPrice), и я хотел бы совершать покупку, когда появляются синие стрелки, и продажу, когда появляется красная стрелка.

Я вызвал индикатор с помощью функции iCustom следующим образом:

iCustom(NULL,0, "2MA CrossoverWithPrice",0,0,CLR_NONE);

и скомпилировал советника, и, кажется, все в порядке, так как я получаю предупреждение на графике, когда прикрепляю его (говорит, что пользовательский индикатор прикреплен).

Меня беспокоит то, что я не знаю, что делать дальше, как сказать советнику покупать и продавать, потому что индикатор создает 2 типа стрелок.

Может ли кто-нибудь помочь мне каким-либо образом? Посоветуйте что-нибудь, пожалуйста?

 

Торговый контекст занят

Привет, знает ли кто-нибудь способ продолжать отправлять закрытие или открытие брокеру, если вы продолжаете получать сигнал о занятости торгового контекста?

 

добавление уровней MA к индикатору

Боюсь, я не смогу помочь с вышеупомянутыми вопросами, поскольку готов поспорить, что я здесь самый новый программист-бездельник.

Я успешно (наконец-то!) сделал свой первый простой индикатор, который просто помещает 4 EMA на график - и их можно регулировать WOW! Я в восторге.

Теперь я хотел бы сделать возможность добавления уровней к одной или нескольким EMA. Кто-нибудь знает, как это сделать в коде? Также возможно ли иметь их как внешнюю переменную - чтобы иметь возможность варьировать уровни - или для этого должен быть другой параметр?

Как только я смогу взломать это, я добавлю булевые вещи, чтобы я мог отключить каждый EMA - маленькие шаги за раз. Теория заключается в том, чтобы найти наиболее подходящую EMA и добавить уровни, показывающие диапазон (возможно, 2 уровня вверх и 2 вниз).

Заранее спасибо,

Дэйв

 
willmalou:
Привет, кто-нибудь знает способ продолжать посылать ордера на закрытие или открытие брокеру, если вы продолжаете получать сигнал о занятости торгового контекста?

Вам придется поместить ордерend в цикл и проверить ответ от брокера. Если ответ -1, отправьте ордер снова. Возможно, вы захотите установить небольшую задержку перед повторной отправкой с помощью функции Sleep.

Удачи

Lux

 
atomi50:
Здравствуйте кодеры и коллеги трейдеры, у меня есть вопрос, но больше о логике.

Я уже довольно долго (безуспешно) пытаюсь сделать простой советник и надеюсь, что вы поможете мне сделать следующий шаг.

У меня есть пользовательский индикатор (2MA CrossoverWithPrice), и я хотел бы делать покупки, когда появляются синие стрелки, и продажи, когда появляется красная стрелка.

Я вызвал индикатор с помощью функции iCustom следующим образом:

iCustom(NULL,0, "2MA CrossoverWithPrice",0,0,CLR_NONE);

и скомпилировал советника, и, кажется, все в порядке, так как я получаю предупреждение на графике, когда прикрепляю его (говорит, что пользовательский индикатор прикреплен).

Меня беспокоит то, что я не знаю, что делать дальше, как сказать советнику покупать и продавать, потому что индикатор создает 2 типа стрелок.

Может ли кто-нибудь помочь мне каким-либо образом? Советом или чем-нибудь еще, пожалуйста?

Для начала вы неправильно используете icustom. Последняя переменная должна быть баром, который вы хотите проверить, обычно 0 или 1, или это может быть переменная. Не совсем понятно, почему вы посылаете цвет?

Предпоследняя переменная - это буфер, который вы пытаетесь вернуть. Если в нем только две стрелки, я бы предположил, что это буферы 0 и 1. Так что вы должны проверить, не установлены ли они на что-то, кроме 0 или NULL, в зависимости от индикатора. Вам нужно посмотреть код индикатора, чтобы понять, какой буфер связан с какой стрелкой, а затем использовать их соответственно.

Почитайте еще раз о функции icustom.

Удачи

Lux

 

Построить пересечение МА нижнего ТФ на графике верхнего ТФ?

Здравствуйте,

Я хочу знать, как я могу построить пересечение МА более низкого таймфрейма на графике более высокого таймфрейма.

Например, я хочу построить стрелку на графике H1 при пересечении MA5 и MA10 на M15.

Пожалуйста, дайте мне знать.

Спасибо,

JForex.