Спс, я уже разобрался, сов не хочет видеть индюк, я его переделал под другой индюк, и о чудо, он заработал, работающий сов выложил на форум
/torgovye-sistemy/2/h1h4-forex-ultra-filter/1127, там кто-то сову просил я туда и бросил!
Обучение языку MQL4 под MetaTrader 4📌
От xbms, 13 апреля, 2013 в Уголок Программиста
Спасибо, за ответ, проверку ордеров я воротил и так и этак, да все не мог исправить до конца, может внимания не хватает, писал его в основном по ночам, когда с работы приходил, и исправлял также по ночам, вчера весь день над ним просидел, а потом всплыло отчаяние, решил попросить уже помощи, сравню 2 варианта, на своих ошибках попробую научиться!!!
Теперь, когда основа заработала буду его дальше крутить и исследовать!
Добавлено: 28-07-2015 12:53:41
Еще 1 вопрос, в 2 строках OrderModify(ticket, OrderOpenPrice(), SL, TP, 0); и
OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); выдает вот такую фразу: return value of 'OrderModify' should be checked ultra-signal.mq4 75 9 при этом все строки были написаны по видео и сверял несколько раз, но пишет 4 варнинга и при тесте не может оставить 1 ордер, постоянно висит buy и sell одновременно
OrderModify() и OrderSelect() должны возвращать булевое значение.Поставьте перед ними bool rez = и всё.
Можно ли получить время котировки с сервера типа MarketInfo(Symbol(),MODE_TIME) точнее одной секунды?
Все мне не дает покоя индикатор ультра сигнал(хз чего), просмотрев 1,2,3 видео я так и не понял, как, мне в строку
double h1 = iCustom(NULL, 0, "Ultra-Signal", 0, 1); в источник данных подставить сравнение по видео если а2>0 но не равно значению, может мне кто на пальцах объяснить, а то лежит уже 3 совы грузом, если 2 буфера совы у меня работают, а 3 и больше уже не хотят!
Смысл такой, ультра сигнал, индюк с закрытым исходником, есть 6 буферов, по видео следует, что после исследования индикатора и нахождения параметров которые изменяются в строку
big13 из Вашего поста ничего не понял, кроме того, что Вы пытаетесь индюк без параметров вызвать. Видео не смотрел, поэтому, если хотите помощи - конкретно пишите.
double h1 = iCustom(NULL, 0, "Ultra-Signal", 0, 1); надо подставить значение буфера, который изменяется, и в строку
double l1 = iCustom(NULL, 0, "Ultra-Signal", 1, 1) обратное значение, прикрепляю сов, который пытаюсь заставить работать, сразу уточняю, что если в индикаторе всего 2 буфера, совы работают, если больше, на ультра сигнале их 6,сов на каждом тике открывает и закрывает сделку!
П.с. при исследовании выяснил, что параметры меняются в 0 и 1 буферах
Изменено 30 июля, 2015 пользователем big13
Помогите пожалуйста сделать из этого индикатора вот такой индикатор:
(Чистый спред) = Бычий спред (зеленая гистограмма) - Медвежий спред (красная гистограмма)
Всем доброго времени суток!
Касательно моей последней просьбы о помощи, она не актуальна, я во всем разобрался сову запустил!
Уважаемый OII!
В новых версиях МТ4 у меня не работает SimpleForexTester.( Нашел его на этом сайте)
Подскажите пожалуйста как можно его заставить работать.
Или пора с ним распрощаться?
Сергей, добрый день. Подскажите, каким образом из экселевской таблицы нанести на график вертикальные линии. Просто анализирую графики другими методами программирования, в результате получаю экселевскую таблицу, в которой по датам отмечены профитные и убыточные сделки. Пока не знаю MQL, делаю так и вручную наношу эти линии. Здорово было бы скриптом загружать их на график. В курсе молодого бойца не нашла этого. Экселевскую таблицу могу получить в любом виде.
Фууух, наконец-то разобрался. Писал советник как на уроке по трейлинг стопу. Сначала посмотрел видео, потом написал по памяти советник с Trailingstop и Treilingstep. В тестере получил следующее- Советник тралит бай, но вообще не тралит селл. Открывает одну сделку(селл) и держит ее до конца теста. Сто раз сверился с видео что я делаю не так. Форум дочитал до 70 страницы.Дальше читать терпения не хватило. В общем в коде который на видео ошибка в строке if (OrderStopLoss()>Ask + (TrailingStep+TrailingStop)*Point). Блок функции установка СЛ на селл. Получается что если у нас первый ордер установлен с значением Стоплосс=0, а он у нас так и установлен, то это условие никогда не выполнится, так как 0 не может быть больше цены(н-р 1.3540)+ (трейлингстеп(50)+трелингстоп(30))*0,0001. Поменял знак. Сейчас выглядит так: if (OrderStopLoss()
Изменено 2 августа, 2015 пользователем igid
В проверку хэндла файла после открытия вставьте элзе принт("Файл не найден.")
Доброе утро. Написала свой первый скрипт, а он ничего не выводит. Не знаю, почему, буду благодарна любой подсказке. Запускаю из окна навигатора.
Если файл корректно открыт вставте принт в цикл чтения и построчно выводите в журнал.
Так и не разобрался. Написал 4 советника с разными тралами. У всех в тесте ошибка 130. Не знаю почему она возникает и как сделать так, чтобы ее не было. Еще трал по фракталам вроде работает, но когда тестируешь с визуализацией - тест дальше первой сделки не идет( отрывается первый ордер и все, дальше никаких признаков жизни). А трала по pSAR заметил такую вещь. Советник открыл БАЙ, но цена тут же пошла вниз. А значения то индикатора получается сверху свечи, то есть стоплосс не может быть больше текущей цены. И у нас открыта позиция на долгое время без стоплосса. На скрине отметил это красной стрелкой. Подскажите как быть в данной ситуации?
FractalTrailing.mq4
ExtremumTrailing.mq4
MATrailing.mq4
ParabolikTrailing.mq4
Так и не разобрался. Написал 4 советника с разными тралами. У всех в тесте ошибка 130. Не знаю почему она возникает и как сделать так, чтобы ее не было. Еще трал по фракталам вроде работает, но когда тестируешь с визуализацией - тест дальше первой сделки не идет( отрывается первый ордер и все, дальше никаких признаков жизни). А трала по pSAR заметил такую вещь. Советник открыл БАЙ, но цена тут же пошла вниз. А значения то индикатора получается сверху свечи, то есть стоплосс не может быть больше текущей цены. И у нас открыта позиция на долгое время без стоплосса. На скрине отметил это красной стрелкой. Подскажите как быть в данной ситуации?
Вот поправленный трал с фракталами:
void Trailing()
{
SL = 0;
fractal_down = NormalizeDouble(iFractals(NULL,0,MODE_LOWER,5),Digits);
fractal_up = NormalizeDouble(iFractals(NULL,0,MODE_UPPER,5),Digits);
for (int i =0;i {
if (OrderSelect(i,SELECT_BY_POS))
{
if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
if (OrderType()==OP_BUY)
{
if(fractal_down>0)
{
SL=NormalizeDouble(fractal_down,Digits);
if (OrderStopLoss()!=SL)
{
if(SL bool rez = OrderModify(OrderTicket(),OrderOpenPrice(),SL,0,0);
}
}
}
if (OrderType()==OP_SELL)
{
if(fractal_up>0)
{
SL=NormalizeDouble(fractal_up,Digits);
if (OrderStopLoss()!=SL)
{
if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
bool rez = OrderModify(OrderTicket(),OrderOpenPrice(),SL,0,0);
}
}
}
}
}
}
Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
Изменено 4 августа, 2015 пользователем Konstebl
Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
Спасибо. От ошибки избавился, Но все равно советники не тестируются при визуализации. У Вас также?
Здравствуйте.
Давно искал нечто подобное, но нашел только на мт5. Может Вам встречался для мт4 или напишем, перепишем?
ссылка: https://www.mql5.com/ru/market/product/850#
Ошибка 130 - это неправильные стопы.Возможно просто стоп-лосс который Вы хотите разместить находится слишком близко
от текущей цены.
Сделайте проверку if(SL > Ask + MarketInfo(Symbol(),MODE_STOPLEVEL)*Point)
Спасибо. От ошибки избавился, Но все равно советники не тестируются при визуализации. У Вас также?
double Lowestprice()
{
double Lprice;
double Lowprice=100000;
for (int i=0;i { // 1-я скобка
Lprice=iLow(Symbol(),0,i);
if(Lprice Lowprice=Lprice;
} // 2-я скобка
return(Lowprice);
}
//+------------------------------------------------------------------+
double Highestprice()
{
double Hprice;
double Highprice=0;
for (int i=0;i { // 1-я скобка
Hprice=iHigh(Symbol(),0,i);
if(Hprice>Highprice)
Highprice=Hprice;
} // 2-я скобка
return(Highprice);
}
Вы в этих функциях не поставили скобки(выделены).И советник стал тестироваться.
Только какие это экстремумы это просто хай или лоу предыдущей свечи!
Изменено 5 августа, 2015 пользователем Konstebl
Уважаемые гуру,
только начал изучение темы, написал пару строк по третему уроку, но выскакивают четыри ошибки при компиляции:
return value of 'OrderModify' should be checked
return value of 'OrderModify' should be checked
return value of 'OrderSelect' should be checked
return value of 'OrderSelect' should be checked
Никак не могу разобраться в чём причина
Может кто помочь?
Уважаемые гуру,
только начал изучение темы, написал пару строк по третему уроку, но выскакивают четыри ошибки при компиляции:
return value of 'OrderModify' should be checked
return value of 'OrderModify' should be checked
return value of 'OrderSelect' should be checked
return value of 'OrderSelect' should be checked
Никак не могу разобраться в чём причина
Может кто помочь?
Поставьте перед этими функциями bool rez = и всё.
Буквально страницу назад об этом писали. Функции OrderSend() и OrderModify() возвращают булево значение true или false при успешной операции или неудачной. Предполагается, что вас интересует столь важное действие как открытие или модификация ордера и вы захотите это проверить.
В самом простом варианте пишите:
bool result = OrderModify() - и это предупреждение компиляции исчезнет.
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем