Работа завершена
Время выполнения 5 дней
Отзыв от исполнителя
Спасибо за заказ! И оперативное тестирование.
Техническое задание
Краткое описание зачем это:
Детальное ТЗ и алгоритм работы:
1. В советник я вставлю такую проверку сам, мне главное сделать функцию,
куда я передаю нужные параметры, там проводятся все проверки,
и функция возвращает - 1 или 0 (можно или нельзя торговать).
2. В функцию (например IsThisCurrencyTradeAllowed (N,M,String) ) передаем 3 параметра :
число N (1-5), число M (5-10) и текстовую переменную равную "Sell" или "Buy".
3. Эта функция делает так:
-- берет имя текущей пары (где запущена), например EURUSD
(например
EURGBP, Buy
-- раскладывает текущую пару EURUSD на EUR и USD
для валюты USD - считаем сколько ордеров открыто для AUDUSD (например 9),
В
существующем советнике (сеточный, который работает одновременно на
нескольких парах на одном счете) нужно ограничить открытие новых ордеров
по паре,
если одна из валют в этой паре уже торгуется на этом счете на
других парах.
Детальное ТЗ и алгоритм работы:
1. В советник я вставлю такую проверку сам, мне главное сделать функцию,
куда я передаю нужные параметры, там проводятся все проверки,
и функция возвращает - 1 или 0 (можно или нельзя торговать).
2. В функцию (например IsThisCurrencyTradeAllowed (N,M,String) ) передаем 3 параметра :
число N (1-5), число M (5-10) и текстовую переменную равную "Sell" или "Buy".
3. Эта функция делает так:
-- берет имя текущей пары (где запущена), например EURUSD
-- берет из параметров направление, которое проверяется (например "Buy")
-- берет список всех ордеров, открытых на счете, и направление этих ордеров(например
EURGBP, Buy
USDCAD, Sell
EURGBP, Buy
AUDUSD, Buy
CHFEUR, Sell
EURAUD, Sell
CHFEUR, Sell
EURAUD, Sell
AUDCAD, Sell
AUDUSD, Buy
USDJPY, Sell
USDCAD, Sell
USDCAD, Sell
USDCAD, Sell
..........
.......... )
.......... )
-- раскладывает текущую пару EURUSD на EUR и USD
и берет направление из параметров (например "Buy")
Получается для первой части имени пары ( у нас это EUR ) - у нас операция Buy,
а для второй части имени пары USD в паре EURUSD соответственно получается как-бы Sell.
--
из списка открытых на счете ордеров смотрит какие открыты пары с
валютой EUR направленой на Buy и с валютой USD направленой на Sell.
-- считает количество ордеров в каждой из таких пар
(отдельно считает для каждой валюты ( в примере EUR и USD) для каждой пары, которая попадает под выше-описаные условия.
т.е. если брать из примера, учитывая направления:
по первой валюте EUR : сколько ордеров в паре EURGBP , сколько в паре CHFEUR
по первой валюте EUR : сколько ордеров в паре EURGBP , сколько в паре CHFEUR
по второй валюте USD: сколько в AUDUSD, cколько в USDJPY, в USDCAD
-- считаем сколько пар по каждой из двух валют (в примере это EUR и USD)
имеют ордеров больше или равное "M" (параметр к функции),
имеют ордеров больше или равное "M" (параметр к функции),
т.е.:
для валюты EUR - считаем сколько ордеров открыто для EURGBP (например 3),
для валюты EUR - считаем сколько ордеров открыто для EURGBP (например 3),
сколько открыто для CHFEUR (например 8)
для валюты USD - считаем сколько ордеров открыто для AUDUSD (например 9),
сколько открыто для USDJPY (например 6), сколько в USDCAD (например 3)
Дальше, если переменная "M" == 6
То для валюты EUR ответ - 1 пара имеют ордеров больше или равное "M" (=6)
То для валюты USD ответ - 2 пары имеют ордеров больше или равное "M" (=6)
То для валюты USD ответ - 2 пары имеют ордеров больше или равное "M" (=6)
-- если посчитали и получили что это количество по любой из валют (или EUR или USD )
больше или равно N (параметр к функции),
то функция возвращает результат = 0 (больше по данной валюте (EURUSD) не торгуем)
если это количество меньше чем N , то функция возвращает результат = 1 (можно торговать)
В качестве результата, чтобы легко можно было тестировать эту функцию,
мне надо сделать советник, в котором стоит только вызов этой функции
IsThisCurrencyTradeAllowed (N,M,String)
а переменные эти берутся из параметров советника (которые пользователь может вводить через интерфейс терминала.)
мне надо сделать советник, в котором стоит только вызов этой функции
IsThisCurrencyTradeAllowed (N,M,String)
Откликнулись
1
Оценка
Проекты
233
61%
Арбитраж
3
33%
/
33%
Просрочено
6
3%
Свободен
Опубликовал: 1 пример
2
Оценка
Проекты
1429
59%
Арбитраж
31
81%
/
0%
Просрочено
10
1%
Свободен
3
Оценка
Проекты
103
39%
Арбитраж
16
6%
/
94%
Просрочено
33
32%
Свободен
Опубликовал: 1 пример
4
Оценка
Проекты
679
56%
Арбитраж
33
15%
/
39%
Просрочено
63
9%
Свободен
5
Оценка
Проекты
1001
47%
Арбитраж
33
36%
/
36%
Просрочено
98
10%
Загружен
Опубликовал: 6 примеров
6
Оценка
Проекты
106
52%
Арбитраж
17
12%
/
65%
Просрочено
25
24%
Свободен
Информация о проекте
Бюджет
20- USD
Сроки выполнения
до 5 дн.