советник - разные вопросы - страница 35

 

#sparam - Открыть

Я только что поймал эти различные методы " sparam " в моем основном коде.
Теперь я пытаюсь выбрать один метод из них, но с трудом, даже я исследовал об этом в документации mql4.

Вопрос: Какой метод правильный и почему, пожалуйста?

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

// # 1
if(sparam==button)
{
  // here code
}

// # 2
if(id==CHARTEVENT_OBJECT_CLICK && sparam==button)
{
  // here code
}

// # 3 ( was 2 I just forgot to change )
if(id==CHARTEVENT_OBJECT_CLICK)
{
  if(sparam==button)
    {
     // here code
    }
}
 

#1 обычно размещается внутри события click, так что это даст вам то же самое, что и # 2 А также то же самое, что и другой # 2

 
#sparam - Закрыто

Marco vd Heijden:

#1 обычно размещается внутри события click, так что это даст вам то же самое, что и # 2 А также то же самое, что и другой # 2

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

 

#Delete Order Objects / OnTrade() - Открыть

Последние 2 часа я потратил свое время на исследование функции OnTrade(), в итоге я знаю, что функция не работает в MT4. (Пожалуйста, кто-нибудь скажите: вы ошибаетесь, что она работает).

Итак, цена не будет достигать уровней Stop Loss и Take Profit в каждом тике, каждой секунде, каждой минуте, как обычно (если я прав).
То есть я пытаюсь, когда цена попадает на уровни Stop Loss и Take Profit, тогда эти объекты #Ticket можно удалить.
Я знаю, что могу поместить " My_OrderObjectsDelete() " в OnTimer() и OnTick() - я пытаюсь найти функцию, подобную OnTrade().

Мне нужен совет, куда я могу поместить " My_OrderObjectsDelete() ", пожалуйста.

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

 
Мне немного трудно понять, что вы хотите.

В mt4, если открытый ордер достиг STP или TGT, вы находите его в истории ордеров. Так что если вы не можете найти его больше в OrdersTotal(), проверьте список OrdersHistoryTotal().

Но что если вы будете отслеживать STP и TGT снова Bid и Ask и проверять ордера только если эти проверки были успешными - независимо от того, где вы разместили его в InTick() или OnTimer().
 
Carl Schreiber:
Мне немного трудно понять, что вы хотите.
В mt4, если открытый ордер достиг STP или TGT, вы находите его в истории ордеров. Так что если вы не можете найти его больше в OrdersTotal(), проверьте список OrdersHistoryTotal().
Но что если вы будете отслеживать STP и TGT снова Bid и Ask и проверять ордера только если эти проверки были успешными - независимо от того, куда вы поместили его в InTick() или OnTimer().

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

Но меня беспокоит вот что: я бы не хотел, чтобы эта часть кода постоянно выполнялась, потому что индикатор Price не должен каждый тик пересекать мои уровни Stop Loss и Take Profit.

( Я уже знаю, как я могу удалить эти объекты после закрытия заказа - также проверьте этот комментарий - Имя функции " deleteobjs() " - #238)

 

#Delete Order Objects / OnTrade() - Закрыто

Я поставлю свою функцию либо OnTick(), либо OnTimer().

 

#StringLen - Open

Я все еще исследую эту проблему - но я не могу найти ни одного похожего форума - и ничего другого.

Я пытаюсь посчитать количество цифр. Нижеприведенный код дает разные результаты, пожалуйста, помогите мне.

Bid_Len = StringLen( IntegerToString( change_to_points( Bid ) ) );

// Results
// EURUSD = 1.23456 > 123456
// NZDUSD = 0.12345 > 12345
Заранее спасибо.
 
Max Enrik:

#StringLen - Open

Я все еще исследую эту проблему - но я не могу найти ни одного похожего форума - и ничего другого.

Я пытаюсь посчитать количество цифр. Нижеприведенный код дает разные результаты, пожалуйста, помогите мне.

Bid_Len = StringLen( IntegerToString( change_to_points( Bid ) ) );

// Results
// EURUSD = 1.23456 > 123456
// NZDUSD = 0.12345 > 12345
Заранее спасибо.
Пожалуйста, не могли бы вы подробнее объяснить, что вы пытаетесь сделать?
 
honest_knave:
Пожалуйста, не могли бы вы подробнее объяснить, что вы пытаетесь сделать?

Спасибо за ваш быстрый ответ.

Ниже показано то, что я хочу сделать.

StringLen-1

(просто быстро сделал)

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

// 2-й раз отредактировано

Надеюсь, это поможет вам больше.

StringLen - объяснить - 1