Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 380

 
Integer:


Non.

C'est comme ça qu'il faut faire :


C'est ça ! Merci ! ;)
 
Integer:

Déplacez le curseur jusqu'à la première parenthèse ouvrante après OrderSend, supprimez cette parenthèse, entrez à nouveau, cela fera apparaître une infobulle avec le type de paramètres, vérifiez si tous les paramètres sont du même type.

Merci beaucoup, je n'avais pas mis de date d'expiration de la commande, maintenant ça marche !
 
Integer:
Mesure de la vitesse du cycle avant et arrière. 100 commandes, le cycle inverse est 5 fois plus rapide. Mais il n'y a jamais autant de commandes, 10 au maximum. S'il y a 10 commandes, la vitesse est 3 fois plus rapide. Il est palpable de choisir le cycle inverse.

La boucle s'exécute-t-elle en une fois ou en plusieurs fois ?
 
Example2:

La boucle est-elle exécutée en un seul tic ou en plusieurs ticks ?

Je ne comprends pas. Il s'exécute et c'est tout, les tics n'ont rien à voir avec ça.
 
//|+-------------------------------------------------------------------------------------------------------+
//|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;}}
C'est mon expert en chagrin tronqué. :)
Il ne fait pas d'affaires.
Je n'arrive pas à comprendre la raison.
Aidez-nous, s'il vous plaît.
 

Le testeur donne constamment l'erreur 138 (Requested price out of date) lors de la fermeture de plusieurs positions ouvertes. En outre, une position se ferme normalement, tandis que celle ouverte ultérieurement ne se ferme pas avec l'erreur 138. Peut-être que les développeurs peuvent répondre, comment le prix peut devenir obsolète sur la base des données historiques ou y a-t-il d'autres paramètres qui sont utilisés dans l'algorithme pour identifier cette erreur ? Si nous plaçons OrderClose dans la boucle infinie avec une référence constante à RefreshRates à l'intérieur, la position ne se fermera pas et l'erreur 138 se produira toujours. Bien sûr, la boucle n'est pas terminée, bien que nous ayons défini la sortie à la fermeture de la position.

Mon compte de démonstration a été ouvert chez Alpari. Je n'ai pas téléchargé d'historique supplémentaire, mais j'ai obtenu beaucoup d'erreurs, comme : 2013.12.29 16:27:09 TestGenerator : unmatched data error (volume limit 10340 at 2013.08.23 12:00 exceeded), etc.

Quelqu'un peut-il me conseiller sur la marche à suivre dans cette situation ? Et quel est ce testeur qui ne peut pas fermer des positions en quelques bougies de 4 heures ?

 
Link_x:
C'est mon expert en chagrin tronqué. :)
Il ne fait pas d'affaires.
Je n'arrive pas à comprendre la raison.
Aidez-nous, s'il vous plaît.
Test en mode visuel. Utilisez Comment() pour sortir Line_7, Lines_1, Line_6. Voyez comment elles changent, si les conditions peuvent être remplies.
 
Example2:

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

}

Seul "Profit" doit être déclaré comme une variable fractionnaire. Si nous ajoutons un contrôle pour l'achat et la vente, nous pourrons calculer le bénéfice séparément pour les ordres de vente et d'achat.


Merci, j'ai compris... mais comment fermer tous les ordres ouverts pour toutes les paires de devises en une seule fois ? .... - en utilisant également la force brute ? .... - pas d'autres options ?
 
Integer:
Test en mode visuel. Utilisez Comment() pour sortir Line_7, Lines_1, Line_6. Voyez comment ils changent et si les conditions peuvent être remplies.


Les conditions de la transaction sont remplies, mais la transaction ne l'est pas.
 
i999i:

Merci, je vois ce que je veux dire à propos du profit ... mais comment puis-je fermer tous les ordres ouverts pour tous les symboles simultanément ? .... - en utilisant également la force brute ? .... - pas d'autres variantes ?


Vous devez également tenir compte du fait que s'il y a plus d'une commande, il se peut qu'elles ne soient pas toutes clôturées en un seul cycle. Vous devez également tenir compte du fait que, s'il y a plus d'un ordre, il se peut qu'ils ne soient pas tous fermés en un cycle, et que les conditions ne seront pas remplies au tick suivant et que les ordres restants resteront ouverts. C'est pourquoi nous avons besoin d'une variable globale ou statique supplémentaire. Si les conditions de fermeture sont remplies, nous mettons cette variable à true. Ensuite, à chaque tick, si la variable est vraie, nous fermons tous les ordres dans la boucle ; si nous avons réussi à tous les fermer, nous mettons la variable fausse.