2147483647 - Это пустое значение, в буферах должна быть цена типа 1.123451. GM15 == 2147483647.0 && YellowH4 == 2147483647.0 продажа
YM15 == 2147483647.0 && RedH4 == 2147483647.0 покупка
Доработка советников: общая тема📌
От Garfik, 4 августа, 2011 в Уголок Программиста
Спасибо 0ll, но в советнике это значение устраивает.
Вроде 2 индюка работают на разных ТФ, показывают тренд и сова входит при отсутствии открытых ордеров, В чём вопрос тогда?
На Н4 и М15 Buy покупаем, ордер закрылся по трейлингу, но тренд на М15 и Н4 продолжается из-за этого советник откроет опять ордер, а мне нужна функция, чтобы советник считал тренд отработанным. Далее тренд М15 сменился Sell, Н4 продолжается Buy, на Н4 и М15 Buy покупаем.
Теперь понятно. Пробуй так:мне нужна функция, чтобы советник считал тренд отработанным
int lastord = -1;
void OnTick()
{....
if (CountBuy() + CountSell() == 0 && GM15 == 2147483647.0 && YellowH4 == 2147483647.0 && lastord != OP_SELL )
{ ... lastord = OP_SELL; }
if (CountBuy() + CountSell() == 0 && YM15 == 2147483647.0 && RedH4 == 2147483647.0 && lastord != OP_BUY )
{ ... lastord = OP_BUY; }
if ( GM15 == RedH4 || YM15 == YellowH4 ) lastord = -1; // сигнал изменился - сброс
Спасибо большое, но я только учусь. Подскажите пожалуйста, что тут ... нужно прописать?
{ ... lastord = OP_SELL; }
То, что в Вашем советнике написано, только добавить 1 строчку:Подскажите пожалуйста, что тут ... нужно прописать?
if (CountBuy() + CountSell() == 0 && GM15 == 2147483647.0 && YellowH4 == 2147483647.0 && lastord != OP_SELL )
{
TP = NormalizeDouble(Bid - TakeProfit*Point, Digits);
SL = NormalizeDouble(Bid + StopLoss*Point, Digits);
if(OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, SL, TP, "", Magic, 0, Red) Print ("Не удалось открыть ордер на продажу!");
else lastord = OP_SELL; // если ордер открылся запоминаем тип открытого ордера
}
Здравствуйте коллеги!
Есть возможность полечить очень старый но четкий сов.
Полностью разблокированный вариант вот только на новом билде тоже работает.
Но вот ошибка System-MACD v.1.1_edu GBPUSD,H4: OrderClose error 3
Может это из за нового билда?
Изменено 23 мая, 2019 пользователем Shavkatione
Скорее всего нет. Советник довольно сложный, явных ошибок в коде не заметил, почему ругается при закрытии на параметры - нужно исследовать, ловить ошибкуМожет это из за нового билда?
Есть возможность полечить очень старый но четкий сов.
Открываем коды ошибок. Видим ERR_INVALID_TRADE_PARAMETERS 3 Неправильные параметры, значит при закрытии советник дает не корректное значение какого то параметра, просматриваем их по очереди с помощью принта и узнает, что каждый тик он умножает значение проскальзывание на 10. Зачем, хз, но в итоге оно становится огромным и сов, естественно, ругается.
Есть возможность полечить очень старый но четкий сов.
Открываем коды ошибок. Видим ERR_INVALID_TRADE_PARAMETERS 3 Неправильные параметры, значит при закрытии советник дает не корректное значение какого то параметра, просматриваем их по очереди с помощью принта и узнает, что каждый тик он умножает значение проскальзывание на 10. Зачем, хз, но в итоге оно становится огромным и сов, естественно, ругается.
Скинь пожалуйста MQL datei,не хочет открываться. :(
Это с исправленным Slippag-ом, НО в коде ещё есть подобные ошибки типа: gi_192 *= gi_864; на что они влияют - хз, на реал не ставьте.Скинь пожалуйста MQL datei,не хочет открываться.
Я сонный прицепил ex4, вместо mql. Удалил все с компа и пошел спать >:d
Ребят, может ли кто посмотреть код, вспомнил про этот советник недавно, но в новых билдах он не работает, если в нем (в коде) поменять время сессий. И если не затруднит добавить чтоб при срабатывании одной отложки вторую можно было или удалить или оставить (чтоб в параметрах это выбиралось)
есть нужда перепилить это под новые билды, сам я каюсь туповат(( _https://yadi.sk/d/QlTAYbiZSFzBtw
есть нужда перепилить это под новые билды, сам я каюсь туповат(( _https://yadi.sk/d/QlTAYbiZSFzBtw
Здравствуйте. Там лежат ЕXEшники, а чтобы что то "перепилить" надо исходники, т.е. файлы с разрешением .mq4
Если нет исходников, то придётся объяснить Вашу нужду - покажите прибыльность советника и создайте тему в разделе "Совы в розыске". Там Вам помогут.есть нужда перепилить это под новые билды
хочу прогнать в тестере стратегию. она довольно простая основана на скользящей средней. со стопами и тейками. сам програмировать не умею. максимум могу скрипт написать для выставления сетки отложенных ордеров. Есть тут програмисты?
Добрый день. В комплект к МТ4 идёт советник по скользящей средней со СЛ и ТП. Можете его модифицировать для себя.
Здесь, конечно есть программисты - нужно подготовить ТЗ с картинками, где объяснить работу советника, тогда можно будет оценить стоимость работ. Если советник будет интересным, то могут и бесплатно сделать.
может и мне тут помогут....если приложу примерный тест, хотя он ни чего не показывает особо и он всего за 1,5 месяца, больше почему то не загружаются котировки
Может и помогли-бы, но я не смог понять что Вам нужно:может и мне тут помогут....если приложу примерный тест
"в новых билдах он не работает, если в нем (в коде) поменять время сессий" - что это значит? Ошибки появляются? пишите подробнее: сделал так, получил это...
в таком виде как он есть он работает, но если я захочу поменять время сессий (меняются они только в коде) залезу в код советника и поменяю в данных строках время сессии с 9 на 10например, то советник перестает работать . Если возможно то сделать чтоб не нужно было лазить в код, а время сессий можно было выставить и менять в настройках (для оптимизации)
IndicatorShortName("London Box");
WindowName = "London Box";
if (UK_DST)
{
sBoxEnd = "08:00";
BoxLength = 6;
sTimeLondonOpen = "09:00";
вот что выдает при компиляции, вроде понятно объяснил?
Изменено 9 июня, 2019 пользователем dimon555-777
вот что выдает при компиляции, вроде понятно объяснил?
Убрал (почти все) варнинги и ошибки. Честно говоря странно, что раньше работало..
Что касается выноса настроек во внешние переменные, то уточните- только sTimeLondonOpen или прямо все-все(их там 10 шт) ?
п.с. логику все таки проверьте...
178 строка BoxLength = 7
202 строка TradingBoxWidth = 3
как я понял при изменении этих параметров коробка азии и лондона перестраивается, вот это и нужно вынести, чтоб эти числа в настройках менялись и коробка изменялась.
И еще, если вы код смотрели стоплосс он по ADR в каком случае выставляет? я этот момент не понял. Ставил авто стоплос и тру и флеш....результат одинаков что берет из значения SL
И еще, если вы код смотрели стоплосс он по ADR в каком случае выставляет?
я не вникал в логику кода
Да?Цитата178 строка BoxLength = 7202 строка TradingBoxWidth = 3
Судя по названиям все это имеет отношение ко времени
switch(iSession)
{
case 1:
IndicatorShortName("Tokyo Box");
WindowName = "Tokyo Box";
sBoxEnd = "23:00";
BoxLength = 5;
break;
case 2:
IndicatorShortName("London Box");
WindowName = "London Box";
if (UK_DST)
{
sBoxEnd = "08:00";
BoxLength = 6;
sTimeLondonOpen = "09:00";
}
else
{
sBoxEnd = "09:00";
BoxLength = 7;
sTimeLondonOpen = "08:00";
}
break;
case 3:
IndicatorShortName("New York Box");
WindowName = "New York Box";
if (US_DST)
{
sBoxEnd = "12:00";
}
else
{
sBoxEnd = "13:00";
}
BoxLength = 2;
break;
default:
IsAllowed = false; // We don't respond to wild inputs
На примере одной строки:
в Вашем коде:
sBoxEnd = "08:00";
меняете на
// в блоке внешних переменных объявляете:
extern string TimeEnd = "08:00";
в OnInit()
.....
sBoxEnd = TimeEnd;
.....
И так 10 раз :) , в смысле по количеству переменных, которые выносите во вне.
Это если " в лоб". Если повникать, то наверно найдется оптимизированный вариант задания входных параметров.
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем