Spécifications
Задача
1) Нужно написать бота, который умеет выставлять ордера и закрывать их в Метатрейдере
2) Требования к боту:
• Python script (файл .py)
• Программа должна работать в фоновом режиме(можно свернуть, чтобы не мешала)
• Кол-во валютных пар (неограниченно)
• Кол-во одновременно запущенных сделок(неограниченно)
• Бот(программа) должна быть написана на Python
• Сделки, которые бот должен открыть и закрыть берутся из файла из текущей директории из файла pairs.csv (файл обновляется другой программой, в ней появляются новые пары)(файл может обновляться с периодичностью от нескольких секунд до нескольких минут)
• Важно! Добавить возможность вручную закрывать сделки в Метатрейдер (бот не должен ломаться)
Логика выставление сделок:
1) Бот считывает валютные пары из файла pairs.csv
2) По каждой валютной паре бот должен учесть спред(можно задать в виде словаря например:
{EURUSDrfd:14, EURGBPrfd:20}. Спред задается в базисных пунктах.
3) Если цена валютной пары сдвинулась на размер спреда в противоположном направлении от типа ордера, то по этой валютной паре бот должен открыть сделку
(например бот считал строку из файла pairs.csv
Валютная пара: EURUSDrfd
Время открытия: 04.10.2023.11:31:00
Время закрытия: 04.10.2023.11:35:00
Тип ордера:BUY
Фиксируется текущая цена в 11:31:00 по валютной паре EURUSDrfd
Бот ожидает, когда текущая цена снизится на размер спреда от фиксированной
Если условие выполнено(цена сдвинулась на размер спреда в противоположном направлении) и времени до закрытия составляет больше или равно 1 минуты, то сделка открывается. Для валютной пары EURUSDrfd из примера крайняя точка входа 11:34:00.
В противном случае(если условие спреда не выполнилось) сделка не открывается.
В файле pairs.csv могут быть несколько сделок с одной и той же валютной парой, но с разным временем входа и выхода из сделки. По каждой такой сделке проверка условия входа в позицию определяется независимо друг от друга(параллельно).
Бот должен записывать в файл logs.csv информацию о сделках(так же как и в pair.csv + дополнительное поле о сделке(выполнилось или нет))
Структура файла pairs.csv:
symbol,EnterDate,ExitDate,TP,SL,volume,orderType
EURUSDrfd,04.10.2023.11:31:00,04.10.2023.11:35:00,100,100,0.01,BUY
*Описание полей
symbol:Валютная пара
EnterDate:Точка входа
ExitDate:Точка выхода
TP: Take Profit
SL:Stop Loss
volume: размер позиции(в лотах)
orderType:Тип ордера (BUY или SELL)