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

 
Dmitiry Ananiev:

вот скрипт показывает прибыль за период , суммарный лот и комиссию  по каждому инструменту.
Не благодарите. 

скрипт норм ну дело в то что нужна комса по открытым позам а это в истории 

 
Aleksandr Egorov:

скрипт норм ну дело в то что нужна комса по открытым позам а это в истории 

Ранее уже обсуждалось. Комиссию (декларируемую брокером) вы можете посмотреть в условиях торговли у брокера. А реальную комиссию на исполнение приказа (ордера) можно узнать только после исполнения приказа, до исполнения нельзя узнать.

ЗЫ. Это как спред на следующем тике. На текущем тике мы не знаем, что будет на следующем, ни цену, ни спред, ни свопы ни комиссию. А брокер имеет право их менять.

[Удален]  
Aleksandr Egorov:

тут нужно еще проверку сделать на то что считается за вход и выход или только за вход и отнимать часть позы если открыл 1 лотом а потом 0.5 закрыл 

короче нужно еще повозится

что то мудрю  - пока сам не понимаю . записываю отдельно, когда открывается и отдельно когда закрывается позиция.

мудрю

//+------------------------------------------------------------------+
//|                                                   Commission.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Trade\Trade.mqh>
CTrade trade;
#property script_show_inputs
//---
input bool Inp_open_close = false; // Open --> false || Close --> true
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart(void)
  {
//---
   if(!Inp_open_close)
     {
      if(!trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,0.1,SYMBOL_ASK,0.0,0.0))
         Print(trade.ResultRetcode());
      PlaySound("ok.wav");
      CSV_OPEN();
     }
   if(Inp_open_close)
     {
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100)
         trade.PositionClose(_Symbol,3);
      PlaySound("ok.wav");
      CSV_CLOS();
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Komsa(void)
  {
   double  commicion=0;
   ulong tikett,entry;
   ulong tik,ord;
//---------------------------------------------------------------
   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionGetSymbol(i)==_Symbol)
        {
         tik=PositionGetTicket(i);
         //---------------------------------------------------------------
         HistorySelect(0,TimeCurrent());
         for(uint r=HistoryDealsTotal()-1; r>0; r--)
           {
            if((tikett=HistoryDealGetTicket(r))>0)
              {
               ord=HistoryDealGetInteger(tikett,DEAL_ORDER);
               entry =HistoryDealGetInteger(tikett,DEAL_ENTRY);
               if(entry==DEAL_ENTRY_IN)
                 {
                  if(tik==ord)
                    {
                     commicion+=HistoryDealGetDouble(tikett,DEAL_COMMISSION);
                    }
                 }
              }
           }
        }
     }
//--------------------------------------------------------------
   Comment(" commisia "+DoubleToString(commicion,2));
   return(commicion);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CSV_OPEN(void)
  {
//---
   ResetLastError();
   int filehandle=FileOpen("CommissionOpen.csv",FILE_READ|FILE_WRITE|FILE_CSV);
   if(filehandle==-1)
     {
      int res=GetLastError();
      Print("File open error :  ",
            res);
      return;
     }
   FileSeek(filehandle, 0, SEEK_END);
   FileWrite(filehandle,Komsa());
   FileClose(filehandle);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CSV_CLOS(void)
  {
//---
   ResetLastError();
   int filehandle=FileOpen("CommissionClose.csv",FILE_READ|FILE_WRITE|FILE_CSV);
   if(filehandle==-1)
     {
      int res=GetLastError();
      Print("File open error :  ",
            res);
      return;
     }
   FileSeek(filehandle, 0, SEEK_END);
   FileWrite(filehandle,Komsa());
   FileClose(filehandle);
  }
//+------------------------------------------------------------------+
 
Valeriy Yastremskiy:

Ранее уже обсуждалось. Комиссию (декларируемую брокером) вы можете посмотреть в условиях торговли у брокера. А реальную комиссию на исполнение приказа (ордера) можно узнать только после исполнения приказа, до исполнения нельзя узнать.

ЗЫ. Это как спред на следующем тике. На текущем тике мы не знаем, что будет на следующем, ни цену, ни спред, ни свопы ни комиссию. А брокер имеет право их менять.

Ну так ему и нужно узнать по открытым позициям

 
Прошу помощи у сообщества...
MT5
Не смог провести оптимизацию перебором параметров на нескольких парах одновременно.
При выборе в тестере в графе "Символ" опции "Все символы из Обзора рынка" отключается возможность задать перебор входных параметров на вкладке "Параметры", просто не ставятся галочки и не вводятся значения. Что нужно сделать ?
 
MikeZv:
Прошу помощи у сообщества...
MT5
Не смог провести оптимизацию перебором параметров на нескольких парах одновременно.
При выборе в тестере в графе "Символ" опции "Все символы из Обзора рынка" отключается возможность задать перебор входных параметров на вкладке "Параметры", просто не ставятся галочки и не вводятся значения. Что нужно сделать ?

не оптимизируется на нескольких символах, просто тестируется

 
Mikhail Mishanin:

не оптимизируется на нескольких символах, просто тестируется

И перебирать по каждому символу параметры нужно в отдельном тесте ?
В МТ4 также. Т.е. возможность мультивалютного тестирования в МТ5  - это миф ?

UPD  Однако, в документации прямо сказано :

  • Следует понимать, что указание символа не означает, что тестер будет использовать только эти исторические данные. Информацию по всем символам, задействованным в советнике, тестер загружает себе автоматически.
 Т.е. предполагается выбор одного символа с установкой переборов параметров, а тестер потом применит эти параметры " по всем символам, задействованным в советнике "
[Удален]  
MikeZv:

И перебирать по каждому символу параметры нужно в отдельном тесте ?
В МТ4 также. Т.е. возможность мультивалютного тестирования в МТ5  - это миф ?

.....

Вы сами то понимаете разницу между словами "тестирование" и "оптимизация" ???

 
Сергей Таболин:

Вы сами то понимаете разницу между словами "тестирование" и "оптимизация" ?

Перебрать параметры по символу - это тестирование или оптимизация ?

 
Vitaly Muzichenko:

Ну так ему и нужно узнать по открытым позициям

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

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

Aleksandr Egorov, 2021.07.14 18:04

как посчитать комисию при открытых ордерах в мт5 по каждой паре отдельно ? у кого нить есть готовое решение 

Да, ошибся. Перебором позиций по каждой паре)