Сегодня писал такую штуку: надо было выставить отложку через определенное время после срабатывания стоп лосса. Вот что получилось:
Получилось довольно забавно!)) Делал для бай и селл отдельно поэтому немного шире получилось...
Код "тяжёлый" - много лишних вызовов, которые можно сделать в одном цикле с использованием структур.
TimeToStruct(TimeClose(),Str2); TimeToStruct(StrToTime(TimeAfterS),Str4); if(TypeOrder()==OP_SELL) { if(CountOrders(OP_SELLSTOP)==0)
В общем, сейчас так писать коды не есть хорошо, язык развит для более рационального использования ресурсов машины и быстродействия отработки программы. ИМХО
до редактирования "очепятки" в заголовке, тема выглядела лучше.
Делимся интересными ходами! Не жадничаем!))
перспективнее :-)
Может кому пригодится... Сегодня писал такую штуку: надо было выставить отложку через определенное время после срабатывания стоп лосса. Вот что получилось:
Получилось довольно забавно!)) Делал для бай и селл отдельно поэтому немного шире получилось...
И да, был у меня постоянный заказчик, писали обычные советники и индикаторы, потом он дал задание на сложный советник, так Я вот там в таком-же стиле и написал программу, работала по алгоритму, но раздутая получилась, код не красивый, плюс ко всему тяжёлый - тестер захлёбывался. Это было наверное в 2016 году. Когда отдавал исходник, то было немного стыдно за такой код.
То была последняя работа с тем заказчиком, видимо показал кому-то из программистов мой код и решил больше не обращаться ко мне.
После сдачи той работы понял, что писать программы в стиле 2000-х годов не есть хорошо.
********************************
Используйте структуры и классы с одним вызовом цикла, вместо вызова десятка функций с циклом for(...) для получения информации.
Если эксперт выполняет действия и нужно вывести на график инфу по ним, то можно воспользоваться моим Списком событий
//+------------------------------------------------------------------+ //| Copyright 2019, Vladimir V. Tkach | //+------------------------------------------------------------------+ #property copyright "Copyright © 2017, Владимир В. Ткач" #property description "" #property link "https://www.mql5.com/ru/users/net/news" #property strict int cnt=0; string str[18]; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- create timer EventSetTimer(1); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- Event((string)cnt++); Comment("Some constant comment","\n", " ","\n", "Events list","\n", str[0],"\n", str[1],"\n", str[2],"\n", str[3],"\n", str[4],"\n", str[5],"\n", str[6],"\n", str[7],"\n", str[8],"\n", str[9],"\n", str[10],"\n", str[11],"\n", str[12] ); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Event(string str_) { if(IsTesting()==true) return; string x1="",x2=""; if(StringLen((string)Hour())==1) x1="0"; if(StringLen((string)Minute())==1) x2="0"; str_=(string)Day()+" "+x1+(string)Hour()+":"+x2+(string)Minute()+" "+str_; for(int i=0; i<18; i++) { if(str_==str[i]) return; } for(int i=16; i>-1; i--) { str[i+1]=str[i]; } str[0]=str_; return; } //+------------------------------------------------------------------+
Будет выглядеть так
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Может кому пригодится... Сегодня писал такую штуку: надо было выставить отложку через определенное время после срабатывания стоп лосса. Вот что получилось:
Получилось довольно забавно!)) Делал для бай и селл отдельно поэтому немного шире получилось...