hronik1967: Если ту абракадабру которая выше пишут НОВИЧКИ!!!,то я наверное зародыш трейдера. Задал простейший вопрос вопрос и полное игнорирование. Я наверно просто не достоин здесь пребывать. Так сказать рылом не вышел. Может всё же кто нибудь удостоит вниманием. Повторяю вопрос- Скачал и поставил торговать советника Forex Cieaner на пару EURUSD,интервал 30 мин,однако никаких сделок он не совершает. До этого поставил Ilan 1.6 на GBRUSD,там всё нормально. Что я не доделал? ПОДСКАЖИТЕ ПОЖАЛУЙСТА КТО НИБУДЬ!!!
Многие незнают такого советника. Его искать и скачивать ни кто не хочет. Тут больше вопросы про код.
hronik1967: Если ту абракадабру которая выше пишут НОВИЧКИ!!!,то я наверное зародыш трейдера. Задал простейший вопрос вопрос и полное игнорирование. Я наверно просто не достоин здесь пребывать. Так сказать рылом не вышел. Может всё же кто нибудь удостоит вниманием. Повторяю вопрос- Скачал и поставил торговать советника Forex Cieaner на пару EURUSD,интервал 30 мин,однако никаких сделок он не совершает. До этого поставил Ilan 1.6 на GBRUSD,там всё нормально. Что я не доделал? ПОДСКАЖИТЕ ПОЖАЛУЙСТА КТО НИБУДЬ!!!
Машина стала на дороге, не едет. Ребята, помогите, что с ней? Примерно так выглядит ваш вопрос про советники. Вам не отвечают, потому что есть минимум два десятка причин самого разнообразного свойства. Чужой советник на чужом терминале у трейдера неизвестной квалификации.
Значит что то с NewZigZag H4 в непорядке. Как и что непонимаю. Вроде так, а печати нет.
По ЗЗ делал много разных исследований. На разных ТФ разный результат. Сейчас хочется собрать все в кучу. Вычислений много и если по тикам или новым барам, очень нагружает комп. Хватает обработать данные при появлений нового ЗЗ екстремума.
Фича - особенность, небольшое несоответствие, которое впрочем особо не мешает, а иногда даже предоставляет не документированные возможности, например OrderClosePrice() - если закрыть ордер с этоим параметром в цене закрытия, то он закроется, не надо заморачиваться с определением цены по типам ордеров.
Баг - ошибка в программе (неисправимая фича)
Сервидек - место куда пользователи пишут письма с найденными багами. Находится на пятом форуме в вашем профиле (нужна дополнительная регистрация)
Доброго времени суток. Вопрос следующего содержания. В книге по MQL4, к-я находится на MQL4.community в главе "Стандартные функции" в разделе "Строковые функции и функции преобразования данных" приведен пример эксперта strings.mq4 следующего содержания (приведен полностью из книги):
//--------------------------------------------------------------------// strings.mq4// Предназначен для использования в качестве примера в учебнике MQL4.//--------------------------------------------------------------- 1 --externint Quant_Bars=100; // Количество баровdatetime Time_On;
string Prefix ="Paint_";
//--------------------------------------------------------------- 2 --int init() // Спец. функция init()
{
int Ind_Bar; // Индекс бара
Time_On=Time [Quant_Bars]; // Время первого раскрашенногоfor(Ind_Bar=Quant_Bars-1; Ind_Bar>=0; Ind_Bar--)// Цикл по барам
{
Create(Ind_Bar,1); // Нарисуем тонкую линию
Create(Ind_Bar,2); // Нарисуем толстую линию
}
WindowRedraw(); // Перерисовка изображения return; // Выход из init()
}
//--------------------------------------------------------------- 3 --int start() // Спец. функция start
{
datetime T1, T2; // 1 и 2 координаты времениint Error,Ind_Bar; // Код ошибки и индекс бараdouble P1, P2; // 1 и 2 координата ценыcolor Col; // Цвет созданного объекта//--------------------------------------------------------------- 4 --for(int Line=1; Line<=2; Line++) // Цикл по видам линий
{
string Nom_Lin =Line + "_"; // Строка с номером линии// string Nom_Lin = DoubleToStr(Line,0)+"_";// Можно и такfor(Ind_Bar=0; ;Ind_Bar++) // Цикл по барам
{
//--------------------------------------------------------------- 5 --datetime T_Bar= Time[Ind_Bar];// Время открытия бараif (T_Bar < Time_On) break; // Заграничные не раскрашиваемstring Str_Time=TimeToStr(T_Bar); // Строка со временемstring His_Name=Prefix+Nom_Lin+Str_Time;// Имя объекта//--------------------------------------------------------------- 6 --
T1=ObjectGet(His_Name,OBJPROP_TIME1);// Запрос коорд. t1
Error=GetLastError(); // Получение кода ошибкиif (Error==4202) // Если объекта нет :(
{
Create(Ind_Bar,Line); // Вызов ф-ии создания объектаcontinue; // На следующую итерацию
}
//--------------------------------------------------------------- 7 --
T2 =ObjectGet(His_Name,OBJPROP_TIME2); // Запрос коорд. t2
P1 =ObjectGet(His_Name,OBJPROP_PRICE1);// Запрос коорд. p1
P2 =ObjectGet(His_Name,OBJPROP_PRICE2);// Запрос коорд. p1
Col=ObjectGet(His_Name,OBJPROP_COLOR); // Запрос цветаif(T1!=T_Bar || T2!=T_Bar || // Не те координаты или цвет:
(Line==1 && (P1!=High[Ind_Bar] || P2!= Low[Ind_Bar])) ||
(Line==2 && (P1!=Open[Ind_Bar] || P2!=Close[Ind_Bar])) ||
(Open[Ind_Bar] Close[Ind_Bar] && Col!=Red) ||
(Open[Ind_Bar]==Close[Ind_Bar] && Col!=Green) )
{
ObjectDelete(His_Name); // Удаляем объект
Create(Ind_Bar,Line); // Создаём правильный объект
}
//--------------------------------------------------------------- 8 --
}
}
WindowRedraw(); // Перерисовка изображения return; // Выход из start()
}
//--------------------------------------------------------------- 9 --int deinit() // Спец. функция deinit()
{
string Name_Del[1]; // Объявление массиваint Quant_Del=0; // Количество удаляемых объектовint Quant_Objects=ObjectsTotal(); // Cтолько всего ВСЕХ объектовArrayResize(Name_Del,Quant_Objects);// Необходимый размер массиваfor(int k=0; k<=Quant_Del; i++) // Удаляем объекты с именами,.. ObjectDelete(Name_Del[i]); // .. имеющимися в массивеreturn; // Выход из deinit()
}
//-------------------------------------------------------------- 10 --int Create(int Ind_Bar, int Line) // Пользовательская функция..
{ // ..создания объектаcolor Color; // Цвет объектаdatetime T_Bar=Time [Ind_Bar]; // Время открытия бараdouble O_Bar=Open [Ind_Bar]; // Цена открытия бараdouble C_Bar=Close[Ind_Bar]; // Цена закрытия бараdouble H_Bar=High [Ind_Bar]; // Максимальная цена бараdouble L_Bar=Low [Ind_Bar]; // Минимальная цена бараstring Nom_Lin =Line + "_"; // Строка - номер линии// string Nom_Lin = DoubleToStr(Line,0)+"_";// Можно и такstring Str_Time=TimeToStr(T_Bar); // Строка - время откр. string His_Name=Prefix+Nom_Lin+Str_Time;// Имя созаваемого объектif (O_Bar < C_Bar) Color=Blue; // Выбор цвета в зависимости..if (O_Bar >C_Bar) Color=Red; // .. от характеристик бараif (O_Bar ==C_Bar) Color=Green;
switch(Line) // Тонкая или толстая линия
{
case1: // Тонкая линияObjectCreate(His_Name,OBJ_TREND,0,T_Bar,H_Bar,T_Bar,L_Bar);
break; // Выход из switchcase2: // Толстая линияObjectCreate(His_Name,OBJ_TREND,0,T_Bar,O_Bar,T_Bar,C_Bar);
ObjectSet( His_Name, OBJPROP_WIDTH, 3);// Стиль
}
ObjectSet( His_Name, OBJPROP_COLOR, Color); // ЦветObjectSet( His_Name, OBJPROP_RAY, false); // ЛучObjectSetText(His_Name,"Объект создан экспертом",10);// Описаниеreturn; // Выход из польз. ф-ии
}
//-------------------------------------------------------------- 11 –
Ниже, в конце подраздела Функция StringSubstr в скобках приведена следующая фраза: "отдельно нужно заметить, что в первом цикле for (мое примечание: очевидно, имеется в виду функция deinit(), так как больше нигде объекты не удаляются) удалять объекты нельзя, т.к. в этом случае после каждого удаления изменится общее количество объектов и их нумерация, в результате чего некоторые имена объектов будут пропущены". Но в приведенном тексте эксперта вообще нет второго цикла for. Кроме того, переменная Quant_Del, к-я объявлена в функции deinit() перед циклом forинициализирован нулем, а переменная i вообще до цикла for нигде не была объявлена И так, как цикл for имеет вид
for(int k=0; k<=Quant_Del; i++) // Удаляем объекты с именами,.. ObjectDelete(Name_Del[i]); // .. имеющимися в массиве
то получается, что в приведенном выше тексте эксперта просто банально пропущено несколько строк программы.
Поэтому 1-й вопрос такой: действительно ли здесь допущен банальный пропуск нескольких строк или это настолько хитромудрая программа, что новичкам не понять ее смысл без посторонней помощи?
Далее… В той же главе того же раздела перед приведенным текстом эксперта есть ссылка на этот же эксперт (привожу его в прикрепленном файле), при нажатии на который открывается тот же эксперт в MetaElitor. Но текст этого эксперта уже другой: здесь функция deinit()имеет уже такой вид:
//--------------------------------------------------------------- 9 --int deinit() // Спец. функция deinit()
{
string Name_Del[1]; // Объявление массиваint Quant_Del=0; // Количество удаляемых объектоint Quant_Objects=ObjectsTotal(); // Cтолько всего ВСЕХ объектовArrayResize(Name_Del,Quant_Objects);// Необходимый размер массиваfor(int k=0; k<Quant_Objects; k++) // По количеству объектов
{
string Obj_Name=ObjectName(k); // Запрашиваем имя объектаstring Head=StringSubstr(Obj_Name,0,6);// Извлекаем первые 6 симif (Head==Prefix) // Найден объект, ..
{ // .. начинающийся с Paint_
Quant_Del=Quant_Del+1; // Колич имён к удалению
Name_Del[Quant_Del-1]=Obj_Name;//Запоминаем имя удаляемого
}
}
for(int i=0; i<=Quant_Del; i++) // Удаляем объекты с именами,.. ObjectDelete(Name_Del[i]); // .. имеющимися в массивеreturn; // Выход из deinit()
}
//-------------------------------------------------------------- 10 --
Тогда, если "скомбинировать"фразу "отдельно нужно заметить, что в первом цикле for удалять объекты нельзя, т.к. в этом случае после каждого удаления изменится общее количество объектов и их нумерация, в результате чего некоторые имена объектов будут пропущены" Итекст функции deinit() последнего варианта, у меня возник 2-й вопрос:
Вопрос. Почему нельзя удалить объекты в первом цикле for, разместив функциюObjectDelete(Obj_Name) внутри оператора if?... Ну что-то типа:
int deinit() // Спец. функция deinit()
{
int Quant_Objects=ObjectsTotal(); // Cтолько всего ВСЕХ объектовfor(int k=0; k<Quant_Objects; k++) // По количеству объектов
{
string Obj_Name=ObjectName(k); // Запрашиваем имя объектаstring Head=StringSubstr(Obj_Name,0,6);// Извлекаем первые 6 симif (Head==Prefix) // Если найден объект, …
{ // ... начинающийся с Paint_,ObjectDelete(Obj_Name); // … то его и удаляем
} //конец if
} //конец forreturn; // Выход из deinit()
} //конец deinit//-------------------------------------------------------------- 10 --
Почему после каждого удаления "... будет изменяться общее количество объектов"?... Ведь в данном случае переменная Quant_Objects, которая и определяет общее количество объектов, получает свое значение, равное ObjectsTotal(), ЗА пределами цикла for?
P.S. Чтобы не захламлять форум, заранее благодарю за ответ
Возможно ли "подружить" по ЛВС компы/ноуты с 32- и 64-разрядными Win7 ? Есть три ноута и настольный (всё это дома) на двух ноутах Win7(64-разрядные) и их не видит вообще по сети 32-разрядный Win7 Ultimate настольный. А с него как раз и хотелось бы всей этой толпой рулить...
Возможно ли "подружить" по ЛВС компы/ноуты с 32- и 64-разрядными Win7 ? Есть три ноута и настольный (всё это дома) на двух ноутах Win7(64-разрядные) и их не видит вообще по сети 32-разрядный Win7 Ultimate настольный. А с него как раз и хотелось бы всей этой толпой рулить...
Есть варианты?
В сети не важно какой разрядности компы и система. Что-то с настройками не так.
ilunga, помоги еще. Что то не так. Печатает только новое время, а нового ЗигЗага нет.
2012.10.08 12:23:49 2012.09.14 05:12 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:11
2012.10.08 12:23:49 2012.09.14 05:11 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:10
2012.10.08 12:23:49 2012.09.14 05:10 MTF PRINT EURUSD,M1: newTime1000005 2012.09.14 05:05
2012.10.08 12:23:49 2012.09.14 05:10 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:09
2012.10.08 12:23:48 2012.09.14 05:09 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:08
2012.10.08 12:23:48 2012.09.14 05:08 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:07
2012.10.08 12:23:48 2012.09.14 05:07 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:06
2012.10.08 12:23:48 2012.09.14 05:06 MTF PRINT EURUSD,M1: newTime1000005 2012.09.14 05:00
2012.10.08 12:23:48 2012.09.14 05:06 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:03
2012.10.08 12:23:48 2012.09.14 05:03 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:02
2012.10.08 12:23:48 2012.09.14 05:02 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:01
2012.10.08 12:23:48 2012.09.14 05:01 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 05:00
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000060 2012.09.14 04:00
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000030 2012.09.14 04:30
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000015 2012.09.14 04:45
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000005 2012.09.14 04:55
2012.10.08 12:23:48 2012.09.14 05:00 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:59
2012.10.08 12:23:48 2012.09.14 04:59 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:58
2012.10.08 12:23:48 2012.09.14 04:58 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:55
2012.10.08 12:23:48 2012.09.14 04:55 MTF PRINT EURUSD,M1: newTime1000005 2012.09.14 04:50
2012.10.08 12:23:48 2012.09.14 04:55 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:54
2012.10.08 12:23:48 2012.09.14 04:54 MTF PRINT EURUSD,M1: newTime1000001 2012.09.14 04:53
Полный код
//Код непоместился. Слишком длинный. Он в прицепе.Если ту абракадабру которая выше пишут НОВИЧКИ!!!,то я наверное зародыш трейдера. Задал простейший вопрос вопрос и полное игнорирование. Я наверно просто не достоин здесь пребывать. Так сказать рылом не вышел. Может всё же кто нибудь удостоит вниманием. Повторяю вопрос- Скачал и поставил торговать советника Forex Cieaner на пару EURUSD,интервал 30 мин,однако никаких сделок он не совершает. До этого поставил Ilan 1.6 на GBRUSD,там всё нормально. Что я не доделал? ПОДСКАЖИТЕ ПОЖАЛУЙСТА КТО НИБУДЬ!!!
Многие незнают такого советника. Его искать и скачивать ни кто не хочет. Тут больше вопросы про код.
Если ту абракадабру которая выше пишут НОВИЧКИ!!!,то я наверное зародыш трейдера. Задал простейший вопрос вопрос и полное игнорирование. Я наверно просто не достоин здесь пребывать. Так сказать рылом не вышел. Может всё же кто нибудь удостоит вниманием. Повторяю вопрос- Скачал и поставил торговать советника Forex Cieaner на пару EURUSD,интервал 30 мин,однако никаких сделок он не совершает. До этого поставил Ilan 1.6 на GBRUSD,там всё нормально. Что я не доделал? ПОДСКАЖИТЕ ПОЖАЛУЙСТА КТО НИБУДЬ!!!
Вам не отвечают, потому что есть минимум два десятка причин самого разнообразного свойства. Чужой советник на чужом терминале у трейдера неизвестной квалификации.
Помогите.
Я имел в виду (двумя постами выше) в журнале печатает или непечатает.
Непечатает Print("newZZ_240=",Curr_zz240);
Печатает Print("newTime",mn240, " ",TimeToStr(CurrTime240));
Значит что то с NewZigZag H4 в непорядке. Как и что непонимаю. Вроде так, а печати нет.
По ЗЗ делал много разных исследований. На разных ТФ разный результат. Сейчас хочется собрать все в кучу. Вычислений много и если по тикам или новым барам, очень нагружает комп. Хватает обработать данные при появлений нового ЗЗ екстремума.
Фича - особенность, небольшое несоответствие, которое впрочем особо не мешает, а иногда даже предоставляет не документированные возможности, например OrderClosePrice() - если закрыть ордер с этоим параметром в цене закрытия, то он закроется, не надо заморачиваться с определением цены по типам ордеров.
Баг - ошибка в программе (неисправимая фича)
Сервидек - место куда пользователи пишут письма с найденными багами. Находится на пятом форуме в вашем профиле (нужна дополнительная регистрация)
Доброго времени суток. Вопрос следующего содержания. В книге по MQL4, к-я находится на MQL4.community в главе "Стандартные функции" в разделе "Строковые функции и функции преобразования данных" приведен пример эксперта strings.mq4 следующего содержания (приведен полностью из книги):
... продолжение...
Ниже, в конце подраздела Функция StringSubstr в скобках приведена следующая фраза: "отдельно нужно заметить, что в первом цикле for (мое примечание: очевидно, имеется в виду функция deinit(), так как больше нигде объекты не удаляются) удалять объекты нельзя, т.к. в этом случае после каждого удаления изменится общее количество объектов и их нумерация, в результате чего некоторые имена объектов будут пропущены". Но в приведенном тексте эксперта вообще нет второго цикла for. Кроме того, переменная Quant_Del, к-я объявлена в функции deinit() перед циклом for инициализирован нулем, а переменная i вообще до цикла for нигде не была объявлена И так, как цикл for имеет вид
то получается, что в приведенном выше тексте эксперта просто банально пропущено несколько строк программы.
Поэтому 1-й вопрос такой: действительно ли здесь допущен банальный пропуск нескольких строк или это настолько хитромудрая программа, что новичкам не понять ее смысл без посторонней помощи?
Далее… В той же главе того же раздела перед приведенным текстом эксперта есть ссылка на этот же эксперт (привожу его в прикрепленном файле), при нажатии на который открывается тот же эксперт в MetaElitor. Но текст этого эксперта уже другой: здесь функция deinit()имеет уже такой вид:
Тогда, если "скомбинировать" фразу "отдельно нужно заметить, что в первом цикле for удалять объекты нельзя, т.к. в этом случае после каждого удаления изменится общее количество объектов и их нумерация, в результате чего некоторые имена объектов будут пропущены" И текст функции deinit() последнего варианта, у меня возник 2-й вопрос:
Вопрос. Почему нельзя удалить объекты в первом цикле for, разместив функцию ObjectDelete(Obj_Name) внутри оператора if?... Ну что-то типа:
Почему после каждого удаления "... будет изменяться общее количество объектов"?... Ведь в данном случае переменная Quant_Objects, которая и определяет общее количество объектов, получает свое значение, равное ObjectsTotal(), ЗА пределами цикла for?
P.S. Чтобы не захламлять форум, заранее благодарю за ответ
Ребят, немного не в тему, и тем не менее...
Возможно ли "подружить" по ЛВС компы/ноуты с 32- и 64-разрядными Win7 ?
Есть три ноута и настольный (всё это дома) на двух ноутах Win7(64-разрядные) и их не видит вообще по сети 32-разрядный Win7 Ultimate настольный. А с него как раз и хотелось бы всей этой толпой рулить...
Есть варианты?
Ребят, немного не в тему, и тем не менее...
Возможно ли "подружить" по ЛВС компы/ноуты с 32- и 64-разрядными Win7 ?
Есть три ноута и настольный (всё это дома) на двух ноутах Win7(64-разрядные) и их не видит вообще по сети 32-разрядный Win7 Ultimate настольный. А с него как раз и хотелось бы всей этой толпой рулить...
Есть варианты?