Preciso que os backtests funcionem corretamente

Работа завершена

Время выполнения 10 часов
Отзыв от исполнителя
Ótimo cliente, soube descrever bem o problema e procedeu tudo em ordem com a transação.
Отзыв от заказчика
Ótimo desenvolvedor! Trabalhou bem e rápido. Possui um ótimo conhecimento técnico. Recomendo a todos.

Техническое задание

Estou desenvolvendo um robô que faz contagem de candles. O robô faz as entradas de acordo com a quantidade de candles definida pelo operador. O operador também irá definir o lucro e o prejuízo diário em dinheiro (reais). Quando a meta diária é atingida, o robô encerra as operações neste dia. Isso é basicamente o que ele faz, tendo também as opções para definir o timeframe e os horários de início e fechamento das entradas e término das operações. Estas partes já estão funcionando, mas tem um problema com o backtest. Quero rodar um longo período de backtest, mas o problema é que ele não passa corretamente para o dia seguinte, começando a operar no horário errado e fazendo o cálculo incorretamente. O backtest só funciona corretamente no primeiro dia. 
Por exemplo, eu defini os parâmetros de entrada da seguinte forma:
- Tempo Gráfico: 5 minutes
- Hora de Início das Entradas: 9
- Minutos de Início das Entradas: 30
- Hora de Encerramento das entradas: 17
- Minutos de Encerramento das entradas: 30
- Hora de Término das operações: 17
- Minutos de Término das operações: 30
- QTD. de Candles: 3
- Lucro: 500
- Prejuízo: 500
Se eu testar apenas o dia 20/03/2019, ele dá R$ 528,99 de lucro. Agora, seu eu testar apenas o dia 21/03/2019, ele dá R$ 497,00 de lucro. Então, seu eu rodar o backtest desses dois dias juntos, ele deveria me dar R$ 1.025,99 de lucro, que seria a soma dos lucros dos dois dias, mas não é isso que está ocorrendo.  
Eu criei uma função chamada funcao_verifica_meta_ou_perda_atingida(), que, quando a meta é atingida (tanto lucro quanto prejuízo), ela retorna true. Na função OnTick() eu criei a seguinte condição: if(HorarioEntrada() && funcao_verifica_meta_ou_perda_atingida() == false). Esta condição faz o robô começar a operar. 
Eu preciso fazer o backtest funcionar corretamente, senão não vou conseguir encontrar as melhores configurações para começar a operar na conta real.
Então, resumindo, o que eu preciso é que o backtest funcione corretamente, porque só estou conseguindo fazer backtests um dia de cada vez e isso tem sido inviável.


































































Откликнулись

1
Разработчик 1
Оценка
(1)
Проекты
1
0%
Арбитраж
0
Просрочено
0
Свободен
2
Разработчик 2
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
3
Разработчик 3
Оценка
(563)
Проекты
932
47%
Арбитраж
301
59% / 25%
Просрочено
124
13%
Работает
4
Разработчик 4
Оценка
(186)
Проекты
205
26%
Арбитраж
12
25% / 58%
Просрочено
39
19%
Свободен
5
Разработчик 5
Оценка
(24)
Проекты
34
9%
Арбитраж
3
33% / 0%
Просрочено
8
24%
Свободен
6
Разработчик 6
Оценка
(7)
Проекты
9
11%
Арбитраж
0
Просрочено
6
67%
Свободен
7
Разработчик 7
Оценка
(46)
Проекты
80
13%
Арбитраж
11
0% / 91%
Просрочено
51
64%
Свободен
8
Разработчик 8
Оценка
(8)
Проекты
16
0%
Арбитраж
9
0% / 89%
Просрочено
8
50%
Свободен

Информация о проекте

Бюджет
30+ USD
Исполнителю
27 USD
Сроки выполнения
до 10 дн.