Стоимоcть пункта

 

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

В справке MQL4 дается довольно сжатое описание этого параметра:

MODE_TICKVALUE

16

Размер минимального изменения цены инструмента в валюте депозита


С справке MQL5 есть аж три параметра:

SYMBOL_TRADE_TICK_VALUE

Значение SYMBOL_TRADE_TICK_VALUE_PROFIT

double

SYMBOL_TRADE_TICK_VALUE_PROFIT

Рассчитанная стоимость тика для прибыльной позиции

double

SYMBOL_TRADE_TICK_VALUE_LOSS

Рассчитанная стоимость тика для убыточной позиции

double


Всё, что я понял, это то, что SYMBOL_TRADE_TICK_VALUE и SYMBOL_TRADE_TICK_VALUE_PROFIT, это абсолютно одинаковые флаги по смыслу. И,поэтому, у меня возник вопрос. Может, для вычисления лота по риск менеджменту следует взять SYMBOL_TRADE_TICK_VALUE_LOSS, а не SYMBOL_TRADE_TICK_VALUE, раз лот вычисляется от процента риска по СЛ?

И еще один вопрос, это как раз то, что я не нашел в справке. Что такое, Размер минимального изменения цены инструмента в валюте депозита и
Рассчитанная стоимость тика? При каком объеме изменение цены на 1 пункт будет приводить к изменению прибыли позиции на
SYMBOL_TRADE_TICK_VALUE или SYMBOL_TRADE_TICK_VALUE_LOSS? На сколько я понял, при объеме в 1 лот. Но это только мои догадки. В справке об этом ничего нет.

 
Mihail Matkovskij:

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

В справке MQL4 дается довольно сжатое описание этого параметра:

MODE_TICKVALUE

16

Размер минимального изменения цены инструмента в валюте депозита


С справке MQL5 есть аж три параметра:

SYMBOL_TRADE_TICK_VALUE

Значение SYMBOL_TRADE_TICK_VALUE_PROFIT

double

SYMBOL_TRADE_TICK_VALUE_PROFIT

Рассчитанная стоимость тика для прибыльной позиции

double

SYMBOL_TRADE_TICK_VALUE_LOSS

Рассчитанная стоимость тика для убыточной позиции

double


Всё, что я понял, это то, что SYMBOL_TRADE_TICK_VALUE и SYMBOL_TRADE_TICK_VALUE_PROFIT, это абсолютно одинаковые флаги по смыслу. И,поэтому, у меня возник вопрос. Может, для вычисления лота по риск менеджменту следует взять SYMBOL_TRADE_TICK_VALUE_LOSS, а не SYMBOL_TRADE_TICK_VALUE, раз лот вычисляется от процента риска по СЛ?

И еще один вопрос, это как раз то, что я не нашел в справке. Что такое, Размер минимального изменения цены инструмента в валюте депозита и
Рассчитанная стоимость тика? При каком объеме изменение цены на 1 пункт будет приводить к изменению прибыли позиции на
SYMBOL_TRADE_TICK_VALUE или SYMBOL_TRADE_TICK_VALUE_LOSS? На сколько я понял, при объеме в 1 лот. Но это только мои догадки. В справке об этом ничего нет.


Для пятерки стоит посмотреть, как вычисляется в СБ в Trade\SymbolInfo.mqh

 
Alexey Volchanskiy:

Для пятерки стоит посмотреть, как вычисляется в СБ в Trade\SymbolInfo.mqh

Да, действительно, помню, что где-то в исходниках было вычисление лота по РМ. Спасибо, Алексей! Обязательно посмотрю.


Но, все же, мне бы хотелось подробно узнать, что такое стоимость тика.

 
Mihail Matkovskij:

Да, действительно, помню, что где-то в исходниках было вычисление лота по РМ. Спасибо, Алексей! Обязательно посмотрю.


Но, все же, мне бы хотелось подробно узнать, что такое стоимость тика.


Не ломайте голову и берите SYMBOL_TRADE_TICK_VALUE

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

Далее спрашиваете

И еще один вопрос, это как раз то, что я не нашел в справке. Что такое, Размер минимального изменения цены инструмента в валюте депозита и 
Рассчитанная стоимость тика? При каком объеме изменение цены на 1 пункт будет приводить к изменению прибыли позиции на 
SYMBOL_TRADE_TICK_VALUE или SYMBOL_TRADE_TICK_VALUE_LOSS? На сколько я понял, при объеме в 1 лот. Но это только мои догадки. В справке об этом ничего нет.

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

 
Alexey Volchanskiy:

Не ломайте голову и берите SYMBOL_TRADE_TICK_VALUE

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

Далее спрашиваете

И еще один вопрос, это как раз то, что я не нашел в справке. Что такое, Размер минимального изменения цены инструмента в валюте депозита и 
Рассчитанная стоимость тика? При каком объеме изменение цены на 1 пункт будет приводить к изменению прибыли позиции на 
SYMBOL_TRADE_TICK_VALUE или SYMBOL_TRADE_TICK_VALUE_LOSS? На сколько я понял, при объеме в 1 лот. Но это только мои догадки. В справке об этом ничего нет.

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

Поставил  SYMBOL_TRADE_TICK_VALUE в функцию вычисления лота. Работает, как в MT4. Но может же работать и лучше?

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

 
Mihail Matkovskij:

Поставил  SYMBOL_TRADE_TICK_VALUE в функцию вычисления лота. Работает, как в MT4. Но может же работать и лучше?

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


я как-то вел группу по обучению программированию на mql4

и был там такой товарищ, его постоянно мучали вопросы типа,- а почему функция называется OrderSend, а не SendOrder? Почему параметры в ней передаются в такой последовательности, а не в такой?

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

народ живо интересовался, - Саша, над чем сейчас бьется твой мозг?

- не могу понять, почему в MQL знак умножения звездочка, а не буква x, как в школе?

- Саш, ну тут же все просто! Большинство людей правши, звездочка на клавиатуре справа, а буква x слева!

Тут я прям через пространство почувствовал, как просветлело Сашино лицо, - ну как же я не допер, сейчас в тетрадку запишу!

- Саш, тетрадь-то большая?

- Да, 96 листов, уже всю исписал

Это я к тому, что вырастил великого программиста, до сих пор горжусь. А вы уже купили тетрадку для записи вопросов?

-----

Без обид)) Настроение хорошее, а история, кстати, реальная.

 

Кстати, вот реальная задачка по близкой теме

Написал две функции, первую реально использую давно в советниках, чтобы задавать SL, TP и подобные величины не в пунктах, а в долларах на лот (для валюты депо доллары).

И понадобилось написать обратную, но что-то я не очень уверен...правильная или может сбойнуть? Как считаете?

//+------------------------------------------------------------------+
// Преобразует цену "валюта депозита/лот" в разницу котировок. 
// Например, спред для пары EURUSD и валюты депозита USD, равный $16/лот для лота 100000 ед. базовой валюты пары EUR, будет равен 0.00016.
//+------------------------------------------------------------------+
bool Price2Quote(double &diff, double price4lot, string symbol)
{
    long dig = 0;
    double tickSize, tickValue; 
    if(!SymbolInfoInteger(symbol, SYMBOL_DIGITS, dig))
        return(false); // операция неуспешна
    if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tickSize))
        return(false); 
    if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE, tickValue))
        return(false); 
    if(tickValue > 0)    
    {
        diff = price4lot*tickSize / tickValue;
        diff = NormalizeDouble(diff, (int)dig);
    }
    else
        return false;    
    return true;
}

//+------------------------------------------------------------------+
// Преобразует разницу котировок в цену "валюта депозита/лот". 
// Например, спред 0.00016 для пары EURUSD и валюты депозита USD будет равен $16/лот для лота 100000 ед. базовой валюты пары EUR.
//+------------------------------------------------------------------+
bool Quote2Price(double diff, double &price4lot, string symbol)
{
    long dig = 0;
    double tickSize, tickValue; 
    if(!SymbolInfoInteger(symbol, SYMBOL_DIGITS, dig))
        return(false); // операция неуспешна
    if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_SIZE, tickSize))     // пункт в валюте котировки (0,00001 для EURUSD на 5-знаке) 
        return(false); 
    if(!SymbolInfoDouble(symbol, SYMBOL_TRADE_TICK_VALUE, tickValue))   // пункт в валюте депозита ($1 для EURUSD на 5-знаке)
        return(false); 
    if(tickValue > 0)    
    {
        double price = diff/(tickSize/tickValue);
        price4lot = NormalizeDouble(price, dig);
    }
    return true;
}
 
Alexey Volchanskiy:

я как-то вел группу по обучению программированию на mql4

и был там такой товарищ, его постоянно мучали вопросы типа,- а почему функция называется OrderSend, а не SendOrder? Почему параметры в ней передаются в такой последовательности, а не в такой?

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

народ живо интересовался, - Саша, над чем сейчас бьется твой мозг?

- не могу понять, почему в MQL знак умножения звездочка, а не буква x, как в школе?

- Саш, ну тут же все просто! Большинство людей правши, звездочка на клавиатуре справа, а буква x слева!

Тут я прям через пространство почувствовал, как просветлело Сашино лицо, - ну как же я не допер, сейчас в тетрадку запишу!

- Саш, тетрадь-то большая?

- Да, 96 листов, уже всю исписал

Это я к тому, что вырастил великого программиста, до сих пор горжусь. А вы уже купили тетрадку для записи вопросов?

-----

Без обид)) Настроение хорошее, а история, кстати, реальная.


Я правша, а печатаю левой рукой. Кстати есть еще английская X- она слева.

Брат правша, а мяч ведет левой ногой, и бьет точнее с левой.(бьет по мячу)

 
Alexey Volchanskiy:

я как-то вел группу по обучению программированию на mql4

и был там такой товарищ, его постоянно мучали вопросы типа,- а почему функция называется OrderSend, а не SendOrder? Почему параметры в ней передаются в такой последовательности, а не в такой?

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

народ живо интересовался, - Саша, над чем сейчас бьется твой мозг?

- не могу понять, почему в MQL знак умножения звездочка, а не буква x, как в школе?

- Саш, ну тут же все просто! Большинство людей правши, звездочка на клавиатуре справа, а буква x слева!

Тут я прям через пространство почувствовал, как просветлело Сашино лицо, - ну как же я не допер, сейчас в тетрадку запишу!

- Саш, тетрадь-то большая?

- Да, 96 листов, уже всю исписал

Это я к тому, что вырастил великого программиста, до сих пор горжусь. А вы уже купили тетрадку для записи вопросов?

-----

Без обид)) Настроение хорошее, а история, кстати, реальная.

:)))

Всё это ерунда. У меня тоже хорошее настроение. Поэтому, от души посмеялся :)

Но я одного не пойму. Зачем это писать, если не знаете правильного ответа на вопрос данной темы?

 
Evgeny Belyaev:

Я правша, а печатаю левой рукой.

И я правша, а печатаю всеми пальцами двух рук. Странно, да...
 
Evgeny Belyaev:

Я правша, а печатаю левой рукой. Кстати есть еще английская X- она слева.

Брат правша, а мяч ведет левой ногой, и бьет точнее с левой.(бьет по мячу)

Про нее и шла речь, зачем программисту русский язык ) Или ты (с ужасом в голосе) переменные называешь на русском??