源码是下面这个吗?我在编辑器里面调出指标看到的 
// FX_FISH 
#property copyright "Copyright ?2005, Kiko Segui" 
#property link      "webtecnic@terra.es" 
#property indicator_separate_window 
#property indicator_buffers 2 
#property indicator_color1 Lime 
#property indicator_color2 Red 
#property indicator_level1 0.2 
#property indicator_level2 0.5 
#property indicator_level3 1.0 
#property indicator_level4 -0.2 
#property indicator_level5 -0.5 
#property indicator_level6 -1.0 
// #property indicator_maximum 2 
// #property indicator_minimum -2 
double buffer1[]; 
double buffer2[]; 
extern int period=30; 
extern int price=6; // 0 or other = (H+L)/2 
                    // 1 = Open 
                    // 2 = Close 
                    // 3 = High 
                    // 4 = Low 
                    // 5 = (H+L+C)/3 
                    // 6 = (O+C+H+L)/4 
                    // 7 = (O+C)/2 
extern bool Mode_Fast= True; 
extern bool Signals= False; 
int init() 
  { 
  SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,Lime); 
  SetIndexBuffer(0,buffer1); 
  SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2,Red); 
  SetIndexBuffer(1,buffer2); 
  return(0); 
  } 
int deinit() 
  { 
  int i; 
  double tmp; 
  for (i=0;i[B]-1) 
   { 
   MaxH = High[Highest(NULL,0,MODE_HIGH,period,i)]; 
   MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)]; 
   switch (price) 
     { 
     case 1: _price = Open[i]; break; 
     case 2: _price = Close[i]; break; 
     case 3: _price = High[i]; break; 
     case 4: _price = Low[i]; break; 
     case 5: _price = (High[i]+Low[i]+Close[i])/3; break; 
     case 6: _price = (Open[i]+High[i]+Low[i]+Close[i])/4; break; 
     case 7: _price = (Open[i]+Close[i])/2; break; 
     default: _price = (High[i]+Low[i])/2; break; 
     } 
   Value = 0.33*2*((_price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;      
   Value=MathMin(MathMax(Value,-0.999),0.999);  
   Fish = 0.5*MathLog((1+Value)/(1-Value)) -0.5*Fish1 -0.5*Fish2; 
   buffer1[i]= 0; 
   buffer2[i]= 0; 
   if ( (Fish0))  
     { 
     if (Signals) 
       { 
       ObjectCreate("EXIT: "+DoubleToStr(i,0),OBJ_TEXT,0,Time[i],_price); 
       ObjectSetText("EXIT: "+DoubleToStr(i,0),"EXIT AT "+DoubleToStr(_price,4),7,"Arial",White); 
       } 
     buy = 0; 
     }    
   if ((Fish>0) && (Fish1=0) 
     { 
     buffer1[i] = Fish; 
     } 
   else 
     { 
     buffer2[i] = Fish;   
     } 
   tmp = i; 
   if ((FishFish1) &&  
       (Fish1Threshold) &&  
       (Fish=Fish2)) 
    { 
    if (Signals) 
       { 
       ObjectCreate("BUY SIGNAL: "+DoubleToStr(i,0),OBJ_TEXT,0,Time[i],_price); 
       ObjectSetText("BUY SIGNAL: "+DoubleToStr(i,0),"BUY AT "+DoubleToStr(_price,4),7,"Arial",Lime); 
       } 
    buy=1; 
    } 
   Value1 = Value; 
   Fish2 = Fish1;   
   Fish1 = Fish; 
   i--; 
   } 
  return(0); 
  } 
//+------------------------------------------------------------------+ 
 |