Советник (пипсовочный, гридер) на реале почему-то "поимел" привычку вдруг без видимых причин останавливать свою работу! (ДЦ Броко)
Иногда это приисходит после остановки сервера (часто там таое бывает), а после возобновления котировок советник (либо мт4) приходится перезапускать и лишь тогда он начинает работать.
Иногда советник встает, повторюсь, без видимых причин и чтобы его "подтолкнуть" нужно перезапустить мт4 или переустановить советник.
Ордера выставляются корректно. В соотв. с регламентом.
В Журнале ошибок нет. Кто сталкивался, - пож. подскажите ?
Не хочу там на форуме задавать вопрос техподдержке, чтобы не привлекать внимание к своему счету.
shap писал(а)>> Как упростить шаблон из статьи "Опираясь на силу шаблонов", удалив SL, TP, отложенные ордера и их модификацию. А то невозможно эксперементировать.
Это уже четвертый пост с одним и тем же содержимым. Не хорошо
Я задаю в индюке построение. вееров Ганна от минимума вверх и от максимума вниз.
Но, почему-то линии веера направляются не так, как мне надо, - а сов. случайным образом !
Например, вот так (здесь от максимума 1.4071 веер почему-то пошел вверх):
Не знаю, почему так.
Задаю вееры в ф-и СТРАТ вот так:
//задаем текущие значения ввера Ганна от минимума вверх// и вычисляем масштаб веераObjectMove("GANNFAN_",0,Time[xLOW],LOW);
Масштаб_Веера_=MathAbs(MathSqrt((LOW)*10000));//задаем текущие значения ввера Ганна от максимума вниз// и вычисляем масштаб веераObjectMove("GANNFAN",0,Time[xHIGH],HIGH);
Масштаб_Веера=(-1)*MathAbs(MathSqrt((HIGH)*10000));
#property indicator_chart_window//-------------------------------------------------------------------+externstring _ ="---- ОБЩИЕ ПАРАМЕТРЫ -----";externint Bars_=200;//кол-во баров для расчета формулыexternint TimeFr=0;//задаем тф для расчетаexterncolor Цвет_Веера =DarkViolet;//--------------------------------------------------------------int xLOW, xHIGH;double HIGH, LOW ;double Масштаб_Веера ;double Масштаб_Веера_ ;//+------------------------------------------------------------------+int init(){//обьявляем веер Ганна от мин вверх ObjectCreate("GANNFAN_",OBJ_GANNFAN,0,0,0,0,0);//задаем флаг фонового отображения веера ObjectSet("GANNFAN_", OBJPROP_BACK,1);//задаем цвет веера ObjectSet("GANNFAN_", OBJPROP_COLOR,Цвет_Веера);//задаем толщину линий веера ГаннаObjectSet("GANNFAN_", OBJPROP_WIDTH,2);//задаем масштаб веера Ганна ObjectSet("GANNFAN_",OBJPROP_SCALE,Масштаб_Веера_);//обьявляем веер Ганна от макс вниз ObjectCreate("GANNFAN",OBJ_GANNFAN,0,0,0,0,0);//задаем флаг фонового отображения веера ObjectSet("GANNFAN", OBJPROP_BACK,1);//задаем цвет веера ObjectSet("GANNFAN", OBJPROP_COLOR,Цвет_Веера);//задаем толщину линий веера ГаннаObjectSet("GANNFAN", OBJPROP_WIDTH,2);//задаем масштаб веера Ганна ObjectSet("GANNFAN",OBJPROP_SCALE,Масштаб_Веера);//задаем вертикальные линии от экстремумов ObjectCreate("line",OBJ_VLINE,0,0,0,0,0);//вертикальная линия от максObjectSet("line", OBJPROP_BACK,1);ObjectSet("line", OBJPROP_COLOR,Red);//цветObjectSet("line",OBJPROP_WIDTH,2);//толщина линииObjectCreate("line_",OBJ_VLINE,0,0,0,0,0);//вертикальная линия от минObjectSet("line_", OBJPROP_BACK,1);ObjectSet("line_", OBJPROP_COLOR,Orange);//цветObjectSet("line_",OBJPROP_WIDTH,2);//толщина линии }//------конец функции ИНИТ//+------------------------------------------------------------------+int deinit(){ObjectDelete("GANNFAN_");ObjectDelete("GANNFAN");ObjectDelete("line");ObjectDelete("line_");//if (!IsTesting()) ObjectsDeleteAll(0,OBJ_TREND); }//+------------------------------------------------------------------+int start(){
xHIGH =iHighest(NULL, TimeFr,MODE_HIGH,Bars_ ,1);//номер бара максимума
HIGH =iHigh(NULL, TimeFr, xHIGH);// ценовое значение максимума
xLOW =iLowest(NULL, TimeFr,MODE_LOW, Bars_ ,1);//номер бара минимума
LOW =iLow(NULL, TimeFr, xLOW);// ценовое значение минимума//задаем текущие горизонтальные лимнии на мин и макс//ObjectMove("lowline",0,Time[xLOW],LOW);//ObjectMove("highline",0,Time[xHIGH],HIGH);//задаем текущие значения ввера Ганна от// минимума и вычисляем масштаб веераObjectMove("GANNFAN_",0,Time[xLOW],LOW);
Масштаб_Веера_=MathAbs(MathSqrt((LOW)*10000));//задаем значения для отрисовки вертик линии на минимумеObjectMove("line_",0,Time[xLOW],0);//задаем текущие значения ввера Ганна от //максимума вниз и вычисляем масштаб веераObjectMove("GANNFAN",0,Time[xHIGH],HIGH);
Масштаб_Веера=(-1)*MathAbs(MathSqrt((HIGH)*10000));//задаем значения для отрисовки вертик линии на максимумеObjectMove("line",0,Time[xHIGH],0);return(0);}//конец функции СТАРТ
Привет, у меня это всего второе сообщение, то есть на форуме новый, начал учить язык, естественно вопросов немеренно, а по книгам как то сложновато. Начал с учебника, уважаемого форумчанина Сергей Ковалёва, и некоторые статьи этого форума учил... После продолжительной теории, приступил практике, создал шаблон и набросок первого эксперта, разделил его по блокам, и вот одну функцию за другой разбираю (досканально), чтобы понять что как работает, поверьте если ты водолаз а не програмист, то это не просто всё в башке разложить, и осмыслить что к чему. Так вот к делу, может кто нибудь подсказать, что для Професионала для меня пока реальная проблема: сегодня просидел целый день так и смог решить задачу.
Я некоторые функции, запускаю пробно как скрипт, нет ли ошибок при компиляции и какие, чтобы проверить работает или нет в терминале. Взял сегодня Функцию предварительного подсчёта баров в окне:
//+------------------------------------------------------------------+int start(){int A =100;//+------------------------------------------------------------------+ if(Bars< A)// Недостаточно баров{Alert("Недостаточно баров в окне инструмента.");return;// Выход из start()}return(0);}//+------------------------------------------------------------------+
Естественно, выходит сообщение *Недостаточно баров*, но при новом тике я понимаю вновь до бесконечности будет появляться это сообщение.
Теперь я добавляю переменную и дописываю оператор if, а также в будущем блоке обработок ошибок Bloc_Error, всталяю оператор switchполучается это:
int start(){int A =100;bool Work=true; //+------------------------------------------------------------------+ int Bloc_Error // Пользовательская функция//+------------------------------------------------------------------+ switch()// Преодолимые ошибки:{case3:// Неверные параметры:
Work=false;return(0);}//+------------------------------------------------------------------+ if(Bars< A)// Недостаточно баров{Alert("Недостаточно баров в окне инструмента.");return;// Выход из start()}if(Work==false)// Ошибка {Alert("Эксперт не работает.");return;// Выход из start }//+------------------------------------------------------------------+ return(0);}
Вопрос такой что я тут неправильно наплёл в операторе switch, почему не вылазиет сообщение *Эксперт не работает*, и чтобы действительно советник прекращал работу?????
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Вот как сделано:
Так у Вас StopLoss == TakeProfit, а в условиях сравнения такого варианта не предусмотрено (((
Да, - оч. может быть, что от Аск надо закрывать. Попробую.
Т.е.для селл тейкпрофит можно и от Бид.
А стополсс - надо строго от Аск, видимо.. стоплевел отсчитывать
Добрый день всем.
Вот такой вопрос.
Советник (пипсовочный, гридер) на реале почему-то "поимел" привычку вдруг без видимых причин останавливать свою работу! (ДЦ Броко)
Иногда это приисходит после остановки сервера (часто там таое бывает), а после возобновления котировок советник (либо мт4) приходится перезапускать и лишь тогда он начинает работать.
Иногда советник встает, повторюсь, без видимых причин и чтобы его "подтолкнуть" нужно перезапустить мт4 или переустановить советник.
Ордера выставляются корректно. В соотв. с регламентом.
В Журнале ошибок нет. Кто сталкивался, - пож. подскажите ?
Не хочу там на форуме задавать вопрос техподдержке, чтобы не привлекать внимание к своему счету.
Как упростить шаблон из статьи "Опираясь на силу шаблонов", удалив SL, TP, отложенные ордера и их модификацию. А то невозможно эксперементировать.
Это уже четвертый пост с одним и тем же содержимым. Не хорошо
Добрый вечер. Вопрос по индикатору.
Я задаю в индюке построение. вееров Ганна от минимума вверх и от максимума вниз.
Но, почему-то линии веера направляются не так, как мне надо, - а сов. случайным образом !
Например, вот так (здесь от максимума 1.4071 веер почему-то пошел вверх):
Не знаю, почему так.
Задаю вееры в ф-и СТРАТ вот так:
Пож. подскажите, почему так и где ошибка ?
Вот весь код индикатора;
Привет, у меня это всего второе сообщение, то есть на форуме новый, начал учить язык, естественно вопросов немеренно, а по книгам как то сложновато. Начал с учебника, уважаемого форумчанина Сергей Ковалёва, и некоторые статьи этого форума учил... После продолжительной теории, приступил практике, создал шаблон и набросок первого эксперта, разделил его по блокам, и вот одну функцию за другой разбираю (досканально), чтобы понять что как работает, поверьте если ты водолаз а не програмист, то это не просто всё в башке разложить, и осмыслить что к чему. Так вот к делу, может кто нибудь подсказать, что для Професионала для меня пока реальная проблема: сегодня просидел целый день так и смог решить задачу.
Я некоторые функции, запускаю пробно как скрипт, нет ли ошибок при компиляции и какие, чтобы проверить работает или нет в терминале. Взял сегодня Функцию предварительного подсчёта баров в окне:
Естественно, выходит сообщение *Недостаточно баров*, но при новом тике я понимаю вновь до бесконечности будет появляться это сообщение.
Теперь я добавляю переменную и дописываю оператор if, а также в будущем блоке обработок ошибок Bloc_Error, всталяю оператор switch получается это:
Вопрос такой что я тут неправильно наплёл в операторе switch, почему не вылазиет сообщение *Эксперт не работает*, и чтобы действительно советник прекращал работу?????"разделяй и властвуй"... - не смешивайте не изученные моменты... место ошибки должно выявляться легче...
https://docs.mql4.com/ru/basis/operators/switch - все видно сразу. пока конструкция не отложится в голове - пользуйте классический шаблон. внимательно сравните - сразу найдете ошибки.
учитесь пользоваться поиском.
после прочтения документации "по вопросу", найдите тексты с кодами и посмотрите КАК они применяются...