Обучение языку MQL4 под MetaTrader 4📌

От xbms, 13 апреля, 2013 в Уголок Программиста

#1951

Спасибо еще раз chistaia-rodina! Теперь все работает четко :d Плюсую

#1952

Уважаемый xbms! Планируются ли уроки по созданию и работе с DLL? На мой взгляд, очень важная тема.

Вопрос к форумчанам: Где можно найти уроки по данной теме?

#1953


Уважаемый xbms! Планируются ли уроки по созданию и работе с DLL? На мой взгляд, очень важная тема.

Вопрос к форумчанам: Где можно найти уроки по данной теме?



Смотри здесь: http://tradelikeapro.ru/category/uroki-po-mql/page/2/
#1954


Смотри здесь:


Я бы не стал задавать вопрос, если бы там было то что нужно. Вы, наверное, неправильно поняли мой вопрос.

Изменено 25 февраля, 2015 пользователем DarkWanderer

#1955



Смотри здесь:


Я бы не стал задавать вопрос, если бы там было то что нужно. Вы неправильно поняли мой вопрос.


UPS. таки да, ошибся...
#1956

пробовал реализовать в советнике тралл, но при запуске он не подхватывает позицию. Хотя по условиям все ок.
Писал по уроку. Может где ошибку допустил или это связано с тем, что теперь у нас тело советника обрабатывается в 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);
}

#1957
SpyRF пробуй так
В трале: if (OrderStopLoss()
в пересчёте: for(int i = OrdersTotal() - 1; i>0; i--) вместо > - >=
#1958


SpyRF пробуй так
В трале: if (OrderStopLoss()
в пересчёте: for(int i = OrdersTotal() - 1; i>0; i--) вместо > - >=


Попробовал, что-то не помогло :(
#1959

В журнал пишет чего-нибудь? если нет, то исполнение не доходит до модификации. надо принты расставлять... и искать баг.

#1960


В журнал пишет чего-нибудь? если нет, то исполнение не доходит до модификации. надо принты расставлять... и искать баг.


А как прописать в теле советника вызывается ли функция вообще?
#1961
SpyRF, да просто пишешь:

Print (" ");

по логической цепочке в ключевых местах, в кавычках любое понятное тебе сообщение, затем в журнале будет видно, куда код доходит, а куда нет.
#1962

Народ, как создавать и работать с dll? Где можно уроки найти?

#1963

Если память не подводит то пример библиотеки есть в поставке терминала

#1964

Точно есть: Папка терминала\MQL4\Scripts\Examples\DLL

#1965

Нашел. Спасибо! =) Буду разбираться. MQL знаю на хорошем уровне, теперь пора постигать cpp.

#1966

DarkWanderer, если вы не владеете на нужном уровне си то можно всегда по аналогии, соблюдая соглашения о вызовах, переделать библиотеку под другую среду разработки, Delphi к примеру.

#1967


DarkWanderer, если вы не владеете на нужном уровне си то можно всегда по аналогии, соблюдая соглашения о вызовах, переделать библиотеку под другую среду разработки, Delphi к примеру.

К сожалению, я владею только mql. Но всё равно спасибо за информацию. =)
#1968

Подскажите как в советнике лучше всего обрабатывать чужие, закрытые индикаторы ?
То есть есть чужой индикатор, который на графике рисует всякие значки, с вписанным в них всякими
параметрами. Хочется совой на истории проверить работу по этому индикатору, появился значок открытия - открываемся по этой цене + стоп в цену значка стопа и тд и тп.

#1969
AndreyGold значки обычно рисуют через внешние буферы, причём разные значки и разных цветов в разных буферах, но бывает рисуют через графические объекты. Поэтому в слепую не подскажешь...
Если через буферы, то в свойствах индюка - Цвета будет нумерация буферов и их цвета. По ним можно прикинуть к какому буферу подключаться. если через графические объекты, то выводите список объектов на экран и ищите те, которые рисует индюк и через их название получаете доступ к свойствам, в том числе цене.
#1970
AndreyGold, как на счёт этого http://tradelikeapro.ru/indikatorami-bez-ishodnikov/.
#1971


AndreyGold, как на счёт этого http://tradelikeapro.ru/indikatorami-bez-ishodnikov/.


Отлично, спасибо !!!
#1972

Может кому-то поможет или нет: в общем почему у меня не работал трал и функция?! А все потому что я при установке ордеров не указывал магик, а магик как основа выбора нужного ордера в функциях была.

#1973

Тупой вопрос - не могу врубиться как ставить БУ в случае продажи при плавающем спреде - получается же 0 там не будет, если только случайно спред не совпал.

#1974
AndreyGold да, тяжело понять... Если Вам необходимо закрыть ордер с результатом ровно 0,00$, то действительно - не получится. в принципе как и с результатом например = 1,23$.
Наверно не в этом дело? Если у Вас один ордер, то уровень БУ = цена покупки +- спред, но Вам не запрещается добавить к спреду ещё 2 пп на скольжение стопа.
#1975

И получается, что этот момент надо еще держать в голове когда смотришь на % прибыльных сделок и соотношение Прибыли к Риску по факту (выход, что средний размер сделки в +, будет кривой). ~x(

Изменено 28 февраля, 2015 пользователем AndreyGold

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025