查看完整版本: 请教版主问题

南海 2008-6-14 23:37

请教版主问题

请版主帮我编一小段代码
条件是这样的:
[size=4]如果当前最高价大于前五个周期最高价时取当前最高价,否则取前一次条件成立的值(也就是说取前一个最高价大于前五个周期最高价时取得的最高价)。[/size]按条件我该怎么编译了??


还有下面是我自己编的指标,不能显示,请版主花点时间帮我看下是哪里错了,谢谢

#property copyright "Copyright ?2008, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

double ExtMapBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   double  hh1[];
   double  ll1[];
   int i=0;
   double  hh2[];
   double  ll2[];
   double k1[];
   double k3[];
   double k2[];
   double b1[];
  
  int  limt = Bars-counted_bars;
  for (i=0;i<limt;i++)
  
  if (High[i]<High[i+2]&&High[i+1]<High[i+2]) hh1[i]=High[i+2]; else hh1[i]=0;
  if (Low[i]>Low[i+2]&&Low[i+1]>Low[i+2])  ll1[i]=Low[i+2]; else ll1[i]=0;
  if (hh1[i]>0) hh2[i]=hh1[i];
  else hh2[i]=ArrayBsearch(hh1[i],hh1[i+1]>0,WHOLE_ARRAY,0,MODE_DESCEND);
  if (ll1[i]>0)  ll2[i]=ll1[i];
else  ll2[i]=ArrayBsearch(ll1[i],ll1[i+1]>0,WHOLE_ARRAY,0,MODE_DESCEND);
if (Close[i]<ll2[i]) k3[i]=1; else k3[i]=0;
  if (Close[i]>hh2[i]) k1[i]=-3; else k1[i]=k3[i];
  if (k1[i]!=0) k2[i]=k1[i];
  else k2[i]=ArrayBsearch(k1[i],k1[i+1]!=0,WHOLE_ARRAY,0,MODE_DESCEND);

  if (k2[i]>1) b1[i]=hh2[i];
  
  else   b1[i]=ll2[i];
  
   ExtMapBuffer[i]=b1[i];  

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

[[i] 本帖最后由 南海 于 2008-6-14 23:39 编辑 [/i]]

startexcel 2008-6-15 10:10

你这代码写错了
hh1=High[i+2];
hh1是数组

南海 2008-6-15 11:39

没有错,我是写数组了,但复制不上,发上去变得弯弯曲曲的了,我重写一遍还是发不了,请版主就当有数组的再帮忙看,谢谢了



  int  limt = Bars-counted_bars;
  for (i=0;i<limt;i++)
  
  if (High[i]<High[i+2]&&High[i+1]<High[i+2]) hh1[i][i]=High[i+2]; else hh1[i][i]=0;
  if (Low[i]>Low[i+2]&&Low[i+1]>Low[i+2])  ll1[i][i]=Low[i+2]; else ll1[i][i]=0;
  if (hh1[i][i]>0) hh2[i][i]=hh1[i][i];
  else hh2[i][i]=ArrayBsearch(hh1[i][i],hh1[i+1]>0,WHOLE_ARRAY,0,MODE_DESCEND);
  if (ll1[i][i]>0)  ll2[i][i]=ll1[i][i];
else  ll2[i][i]=ArrayBsearch(ll1[i][i],ll1[i+1]>0,WHOLE_ARRAY,0,MODE_DESCEND);
if (Close[i]<ll2[i][i]) k3[i][i]=1; else k3[i][i]=0;
  if (Close[i]>hh2[i][i]) k1[i][i]=-3; else k1[i][i]=k3[i][i];
  if (k1[i][i]!=0) k2[i][i]=k1[i][i];
  else k2[i][i]=ArrayBsearch(k1[i][i],k1[i+1]!=0,WHOLE_ARRAY,0,MODE_DESCEND);

  if (k2[i][i]>1) b1[i][i]=hh2[i][i];
  
  else   b1[i][i]=ll2[i][i];
  
   ExtMapBuffer[i]=b1[i][i];  

  
  }
//+------------------------------------------------------------------+[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]

[[i] 本帖最后由 南海 于 2008-6-15 11:56 编辑 [/i]]

startexcel 2008-6-15 15:35

那你做为附件发吧

南海 2008-6-15 21:53

:yct35 :yct35 :yct35 :yct35

[[i] 本帖最后由 南海 于 2008-6-17 18:14 编辑 [/i]]

MACD 2008-7-25 17:58

:yct63
页: [1]
查看完整版本: 请教版主问题