[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 279
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Jogue o algoritmo, em palavras, porque é um pouco obscuro...
Aproximadamente como se segue:
//determinar o número total de dias de negociação.
OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);
então, para o período determinado, calcular lucro/dia = %/dia
Preciso calcular os dias de fim de semana para todo este período e excluir do cálculo:
lucro/(dias livres)
Aproximadamente como se segue:
//determinar o número total de dias de negociação.
OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);
então, para o período determinado, calcular lucro/dia = %/dia
Preciso calcular os dias de fim de semana para todo o período e excluir do cálculo:
lucro/(dias livres)
Verifique se você tem o histórico necessário para o período e calcule seus "lucros/dia". Apenas não use calendário (constantes em sua fórmula) e pronto. Somente os dias de negociação entram para a história (também há feriados públicos). Apegue-se aos bares diários, por exemplo.
Se você quiser usar especificamente um calendário (Gregorian ou Julian, por exemplo). Qual é o truque, há um novo bar, há uma nova canção?
Aproximadamente como se segue:
//determinar o número total de dias de negociação.
OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);
então, para o período determinado, calcular lucro/dia = %/dia
Preciso calcular os dias de fim de semana para todo este período e excluir do cálculo:
lucro/(dias livres)
Você pode calcular o número de barras diárias desde a data de início do teste.
Você pode contar o número de bares diários com mais de 20 bares de hora (para excluir dias parciais de folga) . Você pode acompanhar um novo dia como se um novo bar aparecesse, e assim por diante (como ler toda a história das negociações e calcular datas únicas).
Você pode contar o número de barras diárias desde a data de início do teste.
Você pode contar o número de barras diárias em que as barras de hora são mais de 20 (para excluir fins de semana incompletos) . Você pode acompanhar um novo dia à medida que um novo bar aparece, e assim por diante (como ler toda a história das negociações e contar datas únicas).
Verifique se você tem o histórico necessário para o período e conte seus "lucros/dia". Apenas não use calendários (constantes em sua fórmula) e pronto. Somente os dias de negociação entram para a história (também há feriados públicos). Apegue-se aos bares diários, por exemplo.
Se você quiser usar especificamente um calendário (Gregorian ou Julian, por exemplo). Qual é o truque, há um novo bar, há uma nova canção?
Eu o fiz desta maneira:
OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24)));
for(i=0; i<Days; i++)
{
if(TimeDayOfWeek(CurTime()-i*24*3600)==6 ||| TimeDayOfWeek(CurTime()-i*24*3600)==7) Days3++;
}
Dias-=Dias3;
Eu fiz isso:
OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24)));
for(i=0; i<Days; i++)
{
if(TimeDayOfWeek(CurTime()-i*24*3600)==6 ||| TimeDayOfWeek(CurTime()-i*24*3600)==7) Days3++;
}
Dias-=Dias3;
não, com esta ordem - selecione as ordens na história (UM tempo), depois vá apenas uma (a última). Não há nada de confuso?
Faça uma busca de pedidos no laço e aplique suas condições a cada pedido.
// Pesquisar todas as ordens no laço
for(int i=0;i<=OrdensTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS, MODE_HISTORY))
{
// Se o símbolo e o número mágico combinarem, a ordem é nossa
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
// Verifique aqui.
}
}
}
Não, com esta ordem - selecione as ordens na história (UM tempo), depois vá apenas para uma (a última). Não há nada de confuso?
Percorra as ordens no loop e aplique suas próprias condições a cada ordem.
// Pesquisar todas as ordens no laço
for(int i=0;i<=OrdensTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS, MODE_HISTORY))
{
// Se o símbolo e o número mágico combinarem, a ordem é nossa
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
{
// Verifique aqui.
}
}
}
Bem, é claro que me enganei:
TimeDayOfWeek(CurTime()-i*24*3600)==7
ao invés de 7, deveria ser 0.
Verificado, em contas com mais de uma semana de existência. Parece estar correta.
Como é calculado o iMA?
Existe algum lugar onde eu possa encontrar como a função iMA é calculada (ou é classificada)?
Especialmente estou interessado em MODE_LWMA.
Quero olhar e ajustar ao meu gosto, mas algo não foi obtido no google sources
Bem, é claro que me enganei:
TimeDayOfWeek(CurTime()-i*24*3600)==7
ao invés de 7, deveria ser 0.
Verificado, em contas com mais de uma semana de existência. Parece estar correta.