формула прибыли ордера на рынке (срочно)

  • Автор темы Автор темы Anton_uz
  • Дата начала Дата начала

Anton_uz

Местный житель
дайте формулу высчитывания прибыли ордера на рынке форекс в живых реальных условиях ДЦ

это срочно нужно
у меня оказ-ся есть ошибка

у меня вот такая формула:
Profit_Now=Tickvalue*OrderLot*OrderPips;

и из-за этого в роботе высчитывается прибыль в 3 раза меньше
но есть всё равно 1 плюс - тестер и робот работаю одинаково (LOL)

только щас догнал: значит мой робот в 3 раза больше прибыли делает не официально (ржу)
 
Последнее редактирование:

zpro

Почетный гражданин
дайте формулу высчитывания прибыли ордера на рынке форекс в живых реальных условиях ДЦ

это срочно нужно
у меня оказ-ся есть ошибка

у меня вот такая формула:
Profit_Now=Tickvalue*OrderLot*OrderPips;

и из-за этого в роботе высчитывается прибыль в 3 раза меньше
но есть всё равно 1 плюс - тестер и робот работаю одинаково (LOL)

только щас догнал: значит мой робот в 3 раза больше прибыли делает не официально (ржу)

OrderProfit() + OrderSwap() + OrderComission()
 

Anton_uz

Местный житель
неужели вы ничего не знаете ?

OrderProfit() + OrderSwap() + OrderComission()

нету у меня в тестере OrderProfit() к сожалению!

OrderSwap() + OrderComission() - это вообще не надо!

я просил расписать мне OrderProfit()
(могу сказать, что в формуле участвует параметр Кредитное_плечо)

позовите программистов MT4

очень нужно
в ответ подарю робота + инструкция
 
Последнее редактирование:

zpro

Почетный гражданин
нету у меня в тестере OrderProfit() к сожалению!

OrderSwap() + OrderComission() - это вообще не надо!

я просил расписать мне OrderProfit()
(могу сказать, что в формуле участвует параметр Кредитное_плечо)

позовите программистов MT4

очень нужно
в ответ подарю робота + инструкция
Тогда у тебя вроде как все правильно. Может в другом месте проблема
 
Последнее редактирование:

Anton_uz

Местный житель
помоги, если можешь

вобщем ДЦ у меня Roboforex, плечо: 1:100

снимок экрана (посмотри там максимальный убыток)
в это время у меня максимальный убыток в реале составлял -75
(смотри только ордера для пары NZDJPY)
к сожалению снимки были сделаны в разное время и выявить математическую закономерность тут не получится


т.е. моя собственная формула в данном ДЦ почему-то лжёт !
 

Вложения

  • TROUBLE.JPG
    TROUBLE.JPG
    219,8 КБ · Просмотры: 26
  • TROUBLE2.JPG
    TROUBLE2.JPG
    219 КБ · Просмотры: 28

zpro

Почетный гражданин
вобщем ДЦ у меня Roboforex, плечо: 1:100

снимок экрана (посмотри там максимальный убыток)
в это время у меня максимальный убыток в реале составлял -75
(смотри только ордера для пары NZDJPY)
к сожалению снимки были сделаны в разное время и выявить математическую закономерность тут не получится


т.е. моя собственная формула в данном ДЦ почему-то лжёт !

Почему лжет то?
На примере ордера 60061905
У тебя в комментарии убыток 705 пипсов и это -11.38 уе
В терминале убыток 1621 уе и убыток -26.19
Составляем простую пропорцию 1621/705 * 11.38 = 26.15.. так что с точностью до округления совпадает.
Так что видимо не стоит ожидать увеличения доходности в 3 раза
 

Anton_uz

Местный житель
помогите мне кто нибудь адекватный
у меня и так голова раскалывается

- робота сразу подарю
 

Anton_uz

Местный житель
мне нужна правильная формула!

помогите хоть 1 раз нормально

если вы запустите скрипт "Info.mq4" то он вам покажет ошибку моей формулы

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

Морфей, не тупи!
я же попросил, отнестись внимательно к моей просьбе!
мне нужна правильная формула
 

Вложения

  • info.mq4
    info.mq4
    1,9 КБ · Просмотры: 18
Последнее редактирование:

zhserg

Местный знаток
В твоем скрипте изменил одну строчку -
PHP:
Expand Collapse Copy
Print ("Ticket=",now_ticket,",  Profit=",Profit_Now,",  Pips=",order_pips, " Term=",OrderProfit());
что бы сразу сравнить..
Вот результат -
aG7W6Pr.png
 

Anton_uz

Местный житель
кто-нить помогите !

zhserg
- и что дальше
мне нужна формула
или ты чего-то хочешь ?

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

что не так ?
кто знает приколы брокера (Roboforex в моём случае)
 

Вложения

  • MY_ERROR.JPG
    MY_ERROR.JPG
    218,5 КБ · Просмотры: 12
  • MY_ERROR2.JPG
    MY_ERROR2.JPG
    222,2 КБ · Просмотры: 17
Последнее редактирование:

zhserg

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

zhserg

Местный знаток
Пупочек побереги, а то развяжется от смеха...
 

LongS

Новичок форума
Tickvalue для кроссов совсем не постоянная величина если прибыль рассчитывает в валюте депозита, которая в кросс не входит. Соответсвенно с увеличением OrderPips возрастает ошибка.

Подробнее можно посмотреть например здесь:

_http://ru.investing.com/education/Новичкам/Как-образуется-прибыль-на-forex-и-как-рассчитать-результаты-собственных-сделок-(Ч2)-31339
 

Anton_uz

Местный житель
3 года коту под хвост

Tickvalue для кроссов совсем не постоянная величина если прибыль рассчитывает в валюте депозита, которая в кросс не входит. Соответсвенно с увеличением OrderPips возрастает ошибка.

Подробнее можно посмотреть например здесь:

_http://ru.investing.com/education/Новичкам/Как-образуется-прибыль-на-forex-и-как-рассчитать-результаты-собственных-сделок-(Ч2)-31339

спс за ссылку
но проблема была в моей функции "int Point_DBL_to_INT(double chk)"
если ей на вход дать число 1.15442, то на выходе будет: 15442, (а должно быть 115442)
если ей на вход дать число 0.15442, то на выходе будет: 15442 (тут она сработает правильно)

дело в том, что с такой большой просадкой как сейчас мой робот не сталкивался - это хорошо, что я заметил это (случайно просто заметил)

вот исправленная функция:
Код:
Expand Collapse Copy
int Point_DBL_to_INT(double chk)
    {
    string st, sq;
    int sf, sl, sqt;
    //--------------------
    st=DoubleToStr(chk, Digits_now);
    sf=StringFind(st, ".", 0)+1;
    sq=StringSubstr(st, 0, sf-1);
    sqt=StrToInteger(sq);
    if (sf==0) return (chk);
    sl=StringLen(st)-1;
    st=StringSubstr(st, sf, sl);
    if (sqt!=0) sf=StrToInteger(sq+st); else
       {
       sf=StrToInteger(st);
       if (chk<0) sf=-sf;
       }
    return (sf);
    }
P.S.:

вы спросите: зачем вообще нужна эта функция?
отвечаю: если вместо неё поставить "order_pips=zoom/Point;", то не выходе этого загадочного выражения на языке MQL4 может быть "0" (в то время, когда этого физически быть не может) - это я определил ещё в старые времена, когда работал над роботом "Lagger", и поэтому я просто отказался от этого загадочного математического выражения


я понимаю всех вас
- кто будет копаться в чужом коде
ответ очевиден: кто писал - тот и будет копаться
 
Последнее редактирование:

LongS

Новичок форума
С тех пор наверняка версии mt4 поменялись. Скорее всего, Point теперь работает нормально. Еще вариант использовать MarketInfo(...).
 
Верх