Подсобите, чуть-чуть с индикатором - страница 2

 
NEKSUS_ писал(а) >>

вот, оно, извиняюсь, что не уточнил, спасибо.

А может вы ещё подскажите, что нужно сделать что бы инд как скрипт работал- загрузился, отрисовался и удалился?

... и удалил все только что отрисованное :)

По сути:

1) определим глобальную переменную, например:

int OnlyOne = 0;
2) в начало start() добавим:
if (OnlyOne == 1) return(0);
OnlyOne = 1;
Все.
 
OneDepo >>:

... и удалил все только что отрисованное :)


в нём для того что бы не удалял параметр save имеется, спасиб за подсказку, попробую
 
ммм....с цветом всё нормально а вот с одноразовым запуском проблемы, ошибок при компиле нет, но не работает....что может быть не так?
 
NEKSUS_ писал(а) >>
ммм....с цветом всё нормально а вот с одноразовым запуском проблемы, ошибок при компиле нет, но не работает....что может быть не так?

"Доктор, у меня что-то болит - вылечите меня!" (перлы от знакомого врача)

Хотя бы вырезки кода представили с вашими изменениями...

 

 скажите плз. куда нужно вписать   int OnlyOne = 0;   мож не туда тыркаю, я же вообще не разбираюсь

//+------------------------------------------------------------------+
//|                                              Search_patterns.mq4 |
//|                                                            Talex |
//|                                                 tan@gazinter.net |
//+------------------------------------------------------------------+
#property copyright "Talex"
#property link      "tan@gazinter.net"
#property stacksize 16384
//----
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 CLR_NONE
#import "user32.dll"
int GetClientRect(int hWnd,int lpRect[]);
int OnlyOne = 0;
#import
extern bool FuturePattern =true; /* true - ищет формирующиеся паттерны, т.е. можно попытаться сыграть на движении до завершения паттерна, для "продвинутых" пользователей паттернов ;) */
extern bool ExtSave=false; /* если true, то построения будут сохранены на графике */
extern int ExtDepth=0; /* параметр для ZZ,если 0, то будет идти поиск паттернов, иначе строиться паттерн(если он есть) с указанным параметром Depth */
extern int ExtPoint=5; /* количество точек зигзага, если задать больше 5, то будут отображаться паттерны на истории (если они есть) */
extern int minDepth=3; /* параметр для поиска паттернов */
extern int maxDepth=50;/* параметр для поиска паттернов */
/*extern*/ int ExtIndicator=0; /* определяет индиктор, который будет искать точки для построения паттерна */
extern double ExtDopusk=0.05; /* параметры паттерна будут отличаться не более чем величина ExtDopusk */
extern double TimeDopusk=0.2; /*параметры паттерна по времени будут отличаться не более чем величина TimeDopusk */
extern bool Gartley=true; /* true - ищет паттерны Гартли, false - нет */
extern bool Pattern_50=true; /* true - ищет паттерн 5-0, false - нет */
extern bool ABCD=true; /* true - ищет паттерн AB=CD, false - нет */
extern bool WolfWaves=false; /* true - ищет паттерн WW, false - нет */
extern bool SweetZoneStart=true; /* true - показывает Свитзону начала отработки WW в которую должна попасть т.5, false - нет */
extern bool SweetZoneEnd=true; /* true - показывает Свитзону отработки WW в которую должна попасть т.6, false - нет */
extern color SZScolor=DimGray; /* цвет для SweetZoneStart */
extern color SZEcolor=DimGray; /* цвет для SweetZoneEnd */
extern color ExtColorGartley=DimGray; /* Цвет для паттернов Гартли */
extern color ExtColorRet=DimGray; /* Цвет линии ретрейсментов */
//extern bool AlertPattern=false; /* При появлении паттерна срабатывает алерт, пока не работает */
static int endbar=0;
static double endpr=0;
static bool fl;
string com1="",com2="",com3="",com4="",com5="",com6="",com7="",com8="",com9="";
string save="";
static int GPixels,VPixels;
int rect[4],hwnd;
//---- indicator buffers
double zz[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   IndicatorBuffers(1);
   SetIndexBuffer(0,zz);
   SetIndexStyle(0,DRAW_SECTION);
   SetIndexEmptyValue(0,0.0);
   //
   hwnd=WindowHandle(Symbol(),Period());
   if(hwnd>0) GetClientRect(hwnd,rect);
   GPixels=rect[2]; // здесь функция возвращает кол-во пикселов по горизонтали
   VPixels=rect[3]; // здесь функция возвращает кол-во пикселов по вертикали
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   string NamePattern[7]={"Gartley","Butterfly","Crab","Bat","Pattern_5-0","AB=CD","WolfeWaves"};
   //GetClientRect(hwnd,rect);
   Comment("");
   for(int b=0;b<7;b++)
     {
      for(int k=0;k<=maxDepth;k++)
        {
         ObjectDelete("RealTargetD_"+NamePattern[b]+k);
         ObjectDelete("RealTextTargetD_"+NamePattern[b]+k);
         ObjectDelete("RealFiboTarget_"+NamePattern[b]+k);
         ObjectDelete("Real1_"+NamePattern[b]+k);
         ObjectDelete("Real2_"+NamePattern[b]+k);
         ObjectDelete("Real3_"+NamePattern[b]+k);
         ObjectDelete("RealRetXB_"+NamePattern[b]+k);
         ObjectDelete("RealRetAC_"+NamePattern[b]+k);
         ObjectDelete("RealRetBD_"+NamePattern[b]+k);
         ObjectDelete("RealRetXD_"+NamePattern[b]+k);
         ObjectDelete("RealTextRetXB_"+NamePattern[b]+k);
         ObjectDelete("RealTextRetAC_"+NamePattern[b]+k);
         ObjectDelete("RealTextRetBD_"+NamePattern[b]+k);
         ObjectDelete("RealTextRetXD_"+NamePattern[b]+k);
         ObjectDelete("RealLineXA_"+NamePattern[b]+k);
         ObjectDelete("RealLineAB_"+NamePattern[b]+k);
         ObjectDelete("RealLineBC_"+NamePattern[b]+k);
         ObjectDelete("RealLineCD_"+NamePattern[b]+k);
         ObjectDelete("Future1_"+NamePattern[b]+k);
         ObjectDelete("Future2_"+NamePattern[b]+k);
         ObjectDelete("Future3_"+NamePattern[b]+k);
         ObjectDelete("FutureTargetC_"+NamePattern[b]+k);
         ObjectDelete("FutureTextTargetC_"+NamePattern[b]+k);
         ObjectDelete("FutureMinTargetD_"+NamePattern[b]+k);
         ObjectDelete("FutureTextMinTargetD_"+NamePattern[b]+k);
         ObjectDelete("FutureMaxTargetD_"+NamePattern[b]+k);
         ObjectDelete("FutureTextMaxTargetD_"+NamePattern[b]+k);
         ObjectDelete("FutureRetXB_"+NamePattern[b]+k);
         ObjectDelete("FutureTextRetXB_"+NamePattern[b]+k);
         ObjectDelete("FutureRetAC_"+NamePattern[b]+k);
         ObjectDelete("FutureTextRetAC_"+NamePattern[b]+k);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  if (OnlyOne == 1) return(0);
OnlyOne = 1;
   int PP[];
   int i,j,n,X,A,B,C,D;
   if(ExtSave==true)
     {
      save=TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS);
 
 
NEKSUS_ писал(а) >>

скажите плз. куда нужно вписать int OnlyOne = 0; мож не туда тыркаю, я же вообще не разбираюсь

Отсюда убрать

#import "user32.dll"
int GetClientRect(int hWnd,int lpRect[]);
// ==> int OnlyOne = 0;
#import
поставить сюда
int rect[4],hwnd;
int OnlyOne = 0;
//---- indicator buffers
double zz[];
 

А мне тоже не поможете. В программировании я бамбук, а индикатор вот понравился, хотелось бы чтоб его доделали чуток. Вообще индюк показывает в процентах насколько изменилась цена с начала дня, но показывает максимум по 4 парам, так вот хотелось бы чтоб показывал по десяти парам (если это конечно вообще возможно). И было бы вообще фантастикой если бы он еще в рядом стоящей колонке показывал изменение в процентах за месяц.

Файлы:
 
OneDepo >>:

Отсюда убрать

поставить сюда

сделал, не удаляется......=(

 
self >>:

А мне тоже не поможете...

Спешу обрадовать, автор индикатора жив, здоров и где-то здесь рядом бродит :))

 
granit77 >>:

Спешу обрадовать, автор индикатора жив, здоров и где-то здесь рядом бродит :))

спасибо!

Причина обращения: