Правильный расчет лота от % депо - страница 6

 
gochu:

конструктивная критика принимается


как я уже писал выше камраду Vinin:


TICKVALUE дает цену для TICKSIZE.

А дистанция до SL задается в пунктах POINT.

POINT не всегда совпадает с TICKSIZE (см. 3-значную пару XAUUSD у Альпари).

Значит - надо пересчитать расстояние до SL из POINT в TICKSIZE.

Иначе - в подобных случаях будем получать завышенный в 10 раз лот (что я и наблюдал на паре XAUUSD, пока не добавил пересчет).

пересчет делается так (перед тем как умножить на TICKVALUE): MarketInfo(lSymbol,MODE_TICKSIZE) / MarketInfo(lSymbol,MODE_POINT)

PS: и у Вас нет проверки на pipsLoss==0, что может дать ошибку "деление на 0"


 
EverAlex:

как я уже писал выше камраду Vinin:


TICKVALUE дает цену для TICKSIZE.

А дистанция до SL задается в пунктах POINT.

POINT не всегда совпадает с TICKSIZE (см. 3-значную пару XAUUSD у Альпари).

Значит - надо пересчитать расстояние до SL из POINT в TICKSIZE.

Иначе - в подобных случаях будем получать завышенный в 10 раз лот (что я и наблюдал на паре XAUUSD, пока не добавил пересчет).

пересчет делается так (перед тем как умножить на TICKVALUE): MarketInfo(lSymbol,MODE_TICKSIZE) / MarketInfo(lSymbol,MODE_POINT)

PS: и у Вас нет проверки на pipsLoss==0, что может дать ошибку "деление на 0"


Благодарю, проверю и доработаю!
 

подправил, кому надо стучитесь...

вопрос не по теме, кто-то работал со списком валютных пар доступных в терминале?...

направте на инфу(ссылку) по этой теме!

 
gochu:

подправил, кому надо стучитесь...

вопрос не по теме, кто-то работал со списком валютных пар доступных в терминале?...

направте на инфу(ссылку) по этой теме!

Это тут. См. также соседей по списку функций (в левой колонке)
 

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

нашел и подправил скрипт(прилагаю https://www.mql5.com/en/code/8317) .. но он работает очень долго... (на моем компе 12 минут)... хотелось бы что-то пошустрее

не найдя ничего путного, буду писать свое...

 

а вот и функция на несовпадение TICKSIZE и POINT

string CurrArray[];

string TICK_NOT_POINT()
{
   string resultString = "\nКоличество валютных пар="+IntegerToString(SymbolsTotal(false))+"\n";
   int quantCurr = SymbolsTotal(false);
   ArrayResize(CurrArray,quantCurr);
   Print(ArraySize(CurrArray));
   for(int i=0;i<ArraySize(CurrArray);i++)
     {
         CurrArray[i]=SymbolName(i,false);
         Print(SymbolName(i,false));
     }
     resultString+="\nНесовпадают TICKSIZE и POINT:";
   for(int i=0;i<ArraySize(CurrArray);i++)
     {
         if((int)(MarketInfo(CurrArray[i],MODE_TICKSIZE)/MarketInfo(CurrArray[i],MODE_POINT)) != 
        (int)(MarketInfo(CurrArray[i],MODE_POINT)/MarketInfo(CurrArray[i],MODE_POINT)))
           {
              resultString +="\n"+ CurrArray[i]+
              " TICKSIZE"+ DoubleToStr(MarketInfo(CurrArray[i],MODE_TICKSIZE), (int)MarketInfo(CurrArray[i],MODE_DIGITS))+ 
              " POINT"+DoubleToStr(MarketInfo(CurrArray[i],MODE_POINT), (int)MarketInfo(CurrArray[i],MODE_DIGITS));
           }      
     }
     return resultString;
}

только на демо альпари на 53 парах, я так и не увидел ниодной пары, у которой они разные

 
gochu:

а вот и функция на несовпадение TICKSIZE и POINT

только на демо альпари на 53 парах, я так и не увидел ни одной пары, у которой они разные


И какой из этого вывод?

Можно не добавлять строчку пересчета из пипсов в тики?

Пусть при переходе с 2-знака на 3-знак пользователи Вашей функции получат увеличение лота в 10 раз ?

Я уже сообщал выше - что по 3-значному XAUUSD в Альпах расхождение в расчете лота было, пока пересчет не добавил (счет real, ECN-new).

Если TICKVALUE задает цену для TICKSIZE, а дистанция (до SL, например) задана в Point, то надо пересчитывать из Point в TICKSIZE.

То, что где-то сейчас TICKSIZE совпадает с Point ничего не значит, и

не делать пересчет в тики - это закладывать бомбу пользователям Вашей функции.

 

нет, не в коем случае.. идея учотнения была в расчете коэфициента между TICKSIZE и POINT, с его учетом в расчете лота, что я и сделал, но не выложил....(это я о функции для расчета лота ), последняя функцмя нужна для простой проверки всех доспуных пар на той или иной платформе(для нахождения пар у которых эти вышеупомянутые параметры отличаются).. и не более

на истину в последней инстанции не притендую... всегда рад здоровому конфликту

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

 

коллеги, вопрос не по теме,прошу подсказки, с перенаправлением на ресурс.

Как узнать интревал неторгуемости валютных пар,

поясню, есть платформы (те же альпари), где USDRUB, ночью не торгуется, мне хотелось бы вычислить этот интервал, когда торговать запрещено Буду болагодарен за посощь, результатами изысканий поделюсь.

 
gochu:

коллеги, вопрос не по теме,прошу подсказки, с перенаправлением на ресурс.

Как узнать интревал неторгуемости валютных пар,

поясню, есть платформы (те же альпари), где USDRUB, ночью не торгуется, мне хотелось бы вычислить этот интервал, когда торговать запрещено Буду болагодарен за посощь, результатами изысканий поделюсь.


а при чём здесь платформы... он и вправду ночью не торгуется... все спят... :-)))
Причина обращения: