Здравствуйте. Помогите найти ошибку.
В журнале при тестировании находит ошибку 130 - неправильные стопы.
Обучение языку MQL4 под MetaTrader 4📌
От xbms, 13 апреля, 2013 в Уголок Программиста
Курс MQL на английском языке - может поможет :)]
Здравствуйте. Помогите найти ошибку.
В журнале при тестировании находит ошибку 130 - неправильные стопы.
Вы после установки стоповых ордеров не выбираете ордер OrderSelect(), а пытаетесь модифицировать СЛ и ТР.
Я не знаю какой у вас билд терминала - видимо 600+, я сделал для 509.
Кстати, сова тормозит - ужас... Может Вам вместо ТМА использовать КС? - он чуть похуже, но быстрее раз в 10!
Кто нить знает есть ли в MQL4 что то типа указателей как в си - @WindowProc ?
Кто нить знает есть ли в MQL4 что то типа указателей как в си - @WindowProc ?
#import "user32.dll"
#import "kernel32.dll"
и т.п.
и справка
Изменено 27 апреля, 2014 пользователем fv2500
та нет я имею ввиду как сослаться на свою функцию точнее нужен указатель оконной функции, функция то есть а как указатель на неё получить?
ну где она прописана, оттуда и вытаскивай
Извращения в виде работы с указателями надо уносить в библиотеку. Не совсем понятно о какой оконной функции идет речь. Окно чего, терминала, чарта, ? Или какое-то свое? Или речь о CallWindowProc, DefWindowProc, EnumWindows, EnumChildWindows?
В любом случае надо правильно подбирать инструмент, никто к примеру не обрабатывает текст на поиск url самопальными библиотеками на си шарпе, когда есть перл. Так и тут, оконный функционал надо кодить на си, делфи, хоть на ассемблере. И эти функции вызывать из мкл.
Лучше опишите чего желаете добиться, может и не потребуется некий указатель.
В структуре WNDCLASSEX есть параметр lpfnWndProc - Указатель на оконную процедуру(функцию) CallWindowProc. В MQL4 есть функция а как на нее указатель получить??
То есть вы желаете вызвать CallWindowProc передав в качестве параметра оконной функции wndproc адрес какой-то функции из кода mql? @-)
Если да, то поздравляю, вы люто ошиблись в архитектуре своего приложения. Получить адрес функции mql нельзя. Так было еще до 600+ билдов. Теперь в 600+ билдах есть возможность получить адрес любой функции во время работы в отладчике но официальных методов получить данные адреса не существует. Еще раз задам вопрос - какой функционал вы желаете получить?
Можно ли вызвать функцию RegisterClassEx из MQL4 (без использования dll), чтоб затем вызвать createwindowex?
Изменено 28 апреля, 2014 пользователем emelenium@gmail.com
Можно ли вызвать функцию RegisterClassEx из MQL4 (без использования dll), чтоб затем вызвать createwindowex?
нет такого (или я не знаю)
мы и дальше будем гадать, что тебе нужно?
ты хочешь создавать левое окно из mql и из этого окна запускать функцию из mql? извращенец!
Вы после установки стоповых ордеров не выбираете ордер OrderSelect(), а пытаетесь модифицировать СЛ и ТР.
Я не знаю какой у вас билд терминала - видимо 600+, я сделал для 509.
Кстати, сова тормозит - ужас... Может Вам вместо ТМА использовать КС? - он чуть похуже, но быстрее раз в 10!
Большое спасибо за то, что ткнули носом в ошибку. Глаз замылился, поэтому не увидел её.
Вы правы, билд 609.
На моей машине всё вроде нормально работало. Может, оттого что железо мощное. Или мне надо осваивать профилировщик.
А что такое КС? Подскажите, как отловить редко проявляющуюся ошибку 130?
Кнопки sell и buy в отдельном окне, как можно сделать?
Ну или хотя бы на графике.
КС - индюк, похожий на ТМА, только без рекурсии (перерисовки). Внизу прикрепил.А что такое КС? Подскажите, как отловить редко проявляющуюся ошибку 130?
Когда ошибка 130 редко возникает, то нужно ставить Print(параметры цены и стопов) в блоке обработки возможных ошибок после установки/модификации ордеров.
Кнопки sell и buy в отдельном окне, как можно сделать?
Ну или хотя бы на графике.
ObjectCreate(chart_ID,name,OBJ_BUTTON,wind,0,0);
В справку давно заглядывал?
Люди добрые помогите с решением ДЗ по уроку №6, а именно с 3 пунктом: "при написании первого скрипта в данном видео-уроке была заведомо допущена ошибка, которая может привести к его некорректной работе. Найдите её и предложите своё решение."
Уже сутки сижу голову ломаю, не могу понять где ошибка. Спасибо.
Если что, вот код скрипта где допущена ошибка:
#property strict
#property show_inputs
extern int Profit = 5;
extern int Slippage = 5;
double point;
int digits, ask, bid, open;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
int start()
{
digits = MarketInfo (OrderSymbol (), MODE_DIGITS);
if (digits == 3 || digits ==5)
{
Profit *= 10;
Slippage *= 10;
}
for (int i=OrdersTotal () -1; i>=0; i--)
{
if (!OrderSelect (i,SELECT_BY_POS, MODE_TRADES)) break;
if (OrderType() == OP_BUY)
{
point = MarketInfo (OrderSymbol (), MODE_POINT);
bid = MathRound (MarketInfo (OrderSymbol (), MODE_BID)/point);
open = MathRound (OrderOpenPrice ()/point);
if (bid - open if (OrderClose (OrderTicket (), OrderLots (), bid*point, Slippage)){}
}
if (OrderType() == OP_SELL)
{
point = MarketInfo (OrderSymbol (), MODE_POINT);
ask = MathRound (MarketInfo (OrderSymbol (), MODE_ASK)/point);
open = MathRound (OrderOpenPrice ()/point);
if (open - ask if (OrderClose (OrderTicket (), OrderLots (), ask*point, Slippage)){}
}
}
return (0);
}
//+------------------------------------------------------------------+
Изменено 29 апреля, 2014 пользователем denkudo
Это кнопки на графике получатся. (В принципе можно так)
Но в идеале хотелось бы отдельную панельку от терминала!
Это кнопки на графике получатся. (В принципе можно так)
Но в идеале хотелось бы отдельную панельку от терминала!
В MT4 в индикаторах есть папка Example, в ней пример панели с кнопками, чекбоксами и прочей начинкой. Можешь оттуда черпать вдохновение. Лично я строю свой муравейник, можешь глянуть тут: /hardwaresoftware-dlya-treydera/27/vspomogatelnyy-sovetnik-tradesystem-2-tester/6576
Добавлено: 29-04-2014 13:31:36
И еще раз, люди! Чаще жмите F1. Там много всего интересного!
Изменено 29 апреля, 2014 пользователем fv2500
Если создать кнопку на графике, то как она управление передает, т.е. есть ли какой нибудь обработчик событий кнопки или сдесь самому надо опрашивать и смотреть состояние кнопки отжата она или нет?
Люди, помогите пож новичку с ММ!
Хочу рассчитывать в сове размер лота, как это делается в предложенном Павлом калькуляторе http ://tradelikeapro.ru/mani-menedzhment-forex/
Как узнать минимальный размер лота на данном счете (0,1 или 0,01)?
Как узнать цену пункта на данной валютной паре в том виде, в котором она дана в этом калькуляторе (то есть, EURUSD = 1,00, EURGBP = 1,59 и т. д.)
Пытаюсь гуглить "цену пункта", а выдает совсем не то, что мне надо :(
Всех с 1 Мая! Снова прошу Вашей помощи в поиске ошибки.
При трейлинг-стопе по parabolic SAR проявляется ошибка 1 в OrderModify. Трейлинг-стоп по фракталам работает нормально.
Код прилагаю. Заранее спасибо.
Возможно САР возвращает значения с большей точностью - надо нормализовать...При трейлинг-стопе по parabolic SAR проявляется ошибка 1 в OrderModify.
вместо:
if(OrderStopLoss() != SL)
OrderModify(OrderTicket(), OrderOpenPrice(), SL, OrderTakeProfit(), 0);пробуй так: SL = NormalizeDouble(SL, Digits);
if(MathAbs(OrderStopLoss()-SL) > Point) //Я-бы даже сделал Point*5 (на 5-знаке) - что-б не раздражать брокера...
OrderModify(OrderTicket(), OrderOpenPrice(), SL, OrderTakeProfit(), 0);
Если создать кнопку на графике, то как она управление передает, т.е. есть ли какой нибудь обработчик событий кнопки или сдесь самому надо опрашивать и смотреть состояние кнопки отжата она или нет?
Есть функция терминала OnEvent. Только она реагирует на событияна графике. Всё остальное твои заботы. Состояние кнопки нажата/отжата можно проверить
Добавлено: 01-05-2014 12:38:23
Люди, помогите пож новичку с ММ!
Хочу рассчитывать в сове размер лота, как это делается в предложенном Павлом калькуляторе http ://tradelikeapro.ru/mani-menedzhment-forex/
Как узнать минимальный размер лота на данном счете (0,1 или 0,01)?
Как узнать цену пункта на данной валютной паре в том виде, в котором она дана в этом калькуляторе (то есть, EURUSD = 1,00, EURGBP = 1,59 и т. д.)
Пытаюсь гуглить "цену пункта", а выдает совсем не то, что мне надо :(
MarketInfo
Возможно САР возвращает значения с большей точностью - надо нормализовать...
Увы, теперь появились ошибки 130 в OrderModify.
Буду пытаться выловить. Всё равно спасибо!
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем