О'кей зарегистрировался.
Здравствуйте Сергей еще раз.
Вот пишу Вам первый раз . Надеюсь не последний. В сравнении с тем о чем и на какие темы говорят и пишут на форуме я новичок. Язык изучил за месяц, примерно пол года назад, " Учебник по программированию на MQL4" в Вашем авторстве. Прекрасный учебник, очень толково написан.
Написал несколько советников, пользовательских индикаторов, скриптов. На все непонятные вопросы ответы пытаюсь найти на форуме. Но столкнулся с одной вроде бы мелочью, а ответа найти не могу. Задал вопрос вчера на форуме, но внятный ответ так и не получил.
Помогите пожалуйста.
Вопрос касается использование #include <ХХХ.mqh>, перечитал весь форум не нашел ответа.
На одной из веток 20.10.2007 Вы написали:
"...Ещё можно добавить, что файл ех4 является самодостаточным - для того, чтоб он работал,
не требуется, чтоб в include находились исходные коды пользовательских функций.
Файл ех4 можно скопировать, передать другим трейдерам и там использовать.
Он является полноценным независимо от технологии его получения."
Вот в этом и проблема.
Допустим я сделал советник в который вставил директиву #include<...>, затем сделал включаемый заголовочный файл с куском кода. Откомпилировал советник и включил в торговлю. Все работает.
Беру свой советник копирую и переношу на другой компьютер, другому трейдеру . После этого советник не хочет работать и пишет, что нет функции к которой обращается #include<...>, то есть он не видит включаемый заголовочный файл и не компилируется. А пишет при компиляции -
'PointZigZag.mqh' - cannot open the program file D:\Program Files\MetaTrader2\experts\Киблиот.mq4 (10, 1)
Как я понял из учебника и Ваших высказываний, передается советник в mg4, а включаемый файл с ним прицепом в ех4. И получается, что код советника виден, а включаемый файл не виден но в любом случае должен работать.
Вот пример советника и включаемого заголовочного файла. Посмотрите в чем ошибка именно по вопросу.
//+------------------------------------------------------------------+
//| Киблиот.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>
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{PointZigZag();
Comment("Прод.-y21 = ",y21," ","Пок.-x21 = ",x21);
return(0);
}
//+------------------------------------------------------------------+
жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+------------------------------------------------------------------+
//| PointZigZag.mqh |
//| 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;
//------------------------------------------------------------------------------
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];}
}
//+------------------------------------------------------------------+
Большое Спасибо.