鸿运当归 发表于 2020-7-21 07:50:03

显示时间_源代码

#property version   "1.00"
#property strict
#property indicator_chart_window


input string            strOBJ_string   = "ShowTime_";
input int               intOBJ_ShowWindow = 0;
input ENUM_BASE_CORNERintOBJ_ShowCorner = 1;


double Show_SPREAD=0;
string Show_String="";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
   EventSetTimer(1);   
   DeleteTimeObject(strOBJ_string, StringLen(strOBJ_string));
//---
   return(INIT_SUCCEEDED);
}



//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                         |
//+------------------------------------------------------------------+
int deinit()
{
//----
   EventKillTimer();
   DeleteTimeObject(strOBJ_string, StringLen(strOBJ_string));
//----
   return(0);
}



//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
//---
   int TF_Remaining_Total_Second = (int)iTime(NULL, 240, 0) + 60 * 240 - (int)TimeCurrent();      //
   int TF_Remaining_Total_Minute = (int)MathFloor(TF_Remaining_Total_Second / 60);                //
   int TF_Remaining_Hour         = (int)MathFloor(MathFloor(TF_Remaining_Total_Second / 60) /60); //
   int TF_Remaining_Minute       = (int)MathMod(TF_Remaining_Total_Minute,60);                  //
   int TF_Remaining_Second       = TF_Remaining_Total_Second - 60 * TF_Remaining_Total_Minute;    //



   string ShowHour=IntegerToString(TF_Remaining_Hour,0);       //
   string ShowMinute= IDNumberToString(TF_Remaining_Minute,2); //
   string ShowSeconds=IDNumberToString(TF_Remaining_Second,2); //
   

   //------------------------------------------------------------------------------------------------------------------------------------------
   Show_String= ShowHour+":"+ShowMinute+":"+ShowSeconds;
   DrawLabel(strOBJ_string+"Time1", Show_String, 0, 5, White, 14, "Arial", intOBJ_ShowCorner, intOBJ_ShowWindow, true);      



   //----------------------------------------------------------------------------------------------------------------------------------------------
   double SPREAD=MarketInfo(NULL,MODE_SPREAD);
   if(!(Show_SPREAD==SPREAD))
   {
       Show_SPREAD=SPREAD;
       printf("---------------------------SPREAD:" + TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS) + " ("+DoubleToStr(Show_SPREAD,2) + ")------------");
   }
   Show_String=(string)NormalizeDouble(MarketInfo(Symbol(), MODE_TICKVALUE), 2)+"| " +(string)Show_SPREAD;
   DrawLabel(strOBJ_string+"TICKVALUE|SPREAD", Show_String, 0, 55, Yellow, 13, "Arial", intOBJ_ShowCorner, intOBJ_ShowWindow, true);

   //----------------------------------------------------------------------------------------------------------------------------------------------
   Show_String=DoubleToStr(MarketInfo(Symbol(), MODE_MARGINREQUIRED), 2);
   DrawLabel(strOBJ_string+"MARGINREQUIRED", Show_String, 0, 80, Yellow, 12, "Arial", intOBJ_ShowCorner, intOBJ_ShowWindow, true);
      
//--- return value of prev_calculated for next call
   return(rates_total);
}



//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
    int TM_Second = 60-TimeSeconds(TimeCurrent());
    DrawLabel(strOBJ_string+"Time5tf0", IDNumberToString(TM_Second,2), 0, 25, Yellow, 14,"Arial" ,intOBJ_ShowCorner, intOBJ_ShowWindow,true);
   
    DrawLabel(strOBJ_string+"Time5tf1", DoubleToStr(MarketInfo(Symbol(), MODE_SWAPLONG), 2)+"L", 30, 28, Coral, 8,"Arial" ,intOBJ_ShowCorner, intOBJ_ShowWindow,true); //SWAPLONG
    DrawLabel(strOBJ_string+"Time5tf2", DoubleToStr(MarketInfo(Symbol(), MODE_SWAPSHORT),2)+"S", 30, 42, Coral, 8,"Arial" ,intOBJ_ShowCorner, intOBJ_ShowWindow,true); //SWAPSHORT

    if(!(IsConnected()))      
      {
      DrawLabel(strOBJ_string+"Time5tf", "IsConnected", 5, 25, Yellow, 12,"Arial" ,intOBJ_ShowCorner, intOBJ_ShowWindow,true);
      ObjectDelete(strOBJ_string+"Time5tf0");
      ObjectDelete(strOBJ_string+"Time5tf1");
      ObjectDelete(strOBJ_string+"Time5tf2");
   }


}
//+------------------------------------------------------------------+





void DrawLabel(string obj_Name, string obj_Text, int obj_X, int obj_Y, color obj_Color, int obj_Size, string obj_Font, int obj_Coner, int obj_Window, bool obj_ShowBackup) {
   //ObjectDelete(obj_Name);
   int FindObjectRtn=ObjectFind(obj_Name);
   if(FindObjectRtn<0)
   {      
       ObjectCreate(obj_Name, OBJ_LABEL, obj_Window, 0, 0);
       ObjectSetText(obj_Name, obj_Text, obj_Size, obj_Font, obj_Color);
       ObjectSet(obj_Name, OBJPROP_CORNER, obj_Coner);
       ObjectSet(obj_Name, OBJPROP_XDISTANCE, obj_X);
       ObjectSet(obj_Name, OBJPROP_YDISTANCE, obj_Y);
       ObjectSet(obj_Name, OBJPROP_BACK, obj_ShowBackup);
   }
   else
   {
       ObjectSetText(obj_Name, obj_Text, obj_Size, obj_Font, obj_Color);
       ObjectSet(obj_Name, OBJPROP_CORNER, obj_Coner);
       ObjectSet(obj_Name, OBJPROP_XDISTANCE, obj_X);
       ObjectSet(obj_Name, OBJPROP_YDISTANCE, obj_Y);
       ObjectSet(obj_Name, OBJPROP_BACK, obj_ShowBackup);   
   }
}



void DeleteTimeObject(string TipTxt, int TxtLen)
{
   int ObjTotal=ObjectsTotal();
   for(int i = ObjTotal; i>=0; i--){
      string ObjName=ObjectName(i);
      if(StringSubstr(ObjName,0,TxtLen) == TipTxt){
         ObjectDelete(ObjName);
      }
   }
   ObjTotal=0;
}



string IDNumberToString(int CalNumber, int SN)
{
   string strNumber;
   int StrLen;
   StrLen=SN-StringLen(IntegerToString(CalNumber));


switch(StrLen)
{
   case 1:
      strNumber = "0"+IntegerToString(CalNumber);
      break;
   case 2:
      strNumber = "00"+IntegerToString(CalNumber);
      break;
   case 3:
      strNumber = "000"+IntegerToString(CalNumber);
      break;
   case 4:
      strNumber = "0000"+IntegerToString(CalNumber);
      break;
   case 5:
      strNumber = "00000"+IntegerToString(CalNumber);
      break;
   default:
      strNumber = IntegerToString(CalNumber);
      break;
}
   return(strNumber);
}

latage 发表于 2021-5-17 11:24:25

谢谢分享

Leonjo 发表于 2021-5-17 13:53:38

感謝分享

升龙 发表于 2021-5-17 14:14:25

感谢分享

宝宝 发表于 2021-8-7 22:19:41

感谢分享

668 发表于 2021-12-26 01:06:54

感謝分享

手艺人 发表于 2022-1-3 10:49:13

感谢分享

jun006 发表于 2022-1-23 00:37:15

感谢分享

starshine 发表于 2022-1-23 01:49:31

谢谢分享。

紫竹青荷 发表于 2022-5-18 00:45:24

感谢分享

tststs 发表于 2022-5-18 07:10:39

路过看下

不忘初心的远航 发表于 2022-5-18 07:31:05

感谢楼主分享,好好学习,天天向上!

daerbushen 发表于 2022-5-18 09:03:00

谢谢分享

武僧 发表于 2022-5-18 11:29:54

看看。。。

hqwj521 发表于 2023-6-5 06:03:14

太及时了,感谢感谢

daerwushenn 发表于 2023-6-5 08:51:38

指标吗??

daerbushen 发表于 2023-6-5 08:54:53

显示时间_源代码

ken138888 发表于 2023-6-6 06:40:04

怎么用的

静观明 发表于 2023-6-6 18:04:40

感谢分享      好用

umi0665 发表于 2023-6-14 17:36:52

學習~謝分享~看看
页: [1] 2 3
查看完整版本: 显示时间_源代码