Спасибо еще раз chistaia-rodina! Теперь все работает четко :d Плюсую
Обучение языку MQL4 под MetaTrader 4📌
От xbms, 13 апреля, 2013 в Уголок Программиста
Уважаемый xbms! Планируются ли уроки по созданию и работе с DLL? На мой взгляд, очень важная тема.
Вопрос к форумчанам: Где можно найти уроки по данной теме?
Уважаемый xbms! Планируются ли уроки по созданию и работе с DLL? На мой взгляд, очень важная тема.
Вопрос к форумчанам: Где можно найти уроки по данной теме?
Смотри здесь: http://tradelikeapro.ru/category/uroki-po-mql/page/2/
Смотри здесь:
Я бы не стал задавать вопрос, если бы там было то что нужно. Вы, наверное, неправильно поняли мой вопрос.
Изменено 25 февраля, 2015 пользователем DarkWanderer
Смотри здесь:
Я бы не стал задавать вопрос, если бы там было то что нужно. Вы неправильно поняли мой вопрос.
UPS. таки да, ошибся...
пробовал реализовать в советнике тралл, но при запуске он не подхватывает позицию. Хотя по условиям все ок.
Писал по уроку. Может где ошибку допустил или это связано с тем, что теперь у нас тело советника обрабатывается в void OnTick()? Если из-за void OnTick(), то как поправить? тоже самое относится и к функции подсчета ордеров
Вот код:
void Trailing()
{
for (int i=0; i {
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber () == Magic)
{
if(OrderType()==OP_BUY)
{
if(Bid - OrderOpenPrice() > TrailingStop*Point)
{
if (OrderStopLoss() {
TrailingSL = NormalizeDouble(Bid - TrailingStop*Point, Digits);
if (OrderStopLoss() != TrailingSL)
{
bool res= OrderModify(OrderTicket(), OrderOpenPrice(), TrailingSL, 0, 0);
}
}
}
}
if(OrderType()==OP_SELL)
{
if(OrderOpenPrice() - Ask > TrailingStop*Point)
{
if (OrderStopLoss() TrailingSL = NormalizeDouble(Ask + TrailingStop*Point, Digits);
if (OrderStopLoss() != TrailingSL)
{
bool res = OrderModify(OrderTicket(), OrderOpenPrice(), TrailingSL, 0, 0);
}
}
}
}
}
}
}
___________________________________________________________________
например:
int CountBuy()
{
int count = 0;
for(int i = OrdersTotal() - 1; i>0; i--)
{
if(OrderSelect (i,SELECT_BY_POS, MODE_TRADES)==true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType () == OP_BUY)
count++;
}
}
return(count);
}
В трале: if (OrderStopLoss()
в пересчёте: for(int i = OrdersTotal() - 1; i>0; i--) вместо > - >=
SpyRF пробуй так
В трале: if (OrderStopLoss()
в пересчёте: for(int i = OrdersTotal() - 1; i>0; i--) вместо > - >=
Попробовал, что-то не помогло :(
В журнал пишет чего-нибудь? если нет, то исполнение не доходит до модификации. надо принты расставлять... и искать баг.
В журнал пишет чего-нибудь? если нет, то исполнение не доходит до модификации. надо принты расставлять... и искать баг.
А как прописать в теле советника вызывается ли функция вообще?
Print (" ");
по логической цепочке в ключевых местах, в кавычках любое понятное тебе сообщение, затем в журнале будет видно, куда код доходит, а куда нет.
Народ, как создавать и работать с dll? Где можно уроки найти?
Если память не подводит то пример библиотеки есть в поставке терминала
Точно есть: Папка терминала\MQL4\Scripts\Examples\DLL
Нашел. Спасибо! =) Буду разбираться. MQL знаю на хорошем уровне, теперь пора постигать cpp.
DarkWanderer, если вы не владеете на нужном уровне си то можно всегда по аналогии, соблюдая соглашения о вызовах, переделать библиотеку под другую среду разработки, Delphi к примеру.
К сожалению, я владею только mql. Но всё равно спасибо за информацию. =)
DarkWanderer, если вы не владеете на нужном уровне си то можно всегда по аналогии, соблюдая соглашения о вызовах, переделать библиотеку под другую среду разработки, Delphi к примеру.
Подскажите как в советнике лучше всего обрабатывать чужие, закрытые индикаторы ?
То есть есть чужой индикатор, который на графике рисует всякие значки, с вписанным в них всякими
параметрами. Хочется совой на истории проверить работу по этому индикатору, появился значок открытия - открываемся по этой цене + стоп в цену значка стопа и тд и тп.
Если через буферы, то в свойствах индюка - Цвета будет нумерация буферов и их цвета. По ним можно прикинуть к какому буферу подключаться. если через графические объекты, то выводите список объектов на экран и ищите те, которые рисует индюк и через их название получаете доступ к свойствам, в том числе цене.
AndreyGold, как на счёт этого http://tradelikeapro.ru/indikatorami-bez-ishodnikov/.
Отлично, спасибо !!!
Может кому-то поможет или нет: в общем почему у меня не работал трал и функция?! А все потому что я при установке ордеров не указывал магик, а магик как основа выбора нужного ордера в функциях была.
Тупой вопрос - не могу врубиться как ставить БУ в случае продажи при плавающем спреде - получается же 0 там не будет, если только случайно спред не совпал.
Наверно не в этом дело? Если у Вас один ордер, то уровень БУ = цена покупки +- спред, но Вам не запрещается добавить к спреду ещё 2 пп на скольжение стопа.
И получается, что этот момент надо еще держать в голове когда смотришь на % прибыльных сделок и соотношение Прибыли к Риску по факту (выход, что средний размер сделки в +, будет кривой). ~x(
Изменено 28 февраля, 2015 пользователем AndreyGold
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем