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

 
maxvoronin74 #:

И конкатенация, о которой я спрашивал, не принимается MetaEditor-ом. Хотя я взял ее из статьи МетаКвот (https://www.mql5.com/ru/articles/12103)...

По конкатенации выяснил, что, видиимо, класс диктует вместо position писать m_position.

 
maxvoronin74 #:

По конкатенации выяснил, что, видиимо, класс диктует вместо position писать m_position.

Переменную position или m_position можете назвать как угодно, например, pos, posit, k_pos, k_position и т.д. и т.п.

С уважением, Владимир.

 
MrBrooklin #:

Переменную position или m_position можете назвать как угодно, например, pos, posit, k_pos, k_position и т.д. и т.п.

С уважением, Владимир.

С переменными Вы правы. Но в классе CTrade эта строка m_position, наверное, как-то иначе называется. Чтобы открыть позицию, пишем m_trade.Buy(), вместо position.Magic(), как в статье, пишем m_position.Magic(). Везде эта приставка m_.
 

Похоже Вы запутались. Вот посмотрите и прочитайте внимательно комментарии к каждой строке:

#include <Trade\PositionInfo.mqh>  // включим файл PositionInfo.mqh
#include <Trade\Trade.mqh>         // включим файл Trade.mqh
#include <Trade\SymbolInfo.mqh>    // включим файл SymbolInfo.mqh
#include <Trade\AccountInfo.mqh>   // включим файл AccountInfo.mqh

CPositionInfo m_position; // CPositionInfo - класс для работы со свойствами открытой позиции;  m_position - переменная для упрощенного доступа к свойствам открытой позиции
CTrade        m_trade;    // CTrade        - класс для совершения торговых операций;           m_trade    - переменная для упрощенного доступа к торговым операциям
CSymbolInfo   m_symbol;   // CSymbolInfo   - класс для работы со свойствами торг. инструмента; m_symbol   - переменная для упрощенного доступа к свойствам торгового инструмента
CAccountInfo  m_account;  // CAccountInfo  - класс для работы со свойствами торгового счета;   m_account  - переменная для упрощенного доступа к свойствами торгового счета

Надеюсь теперь будет всё понятно. По поводу переменной уже написал в этой теме, что она может быть названа, как position, так и m_position и т.д и т.п.

И, пжл, задавайте вопросы в одной этой теме, так проще будет получить помощь.

С уважением, Владимир.

 
MrBrooklin #:

Похоже Вы запутались. Вот посмотрите и прочитайте внимательно комментарии к каждой строке:

Надеюсь теперь будет всё понятно. По поводу переменной написал Вам в другой теме, что она может быть названа, как position, так и m_position и т.д и т.п.

И, пжл, задавайте вопросы в этой теме, так проще будет получить помощь.

С уважением, Владимир.

Да, извините, не CTrade, а CPositionInfo. Но все равно нельзя написать вместо m_position position или " pos, posit, k_pos, k_position и т.д. и т.п. ", как Вы пишете. Забито в классе именно m_position (CPositionInfo m_position;).

 

Можно писать любое название переменной, главное, чтобы дальше в коде она была с одним и тем же названием. Пример:

#include <Trade\PositionInfo.mqh>  // включим файл PositionInfo.mqh

CPositionInfo k_pos;               // объявим переменную, например, k_pos

// Далее в коде должны использовать только это название переменной

   for(int i=PositionsTotal()-1;i>=0;i--)
      if(k_pos.SelectByIndex(i)) // selects the position by index for further access to its properties
         if(k_pos.Symbol()==m_symbol.Name() && k_pos.Magic()==m_magic)
           {
            if(k_pos.PositionType()==POSITION_TYPE_BUY)
               buys=true;

            if(k_pos.PositionType()==POSITION_TYPE_SELL)
               sells=true;

            if(buys && sells)
               return;
           }

Ещё вопросы остались?

С уважением, Владимир.

 
MrBrooklin #:
CPositionInfo k_pos;
Да, ошибок нет. Благодарю. Ценная инфо.
 
MrBrooklin #:

Можно писать любое название переменной, главное, чтобы дальше в коде она была с одним и тем же названием. Пример:

Ещё вопросы остались?

С уважением, Владимир.

Все вот эти префиксы имён переменных, например "m_", означают принадлежность к некоему классу, от слова "member" - член класса. Т.е. за пределами класса не обязательно их добавлять к именам переменных - они же не являются членами класса, они - члены программы. Тем более, что глобальные - тут уже другой префикс напрашивается. Например, если посмотреть исходники от MetaQuotes, то увидим, что глобальные переменные предварены префиксом "Ext" - external, внешний... Если же хотите использовать некий префикс к своим глобальным переменным в виде "буква_", то тогда уж "g_" - от global.

 

учитывается ли в минус к просадке процент просаженного каптала по трейл стопу  в тестере стратегий?

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

или просадка учитывает только просаженный стартовый капитал?

 
AkaEdie #:

учитывается ли в минус к просадке процент просаженного каптала по трейл стопу  в тестере стратегий?

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

или просадка учитывает только просаженный стартовый капитал?

Просадка баланса и эквити учитывается от максимума баланса и от максимума эквити.

Причина обращения: