任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 594

 
DiPach:
P./S.: 为了以防万一,我将提到在NormalizeDouble 帮助的 "注释 "中也有对你问题的部分回答。

我自己曾经忘记输入DoubleToS......然后对点后面的许多数字感到奇怪。:)


它写在帮助中 :) 谁会想到我去了那里,因为这是一个已知的功能,在帮助中读它没有意义。谢谢你的回答。
 

你好,请你告诉我如何使测试器中的指标与另一种货币对的数据一起工作?

图片显示了一个正常的MACD,但上面写着 "GBPUSD "的符号。在 "欧元兑美元 "图表上,它的画法与 "英镑兑美元 "图表完全相同。

但在策略测试器中,它却不愿意工作。当我按下暂停键并将指标放在欧元兑美元图表上时,起初一切都画得很正确,但当我开始测试时

它只是像图片中那样画一条直线。或者你能告诉我另一个有效的指标。重要的不是MACD,而是绘制的原则。

附加的文件:
 
谁能够在测试器中使用石油期货(#BRNM4)?我得到错误4107。
 

你能告诉我如何将当前时间写入全局变量 GlobalVariableSet中吗? 它根本没有给出日期,而是给出了一组数字...

 
ClanVi:

你能告诉我如何将当前时间写入全局变量GlobalVariableSet中吗? 它根本没有给出日期,而是给出了一组数字...


时间被存储为一个整数值
 

你好。胜利日快乐,各位!

在新的建设中,右下角的物体已经爬到了右边。有必要将它们稍微向左移动,以便其中的所有文字都能被阅读。

过去是这样,现在也应该是这样。

现在他们已经爬走了。

代码。

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

我自己通过改变参考角度 和设置坐标距离来管理它。

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


 

还有,你如何改变对象注释的大小和背景(颜色可能不太可能)?


那么图片中的开始#票号就是他们的。

职能。

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

最后三个,参数认为它们会有一些影响。不可能...

 
pako:


这是一个文本对象。但我需要在OBJ_TREND 中改变它。我希望能在一个对象中做到这一点,而不是在趋势线上添加另一个文本对象。
 

调试器已停止工作 - 为什么?

从5月5日中午开始,调试器在断点处不再给出变量值。在所有程序中,对于所有变量。 同时,这些程序本身也像以前一样工作。 当时(直到现在) 编辑"ver。5.00build 934" andMetaTrader "ver. 4.00build 646" .

下面是一个简单的脚本,这是调试器显示的内容。能否请你告诉我什么是错的?