Старые пункты - страница 2

 
Alexey Volchanskiy:
Я даже думаю, это использовалось на версиях МТ4 < 600
http://forex-ratings.ru/forex-brokers/4digits-forex-brokers.php
Брокеры Форекс 2018 с четырехзначными котировками - Рейтинг брокеров Форекс на Forex-ratings.ru
Брокеры Форекс 2018 с четырехзначными котировками - Рейтинг брокеров Форекс на Forex-ratings.ru
  • forex-ratings.ru
В настоящее время различные брокеры предлагают торговлю с разной точностью значения котировок. Если Вас больше устраивает система котирования с так называемыми, старыми пунктами, следует выбирать брокерскую компанию из списка брокеры с четырехзначными котировками. Существенной разницы между новыми и старыми системами котирования нет, однако...
 
И что, я не знаю про 4-значных брокеров, пост к чему? Они давно все были 4-значные.
 
Alexey Volchanskiy:
И что, я не знаю про 4-значных брокеров, пост к чему? Они давно все были 4-значные.

Они и сейчас все 4х-значные.


С удивлением увидел что и ЕСN счета на сайте пишут как 4х-значные, а котировки в терминале 5ти-значные.


 
Alexey Viktorov:

Они и сейчас все 4х-значные.


С удивлением увидел что и ЕСN счета на сайте пишут как 4х-значные, а котировки в терминале 5ти-значные.


Что пишут на сайте, никого не интересует. Там и спреды пишут нулевые ))  Интересует реальный терминал.

 

Путаница возникла из-за того, что под термином "пункт" большинство трейдеров имеют в виду значение 0.0001 для инструментов-мажоров (EURUSD, GBPUSD, USDCHF, USDJPY). А в MQL4 и MQL5 пунктом является минимальная единица измерения цены инструмента, получаемая функцией Point(). В итоге программиcт пишет - 5 * Point(), ожидая получить 5 пунктов, но на счетах 5-изнаках получает 0.5 пункта.

Проверка, приведенная топикстартером, работает только в некоторых частных случаях. Универсально ее использовать нельзя. Выходом является предоставление пользователю возможности выбора, какие пункты он имеет в виду при настройке эксперта. Если имеются в виду "старые" пункты на инструментах с точностью 5 знаков, то эксперт должен умножить значения всех параметров, касающихся пунктов, на 10. Если же имеются в виду "новые" пункты или инструменты имеют точность 4 знака, то ничего не делать. То есть этим должен управлять сам пользователь, а эксперт только умножает или не умножает значения в зависимости от указанного пользователем варианта действий.

 
Ihor Herasko:

Путаница возникла из-за того, что под термином "пункт" большинство трейдеров имеют в виду значение 0.0001 для инструментов-мажоров (EURUSD, GBPUSD, USDCHF, USDJPY). А в MQL4 и MQL5 пунктом является минимальная единица измерения цены инструмента, получаемая функцией Point(). В итоге программиcт пишет - 5 * Point(), ожидая получить 5 пунктов, но на счетах 5-изнаках получает 0.5 пункта.

Проверка, приведенная топикстартером, работает только в некоторых частных случаях. Универсально ее использовать нельзя. Выходом является предоставление пользователю возможности выбора, какие пункты он имеет в виду при настройке эксперта. Если имеются в виду "старые" пункты на инструментах с точностью 5 знаков, то эксперт должен умножить значения всех параметров, касающихся пунктов, на 10. Если же имеются в виду "новые" пункты или инструменты имеют точность 4 знака, то ничего не делать. То есть этим должен управлять сам пользователь, а эксперт только умножает или не умножает значения в зависимости от указанного пользователем варианта действий.

Это программист не любит читать хелп )) Есть же

SYMBOL_POINT

Значение одного пункта

и

SYMBOL_TRADE_TICK_SIZE

Минимальное изменение цены


Но я рассчитываю в Значение_в_валюте_депозита / 1_лот, это самый универсальный способ. Вот отрывочек 

enum ECalcPointMode
{
    EInPoint,           //В пунктах
    EInQuoteInstrument, //В котировке инструмента
    EInPrice4Lot,       //В валюте депозита/лот
};
input ECalcPointMode    CalcPointMode   = EInPoint; 
input double            StopLoss        = 400;

double  ExtStopLoss;

int OnInit()
{
    switch(CalcPointMode)
    {
    case EInPoint:              
    //СЛ и ТП заданы в пунктах.
        ExtStopLoss = StopLoss * SymbolInfo.Point();
        ExtTakeProfit = TakeProfit * SymbolInfo.Point();
        break;
    case EInQuoteInstrument:    
    //СЛ и ТП заданы в котировке инструмента, например 0.00500 == 500 пунктов для 5-значной котировки или 50 п. для 4-х значной/
        ExtStopLoss = StopLoss;
        ExtTakeProfit = TakeProfit;
        break;
    case EInPrice4Lot:          
    //СЛ и ТП заданы в наиболее универсальном варианте, в единицах валюты депозита для одного лота текущего инструмента/
    //Например, для пары EURUSD и валюты депозита USD, ТП = $500/лот для лота 100000 ед. базовой валюты пары EUR, будет равен 0.00500 в котировке EURUSD.
        if(!Price2Quote(ExtStopLoss, StopLoss, _Symbol))
        {
            Alert("OnInit: function Price2Quote returns false", "  StopLoss=", DoubleToString(StopLoss, _Digits), "  Symbol=", _Symbol);
            return INIT_PARAMETERS_INCORRECT;
        }
 
Alexey Volchanskiy:

Это программист не любит читать хелп )) Есть же

SYMBOL_POINT

Значение одного пункта

и

SYMBOL_TRADE_TICK_SIZE

Минимальное изменение цены

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

 
Ihor Herasko:

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

Эту величину и надо считать пунктом
 
Alexey Volchanskiy:
Эту величину и надо считать пунктом

Какую? Изменение цены? Так на евро она равна значению, которую возвращает Point().

 
Ihor Herasko:

Какую? Изменение цены? Так на евро она равна значению, которую возвращает Point().

Да. Но кроме евро есть другие валюты, фьючи, акции, опционы. О чем мы говорим сейчас - о правильных пацанских понятиях пункта или о том, как правильно рассчитать реальный диапазон цены, например Реальный_СЛ = цена + СЛ? Я про свой метод сказал, все эти пункты - фикция.