class STradeSignal
Структура данных для хранения одного торгового сигнала: идентификатор, время, код сигнала и имя символа.
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «mainfunc.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Данный исходный код представляет собой библиотеку на языке MQL для торгового советника, работающего с внешним источником торговых сигналов. Библиотека подключается к внешнему модулю через динамическую библиотеку и получает из него сигналы для последующей обработки. В коде определена структура для хранения торгового сигнала, содержащая идентификатор, время, код сигнала и имя символа.
Основная логика советника включает контроль торгового времени, контроль эквити с возможностью остановки по прибыли, убытку и трейлингу, а также управление торговой сессией с возможностью ручного запуска и остановки через кнопки на графике. Реализованы механизмы сброса дневной и сессионной статистики, а также проверка корректности входных параметров.
Библиотека предоставляет набор служебных функций для работы со списками сигналов и тикеров, включая разбор строк и удаление элементов из массивов. Код предназначен для интеграции в торговую систему и не содержит самостоятельной торговой стратегии.
Классов: 1 · методов: 0 · конструкторов: 1 · деструкторов: 0 · отдельных функций: 23
class STradeSignal
Структура данных для хранения одного торгового сигнала: идентификатор, время, код сигнала и имя символа.
_tSizeT RunConnect(int, char& host[], char& user[], char& pw[], char& db[])
Устанавливает соединение с внешним источником сигналов через динамическую библиотеку, принимая параметры подключения.
uint MakeSignals(_tSizeT work, STradeSignal& buff[], uint size)
Извлекает очередную порцию торговых сигналов из внешнего источника в переданный массив.
void Disconnect(_tSizeT work)
Завершает соединение с внешним источником сигналов.
int OnInit()
Инициализация советника: подготовка списка сигналов и тикеров, запуск таймера и начальная проверка параметров.
void OnDeinit(const int reason)
Завершение работы советника: остановка таймера, освобождение ресурсов и отключение от источника сигналов в зависимости от причины.
void OnTimer()
Периодический обработчик таймера, выполняющий контроль времени торговли, контроль эквити и управление торговлей.
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
Обработчик событий графика, реагирующий на нажатия кнопок запуска и остановки торговой сессии.
ENUM_INIT_RETCODE Start(bool is_new_param)
Запуск советника: проверка параметров, сброс дневной статистики и подготовка торговли к работе.
ENUM_INIT_RETCODE CheckParam()
Проверка корректности входных параметров советника и вывод предупреждений при ошибках.
void DayEquitySet()
Настройка дневного контроля эквити в соответствии с выбранным типом контроля.
void TimeControl()
Контроль торгового времени: определение начала нового дня и управление доступностью торговли.
void EquityControl()
Контроль эквити: отслеживание достижения порогов прибыли, убытка и трейлинг-остановки.
bool EquityTralControl(double fEquity)
Трейлинг-контроль эквити: проверка условий активации и срабатывания трейлинг-остановки.
void TradeControl()
Управление торговлей: закрытие позиций при запрете торговли и передача сигналов торговому модулю.
bool CheckRestartCount()
Проверка возможности перезапуска торговой сессии с учётом лимита перезапусков и текущего состояния.
void ResetSession()
Сброс параметров торговой сессии: обновление значений эквити, баланса и порогов контроля.
void ResetDay()
Сброс дневной статистики: сброс сессии и дневного контроля эквити.
void ResetDayControl()
Сброс дневного контроля эквити с учётом выбранного типа контроля.
string GetStopReason()
Формирование текстового описания причины остановки торговли.
void CheckSignalsList()
Разбор строки со списком сигналов и заполнение внутреннего массива допустимых сигналов.
void CheckTickersList()
Разбор строки со списком тикеров и заполнение внутреннего массива.
void Fogot(T &array[],int id,int &f_quant)
Удаление элемента из массива по индексу со сдвигом оставшихся элементов.
int FogotRate(T &array[],T rate)
Удаление первого вхождения заданного значения из массива и возврат нового размера массива.
STradeSignal()
Конструктор структуры торгового сигнала, создающий пустой экземпляр.
??/ / + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
/ / | P r o j e c t N a m e |
/ / | C o p y r i g h t 2 0 1 8 , C o m p a n y N a m e |
/ / | h t t p : / / w w w . c o m p a n y n a m e . n e t |
/ / + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
# i n c l u d e " L i b \ D e f i n e \ M Q L D e f i n e . m q h "
s t r u c t S T r a d e S i g n a l
{
l o n g i d ;
d a t e t i m e t i m e ;
i n t s i g n a l ;
c h a r s y m b o l [ 3 2 - s i z e o f ( l o n g ) - s i z e o f ( d a t e t i m e ) - s i z e o f ( i n t ) ] ;
S T r a d e S i g n a l ( )
{
/ / Z e r o M e m o r y ( t h i s ) ;
}
} ;
# i m p o r t " D B S i g n a l s C o n n e c t o r . d l l "
_ t S i z e T R u n C o n n e c t ( i n t , c h a r &