<br/ translate="no"> int iBarShift( string symbol, int timeframe, datetime time, bool exact=false) 按时间搜索酒吧。该函数返回指定时间所属的条形图的偏移量。如果在指定的时间内没有条形图(历史上的一个 "缺口"),该函数,根据确切的参数,返回-1或最近的条形图的位移。
例如: datetime some_time=D'2004.03.21 12:00'; int shift=iBarShift("EUROUSD",PERIOD_M1,some_time); Print("shift of bar with open time" ,TimeToStr(some_time)," is " ,shift);
以下是文件中的数据
这里是图表上的这个条形图
而这并不是唯一的案例,这只是众多案例中的一个。
所有这些酒吧都与 "周日 "酒吧有关。
但事实上,它不能定位一个对象(建立一条线),可能是其他东西的报价基础,如果你认为你需要它,试着先钉住它,然后手动添加
。
按时间搜索酒吧。该函数返回指定时间所属的条形图的偏移量。如果在指定的时间内没有条形图(历史上的一个 "缺口"),该函数,根据确切的参数,返回-1或最近的条形图的位移。
参数:
符号 - 仪器的符号名称。NULL表示当前符号。
timeframe - 周期。可以是图表中的一个时期。0表示当前图表的周期。
time - 搜索的时间值。
exact - 如果没有找到酒吧,则返回值。FALSE - iBarShift返回最接近的一个。TRUE - iBarShift返回-1。
例如:
datetime some_time=D'2004.03.21 12:00';
int shift=iBarShift("EUROUSD",PERIOD_M1,some_time);
Print("shift of bar with open time" ,TimeToStr(some_time)," is " ,shift);
我会试着看一下米格的引文,稍后。
不,不是的。
这是一家正规的 "周日 "酒吧,而且确实在23:00开放。例如,FIBO有 "周日 "酒吧,从22:00开始。
不同的酒吧到达时间以及历史上的遗漏都被考虑在内。
欢迎提出批评。
#property copyright "Copyright Quark" #property link "" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Lime // indicator parameters extern int nPeriod = 6; double arrOpen[]; int nExtCountedBars = 0; int nBars; int nBarsUsdChf; //////////////////////// int init() { nBars = 0; nBarsUsdChf = 0; string strIndicatorShortName = "Test_1(" + Symbol() + " " + nPeriod + ")"; IndicatorShortName(strIndicatorShortName); // drawing settings SetIndexStyle(0, DRAW_LINE); SetIndexShift(0, 0); IndicatorDigits(4); // indicator buffers mapping SetIndexBuffer(0, arrOpen); return(0); } /////////////////////////// int start() { if(Bars <= nPeriod) return(0); if(nBars == Bars || nBarsUsdChf == iBars("USDCHF", 0)) return(-1); int nPos = Bars - nBars; int nPosUsdChf = nPos; nBars = Bars; nBarsUsdChf = iBars("USDCHF", 0); while(nPos >= 0) { // Adjust nPosUsdChf, so that time is the same as in EURUSD // If Time(USDCHF) < Time(EURUSD), decrease nPosUsdChf while(nPosUsdChf > 0 && TimeDay(Time[nPosUsdChf]) < TimeDay(Time[nPos]) || // Yerterday vs. Today (TimeDay(Time[nPosUsdChf]) == TimeDay(Time[nPos]) && // Same day TimeHour(Time[nPosUsdChf]) < TimeHour(Time[nPos]))) nPosUsdChf--; // Now, if Time(USDCHF) > Time(EURUSD), increase nPosUsdChf while(nPosUsdChf < Bars && TimeDay(Time[nPosUsdChf]) > TimeDay(Time[nPos]) || // Yerterday vs. Today (TimeDay(Time[nPosUsdChf]) == TimeDay(Time[nPos]) && // Same day TimeHour(Time[nPosUsdChf]) > TimeHour(Time[nPos]))) nPosUsdChf++; arrOpen[nPos] = iOpen("USDCHF", 0, nPosUsdChf); nPos--; nPosUsdChf--; } return(0); }Э...只是以前有一个MA,后来我把它删除了。但不是所有的方式 :)