Trabalho concluído
Tempo de execução 5 dias
Comentário do desenvolvedor
Спасибо за заказ! И оперативное тестирование.
Termos de Referência
Краткое описание зачем это:
Детальное ТЗ и алгоритм работы:
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)
Respondido
1
Classificação
Projetos
233
61%
Arbitragem
3
33%
/
33%
Expirado
6
3%
Livre
Publicou: 1 código
2
Classificação
Projetos
1429
59%
Arbitragem
31
81%
/
0%
Expirado
10
1%
Livre
3
Classificação
Projetos
103
39%
Arbitragem
16
6%
/
94%
Expirado
33
32%
Livre
Publicou: 1 código
4
Classificação
Projetos
679
56%
Arbitragem
33
15%
/
39%
Expirado
63
9%
Livre
5
Classificação
Projetos
1001
47%
Arbitragem
33
36%
/
36%
Expirado
98
10%
Carregado
Publicou: 6 códigos
6
Classificação
Projetos
106
52%
Arbitragem
17
12%
/
65%
Expirado
25
24%
Livre
Informações sobre o projeto
Orçamento
20- USD
Prazo
para 5 dias