0
Views
0
Downloads
0
Favorites
JPN_Time_Sub
//ì¬æÊÆobt@Ìwè
#property indicator_separate_window
#property indicator_minimum -1
#property indicator_maximum 2
//úÝèÏ
extern bool Grid = false;
extern bool YEAR = false;
extern bool MONTH = true;
extern bool DAY = true;
extern bool HOUR = true;
extern bool MINUTE = true;
extern bool SECOND = false;
extern bool ARROW = false;
extern bool NewLine = false;
extern color GridColor = LightSlateGray;
extern int Time_difference = 7;
extern int FontSize = 8;
extern int TimeInterval = 12;
extern color TextColor = White;
string ObjArray[300000];
datetime JPNT,StandardTime;
//string JPND,JPNM,WinName="JPN_Time_Sub";
string JPND,JPNM,WinName=" ";
int DefPeri,DefWin,ObjTotal;
//ú»
int init(){
IndicatorShortName(" ");
if(DefPeri != Period()){
DefPeri = Period();
DeleteTimeObject();
}
return(0);
}
//I¹@Ô\¦ðí
int deinit(){
DeleteTimeObject();
return(0);
}
int start(){
int limit=Bars-IndicatorCounted();
for(int i=limit; i>=0; i--){
//îÔ𴦽çì¬
if(StandardTime <= Time[i]){
//ú{Ô̶¬
JPNT = Time[i] + Time_difference * 3600;
SetTimeText(Time[i]);
//ÌîÔðÝè·é
datetime Period_Interval=DefPeri * 60 * TimeInterval;
for(StandardTime = Time[i] + Period_Interval;(TimeDayOfWeek(StandardTime) == 0 || TimeDayOfWeek(StandardTime) == 6) && DefPeri < PERIOD_H1;StandardTime += Period_Interval){}
}
}
return(0);
}
void SetTimeText(datetime settime){
//út¶ñÌì¬
string Y="";
string M="";
string D="";
JPND = StringSubstr(TimeToStr(JPNT, TIME_DATE),2);
if(YEAR){
Y=StringSubstr(JPND,0,2);
}
if(MONTH){
if(YEAR){
Y=StringConcatenate(Y,".");
}
M=StringSubstr(JPND,3,2);
}
if(DAY){
if(YEAR || MONTH){
M=StringConcatenate(M,".");
}
D=StringSubstr(JPND,6,2);
}
JPND=StringConcatenate(Y,M,D);
//Ô¶ñÌì¬
string h="";
string m="";
string s="";
JPNM = TimeToStr(JPNT, TIME_SECONDS);
if(HOUR){
h=StringSubstr(JPNM,0,2);
}
if(MINUTE){
if(HOUR){
h=StringConcatenate(h,":");
}
m=StringSubstr(JPNM,3,2);
}
if(SECOND){
if(HOUR || MINUTE){
m=StringConcatenate(m,":");
}
s=StringSubstr(JPNM,6,2);
}
JPNM=StringConcatenate(h,m,s);
//¯¶IuWFNgª¶ÝµÈ¯êÎì¬
if(ObjectFind(StringConcatenate("JPNTS_Arrow",JPND,"_",JPNM)) == -1){
MakeTimeObject(StringConcatenate("JPNTS_Arrow",JPND,"_",JPNM),StringConcatenate("JPNTS_Text",JPND,"_",JPNM,"_1"),StringConcatenate("JPNTS_Text",JPND,"_",JPNM,"_2"),StringConcatenate("JPNTS_GridJPN",JPND,"_",JPNM),JPND,JPNM,settime);
}
}
void MakeTimeObject(string ArrowName,string TimeTextName1,string TimeTextName2,string GridName,string DATE,string TIME,datetime settime){
DefWin=WindowFind(WinName);//OÌ×
int Pos=2;
//îóÌì¬
if(ARROW){
ObjArray[ObjTotal]=ArrowName;
ObjTotal++;
ObjectCreate(ArrowName, OBJ_ARROW,DefWin,settime, Pos);
Pos--;
ObjectSet(ArrowName,OBJPROP_ARROWCODE,241);
ObjectSet(ArrowName,OBJPROP_COLOR,TextColor);
}
if(NewLine){
//2sÅ\¦
//útÌì¬
ObjArray[ObjTotal]=TimeTextName1;
ObjTotal++;
ObjectCreate(TimeTextName1, OBJ_TEXT,DefWin,settime, Pos);
Pos--;
ObjectSetText(TimeTextName1, DATE, FontSize, "Arial", TextColor);
//ÔÌì¬
ObjArray[ObjTotal]=TimeTextName2;
ObjTotal++;
ObjectCreate(TimeTextName2, OBJ_TEXT,DefWin,settime, Pos);
Pos--;
ObjectSetText(TimeTextName2, TIME, FontSize, "Arial", TextColor);
}else{
//1sÅ\¦
ObjArray[ObjTotal]=StringConcatenate(TimeTextName1,"_",TimeTextName2);
ObjectCreate(ObjArray[ObjTotal], OBJ_TEXT,DefWin,settime, Pos);
Pos--;
if(YEAR || MONTH || DAY){
if(HOUR || MINUTE || SECOND){
ObjectSetText(ObjArray[ObjTotal], StringConcatenate(DATE,"_",TIME), FontSize, "Arial", TextColor);
}else{
ObjectSetText(ObjArray[ObjTotal], DATE, FontSize, "Arial", TextColor);
}
}else if(HOUR || MINUTE || SECOND){
ObjectSetText(ObjArray[ObjTotal], TIME, FontSize, "Arial", TextColor);
}
ObjTotal++;
}
//ObhÌì¬
if(Grid){
ObjArray[ObjTotal]=GridName;
ObjTotal++;
ObjectCreate(GridName,OBJ_TREND, 0, settime,0,settime,WindowPriceMax(0));
ObjectSet(GridName,OBJPROP_COLOR,GridColor);
ObjectSet(GridName, OBJPROP_STYLE, STYLE_DOT);
}
ObjectsRedraw();
}
void DeleteTimeObject(){
DefWin=WindowFind(WinName);
//zñÉi[µ½¼OÅí
for(int i = 0 ; i < ObjTotal ;i++){
if(ObjArray[i] != ""){
ObjectDelete(ObjArray[i]);
ObjArray[i]="";
}
}
//\bh©ç·×ÄÌIuWFNgðæ¾µÄí
ObjTotal=ObjectsTotal();
for(i=ObjTotal;i>=0;i--){
string ObjName=ObjectName(i);
if(StringSubstr(ObjName,0,5) == "JPNTS"){
ObjectDelete(ObjName);
}
}
ObjTotal=0;
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---