MqlRates mrate[]; ArraySetAsSeries(mrate,true); if(CopyRates(_Symbol,PERIOD_H1,0,3,mrate)<0) { Alert("Error copying rates/history data - error:",GetLastError(),"!!"); ResetLastError(); return; } double p_close=mrate[1].close; // bar 1 close price double c_close=mrate[0].close; // bar 0 close price Print(c_close);应该没错的,你打印观察一下就知道了。
是否因为tick的原因,我的周期是H1,一小时一根柱线,看它print的语句,一小时才print一句,是否print的时候只有open价,tick不知道是怎么在H1周期跳的,一个小时跳一下吗?
king1898:
是否因为tick的原因,我的周期是H1,一小时一根柱线,看它print的语句,一小时才print一句,是否print的时候只有open价,tick不知道是怎么在H1周期跳的,一个小时跳一下吗?
很有可能,要看你print语句在什么时候打印了。比如你的逻辑是当有新的1小时柱线出现时,做XX操作,包括打印,那么肯定就打印当前价格即开盘价了,呵呵。
是否因为tick的原因,我的周期是H1,一小时一根柱线,看它print的语句,一小时才print一句,是否print的时候只有open价,tick不知道是怎么在H1周期跳的,一个小时跳一下吗?
版主,能确定下在H1周期,tick是一个小时跳一下,还是一分钟跳一下,如果是一小时跳一下,那肯定都只有开盘价了,因为只有跳完了才会有close价格出来,如果是一分钟跳的,那也是一分钟完了才有close价格,是这样吗,那我怎么拿到实时的价格呢?
luenbo:
很有可能,要看你print语句在什么时候打印了。比如你的逻辑是当有新的1小时柱线出现时,做XX操作,包括打印,那么肯定就打印当前价格即开盘价了,呵呵。
那我应该把print或者判断程序放在哪个位置才能打最新价格呢?请斑主赐教,多谢了
很有可能,要看你print语句在什么时候打印了。比如你的逻辑是当有新的1小时柱线出现时,做XX操作,包括打印,那么肯定就打印当前价格即开盘价了,呵呵。
king1898:
那我应该把print或者判断程序放在哪个位置才能打最新价格呢?请斑主赐教,多谢了
那我应该把print或者判断程序放在哪个位置才能打最新价格呢?请斑主赐教,多谢了
void OnTick() { MqlRates mrate[]; ArraySetAsSeries(mrate,true); if(CopyRates(_Symbol,PERIOD_H1,0,3,mrate)<0) { Alert("Error copying rates/history data - error:",GetLastError(),"!!"); ResetLastError(); return; } double p_close=mrate[1].close; // bar 1 close price double c_close=mrate[0].close; // bar 0 close price Print(c_close); }
每个ticks都会打印当前价格。
要获取实时报价为何非要用数组呢?
Print(“Bid: ”,SymbolInfoDouble(_Symbol,SYMBOL_BID), " Ask: ",SymbolInfoDouble(_Symbol,SYMBOL_ASK));
单独测试那段程序,可以每个tick都打印,但放到我的程序里,就只打印一次,是否我的程序太长,导致反应不过来,其实是有打印呢?或者说是显示不过来,就显示了一次?
king1898:
我不是说了,要看你的程序里面是不是有检测新柱形到来的代码逻辑。。。。如果打印是在这块中的,当然一个周期只打印一次,那就是该周期的第一个tick到来的时候的价格。。
单独测试那段程序,可以每个tick都打印,但放到我的程序里,就只打印一次,是否我的程序太长,导致反应不过来,其实是有打印呢?或者说是显示不过来,就显示了一次?
如题,但是用如下的代码,拿到的c_close却是当前柱的open price(开盘价),我用的H1的周期,为什么呢?,怎么拿到实时的价格,股票里我们就用close就是当前价格了,
MqlRates mrate[];
ArraySetAsSeries(mrate,true);
if(CopyRates(_Symbol,TIMEFRAMES,0,3,mrate)<0)
{
Alert("Error copying rates/history data - error:",GetLastError(),"!!");
ResetLastError();
return;
}
p_close=mrate[1].close; // bar 1 close price
c_close=mrate[0].close; // bar 0 close price