Results 1 to 6 of 6

Thread: MT4自定义指标绘图问题

  1. #1
    在试验自定义价格指数时,我可以让它实时绘制,但只能实时绘制。一旦窗口关闭或图表时间框架改变,indior重置为零并重新开始。我只能通过保持图表窗口与indior不断打开和未经编辑来显示历史。

    我如何修改代码,以便我可以离线使用它,并让它绘制历史记录以及实时更新。

    这是完整的代码。我想修改它,以便在将历史记录添加到图表时计算历史记录,以便它实时更新。我知道有很多历史记录需要更长的时间来计算和加载,所以最好的解决方案是添加一个可变数量的历史条来计算和绘制。

    插入代码#property copyright #property link #define vers Beta/---- #property indior_separate_window #property indior_buffers 1 #property indior_color1 Gold #property indior_width1 1 extern string SymbolMain =; extern字符串Symbol1 = EURUSD; extern string Symbol2 = EURUSD; extern字符串Symbol3 = EURUSD; extern字符串Symbol4 = EURJPY; extern string Symbol5 = EURJPY; extern string Symbol6 = EURJPY; extern string Symbol7 = CHFJPY; extern string Symbol8 = CHFJPY; extern string Symbol9 = CHFJPY; extern字符串Symbol10 = USDCHF; extern字符串符号11 = USDCHF; extern字符串Symbol12 = USDCHF; extern字符串Symbol13 = EURGBP; extern字符串Symbol14 = GBPCHF;/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~无效的init(){SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Buff1); SetIndexEmptyValue(0,0.0); } void deinit(){} void start(){int counted_bars = IndiorCounted(); if(counts_bars lt; 0)返回; if(counting_bars gt; 0)counts_bars--; int limit = Bars-counted_bars; for(int i = limit; i gt; = 0; i--){Buff1#91; i#93; =(iClose(Symbol1,0,0) iClose(Symbol2,0,0) iClose(Symbol3,0,0) iClose(Symbol4,0,0)/100 iClose(Symbol5,0,0)/100 iClose(Symbol6,0,0)/100 iClose(Symbol7,0,0)/100 iClose(Symbol8,0,0)/100 iClose(Symbol9,0,0)/100 (1iClose(符号10,0,0)) (1iClose(符号11,0,0)) (1iClose(符号12,0,0)) iClose(符号13,0,0) (1iClose(符号14, 0,0)))/14; }}

  2. #2
    看看你所有的iClose()检查...他们都在检查当前蜡烛而不是i烛。

  3. #3

    Quote Originally Posted by ;
    看看你所有的iClose()检查...他们都在检查当前蜡烛而不是i烛。
    你在暗示......?插入代码if(counts_bars gt; 0)counting_bars ; int limit = Bars-counted_bars; for(int i = limit; i gt; = 0; i )

  4. #4

    Quote Originally Posted by ;
    {quote}你在暗示......? if(counting_bars gt; 0)counts_bars ; int limit = Bars-counted_bars; for(int i = limit; i gt; = 0; i )
    看看这个:插入的代码iClose(Symbol1,0,0)iClose()函数中的最后一个0是当前的蜡烛...所以无论你在for循环中的哪个位置,它总是检查当前蜡烛的结束。

  5. #5

    Quote Originally Posted by ;
    {quote}看看这个:iClose(Symbol1,0,0)iClose()函数中的最后一个0是当前的蜡烛...所以无论你在for循环中的哪个位置,它总是检查当前的关闭蜡烛。
    我有两个版本...关闭0和关闭1都只从图表打开时绘制,我希望它们也绘制历史线,因为如果我关闭图表,它再次从零开始并且有除非我在一分钟的图表上保持图表开放几个小时,否则看不出多少线。

  6. #6

    Quote Originally Posted by ;
    {quote}我有两个版本...关闭0和关闭1都只从图表打开时绘制,我希望它们也绘制历史线,因为如果我关闭图表,它再次从零开始除非我在一分钟图表上保持图表开放几个小时,否则没有太多可看的线。
    这正是为什么你必须在for循环的所有iClose检查中把i而不是0 ...

发布权限

  • 您不可发布新主题
  • 您不可回复
  • 您不可发布附件
  • 您不可编辑您的帖子
  •  
  • BB代码是打开的
  • 表情符号是打开的
  • [IMG]代码是打开的
  • [视频]代码是打开的
  • HTML代码是关闭的
histoforex网站使用cookie 文字跟踪
histoforex网站使用cookie 文字跟踪,某些设定已经固定。您可以点击此处阅读我们的Cookie使用说明。 请点击右键接受我们的cookies。如果您选择继续使用histoforex网站,我们将认为您接受我们的cookies。