Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1232

 
Potete dirmi come rimuovere il mio thread dal forum?
 
Сергей Таболин:
Potete dirmi come rimuovere il mio thread dal forum?

Niente. Qual è l'argomento?

 
Artyom Trishkin:

Niente. Qual è l'argomento?

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

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

Grazie ))))

 

Ciao, sto cercando di fare la funzione

//-------------------------------------------------------------------------------
//                      Функция модификации позиции,безуыток, трейлинг-стоп 
//-------------------------------------------------------------------------------+ 
                  
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);
}

Sposta lo stop a Breakeven se il prezzo corrente ha superato il prezzo aperto di

Deta 

pip. Ricevo un errore 4051. Tutto il tankbuilding è nel file (se ne avete bisogno). Non il mio, speriamo che non sia rotto.

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

Ciao, sto cercando di fare la funzione

Sposta lo stop a Breakeven se il prezzo corrente ha superato il prezzo aperto di

pip. Ricevo un errore 4051. Tutto il tankbuilding è nel file (se ne avete bisogno). Non il mio, speriamo che non sia rotto.

Parametro di funzione non valido. A quanto pare non hai un controllo per gli ordini minimi di stop. Aggiungilo, è un controllo obbligatorio per il mercato.

......

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:

Parametro di funzione non valido. A colpo d'occhio, non hai un controllo per gli ordini minimi di stop. Aggiungilo, è un controllo obbligatorio per il mercato.

Grazie! Darò un'occhiata.

 

come in un indicatore che lavora in M1 per ottenere dati da D1, se l'indicatore è basato su formule e non c'è una chiamata di indicatori standard come =iMA(Symbol(),Period(),....

come si calcola?

 
Buona giornata a tutti. Ho affrontato questa situazione sul mio conto demo (non sul conto reale)). Diverse posizioni sono state chiuse dall'Expert Advisor quando ha raggiunto un certo livello di profitto cumulativo, presumibilmente positivo, mentre tutte le posizioni erano sedute in una buona perdita, l'evento si è verificato a 2-50 sul server (non sembra un trasferimento di posizioni). L'Expert Advisor (fatto da me) calcola il profitto totale di tutte le posizioni aperte e lo confronta con un valore predefinito, cioè il quadro delle barre nella finestra è come se non fosse coinvolto, anche se mostra un leggero movimento nella direzione che fornisce profitto. L'Expert Advisor lavora su un timer che è stato impostato a 100ms. Non escludo l'idea del broker come lo stesso Expert Advisor di un altro broker con le stesse impostazioni ma lavorando con i tick del prezzo ha facilmente perso profitto. Avevo una riserva sul mio conto, l'Expert Advisor ha segnalato la chiusura dal blocco del raggiungimento del profitto.Forse qualcuno ha qualche idea su cosa possa essere andato storto.
 
Evgeny Vlasov:
Buona giornata a tutti. Mi sono imbattuto in una situazione simile su un conto demo (non su quello reale)). Diverse posizioni sono state chiuse dall'Expert Advisor quando ha raggiunto un certo livello di profitto cumulativo, presumibilmente positivo, mentre tutte le posizioni erano sedute in una buona perdita, l'evento si è verificato a 2-50 sul server (non sembra il trasferimento di posizioni). L'Expert Advisor (fatto da me) calcola il profitto totale di tutte le posizioni aperte e lo confronta con un valore predefinito, cioè il quadro delle barre nella finestra è come se non fosse coinvolto, anche se mostra un leggero movimento nella direzione che fornisce profitto. L'Expert Advisor lavora su un timer che è stato impostato a 100ms. Non escludo l'idea del broker come lo stesso Expert Advisor di un altro broker con le stesse impostazioni ma lavorando con i tick del prezzo ha facilmente perso profitto. Avevo una riserva sul mio conto, l'Expert Advisor ha segnalato la chiusura dal blocco del raggiungimento del profitto.Forse qualcuno ha qualche idea su cosa possa essere andato storto.

Questo è per te nel ramo dei telepati)))) Era qui da qualche parte).

E a proposito... NON LO SO. Nessun codice, nessun mercato, niente di niente... Sicuramente telepati))))