Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 594

 
DiPach:
P./S.: Nur für den Fall, dass ich erwähne, dass es eine teilweise Antwort auf Ihre Frage in "Note" der NormalizeDouble Hilfe zu.

Ich selbst habe immer vergessen, DoubleToS einzugeben... ...und wunderte sich dann über die vielen Zahlen nach dem Punkt. :)


Es steht in der Hilfe :) Wer hätte gedacht, dass ich dorthin gehen würde, weil es eine bekannte Funktion ist und es keinen Sinn macht, sie in der Hilfe zu lesen. Ich danke Ihnen für die Antwort.
 

Hallo, Könnten Sie mir bitte sagen, wie ich den Indikator im Tester mit Daten eines anderen Währungspaares zum Laufen bringen kann?

Die Abbildung zeigt einen normalen MACD, auf dem jedoch das Symbol "GBPUSD" steht. Auf dem EURUSD-Chart ist er genau so gezeichnet wie auf dem GBPUSD-Chart.

Aber im Strategy Tester will es nicht funktionieren. Wenn ich auf Pause drücke und den Indikator auf dem EURUSD-Diagramm platziere, wird zunächst alles korrekt gezeichnet, aber sobald ich den Test

Es zeichnet einfach eine gerade Linie wie auf dem Bild. Oder vielleicht können Sie mir einen anderen Indikator nennen, der funktioniert. Es ist nicht der MACD, der wichtig ist, sondern das Prinzip der Zeichnung.

Dateien:
 
Wer kann Öltermingeschäfte (#BRNM4) im Testgerät verwenden? Ich erhalte den Fehler 4107.
 

Können Sie mir sagen, wie ich zum Beispiel die aktuelle Uhrzeit in eine globale Variable GlobalVariableSet schreiben kann? Sie gibt überhaupt nicht das Datum aus, sondern eine Reihe von Ziffern...

 
ClanVi:

Können Sie mir sagen, wie ich zum Beispiel die aktuelle Uhrzeit in eine globale Variable GlobalVariableSet schreiben kann? Sie gibt nicht das Datum aus, sondern eine Reihe von Ziffern...


Die Zeit wird als ganzzahliger Wert gespeichert
 

Hallo. Alles Gute zum Tag des Sieges, liebe Freunde!

Mit dem neuen Build sind die Objekte in der unteren rechten Ecke nach rechts gewandert. Es ist notwendig, sie etwas nach links zu verschieben, damit der gesamte Text darin lesbar ist.

Wie es war und wie es sein sollte:

Jetzt sind sie weggekrochen:

Code:

#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()
  }
//-------------------------------------------------------------------------------------------
 

Ich habe es selbst geschafft, indem ich den Bezugswinkel geändert und die Koordinatenabstände eingestellt habe:

//----------------------------------------------Мониторинг---------------------  
   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() 
  }


 

Und wie können Sie die Größe und den Hintergrund (Farbe ist wahrscheinlich unwahrscheinlich) von Objektkommentaren ändern?


Nun, die Startnummer auf dem Bild gehört ihnen.

Funktion:

//+------------------------------------------------------------------+
   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);
   }
//+------------------------------------------------------------------+

Bei den letzten drei Parametern dachte man, dass sie sich irgendwie auswirken. Das gibt's doch nicht...

 
pako:


Dies ist ein Textobjekt. Aber ich muss es in OBJ_TREND ändern. Ich möchte dies in einem einzigen Objekt tun können, anstatt ein weiteres Textobjekt zur Trendlinie hinzuzufügen.
 

Der Debugger funktioniert nicht mehr - warum?

Seit Mitte des Tages am 5. Mai gibt der Debugger am Haltepunkt keine Variablenwerte mehr aus. In allen Programmen für alle Variablen. Gleichzeitig funktionieren die Programme selbst wie bisher. Zu dieser Zeit (und bis heute) war Editor "ver. 5.00 build 934" und MetaTrader "ver. 4.00 build 646" .

Hier ist ein einfaches Skript, und das zeigt der Debugger. Können Sie mir bitte sagen, was los ist?