Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1232

 
Você pode me dizer como remover meu próprio tópico do fórum?
 
Сергей Таболин:
Você pode me dizer como remover meu próprio tópico do fórum?

Nada. Qual é o tema?

 
Artyom Trishkin:

Nada. Qual é o tema?

https://www.mql5.com/ru/forum/348294

MQ5::Вопрос по свечному индикатору.
MQ5::Вопрос по свечному индикатору.
  • 2020.08.04
  • www.mql5.com
Привет всем! Пока меня окончательно и пожизненно не забанили, хочу успеть задать вопрос по индикатору...
 

Obrigado ))))

 

Olá, estou tentando fazer a função

//-------------------------------------------------------------------------------
//                      Функция модификации позиции,безуыток, трейлинг-стоп 
//-------------------------------------------------------------------------------+ 
                  
bool Modi_Traili(int select,int pool=MODE_TRADES,ulong magic=-1) 
{ 
//   double Profit_On =OrderProfit();                  // Профит открытой позиции             
   double Price_Open =0;                         // Цена открытой позиции
   string sym =Symbol(),er;
   int i,cnt=0, k=OrdersTotal(),op=-1,mn=-1;
   double Market_Pi=0, oop=0, point=0, pp=0;
   bool loop = false;
//----------------------------------
     if (sym=="") sym=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_TICKET, MODE_TRADES)) {
      if ((OrderSymbol()==sym || sym=="") && (op<0 || OrderType()==op)) {
        if (OrderType()==OP_BUY && (mn<0 || OrderMagicNumber()==mn)){             
          int  Ticket=OrderTicket(); 
            Price_Open = OrderOpenPrice();                                           
            Market_Pi=MarketInfo(OrderSymbol(), MODE_ASK);
            point=MarketInfo(OrderSymbol(), MODE_POINT);
            if (point==0) if (StringFind(sym, "JPY")<0) point=0.0001; else point=0.01;
            if (point==0) if (StringFind(sym, "XAU")<0) point=0.0001; else point=0.001;
             double Sorri=MathRound(MathAbs(Market_Pi-Price_Open)/point);   
              Print("Ticket==",Ticket,"Sorri = ",Sorri,"Price_Open = ",Price_Open,"mi = ",Market_Pi);
             if(Sorri >Deta && OrderProfit()>0)
            {
//            Print("Ticket==",Ticket,"Sorri = ",Sorri,"Price_Open = ",Price_Open,"mi = ",Market_Pi);
 //--------------------------------------------------------------------------------------------------
     while (!loop)                              // Цикл модификации  
     {     
     double TP = NormalizeDouble(Ask+TProfit*Point,Digits);  
     double SL=NormalizeDouble(Ask+(2+MarketInfo(OrderSymbol(), MODE_SPREAD)/point),Digits); 
           Alert ("М-  -  -я ",Ticket,". Ждём ответ..");
          bool Ans=OrderModify(Ticket,Price_Open,SL,TP,0);    //Модифи его!
//--------------------------------------------------------------------------------
   if (Ans==true)                      // Получилось :)
              {
               Alert ("Ордер ",Ticket,TP," модифицирован:)");
               break;                           // Из цикла модифи.
              }
            //--------------------------------------------------- 7 --------------------
            int Error=GetLastError();           // Не получилось :(
            switch(Error)                       // Преодолимые ошибки
              {
               case 0  : loop = true; break; 
      
       case 4  : er=("Торговый сервер занят");
       case 135: er=("Цена изменилась");
       case 137: er=("Брокер занят");
       case 138: er=("Новые цены");
       case 146: er=("Подсистема торговли занята. Пробуем ещё..");
        Message(er);
         Sleep(2);                         // Простое решение
        RefreshRates();                     // Обновим данные
          continue;
       case 136: er=("Нет цен");
       Message(er);
          while(RefreshRates()==false)        // До нового тика
           Sleep(5);                        // Задержка в цикле
           cnt++; 
           continue;
       
        default:er=StringFormat("Ошибка: %d",Error);             // Другие варианты
        Message(er);
        loop = true;                  // Выход из while
        break;                             // Выход из switch
          }
//--------------------------------------------------------------------------------          
        } // Окончание while
       }
      }   // Окончание if
    
        if (OrderType()==OP_SELL &&(mn<0 || OrderMagicNumber()==mn))
        {
            int Ticket=OrderTicket(); 
            Price_Open = OrderOpenPrice(); 
            Market_Pi=MarketInfo(OrderSymbol(), MODE_BID);
            point=MarketInfo(OrderSymbol(), MODE_POINT);
            if (point==0) if (StringFind(sym, "JPY")<0) point=0.0001; else point=0.01;
            if (point==0) if (StringFind(sym, "XAU")<0) point=0.0001; else point=0.001;
              double Sorri=MathRound(MathAbs(Price_Open-Market_Pi)/point);    //+MarketInfo(OrderSymbol(), MODE_SPREAD);
             if(Sorri >Deta && OrderProfit()>0)
            {
            Print("So = ",Sorri,"Price_Open = ",Price_Open,"Mi = ",Market_Pi);
            Comment(Ticket);
            while (!loop)                              // Цикл модификации  
     {     
     double TP = NormalizeDouble(Ask+TProfit*Point,Digits);  
     double SL=NormalizeDouble(Bid-(2+MarketInfo(OrderSymbol(), MODE_SPREAD)/point),Digits); 
           Alert ("Мод------я ",Ticket,". Ждём ответ..");
           bool Ans=OrderModify(Ticket,Price_Open,SL,TP,0);    //Модифи его!
//--------------------------------------------------------------------------------
   if (Ans==true)                      // Получилось :)
              {
               Alert ("Ордер ",Ticket,TP," модифицирован:)");
               break;                           // Из цикла модифи.
              }
            //--------------------------------------------------- 7 --------------------
             int Error=GetLastError();           // Не получилось :(
            switch(Error)                       // Преодолимые ошибки
              {
               case 0  : loop = true; break; 
      
       case 4  : er=("Торговый сервер занят");
       case 135: er=("Цена изменилась");
       case 137: er=("Брокер занят");
       case 138: er=("Новые цены");
       case 146: er=("Подсистема торговли занята. Пробуем ещё..");
        Message(er);
         Sleep(2);                         // Простое решение
        RefreshRates();                     // Обновим данные
          continue;
       case 136: er=("Нет цен");
       Message(er);
          while(RefreshRates()==false)        // До нового тика
           Sleep(5);                        // Задержка в цикле
           cnt++; 
           continue;
       
        default:er=StringFormat("Ошибка: %d",Error);             // Другие варианты
        Message(er);
        loop = true;                  // Выход из while
        break;                             // Выход из switc}
        }
                      
            }
          }//
       }
      }
      }
     } //--------------------------Выход из цикла for
  
  return(true);
}

Parar para o Breakeven se o preço atual tiver ultrapassado o preço aberto em

Deta 

pips. Estou recebendo um erro 4051. Toda a construção do tanque está no arquivo (se você precisar). O indicador WMA é usado. Não é meu, espero que não esteja quebrado.

Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Технические индикаторы требуют для своих расчетов указания значений цен и/или значений объемов, на которых они будут считаться. Существуют 7 предопределенных идентификаторов перечисления ENUM_APPLIED_PRICE, для указания нужной ценовой базы расчетов. Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается...
Arquivos anexados:
v5mz03.mq4  52 kb
WMA.mq4  10 kb
 
Galim_V:

Olá, estou tentando fazer a função

Parar para o Breakeven se o preço atual tiver ultrapassado o preço aberto em

pips. Estou recebendo um erro 4051. Toda a construção do tanque está no arquivo (se você precisar). O indicador WMA é usado. Não é meu, espero que não esteja quebrado.

Parâmetro de função inválida. Suponho que você não tenha um cheque para ordens de parada mínimas. Acrescente-o, é um controle obrigatório para o mercado.

......

double TP = NormalizeDouble(Ask+TProfit*Point,Digits);  
double SL=NormalizeDouble(Bid-(2+MarketInfo(OrderSymbol(), MODE_SPREAD)/point),Digits); 
TP=New_Stop(TP);
SL=New_Stop(SL);
......
double New_Stop(double Parametr) // Проверка стоп-прик.
  {
   double Min_Dist=MarketInfo(Symbol(),MODE_STOPLEVEL);// Миним. дистанция
   if(Parametr<Min_Dist) // Если меньше допуст.
     {
      Parametr=Min_Dist;                        // Установим допуст.
      Alert("Увеличена дистанция стоп-приказа или цены открытия отложенных ордеров.");
     }
   return(Parametr);                            // Возврат значения
  }
 
Valeriy Yastremskiy:

Parâmetro de função inválida. Num relance, você não tem um cheque para ordens de parada mínimas. Acrescente-o, é um controle obrigatório para o mercado.

Obrigado! Vou dar uma olhada.

 

como em um indicador trabalhando em M1 para obter dados de D1, se o indicador é baseado em fórmulas e não há chamada de indicadores padrão como =iMA(Symbol(),Period(),....

como faço para calcular?

 
Bom dia a todos. Enfrentei esta situação em minha conta Demo (não em minha conta real)). Várias posições foram fechadas pelo consultor especializado quando este atingiu um certo nível de lucro acumulado, supostamente positivo, enquanto todas as posições estavam com uma boa perda, o evento ocorreu a 2-50 no servidor (não parece ser uma transferência de posições). O Expert Advisor (feito por mim) calcula o lucro total de todas as posições abertas e o compara com um valor pré-definido, ou seja, a imagem das barras na janela é como se não estivesse envolvida, embora mostre um leve movimento na direção que proporciona lucro. O Expert Advisor trabalha em um temporizador que foi ajustado para 100ms. Não excluo a idéia de corretor como o mesmo Expert Advisor de outro corretor com as mesmas configurações, mas trabalhar com carrapatos do preço perdeu facilmente o lucro. Eu tinha uma reserva em minha conta, o consultor especializado relatou o fechamento do bloco de obtenção de lucro.Talvez alguém tenha algumas idéias que poderiam ter dado errado.
 
Evgeny Vlasov:
Bom dia a todos. Encontrei tal situação em uma conta de demonstração (não na real)). Várias posições foram fechadas pelo consultor especializado quando este atingiu um certo nível de lucro acumulado, supostamente positivo, enquanto todas as posições estavam com uma boa perda, o evento ocorreu a 2-50 no servidor (não parece ser uma transferência de posições). O Expert Advisor (feito por mim) calcula o lucro total de todas as posições abertas e o compara com um valor pré-definido, ou seja, a imagem das barras na janela é como se não estivesse envolvida, embora mostre um leve movimento na direção que proporciona lucro. O Expert Advisor trabalha em um temporizador que foi ajustado para 100ms. Não excluo a idéia de corretor como o mesmo Expert Advisor de outro corretor com as mesmas configurações, mas trabalhar com carrapatos do preço perdeu facilmente o lucro. Eu tinha uma reserva em minha conta, o consultor especializado relatou o fechamento do bloco de obtenção de lucro.Talvez alguém tenha algumas idéias que poderiam ter dado errado.

Isso é para você no ramo do telepata)))) Estava aqui em algum lugar).

E sobre o assunto... NÃO CONHECO. Sem código, sem mercado, sem nada... Definitivamente telepatas))))