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

[Удален]  
SanAlex:

что то я тут намудрил - что сам не пойму со 100000 руб. до двух миллионов настрогало 

поменял Индикатор и на 5мин. евро\бакс за 15 дней до миллиона.

LeMan_BrainTrend1Sig 2

LeMan_BrainTrend1Sig

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

в эксперт добавил - по общей прибыли (со всех пар) закрывать прибыль и удалить эксперта

input group  "---- : Parameters:  ----"
input int    TargetProfit     = 1000000; // : Balance + Profit(add to balance)
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick(void)
  {
//---
   if(AccountInfoDouble(ACCOUNT_EQUITY)>=TargetProfit)
     {
      AllClose();
      ExpertRemove();
     }
//---

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

нужно что бы эти 2 индикатора присутствовали ( имена индикаторов что бы не менялись) 

 
SanAlex:

поменял Индикатор и на 5мин. евро\бакс за 15 дней до миллиона.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

в эксперт добавил - по общей прибыли (со всех пар) закрывать прибыль и удалить эксперта

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

нужно что бы эти 2 индикатора присутствовали ( имена индикаторов что бы не менялись) 

Не хватает стоплосса в настройке

 

Есть способы разбития строки на строки методом типа \n".

а есть способы уже разбитую по строкам строковую переменную, склеить/преобразовать в одну строку?

То есть чтобы все тексты значения параметры и т.п. имеющееся в этой строкой(string) переменной записались в одну строку.

Проблема возникла при записи в csv(значения строковой переменной записывается в кучу строк).

[Удален]  
Vitaly Muzichenko:

Не хватает стоплосса в настройке

c Stop Loss уже нет той прибыли 

Stop Loss

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

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

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

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

появилась ещё мысль по стопу - стоп не закрывать позиции а открыть противоположную позицию с лотом противоположных(убыточных) открытых позиции 

вот тут есть счёт открытых позиции в лотах 

   int total=PositionsTotal();
   for(int i=total-1; i>=0; i--) // returns the number of open positions
     {
      string   position_GetSymbol=PositionGetSymbol(i); // GetSymbol позиции
      if(position_GetSymbol==m_symbol.Name())
        {
         if(m_position.PositionType()==POSITION_TYPE_BUY)
           {
            PROFIT_BUY=PROFIT_BUY+PositionGetDouble(POSITION_PROFIT);
            PROFIT_BUY_Lot=PROFIT_BUY_Lot+PositionGetDouble(POSITION_VOLUME);
           }
         else
           {
            PROFIT_SELL=PROFIT_SELL+PositionGetDouble(POSITION_PROFIT);
            PROFIT_SELL_Lot=PROFIT_SELL_Lot+PositionGetDouble(POSITION_VOLUME);
           }
           {
            PROFIT_CLOSE=AccountInfoDouble(ACCOUNT_PROFIT);
           }
        }
     }
//---

Stop Loss 777

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

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

 

Уважаемые программисты подскажите пожалуйста как правильно исправить ошибку, компилятор жалуется на эти строки; possible loss of data due to type conversion

Цель найти первую и последнюю изменённую позицию.

Время записывается как datetime, в принципе всё работает, но этот алерт беспокоит, видимо я не правильно сохраняю время... подскажите пожалуйста

datetime FirstBuyTime=TimeCurrent();
datetime FirstSellTime=TimeCurrent();
datetime LastBuyTime=0;
datetime LastSellTime=0;
...
if(PositionGetInteger(POSITION_TIME_UPDATE)<FirstBuyTime) FirstBuyTime=PositionGetInteger(POSITION_TIME_UPDATE);//possible loss of data due to type conversion
if(PositionGetInteger(POSITION_TIME_UPDATE)>LastBuyTime)  LastBuyTime=PositionGetInteger(POSITION_TIME_UPDATE);}//possible loss of data due to type conversion
...
if(PositionGetInteger(POSITION_TIME_UPDATE)<FirstSellTime) FirstSellTime=PositionGetInteger(POSITION_TIME_UPDATE);//possible loss of data due to type conversion
if(PositionGetInteger(POSITION_TIME_UPDATE)>LastSellTime)  LastSellTime=PositionGetInteger(POSITION_TIME_UPDATE);}//possible loss of data due to type conversion
 
VVT:

Уважаемые программисты подскажите пожалуйста как правильно исправить ошибку, компилятор жалуется на эти строки; possible loss of data due to type conversion

Цель найти первую и последнюю изменённую позицию.

Время записывается как datetime, в принципе всё работает, но этот алерт беспокоит, видимо я не правильно сохраняю время... подскажите пожалуйста

Прочтите эту страницу документации. Внимательно посмотрите примеры…

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Приведение типов - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Прочтите эту страницу документации. Внимательно посмотрите примеры…

long и жалоб нет) Спасибо. 

 
VVT:

long и жалоб нет) Спасибо. 

Да, но если у вас переменная FirstBuyTime имеет тип datetime, то лучше привести к этому типу…

FirstBuyTime = (datetime)PositionGetInteger(POSITION_TIME_UPDATE);
 
Alexey Viktorov:

Да, но если у вас переменная FirstBuyTime имеет тип datetime, то лучше привести к этому типу…

Здесь без разницы, потом при закрытии выбирается позиция по тому же принципу и в том же типе, сохранение времени в datetime было не верным.

Спасибо большое за разъяснения.

 
SanAlex:

что то я тут намудрил - что сам не пойму со 100000 руб. до двух миллионов настрогало

 

Ставил у себя, тестер запускается но не чего не происходит. 
Для фьючерсов поменял  лоты на 1.0
Вставил индикатор. 

Но  робот молчит