Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 769

 
Vitaly Muzichenko:

Спасибо за ответ, но как это сделать чтобы работало, даже не представляю

Попытаюсь последний раз достучаться... У меня нет счёта с такими инструментами обозначенными в проблеме, но вот скрипт работающий на форекс. Результат совпадает с теми значениями которые появляются в качестве подсказки как на этом скрине

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопросы от начинающих MQL5 MT5 MetaTrader 5

Vitaly Muzichenko, 2017.07.26 23:56

Вот смотрите, открыта бай одним лотом, когда ставим к ней тейкпрофит, то терминал пересчитывает сам в доллары, потому что счёт долларовый, 

но когда считаю Я по формуле (close_price-open_price)*Lots*TickPrice/TickSize, то получаю сумму тейкпрофита в рублях, а нужно отобразить так-же, но в долларах (валюта счёта)

На графике SBRF-9.17

Если поделить рубли на курс доллара 174.99/USDRUR = $2.93, то и получим тейкпрофит в долларах.

Как это записать программно, и чтоб она считала сама?

/********************Script program start function*******************/
void OnStart()
{
 for(int i = 0; i < PositionsTotal(); i++)
  {
   ulong positionTicket = PositionGetTicket(i);
   string positionSymbol = PositionGetString(POSITION_SYMBOL);
   ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
   double positionTP = PositionGetDouble(POSITION_TP);
   double positionOpen = PositionGetDouble(POSITION_PRICE_OPEN);
   double point = SymbolInfoDouble(positionSymbol, SYMBOL_POINT);
   int profitPoint = int(fabs(positionOpen-positionTP)/point);
   double positionProfit = PositionGetDouble(POSITION_PROFIT);
   string symbolCurrencyProfit = SymbolInfoString(positionSymbol, SYMBOL_CURRENCY_PROFIT);
   int currentProfit = positionType == POSITION_TYPE_SELL
    ? int((positionOpen-PositionGetDouble(POSITION_PRICE_CURRENT))/point)
    : int((PositionGetDouble(POSITION_PRICE_CURRENT)-positionOpen)/point);
   Print("PositionSymbol ", positionSymbol);
   Print("SymbolCurrencyProfit ", symbolCurrencyProfit);
   Print("PositionTP ", DoubleToString(positionTP, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionOpen ", DoubleToString(positionOpen, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionProfit ", DoubleToString(positionProfit, 2));
   Print("ProfitPoint ", profitPoint);
   Print("CurrentProfit ", currentProfit);
   Print("ИТОГО ", positionProfit/currentProfit*profitPoint);
  }
   
}/*******************************************************************/

У меня открыто 2 позиции. Вот результат работы скрипта

2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURGBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit GBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 0.88697
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 0.89197
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit 14.47
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit 109
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 66.37614678899082
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURJPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit JPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 130.940
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 130.440
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit -0.90
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit -9
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 50.0


НО!!! К сожалению к моменту закрытия позиции никто никогда не угадает какая будет котировка валюты прибыли к валюте депозита. В связи с этим абсолютно точное значение определить невозможно. Ну не получается заглянуть в будущее.

 
Vitaly Muzichenko:

Нет, для расчёта прибыли/убытка до открытия позиции, но в валюте депозита, а не инструмента

 

А зачем знать прибыль/убыток в вашем случае, не для контроля рисков? - просто стало любопытно - про валюту депозита ясно, хотя не ясно в каких реальных условиях это использовать.
 
Alexey Viktorov:

Попытаюсь последний раз достучаться... У меня нет счёта с такими инструментами обозначенными в проблеме, но вот скрипт работающий на форекс. Результат совпадает с теми значениями которые появляются в качестве подсказки как на этом скрине


У меня открыто 2 позиции. Вот результат работы скрипта


НО!!! К сожалению к моменту закрытия позиции никто никогда не угадает какая будет котировка валюты прибыли к валюте депозита. В связи с этим абсолютно точное значение определить невозможно. Ну не получается заглянуть в будущее.

Вот что показал скрипт:

2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionSymbol SBRF-9.17
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        SymbolCurrencyProfit RUR
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionTP 16777
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionOpen 16677
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionProfit 1.07
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ProfitPoint 100
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        CurrentProfit 64
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ИТОГО 1.671875
 
Vitaly Muzichenko:

Вот что показал скрипт:

Виталий, ну ведь сам можешь разобраться... Принцип-то проще чем 3 рубля...

PositionGetDouble(POSITION_PROFIT);

возвращает профит позиции в валюте депозита. Если это значение разделить на количество пунктов между открытием и текущей ценой, то получим стоимость пункта в валюте депозита... Остаётся только умножить стоимость на количество пунктов от открытия до тп и всё... Но поскольку у меня нет возможности, да и лениво регистрировать новый счёт для этого, разберись уж сам. А просто так не зная что должно получиться как можно понять правильный результат или нет? Может придётся вывести в принт какие-то дополнительные значения чтобы понять. Что там считается пунктом? Я этого не знаю, может это надо учитывать как-то. Или размер стандартного контракта как-то учитывается... хз(хотелось-бы знать).

 

Как понимать серый график


в обычном режиме изображения


 

В MT4 наводишь мышкой на график и видно, что это за точка - а тут картина статичная - бяка.

 
Как сделать построение графика оптимизации по конкретному показателю (прибыль/просадка/фв)?
 
Всем добрый день . У меня проблема , закинул деньги на счёт MQL5  и скачал себе приложение MetaTrader 5 но не могу туда перевести эти деньги что бы начать торговать . Помогите что делать 
 
Minora125:
Всем добрый день . У меня проблема , закинул деньги на счёт MQL5  и скачал себе приложение MetaTrader 5 но не могу туда перевести эти деньги что бы начать торговать . Помогите что делать 

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

Пишите в сервисдеск (есть ссылка в Вашем профиле) и просите вернуть средства, как ошибочно перечисленные.

 

После прохода в тестере открывается чарт со сделками, как это дело отключить?