Вопрос знатокам MQL4

 
Существует ли в языке функция, возвращающая параметры закрытия последнего ордера - профит или лос. Или алгоритмическое решение проблемы. Заранее благодарен.
 
nys2000:
Существует ли в языке функция, возвращающая параметры закрытия последнего ордера - профит или лос. Или алгоритмическое решение проблемы. Заранее благодарен.

существует см. здесь.- стр. №4 ф-ии №№ 3,4.
 

Функция определения закрытия ордера по стоплоссу()

1. Ищем последний закрытый ордер

2. Если цена закрытия равна стоплосу

то правда,

иначе кривда


)

 
sanyooooook:

Функция определения закрытия ордера по стоплоссу()

1. Ищем последний закрытый ордер

2. Если цена закрытия равна стоплосу

то правда,

иначе кривда


)


А если по ценам открытия и крайняя свеча "закрытия" эдак пп на 50 выше/ниже стопа как нож прошла...и поза кроется с убытком... :-))) Тогда как?... :-)))
 
Roman.:

А если по ценам открытия и крайняя свеча "закрытия" эдак пп на 50 выше/ниже стопа как нож прошла...и поза кроется с убытком... :-))) Тогда как?... :-)))
в этом случае стоп передвигается ДЦ и поза закрывается по стопу с новой ценой )
 
sanyooooook:
в этом случае стоп передвигается ДЦ и поза закрывается по стопу с новой ценой )

О, Сейчас стало понятно... :-)))
 

Доброе утро!

Мне поручили вставить в советник ограничение по времени работы.

Причем так, чтобы позиции открывались без временного ограничения, а трал строго работал в заданное время.

Если я вставлю в код вот так ограничение, в самом конце ф-и СТАРТ:

int start()
{

ОСНОВНОЙ АЛГОРИТМ СОВЕТНИКА

 
 //====== Задаем время работы ТРАЛА  - 
// если время (в часах) больше Start и меньше End - то не работаем
if    (Hour()<Start || Hour()>End)  return(0);
 if (UseTrailing)  TrailPositions(); // выключатель трейлинг стопа

  return (0);    
 }
//=========================== конец функции СТАРТ  ======

Будет ли это ограничение действовать только строго на трал, а не на весь алгоритм?

Или здесь лучше скобками { ...... } задать ограничение по времени для работы трала?

 
Rita:

Доброе утро!

Мне поручили вставить в советник ограничение по времени работы.

Причем так, чтобы позиции открывались без временного ограничения, а трал строго работал в заданное время.

Если я вставлю в код вот так ограничение, в самом конце ф-и СТАРТ:

Будет ли это ограничение действовать только строго на трал, а не на весь алгоритм?

Или здесь лучше скобками { ...... } задать ограничение по времени для работы трала?

Всего алгоритма не видно, так что лучше скобочками... или в самой функции TrailPositions или условием

if (UseTrailing || Hour()>=Start || Hour() <=End)

 
Спсб.
 
splxgf:

Всего алгоритма не видно, так что лучше скобочками... или в самой функции TrailPositions или условием

if (UseTrailing || Hour()>=Start || Hour() <=End)


Вам ещё необходимо учесть переход через 0.

То-есть если разрешено время торговли, например, с 23.00 до 01.00, то ваше условие не сработает.

На мой взгляд лучше создать функцию, которая в соответствии со временем меняет флаги, на входе функции - время работы, на выходе true/false

А уже флаги вставлять в условие.

 
nys2000:
Существует ли в языке функция, возвращающая параметры закрытия последнего ордера - профит или лос. Или алгоритмическое решение проблемы. Заранее благодарен.

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