Trabajo finalizado
Plazo de ejecución 5 días
Comentario del Ejecutor
Спасибо за заказ! И оперативное тестирование.
Tarea técnica
Краткое описание зачем это:
Детальное ТЗ и алгоритм работы:
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)
Han respondido
1
Evaluación
Proyectos
233
61%
Arbitraje
3
33%
/
33%
Caducado
6
3%
Libre
Ha publicado: 1 ejemplo
2
Evaluación
Proyectos
1429
59%
Arbitraje
31
81%
/
0%
Caducado
10
1%
Libre
3
Evaluación
Proyectos
103
39%
Arbitraje
16
6%
/
94%
Caducado
33
32%
Libre
Ha publicado: 1 ejemplo
4
Evaluación
Proyectos
679
56%
Arbitraje
33
15%
/
39%
Caducado
63
9%
Libre
5
Evaluación
Proyectos
1001
47%
Arbitraje
33
36%
/
36%
Caducado
98
10%
Trabajando
Ha publicado: 6 ejemplos
6
Evaluación
Proyectos
106
52%
Arbitraje
17
12%
/
65%
Caducado
25
24%
Libre
Información sobre el proyecto
Presupuesto
20- USD
Plazo límite de ejecución
a 5 día(s)