[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 289

 
TheXpert >>:

Строго говоря, нет. Но очень рядом.

А еси поточнее, рядом это где?

Хотелось бы услышать соображения по предыдущим постам, про код, логику и т. д.

Заранее благодарен

 

Спасибо за внимание.

Вот так выглядит советник

//+------------------------------------------------------------------+
//| Библиот.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

#include <PointZigZag.mqh>

int init()
{return(0);}
int deinit()
{return(0);}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{PointZigZag();
Comment("Прод.-y21 = ",y21," ","Пок.-x21 = ",x21);
return(0);
}
//+------------------------------------------------------------------+


А вот так выглядит файл. Который в терминале в котором создан работает. Но При компиляции пишет -Start function not found and cannot be run.

//+------------------------------------------------------------------+
//| PointZigZag.mqh |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| EX4 imports |
//+------------------------------------------------------------------+
#import "PointZigZag.ex4"

extern int ExtDepth = 12; //------- переменные ZigZag
extern int ExtDeviation = 5; //------- переменные ZigZag
extern int ExtBackstep = 3; //------- переменные ZigZag
extern int ShiftBars = 2; //------- переменные ZigZag
//------- переменные ZigZag ------------------------------------------
double y3, y2, y1, zz;//
int x3, x2, x1, sh;//
double x31, x21, x11; // Точки перегиба ZigZag
double y31, y21, y11; // Точки перегиба ZigZag
double TimeZZ, TimeOO;
//------------------------------------------------------------------------------

double PointZigZag()
{y3=0;y2=0;y1=0;
sh=ShiftBars;
while (y3==0)
{zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if (zz!=0 && zz!=EMPTY_VALUE)
{if (y1==0) { x1=sh; y1=zz; }
else if (y2==0) { x2=sh; y2=zz; }
else if (y3==0) { x3=sh; y3=zz; }}sh++;
}
if (High[x1]>High[x2])
{x11=High[x1]; x21=Low[x2]; x31=High[x3];
y11=0;y21=0;y31=0;TimeZZ=Time[x2];
}else
{y11=Low[x1]; y21=High[x2]; y31=Low[x3];
x11=0;x21=0;x31=0;TimeZZ=Time[x2];}

}
#import
//+------------------------------------------------------------------+
 

Я не спец, но файлы библиотек компилировать отдельно не надо. Отсюда и сообщение Start function not found and cannot be run. Файл библиотеки при компилировании советника (там где есть функция Start) будет автоматически включен в код и откомпилирован.

Дальше мне непонятно. Советую закомментировать строчки #import "PointZigZag.ex4" и #import. Должно все заработать.

 

А еще лучше собрать все вместе в советнике. а все остальное выбросить.

//+------------------------------------------------------------------+
//| Библиот.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

extern int ExtDepth = 12; //------- переменные ZigZag
extern int ExtDeviation = 5; //------- переменные ZigZag
extern int ExtBackstep = 3; //------- переменные ZigZag
extern int ShiftBars = 2; //------- переменные ZigZag
//------- переменные ZigZag ------------------------------------------
double y3, y2, y1, zz;//
int x3, x2, x1, sh;//
double x31, x21, x11; // Точки перегиба ZigZag
double y31, y21, y11; // Точки перегиба ZigZag
double TimeZZ, TimeOO;
//------------------------------------------------------------------------------

int init()
{return(0);}
int deinit()
{return(0);}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{PointZigZag();
Comment("Прод.-y21 = ",y21," ","Пок.-x21 = ",x21);
return(0);
}
double PointZigZag()
{y3=0;y2=0;y1=0;
sh=ShiftBars;
while (y3==0)
{zz=iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, sh);
if (zz!=0 && zz!=EMPTY_VALUE)
{if (y1==0) { x1=sh; y1=zz; }
else if (y2==0) { x2=sh; y2=zz; }
else if (y3==0) { x3=sh; y3=zz; }}sh++;
}
if (High[x1]>High[x2])
{x11=High[x1]; x21=Low[x2]; x31=High[x3];
y11=0;y21=0;y31=0;TimeZZ=Time[x2];
}else
{y11=Low[x1]; y21=High[x2]; y31=Low[x3];
x11=0;x21=0;x31=0;TimeZZ=Time[x2];}

}
//+------------------------------------------------------------------+
 
granit77 >>:

А еще лучше собрать все вместе в советнике. а все остальное выбросить.

Это все понятно. Но это был пример отвлеченный.

Просто для других целей хотелось-бы создать библиотеку из разных функций, а потом их применять.

Подумайте пожалуйста еще, в чем может быть причина. Спасибо.

 
gvi2504 >>:

Это все понятно. Но это был пример отвлеченный.

Просто для других целей хотелось-бы создать библиотеку из разных функций, а потом их применять.

Подумайте пожалуйста еще, в чем может быть причина. Спасибо.

Спасибо за предложение. Мне Ваша последняя фраза понравилась настолько, что я ее Вам возвращаю. Мое предположение, что библиотечный файл написан неправильно, там и #include и #import и встроенная функция. Масло масленое. Выбросить, почитать учебник и написать заново.

 

Люди а как вы тестируете своих советников, ну, допустим в диапазоне одного года? Я уже столько инфы перечитал, но ничего не могу сделать с тем, что у меня M1 график не пролистывается далее чем 5 марта 2009 года. Соответственно не могу поставить период тестирования пораньше чем 5 марта. Пробовал закачивать котировки в МТ через сервис->архив котировок, всё равно не помогает. Пролистывание вручную тоже не помоает.... Вот что мне ответили в техподдержке ДЦ на этот вопрос:


"К сожалению, компания Metaquotes не предоставляет специальной программы, так называемого, "исторического сервера" дилинговым центрам, поэтому есть эти ограничения. И также когда вы выбираете меню "Сервис-Архив", и нажимаете "загрузить" - выдается предупреждение, что будут загружены исторические данные с сервера "MetaQuotes".

p.s. Несколько дилинговых центров (и мы в их числе) пытались добиться от MetaQuotes дать возможность загрузки данных (без ограничений) от конкретного ДЦ, однако, пока, только обещается наличие данного сервиса в МТ5."


И как мне быть если я хочу проверит своего советника на длительном промежутке?

 
Noterday >>:

Люди а как вы тестируете своих советников, ну, допустим в диапазоне одного года? Я уже столько инфы перечитал, но ничего не могу сделать с тем, что у меня M1 график не пролистывается далее чем 5 марта 2009 года. Соответственно не могу поставить период тестирования пораньше чем 5 марта. Пробовал закачивать котировки в МТ через сервис->архив котировок, всё равно не помогает. Пролистывание вручную тоже не помоает.... Вот что мне ответили в техподдержке ДЦ на этот вопрос:


"К сожалению, компания Metaquotes не предоставляет специальной программы, так называемого, "исторического сервера" дилинговым центрам, поэтому есть эти ограничения. И также когда вы выбираете меню "Сервис-Архив", и нажимаете "загрузить" - выдается предупреждение, что будут загружены исторические данные с сервера "MetaQuotes".

p.s. Несколько дилинговых центров (и мы в их числе) пытались добиться от MetaQuotes дать возможность загрузки данных (без ограничений) от конкретного ДЦ, однако, пока, только обещается наличие данного сервиса в МТ5."


И как мне быть если я хочу проверит своего советника на длительном промежутке?

Более того в МТ5 не просто ожидается, там всё построено на М1 другой ТФ считается из М1(те история будет только в М1) ну а пока поставьте окно побольше и качайте с MetaQuotes иначе пока никак. Если вы не запускали МТ до началной даты и MQ и не накопили своим ходом то никак.

Хотя поспрашайте мож у кого сохранилось, есть же люди которые котировки копят ещё с МТ-2

(что было до МТ-2 простите не знаю слишком мало времени на форексе).

 
Загружать историю и (писать) тестировать советника по "Ценам открытия" на тф, не менее н1...
 
rid >>:
Загружать историю и (писать) тестировать советника по "Ценам открытия" на тф, не менее н1...

Да, действительно, начал тестить :) Но что-то мне кажется что из-за такого бордака система себя не покажет ИСТИННО. Может индикатор не правильно расчитывается на таких данных или еще чего...тем более что система разработана для минуток. Но всё равно, спасибо!