Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 380

 
Integer:


No.

Questo è il modo per farlo:


Giusto! Grazie! ;)
 
Integer:

Spostare il cursore sulla prima parentesi aperta dopo OrderSend, cancellare questa parentesi, rientrare, questo farà apparire un tooltip con il tipo di parametri, controllare se tutti i parametri sono dello stesso tipo.

Grazie mille, non avevo messo la data di scadenza dell'ordine, ora funziona!
 
Integer:
Misurato la velocità del ciclo avanti e indietro. 100 ordini, il ciclo inverso è 5 volte più veloce. Ma non ci sono mai tanti ordini, 10 al massimo. Se ci sono 10 ordini, la velocità è 3 volte superiore. È palpabile scegliere il ciclo inverso.

Il ciclo viene eseguito in un solo tick o in diversi?
 
Example2:

Il ciclo viene eseguito in un solo tick o in più tick?

Non capisco. Esegue e basta, le zecche non c'entrano per niente.
 
//|+-------------------------------------------------------------------------------------------------------+
//|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;}}
Questo è il mio tronco di esperto di dolore. :)
Non fa accordi.
Non riesco a capirne il motivo.
Aiuto, per favore.
 

Il tester dà costantemente l'errore 138 (Requested price out of date) quando chiude diverse posizioni aperte. Inoltre, una posizione si chiude normalmente, mentre quella aperta successivamente non si chiude con l'errore 138. Forse gli sviluppatori possono rispondere, come può il prezzo diventare obsoleto in base ai dati storici o c'è qualche altro parametro che viene utilizzato nell'algoritmo per identificare questo errore? Se mettiamo OrderClose nel ciclo infinito con riferimento costante a RefreshRates al suo interno, la posizione non si chiude e l'errore 138 viene mostrato comunque. Naturalmente, il ciclo non viene terminato, anche se abbiamo impostato l'uscita alla chiusura della posizione.

Il mio conto demo è stato aperto presso Alpari. Non ho caricato la cronologia in aggiunta, ma ci sono molti errori, come: 2013.12.29 16:27:09 TestGenerator: unmatched data error (volume limit 10340 at 2013.08.23 12:00 exceeded), ecc.

Qualcuno può consigliare cosa fare in questa situazione? E cos'è questo tester che non può chiudere le posizioni entro poche candele di 4 ore?

 
Link_x:
Questo è il mio tronco di esperto di dolore. :)
Non fa accordi.
Non riesco a capirne il motivo.
Aiuto, per favore.
Test in modalità visiva. Usate Comment() per emettere Line_7, Lines_1, Line_6. Vedere come cambiano, se le condizioni possono essere soddisfatte del tutto.
 
Example2:

for (int i = 0; i < OrdersTotal(); i++){
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true){
Profit = Profit + OrderProfit() + OrderCommission() + OrderSwap();
}

}

Solo "Profit" deve essere dichiarato come variabile frazionaria. Se aggiungiamo un controllo per comprare e vendere, saremo in grado di calcolare il profitto separatamente per gli ordini di vendita e di acquisto.


Grazie, ho capito...ma come chiudere tutti gli ordini aperti per tutte le coppie di valute in una volta sola? .... - anche usando la forza bruta? .... - non ci sono altre opzioni?
 
Integer:
Test in modalità visiva. Usate Comment() per emettere Line_7, Lines_1, Line_6. Vedere come cambiano e se le condizioni possono essere soddisfatte.


Le condizioni della transazione sono soddisfatte, ma la transazione no.
 
i999i:

Grazie, ho capito cosa intendo per profitto ... ma come faccio a chiudere tutti gli ordini aperti per tutti i simboli contemporaneamente? .... - anche usando la forza bruta? .... - nessun'altra variante?


Dovresti anche prendere in considerazione che se c'è più di un ordine, potrebbero non essere chiusi tutti in un ciclo. Dovresti anche prendere in considerazione che se c'è più di un ordine, potrebbero non essere chiusi tutti in un ciclo, e le condizioni non saranno soddisfatte al prossimo tick e gli ordini rimanenti rimarranno aperti. Ecco perché abbiamo bisogno di un'ulteriore variabile globale o statica. Se le condizioni di chiusura sono soddisfatte, impostiamo questa variabile a true. Poi, ad ogni tick, se la variabile è vera, chiudiamo tutti gli ordini nel ciclo; se siamo riusciti a chiuderli tutti, impostiamo la variabile false.

Motivazione: