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

 
Big Be:
КОГДА вы хотите использовать СТАТИЧЕСКУЮ переменную - какие проблемы она решает?

КОГДА вы хотите поместить что-то в секцию INIT() - какие проблемы это решает?

Big Be

Итак, ответ на этот вопрос: вместо или в дополнение к объяснениям в документации MQ4?

 

Как отслеживать несколько ордеров?

В настоящее время я создаю советника, который имеет только 1 открытую сделку в одно время.

У меня есть много переменных для отслеживания того, что происходит во время этой сделки.

Если бы у меня было больше открытых сделок в одно и то же время, я подумал, что мог бы использовать массивы для этих переменных с номером ордера в качестве ключа. Но, как я понимаю, ключи должны быть 0,1,2,3 и т.д.? Так что это невозможно.

Вместо этого я мог бы иметь многомерный массив, как это, я надеюсь, вы понимаете мое описание на javascript/php.

barsSinceOpen = array(

0 => array(0 => 123123, 1 => 63)

1 => array(0 => 552352, 1 => 5)

);

0 во втором измерении будет номером тикета, а 1 - количеством баров с момента открытия сделки.

BarSinceOpen - это просто пример... Я знаю, что мог бы вычислять это для каждой сделки каждый раз, когда захочу, но дело не в этом. У меня есть множество вещей, которые я отслеживаю для торговли.

И чтобы выбрать правильный ордер, я должен буду итерировать массив и выбрать массив второго уровня с правильным билетом.

Как вы думаете, это хорошая идея? Как бы вы это сделали?

 

Еще один вопрос

Похоже, что когда я делаю orderModify(), чтобы установить, например, тейк-профит.

А затем перед следующим тиком или можно сказать перед тем, как я снова выберу тот же ордер, я делаю еще один OrderModify(), чтобы установить стоп-лосс. И в этом случае я использую OrderTakeProfit(), чтобы не удалять тейк-профит. Но он все равно удаляет тейк-профит.

Нужно ли мне ждать следующего тика или снова выбирать ордер, чтобы OrderTakeProfit() вернул мой новый тейк-профит?

 
Big Be:
КОГДА вы хотите использовать СТАТИЧЕСКУЮ переменную - какие проблемы она может решить?

КОГДА вы хотите поместить что-то в секцию INIT() - какие проблемы она решает?

Big Be
ralph.ronnquist:
Итак, ответ на этот вопрос, это вместо или в дополнение к объяснениям в документации MQ4?

Это было бы в дополнение.

(Я всегда стараюсь сначала сделать домашнее задание).

Возможно, мне нужны пояснения и пример(ы).

Big Be

 
Big Be:
КОГДА вы хотите использовать СТАТИЧЕСКУЮ переменную - какие проблемы она может решить?

КОГДА вы хотите поместить что-то в секцию INIT() - какие проблемы это решает?

Big Be

Статическая переменная будет оставаться неизменной при каждом вызове функции, в которой она находится, если, конечно, она не изменена в функции. Возможно, вам нужно целое число в функции, которое вы хотите увеличивать на 1, например, при каждом вызове функции.

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

Пример init:

int init() {

TakeProfit=TakeProfit*Point;

StopLoss=StopLoss*Point;

TrailingStop=TrailingStop*Point;

breakEven=breakEven*Point;

return(0);

}

Это внешние переменные, и вы устанавливаете takeprofit на 50, например, если хотите получить 50 пунктов. Но для того, чтобы это работало в советнике, необходимо умножить его на значение пункта валюты, например, 0.001.

 
SimonF:
Статическая переменная будет оставаться неизменной при каждом вызове функции, в которой она находится, если, конечно, она не изменена в функции. Возможно, вам нужно целое число, которое вы хотите увеличивать на 1, например, при каждом вызове функции.

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

...

Саймон -

Спасибо. Пожалуйста, помогите прояснить ситуацию:

Значит ли это, что статическая переменная хранит последнее присвоенное ей значение, даже если она не является глобальной?

Что касается init(), похоже, что она используется как функция настройки.

- Не могли бы вы привести другие хорошие примеры для нее?

- Обязательно ли за ней следует deinit()?

Big Be

 

Спросите

codersguru:
Привет, друзья,

Я получил много личных сообщений с просьбой помочь мне с некоторыми частями кода.

Здесь вы можете оставлять свои вопросы, связанные с MQL4, и я постараюсь ответить на них.

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

Я хочу изучить mql непосредственно у вас, я прочитал ваш учебник и я кодировал пару советников.

 

цвет ма в зависимости от закрытия

HI,

Есть ли какой-нибудь индикатор ma, который меняет цвет в зависимости от закрытия свечи.Например, если свеча закрывается выше SMA, то цвет линии синий, но если ниже MA, то цвет меняется на красный.

Я знаю, что есть индикатор, который называется "ma_in_color.mq4", извините, но я не знаю, как его разместить, мой вопрос в том, есть ли кто-нибудь, кто мог бы запрограммировать звуковое оповещение в этом индикаторе.

большое спасибо

 

Какой самый простой способ заставить значения буферов индикатора отображаться в виде комментария или распечатываться в папке experts, чтобы я мог видеть изменение значений? У меня 8 буферов в этом индикаторе.

Дэйв

 

ctrl-D .

Причина обращения: