Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 380

 
Integer:


Não.

Essa é a maneira de fazer isso:


Em cheio! Obrigado! ;)
 
Integer:

Mova o cursor para o primeiro parêntese de abertura após o OrderSend, apague este parêntese, entre novamente, isto trará uma dica de ferramenta com o tipo de parâmetro, verifique se todos os parâmetros são do mesmo tipo.

Muito obrigado, eu não coloquei uma data de expiração do pedido, agora funciona!
 
Integer:
Mediu a velocidade do ciclo de avanço e retrocesso. 100 pedidos, o ciclo reverso é 5 vezes mais rápido. Mas nunca há tantos pedidos, 10 no máximo. Se houver 10 pedidos, a velocidade é 3 vezes mais rápida. É palpável escolher o ciclo inverso.

O laço é executado em um único tick ou em vários?
 
Example2:

O loop é executado em um único tick ou em vários tick?

Eu não entendo. Ele apenas executa e pronto, os carrapatos não têm nada a ver com isso.
 
//|+-------------------------------------------------------------------------------------------------------+
//|Inputs                                                                                                  |
//|+-------------------------------------------------------------------------------------------------------+
extern double Lots_Typ = 0.1;
extern double TP_Typ = 100;
extern double SL_Typ = 100;
extern double Timeframe = 0; 
//|+-------------------------------------------------------------------------------------------------------+
extern double _N_  = 1;
//|+-------------------------------------------------------------------------------------------------------+
extern double Line_6  = 2.5;
extern double Line_7  = 3;
extern double Line_8  = 3.5;
extern double Line_9  = 4;
extern double Line_10 = 4.5;
extern double Line_11 = 5;
//|+-------------------------------------------------------------------------------------------------------+
extern double RSI_Type_Line_1 = 0;
extern double RSI_Period_Line_1_1 = 5;
extern double ADX_Type_Price_1 = 0;
extern double ADX_Period_Line_1 = 5;
extern double RVI_Period_Line_1 = 5;
extern double Stohastic_MA_Metod_1 = 0;
extern double Stochastic_Period_Line_A_1 = 10;
extern double Stochastic_Period_Line_B_1 = 6;
//|+-------------------------------------------------------------------------------------------------------+
extern double RSI_Type_Line_2 = 0;
extern double RSI_Period_Line_1_2 = 10;
extern double ADX_Type_Price_2 = 0;
extern double ADX_Period_Line_2 = 10;
extern double RVI_Period_Line_2 = 10;
extern double Stohastic_MA_Metod_2 = 0;
extern double Stochastic_Period_Line_A_2 = 10;
extern double Stochastic_Period_Line_B_2 = 6;
//|+-------------------------------------------------------------------------------------------------------+
extern double RSI_Type_Line_3 = 0;
extern double RSI_Period_Line_1_3 = 20;
extern double ADX_Type_Price_3 = 0;
extern double ADX_Period_Line_3 = 20;
extern double RVI_Period_Line_3 = 20;
extern double Stohastic_MA_Metod_3 = 0;
extern double Stochastic_Period_Line_A_3 = 10;
extern double Stochastic_Period_Line_B_3 = 6;
//|+-------------------------------------------------------------------------------------------------------+
//|Declaration                                                                                             |
//|+-------------------------------------------------------------------------------------------------------+
double Line_1_A; double Line_2_A; double Line_3_A;
double Line_1_B; double Line_2_B; double Line_3_B;
double Line_1_C; double Line_2_C; double Line_3_C;
double Line_1_D; double Line_2_D; double Line_3_D;
double Line_1_I; double Line_2_I; double Line_3_I;
double Line_1_F; double Line_2_F; double Line_3_F;
double Line_1_K; double Line_2_K; double Line_3_K;
double Line_1_L; double Line_2_L; double Line_3_L;
double Line_1_M; double Line_2_M; double Line_3_M;
//|+-------------------------------------------------------------------------------------------------------+
double Lines_1; 
double Lines_2;
double Lines_3;
//|+-------------------------------------------------------------------------------------------------------+
double price;
//|+-------------------------------------------------------------------------------------------------------+
//|+-------------------------------------------------------------------------------------------------------+
//|Start                                                                                                   |
//|+-------------------------------------------------------------------------------------------------------+
//|+-------------------------------------------------------------------------------------------------------+
//|Level 1                                                                                                 |
//|+-------------------------------------------------------------------------------------------------------+
int start() 
{ 
    //|+---------------------------------------------------------------------------------------------------+
    //|Level 2                                                                                             |
    //|+---------------------------------------------------------------------------------------------------+
    price = Bid;
    //|+---------------------------------------------------------------------------------------------------+
    Line_1_A = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_1,RSI_Type_Line_1,0);
    Line_1_M = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_2,RSI_Type_Line_1,0);
    Line_1_L = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_3,RSI_Type_Line_1,0);
    Line_1_B = iStochastic(Symbol(),Timeframe,Stochastic_Period_Line_A_1,Stochastic_Period_Line_B_1,Stochastic_Period_Line_B_1,Stohastic_MA_Metod_1,0,0,0);
    Line_1_K = iStochastic(Symbol(),Timeframe,Stochastic_Period_Line_A_1,Stochastic_Period_Line_B_1,Stochastic_Period_Line_B_1,Stohastic_MA_Metod_1,0,1,0);
    Line_1_C = iADX(Symbol(),Timeframe,ADX_Period_Line_1,ADX_Type_Price_1,0,0);
    Line_1_D = iADX(Symbol(),Timeframe,ADX_Period_Line_1,ADX_Type_Price_1,1,0);
    Line_1_I = iADX(Symbol(),Timeframe,ADX_Period_Line_1,ADX_Type_Price_1,2,0);
    Line_1_F = iRVI(Symbol(),Timeframe,RVI_Period_Line_1,ADX_Type_Price_1,0);
    //|+---------------------------------------------------------------------------------------------------+
    Line_2_A = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_1,RSI_Type_Line_2,0);
    Line_2_M = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_2,RSI_Type_Line_2,0);
    Line_2_L = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_3,RSI_Type_Line_2,0);
    Line_2_B = iStochastic(Symbol(),Timeframe,Stochastic_Period_Line_A_2,Stochastic_Period_Line_B_2,Stochastic_Period_Line_B_2,Stohastic_MA_Metod_2,0,0,0);
    Line_2_K = iStochastic(Symbol(),Timeframe,Stochastic_Period_Line_A_2,Stochastic_Period_Line_B_2,Stochastic_Period_Line_B_2,Stohastic_MA_Metod_2,0,1,0);
    Line_2_C = iADX(Symbol(),Timeframe,ADX_Period_Line_2,ADX_Type_Price_2,0,0);
    Line_2_D = iADX(Symbol(),Timeframe,ADX_Period_Line_2,ADX_Type_Price_2,1,0);
    Line_2_I = iADX(Symbol(),Timeframe,ADX_Period_Line_2,ADX_Type_Price_2,2,0);
    Line_2_F = iRVI(Symbol(),Timeframe,RVI_Period_Line_2,ADX_Type_Price_2,0);
    //|+---------------------------------------------------------------------------------------------------+
    Line_3_A = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_1,RSI_Type_Line_3,0);
    Line_3_M = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_2,RSI_Type_Line_3,0);
    Line_3_L = iRSI(Symbol(),Timeframe,RSI_Period_Line_1_3,RSI_Type_Line_3,0);
    Line_3_B = iStochastic(Symbol(),Timeframe,Stochastic_Period_Line_A_3,Stochastic_Period_Line_B_3,Stochastic_Period_Line_B_3,Stohastic_MA_Metod_3,0,0,0);
    Line_3_K = iStochastic(Symbol(),Timeframe,Stochastic_Period_Line_A_3,Stochastic_Period_Line_B_3,Stochastic_Period_Line_B_3,Stohastic_MA_Metod_3,0,1,0);
    Line_3_C = iADX(Symbol(),Timeframe,ADX_Period_Line_3,ADX_Type_Price_3,0,0);
    Line_3_D = iADX(Symbol(),Timeframe,ADX_Period_Line_3,ADX_Type_Price_3,1,0);
    Line_3_I = iADX(Symbol(),Timeframe,ADX_Period_Line_3,ADX_Type_Price_3,2,0);
    Line_3_F = iRVI(Symbol(),Timeframe,RVI_Period_Line_3,ADX_Type_Price_3,0);
        //|+-----------------------------------------------------------------------------------------------+
        //|Level 3                                                                                         |
        //|+-----------------------------------------------------------------------------------------------+
        Lines_1 = price * (_N_ * (((Line_1_B + Line_1_F) / Line_1_K) - ((Line_1_D + Line_1_I) / Line_1_C) + ((Line_1_A + Line_1_M) / Line_1_L)));
        //|+-----------------------------------------------------------------------------------------------+
        Lines_2 = price * (_N_ * (((Line_2_B + Line_2_F) / Line_2_K) - ((Line_2_D + Line_2_I) / Line_2_C) + ((Line_2_A + Line_2_M) / Line_2_L)));
        //|+-----------------------------------------------------------------------------------------------+
        Lines_3 = price * (_N_ * (((Line_3_B + Line_3_F) / Line_3_K) - ((Line_3_D + Line_3_I) / Line_3_C) + ((Line_3_A + Line_3_M) / Line_3_L)));
            //|+-------------------------------------------------------------------------------------------+
            //|Level 4 Auto_Sistem_1                                                                       |
            //|+-------------------------------------------------------------------------------------------+  

            if(Line_7 > Lines_1 && Lines_1 > Line_6)
            {
            Alert("Сигнал на покупку (2.5 , 3)");
            OrderSend(Symbol(),OP_BUY,Lots_Typ,Ask,5,SL_Typ,TP_Typ);
            }
            return;}}
Este é meu especialista em luto truncado. :)
Não faz negócios.
Não consigo descobrir a razão.
Ajude, por favor.
 

O testador constantemente dá erro 138 (Preço solicitado desatualizado) ao fechar várias posições em aberto. Além disso, uma posição fecha normalmente, enquanto a que é aberta mais tarde não fecha com erro 138. Talvez os desenvolvedores possam responder, como o preço pode tornar-se obsoleto com base em dados históricos ou existem alguns outros parâmetros que são usados no algoritmo para identificar este erro? Se colocarmos OrderClose no loop infinito com referência constante a RefreshRates dentro dele, a posição não está fechando e o erro 138 é mostrado de qualquer forma. É claro que o loop não está terminado, embora tenhamos definido a saída no fechamento da posição.

Minha conta demo foi aberta na Alpari. Não carreguei o histórico adicionalmente, mas há muitos erros, como: 2013.12.29 16:27:09 TestGenerator: erro de dados incomparável (limite de volume 10340 em 2013.08.23 12:00 excedido), etc.

Alguém pode aconselhar o que fazer nesta situação? E o que é este testador que não pode fechar posições dentro de algumas velas de 4 horas?

 
Link_x:
Este é meu especialista em luto truncado. :)
Não faz negócios.
Não consigo descobrir a razão.
Ajude, por favor.
Teste em modo visual. Use Comment( ) para sair Line_7, Lines_1, Line_6. Veja como eles mudam, se as condições podem ser cumpridas.
 
Example2:

para (int i = 0; i < OrderTotal(); i++){
se (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == verdadeiro){
Lucro = Lucro + OrderProfit() + OrderComission() + OrderSwap();
}

}

Somente "Lucro" precisa ser declarado como uma variável fracionária. Se adicionarmos um cheque para Compra e Venda, poderemos calcular o lucro separadamente para pedidos de Venda e Compra.


Obrigado, entendi...mas como fechar todos os pedidos abertos para todos os pares de moedas ao mesmo tempo? .... - também usando força bruta? .... - nenhuma outra opção?
 
Integer:
Teste em modo visual. Use Comment() para sair Line_7, Lines_1, Line_6. Veja como eles mudam e se as condições podem ser cumpridas.


As condições da transação estão preenchidas, mas a transação não está.
 
i999i:

Obrigado, entendo o lucro ... mas como fechar todos os pedidos abertos para todos os símbolos simultaneamente? .... É o mesmo método de busca? .... nenhuma outra opção?


Você também deve levar em consideração que se houver mais de uma ordem, elas podem não ser todas fechadas em um ciclo. Você também deve levar em consideração que se houver mais de uma ordem, elas podem não ser todas fechadas em um ciclo, e as condições não serão atendidas no próximo tick e as demais ordens permanecerão abertas. É por isso que precisamos de uma variável adicional global ou estática. Se as condições de fechamento forem cumpridas, definimos esta variável como verdadeira. Então, a cada tick, se a variável for verdadeira, fechamos todas as ordens no loop; se conseguimos fechar todas elas, definimos a variável falsa.