[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 482

 
Нет, я советник пишу, с виртуальным тралом... )

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

Спасибо.

 
rustein:
Спасибо, скажите пожалуйста как считать общую прибыль в пунктах всех открытых ордеров. Что надо подправить?


Используя OrderProfit() мы считаем в валюте депозита

Для расчета в пунктах модели для открытых и закрытых ордеров немного различаются

для открытых ордеров

double ProfitPoint(){
    int total=OrdersTotals();
    double profit=0;
    for (int pos=0;pos<total;pos++) {
    OrderSelect(......);
    if (myOrder()) { // выбор своего ордера или нужного (варианты на ваше усмотрение
       if (OrderType()==OP_BUY){
          profit+=(Bid-orderOpenPrice())/Point;
       } else if (OrderType()==OP_SELL) {
          profit+=(orderOpenPrice()-Ask)/Point;
       }
    }
    return(profit);
}

Что-то примерно так

 
rustein:
Нет, я советник пишу, с виртуальным тралом... )

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

Спасибо.

Для длинной позы профит в пипсах считается, как:

profit = (MarketInfo(OrderSymbol(), MODE_BID) - OrderOpenPrice()) / MarketInfo(OrderSymbol(), MODE_POINT);

Для коротких поз, так:

profit = (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_ASK)) / MarketInfo(OrderSymbol(), MODE_POINT);
 
Vinin:


Используя OrderProfit() мы считаем в валюте депозита

Для расчета в пунктах модели для открытых и закрытых ордеров немного различаются

для открытых ордеров

Что-то примерно так

double ProfitPoint(){
    int total=OrdersTotals();
    double profit=0;
    for (int pos=0;pos<total;pos++) {
    OrderSelect(......);
    if (myOrder()) { // выбор своего ордера или нужного (варианты на ваше усмотрение
       if (OrderType()==OP_BUY){
          profit+=(Bid-orderOpenPrice())/Point;
       } else if (OrderType()==OP_SELL) {
          profit+=(orderOpenPrice()-Ask)/Point;
       }
    }
    return(profit);
}
Только если все позы на одном инструменте, тогда можно и так.
 
Reshetov:
Только если все позы на одном инструменте, тогда можно и так.

Согласен
 
Спасибо и еще раз Спасибо! Все понял.
 

Господа - подмогните чюток...

Чёта совсем затупил - а вопрос такой - как комисию ордера перевести в пипсы?

 
sergeev:

рекомендую сделать через Comment.

RekkeR:

https://www.mql5.com/ru/code/10558
Автор, занят до неможливости, может кто сподобиться упростить машинку.

https://www.mql5.com/ru/forum/136747/page506

Roman. 06.01.2012 16:13
Это надо было чуть раньше к Alex Sergeev'у обращаться, когда он до НГ где-то создавал здесь ветку с его предложениями о доработке заинтересовавшей любого из форумчанина идеи, инструмента, шаблона и, кстати, говоря, там в ПЕРВУЮ очередь от него речь шла именно о подобных интерактивных штуковинах, о его готовности их доработать... Гляньте поиском или сами несколькими страничками позже - найдете, она (эта ветвь) чуть уплыла уже этак до 5-ой странички... :-)

П.С. Мош не поздно еще его попросить об этом...

??? Насчет поздно.

 
не поздно, но предложение для МТ5.
 
elmucon:

Господа - подмогните чюток...

Чёта совсем затупил - а вопрос такой - как комисию ордера перевести в пипсы?


через его лот. как профит считается. так и комиссию перевести.
Причина обращения: