Блог им. maxim

Вопрос профессионалам MQL4. Почему не работает код?

#property copyright ""
#property link      ""
#property indicator_chart_window
int Orders;
//+------------------------------------------------------------------+
int start()
  {
   if (Orders>OrdersTotal()) AlertOrder();
   Orders=OrdersTotal();
   return(0);
  }
//+------------------------------------------------------------------+
void AlertOrder()
{
   string txt;
   double ocp;
   int i=OrdersHistoryTotal()-1;
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
   {                                    
      ocp=OrderClosePrice();
      if (ocp==OrderStopLoss()) txt=«SL»;
      if (ocp==OrderTakeProfit()) txt=«TP»;
      string lots=DoubleToStr(OrderLots(),2);
      SendNotification(«Ордер „+“(»+lots+")"+" закрыт по "+txt+" "+
      DoubleToStr(ocp,Digits)+" прибыль "+DoubleToStr(OrderProfit(),2));
     
}  }
//+------------------------------------------------------------------+
93
29 комментариев
А чо каментов то нет?
Тимофей Мартынов, интересно кто так минусы ставить любит?)
avatar
кусок кода на главной, что-то новое)
avatar
Orders всегда меньше или равно OrdersTotal()
avatar
Scalloped, да, спасибо, читканул документацию
avatar
А слипаж? Уровни OrderStopLoss и OrderTakeProfit не обязательно будут равны цене исполнения OrderClosePrice — СЛ и ТП это же стопы, а не лимитники, соответственно по маркету и исполняются. И, вообще, при такой схеме проверки могут быть коллизии. Я бы проверку делал через switch.
avatar
из документации:
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{… }
else {
Print(GetLastError() );
}

да и в первый if-блок не мешает GetLastError пихнуть
avatar
huyax, iRus,
да какая разница, что в обвязке наворочено, если сам алгоритм определения «а не стоп ли это сработал» — ущербный сам по себе?

Да и идея сама — тоже ущербна. Правильно говорят — стопы придумали для дураков. Держать их в явном виде и показывать говнокухне (пусть даже и брокеру) — верх неосмотрительности. Держать их надо в следящем коде и крыть по маркету.
avatar
ES1667, Тогда проскальзывания будут нефиговыми. Получишь не ту цену, которую хотел
avatar
huyax, извини, но чушь это.
Кухня тебя и так обует и собъет твой стоп без слипажа и объяснений, а на бирже — уж на каком проводе сидишь. И, что значит «нефиговым»? В цифрах? Давай уж поконкретней будем, а?
avatar
ES1667, все зависит от брокера!
avatar
ES1667, ну вот сегодня ночью все стопы по 6Е у всех везде сбили — и на глобексе, и в кухнях — везде — никакой разницы, что кухня, что биржа в этом плане нету)) а на некоторых площадках — например на фортс — всякие спайки идиотские еще и почаще, чем на ОТС бывают ))

единственное что кухни бабло могут тупо не вернуть — это да, есть такое дело))
avatar
karapuz, ну это некорректно. Организованный движняк сравнивать со стоп-хантингом. Да и по вчерашнему дню — даже если предположить, что кухня тебя не фронтраннит, то потери твои будут на длину провода. Мой провод всегда был короче, чем время исполнения во всех кухнях, в которых я не торговал.
avatar
ES1667, да это и был стоп=хантинг, только чуть более масштабный… что касается времени (а точней качества) исполнения то в приличных ECN оно даже получше чем биржевое бывает… ))
avatar
karapuz, ага. А главный хантер — это Бен. Ну, бог с ними :)
Я про ECN ничего сказать не могу — с кухонного форекса сразу на Запад перебрался.

А по уму, кивания на скорость (я и себя имею ввиду) меня бесят аж веко дергается :) Вот смотри, я начал торговать в кухне, где исполнение было 2-5 сек, спайки, спреды, полный беспредел, вобщем, весь джентльменский набор. Щаз я сам на коротком проводе (не выдам :). Виртуалка в Чикаге — 10 мс. И еще что-то киваем на исполнение :) У меня полавтомат считает с точностью до 100 мксек. HFT-шники работают с десятками мксек. А мы — слипаж больше, слипаж меьше… Грустно все это… Торговать учиться надо :) Это я и себе в т.ч.
avatar
ES1667, уважаемый, ты бы приумирил свои эмоции, мне просто надо настроить скрипт, который уведомляет меня о том, что сделка закрылась, что ты психуешь то сразу?
avatar
Макс, стоп! Где ты увидел мои «эмоции», где «психуешь»? Пруф фстудию.

А приумерить — ты советуй… ну, своей поварешке ровнее щи наливать.

«скрипт, который уведомляет меня о том, что сделка закрылась» — причем тут тогда ТП и ПЛ? Ты выложил один код, а имеешь ввиду и рассуждаешь совсем о другом…
avatar
ES1667, ну ты как-то нервно пишешь, мне кажется!)

Так сделка закрывается либо по тейку, либо по стопу, и я хочу это сразу увидеть, скрипт нашел, но он не ничего не делает.

По поводу поварешки — не понял, кого ты имеешь в виду.

По поводу валютного рынка, у нас в банке торгуют трейдеры с опытом нескромным, соответственно, суммы тоже достаточно большие, счет был открыт через такого же брокера, естественно, не очень популярного среди физиков, но всегда все было замечательно и никаких стопосъемов не было, я сам лично сравнивал с данными из Блумберга. Именно поэтому, я утверждаю, что надо просто правильно выбрать брокера и не париться! Естсественно, если имеется большой депозит, то гораздо приятней действительными активами торговать и от этого не стоит отказываться!)
avatar
Макс, да не парься ты. Показалось — так убедись в себе и выкати по полной. Я извинюсь, если что действительно не так.

Поварешка — черпак. Все мимо миски норвовит хоть каплю, но пролить :)

Я с торговал под двумя или тремя банками. Поверь — хлыщи еще те. В МТ все предусмотрено, чтобы обуть клиента.

Политика держать стопы в ДЦ — порочна сама по себе, независимо от кода. Управляя ими самостоятельно ты можешь сам их и мониторить без этих костылей.

А если ты опять меня не обманул и действительно речь ведешь ТОЛЬКО о ТП и СЛ, то вообще не связывайся с этим скриптом — смотри на знак OrderProfit и будет тебе щазтье :)
avatar
О, нифига, я на плюсики не рассчитывал! Кароч, я спешил, не дописал!

Этот скрипт отсылает уведомлении при закрытии сделки, компилируется ок, но почему-то не пашет!
avatar
Scalloped, так нея это писал, поэтому и спрашиваю!
avatar
#property copyright ""
#property link ""
#property indicator_chart_window
int Orders=1;
//+------------------------------------------------------------------+
int start()
{
if (Orders>OrdersTotal()) AlertOrder();
Orders=OrdersTotal();
return(0);
}
//+------------------------------------------------------------------+
void AlertOrder()
{
string txt;
double ocp;
int i=OrdersHistoryTotal()-1;
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
ocp=OrderClosePrice();
if (ocp==OrderStopLoss()) txt=«SL»;
if (ocp==OrderTakeProfit()) txt=«TP»;
string lots=DoubleToStr(OrderLots(),2);
string str=«Ордер » + DoubleToStr(OrderTicket(),0)+ " lots " + DoubleToStr(OrderLots(),2) + " закрыт по " + txt + " " +
DoubleToStr(ocp,Digits) + " прибыль " + DoubleToStr(OrderProfit(),2);
Comment(str);

}
}
//+------------------------------------------------------------------+

здесь для наглядности выводит в коммент можно отослать SendNotification
avatar
ELMARE, благодарствую!)
avatar
Чо за гад минусит от души всех подряд? Всех правлю, как могу.
avatar

Читайте на SMART-LAB:
Рентабельность на рынке МФО и в Займере
Банк России в своем ежеквартальном обзоре  ключевых показателей МФО указывает на важную тенденцию: на рынке растет разрыв в рентабельности...
Фото
🔝Топ-10 российских акций
Рассказываем, как изменилась наша подборка самых перспективных ценных бумаг. Новые позиции: 🔹 Х5 Ожидаем публикации сильных...
Фото
Высокие ставки прошли пик давления, но кредитный отбор стал жестче
По оценке аналитиков Газпромбанка, 2025 год стал периодом ухудшения кредитного профиля некоторых российских корпоративных заемщиков, хотя...

теги блога Марина

....все тэги



UPDONW
Новый дизайн