Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 594

 
DiPach:
P./S.: Per sicurezza, dirò che c'è una risposta parziale alla tua domanda anche nella "Nota" dell'aiuto di NormalizeDouble.

Io stesso mi dimenticavo di inserire DoubleToS... ...e poi si è meravigliato dei molti numeri dopo il punto. :)


È scritto nell'Aiuto :) Chi avrebbe pensato che sarei andato lì perché è una funzione conosciuta e non ha senso leggerlo nell'Aiuto. Grazie per la risposta.
 

Ciao, Potresti dirmi come far funzionare l'indicatore nel tester con i dati di un'altra coppia di valute?

L'immagine mostra un MACD normale, ma con il simbolo "GBPUSD" scritto sopra. Sul grafico "EURUSD", è disegnato esattamente allo stesso modo che sul grafico "GBPUSD".

Ma non vuole funzionare nello Strategy Tester. Quando premo pausa e posiziono l'indicatore sul grafico EURUSD, all'inizio tutto viene disegnato correttamente, ma appena inizio il test

Disegna semplicemente una linea retta come nell'immagine. O forse puoi dirmi un altro indicatore che funziona. Non è il MACD che è importante, ma il principio del disegno.

File:
 
Chi può usare i futures dell'olio (#BRNM4) nel tester? Ottengo l'errore 4107.
 

Potete dirmi come scrivere l'ora attuale in una variabile globale GlobalVariableSet, per esempio? Non dà affatto la data ma una serie di cifre...

 
ClanVi:

Potete dirmi come scrivere l'ora attuale in una variabile globale GlobalVariableSet, per esempio? Non dà affatto la data ma una serie di cifre...


Il tempo è memorizzato come un valore intero
 

Salve. Buon Giorno della Vittoria a tutti!

Con la nuova build, gli oggetti nell'angolo in basso a destra sono strisciati a destra. È necessario spostarli leggermente a sinistra in modo che tutto il testo in essi sia leggibile.

Come era e come dovrebbe essere fatto:

Ora sono strisciati via:

Codice:

#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//--------------------------------------------------------------- 3 --
#include <Variables_AU.mqh>          // Описание переменных 
#include <Terminal.mqh>              // Учёт ордеров
#include <Events.mqh>                // Функция слежения за событиями, обновлен.
#include <Inform.mqh>                // Информационная функция
#include <Trade.mqh>                 // Торговая функция
#include <Open_Ord.mqh>              // Открытие одного ордера заданного типа
#include <Open_Ord_balance_line.mqh> //Доливка по линии баланса -  установка одного отложенного ордера  
#include <Close_All.mqh>             // Закрытие  всех ордеров заданного типа
#include <Tral_Stop_All.mqh>         // Модификация лимитного ордера
#include <Lot_MM.mqh>                // Вычисление количества лотов
#include <Criterion.mqh>             // Торговые критерии
#include <Errors.mqh>                // Функция обработки ошибок.
//--------------------------------------------------------------- 4 --
int init()                             // Спец. функция init
  {
  
   IsExpertStopped = false;
   if (!IsTradeAllowed())  {Comment("Необходимо разрешить советнику торговать");IsExpertStopped = true; return (0);}      
  // if (!IsTesting()){if (IsExpertEnabled())    Comment("Советник запустится следующим тиком");else  Comment("Отжата кнопка \"Разрешить запуск советников\"");}   
      
   // Определяем переменные окружения
   Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );//Миним. дистаниция 
   Level_Freeze = MarketInfo(Symbol(),MODE_FREEZELEVEL ); 
   Spread = MarketInfo(Symbol(),MODE_SPREAD);
   Tick = MarketInfo(Symbol(), MODE_TICKSIZE);    //Mинимальный тик   
   // Пересчеты пунктов для пятизначного ДЦ   
   if ((Digits == 3) || (Digits == 5)){SlipPips = SlipPips*10; indent_Hight = indent_Hight * 10; indent_Low = indent_Low * 10;}    
  
   Terminal();                         // Функция учёта ордеров 
//----------------------------------------------Мониторинг---------------------  
   if(Monitor==true)
    {
    int a,y;
    for(a=0,y=5;a<=4;a++)
      {
      string N=DoubleToStr(a,0);
  
      ObjectCreate(N,OBJ_LABEL,0,0,0,0,0,0,0);
      ObjectSet(N,OBJPROP_CORNER,3);
      ObjectSet(N,OBJPROP_XDISTANCE,5);
      ObjectSet(N,OBJPROP_YDISTANCE,y);
      y+=20;
      }  
    }
      
   return(0);                             // Выход из init() 
  }
//-----------------------------------------------------------------------------
int start()                            // Спец. функция start
  {  
     
//------------- Вызов ф-ий учёта ордеров, принятия торговых решений и информации ----------   
  Terminal();                         // Функция учёта ордеров 
  Events();                           // Информация о событиях
  Trade (Criterion());                // Торговая функция
  Inform(0);                          // Для перекрашивания объектов
   
//-------------  МОНИТОРИНГ  --------------------------------------------------------------
  if(Monitor==true)
    {
     string str="Balance: "+DoubleToStr(AccountBalance(),2)+" $";
     ObjectSetText("0",str,10,"Arial Black",DarkOrange);
    
     str="Profit: "+DoubleToStr(AccountProfit(),2)+" $";
     ObjectSetText("1",str,10,"Arial Black",Salmon);
    
     str="Free Margine: "+DoubleToStr(AccountFreeMargin(),2)+" $";
     ObjectSetText("2",str,10,"Arial Black",Gold);
    
     str="OrdersTotal: "+DoubleToStr(OrdersTotal(),0);
     ObjectSetText("3",str,10,"Arial Black",MediumAquamarine);
    
     if (Lot_MM()==false)              // Средств не хватает на миним.
             return(0);                   // Выход из пользов. функции 
     str="Lots_Next: "+DoubleToStr(Lots_New,2);
     ObjectSetText("4",str,10,"Arial Black",Olive);
    }
   
   return(0);                             // Выход из start()
  }
//-------------------------------------------------------------------------------------------
int deinit()                           // Спец. функция deinit()
  {
   Inform(-1);                         // Для удаления объектов
   //----------------------------------------------------------------------------------------
  if(Monitor==true)
    {
    for(int a=0;a<=4;a++)
      {
      string N=DoubleToStr(a,0);
      ObjectDelete(N);
      } 
    }
//-------------------------------------------------------------------------------------------
   return(0);                             // Выход из deinit()
  }
//-------------------------------------------------------------------------------------------
 

Ci sono riuscito da solo cambiando l'angolo di riferimento e impostando le distanze delle coordinate:

//----------------------------------------------Мониторинг---------------------  
   if(Monitor==true)
    {
    int a,y;
    for(a=0,y=50;a<=4;a++)
      {
      string N=DoubleToStr(a,0);
  
      ObjectCreate(N,OBJ_LABEL,0,0,0,0,0,0,0);
      ObjectSet(N,OBJPROP_CORNER,0);
      ObjectSet(N,OBJPROP_XDISTANCE,50);
      ObjectSet(N,OBJPROP_YDISTANCE,y);
      y+=20;
      }  
    }
      
   return(0);                             // Выход из init() 
  }


 

E come si fa a cambiare la dimensione e lo sfondo (il colore è probabilmente improbabile) dei commenti degli oggetti?


Beh, il numero di biglietto Start # nella foto è il loro.

Funzione:

//+------------------------------------------------------------------+
   void SetTLine(color cl, long chartID, int wnd, string nm,
                 datetime t1, double p1, datetime t2, double p2,
                 bool ry=False, int st=0, int wd=1,string tx="",int sz=0) {
      if(DrawGraphics==0) return;
      if (ObjectFind(nm)<0) ObjectCreate(chartID, nm, OBJ_TREND, wnd, 0, 0, 0, 0);
      ObjectSetInteger(chartID,nm,OBJPROP_TIME1,t1);
      ObjectSetDouble(chartID,nm,OBJPROP_PRICE1,p1);
      ObjectSetInteger(chartID,nm,OBJPROP_TIME2,t2);
      ObjectSetDouble(chartID,nm,OBJPROP_PRICE2,p2);
      ObjectSetInteger(chartID,nm,OBJPROP_COLOR,cl);
      ObjectSetInteger(chartID,nm,OBJPROP_RAY,ry);
      ObjectSetInteger(chartID,nm,OBJPROP_STYLE,st);
      ObjectSetInteger(chartID,nm,OBJPROP_WIDTH,wd);
      ObjectSetString(chartID,nm,OBJPROP_TEXT,tx);
      ObjectSetString(chartID,nm,OBJPROP_FONT,"Tahoma");
      ObjectSetInteger(chartID,nm,OBJPROP_FONTSIZE,sz);
   }
//+------------------------------------------------------------------+

Gli ultimi tre, i parametri hanno pensato di influenzare in qualche modo. Niente da fare...

 
pako:


Questo è un oggetto di testo. Ma ho bisogno di cambiarlo in OBJ_TREND. Mi piacerebbe poterlo fare in un solo oggetto, invece di aggiungere un altro oggetto testo alla linea di tendenza.
 

Il Debugger ha smesso di funzionare - perché?

Da metà giornata del 5 maggio, il Debugger ha smesso di dare valori variabili al breakpoint. In tutti i programmi per tutte le variabili. Allo stesso tempo i programmi stessi funzionano come prima. A quel tempo (e fino ad oggi) l'editor era"ver. 5.00 build 934" e MetaTrader "ver. 4.00 build 646".

Ecco un semplice script, e questo è ciò che mostra il Debugger. Puoi dirmi per favore cosa c'è che non va?

Motivazione: