les aventures d'un débutant - page 9

 

Tim,


J'ai obtenu le code au point où il n'y a pas d'erreurs signalées lorsqu'il est compilé (il s'agissait juste de corriger quelques bugs que vous avez soulignés), même si dans le testeur de stratégie, il ne fait pas encore de transactions. Mais il y a quelque chose qui m'intrigue :


int EntryRules(string CurrencySymbol, double TopFilter, double BottomFilter)  //Tim: string CurrencySymbol not CurrencySym right?
{

      emas_Up =  (ema7>ema14) && (ema14>sma50);
      if (emas_Up && Ask < TopFilter) // Note the TopFilter value  is a parameter passed to the function just like CurrencySymbol. These have not been defined anywhere as global variables.
         result = LONG_ENTRY;   // We have assigned the manifest constant to the local variable result 



Les paramètres TopFilter et BottomFilter. Voulez-vous dire plutôt les paramètres 'TopFilters' et 'BotFilters' ? (ce sont ceux que nous avons définis comme variables au niveau global. Ceux qui sont en dessous. J'ai modifié le code pour refléter cela, et il n'a produit aucune erreur (cela signifiait changer la déclaration de débogage en conséquence). Quel est votre avis de gourou à ce sujet ?

   double TopFilters[NUM_CURRENCY_PAIRS];     // So we just define uninitialised arrays of the required size
   double BotFilters[NUM_CURRENCY_PAIRS];    // This is Step 1/2 for array building. Step 2/2 is to assign a numerical value to each element, 
Dossiers :
 
niko:

Hé CB, l'idéal est d'avoir un EA à paires multiples - ce que Tim et moi essayons de construire. Cependant, un EA à paire unique est également très souhaitable car il m'apprend à coder. Vos styles de codage diffèrent et c'est un excellent exercice pour moi de voir comment une idée identique/similaire peut être codée différemment. De plus, je pensais que si nous terminions d'abord l'EA unique, je l'utiliserais pour m'aider à faire du trading manuel, mais il semble que les deux codes seront terminés en même temps maintenant.

Je ne suis pas sûr de ce que vous entendez par simple et multi. Comment se rapportent-ils au modèle que j'ai décrit ci-dessus ? c'est-à-dire un seul EA qui pourrait être déposé sur n'importe quelle paire et qui traderait uniquement sur la paire du graphique sur lequel il a été déposé - prenant toutes les décisions de trading basées uniquement sur la paire du graphique sur lequel il a été déposé (une seule base de code à maintenir). J'essaie juste de clarifier la terminologie pour savoir ce que vous voulez.


CB

 

Hey CB,

Dans ma vague compréhension de la façon dont les EA sont exécutés, ce que je voulais dire c'est 1. 1 EA qui peut être exécuté et qui tradera plusieurs paires à la fois. 2. Une seule EA qui doit être déposée sur un graphique spécifique et qui s'appliquerait donc à ce graphique UNIQUEMENT (la question est : est-il possible de faire une seule EA qui peut être déposée sur disons 3 graphiques différents et qui fonctionnerait toujours sur ces 3 graphiques ? J'ai déjà essayé mais pour une raison quelconque, seul un graphique a été exécuté (tous les autres n'ont pas fonctionné).

 
niko:

Hey CB,

Dans ma vague compréhension de la façon dont les EA sont exécutés, ce que je voulais dire c'est 1. 1 EA qui peut être exécuté et qui tradera plusieurs paires à la fois. 2. Une seule EA qui doit être déposée sur un graphique spécifique et qui s'appliquerait donc à ce graphique UNIQUEMENT (la question est : est-il possible de faire une seule EA qui peut être déposée sur disons 3 graphiques différents et qui fonctionnerait toujours sur ces 3 graphiques ? J'ai déjà essayé mais pour une raison quelconque, seul un graphique a été exécuté (tous les autres n'ont pas fonctionné).

Oui, c'est facilement possible. Un de mes EAs :

- Peut être déposé sur plusieurs graphiques différents (qui s'exécutent simultanément dans la même instance de plateforme ou qui s'exécutent chacun sur une instance de plateforme séparée - selon votre choix).

- Prendra ses décisions uniquement sur la base de la paire associée au graphique sur lequel il fonctionne.

- Négociera uniquement pour la paire associée à ce graphique.


CB

 

Merci CB, je ne le savais pas. Je vais passer plus de temps cette semaine à comparer les 2 codes, en fait je les ai imprimés tous les deux et je vais les afficher partout dans ma chambre pour essayer de mieux comprendre ce qui se passe. comprendre le raisonnement logique derrière le codage est probablement la chose la plus difficile à laquelle je suis confronté en ce moment.

 
niko:

Merci CB, je ne le savais pas. Je vais passer plus de temps cette semaine à comparer les 2 codes, en fait je les ai imprimés et je vais les afficher partout dans ma chambre pour essayer de mieux comprendre ce qui se passe. Comprendre le raisonnement logique derrière le codage est probablement la chose la plus difficile à laquelle je suis confronté en ce moment.

Ok, si vous rencontrez quelque chose que vous ne comprenez pas dans le code que je vous ai laissé, n'hésitez pas à demander.


CB.

 
Merci CB. Je le ferai certainement ! Je suis en train de le faire en ce moment même
 

CB, j'ai besoin de ta sagesse. Je n'arrive pas à comprendre les erreurs du compilateur (et ce sont les mêmes que j'ai rencontrées auparavant et je ne savais pas quoi faire). Dans l'ordre des erreurs. Pourriez-vous partager un peu de lumière par erreur afin que je sache quoi faire la prochaine fois.


1. Description : " 'for' - point-virgule attendu " Je crois comprendre qu'il y a un problème avec nos parenthèses, car cette ligne n'a pas besoin de ;.

for (int c=0;c<NUM_CURRENCY_PAIRS;c++) 


2. description : " 'c' -expression sur la portée globale non autorisée ". Même ligne que ci-dessus. Je ne comprends pas, comment peuvent-ils ne pas autoriser une déclaration de variable globale ? De plus, de nombreuses personnes utilisent ce code et il fonctionne bien.

3. description : " NUM_CURRENCY_PAIRS " - expression sur la portée globale non autorisée ". Mais j'ai déjà déclaré ceci à côté des externes, donc ça ne peut pas être plus global que ça !

4. description : "{expression on global scope not allowed. Il semble ne pas aimer les parenthèses pour le code ci-dessous.

{
   sSignal = fnGenerateSignal();						// change this to "sGignal = fnGenerateSignal();" ***done
   if (fnShouldWeTrade())
    fnTrade();                                                            // change this to "fnTrade();"**done
   return(0);
   }


Merci,

nick

 
niko:

CB, j'ai besoin de ta sagesse. Je n'arrive pas à comprendre les erreurs du compilateur (et ce sont les mêmes que j'ai rencontrées auparavant et je ne savais pas quoi faire). Dans l'ordre des erreurs. Pourriez-vous partager un peu de lumière par erreur afin que je sache quoi faire la prochaine fois.


1. Description : " 'for' - point-virgule attendu " Je crois comprendre qu'il y a un problème avec nos parenthèses, car cette ligne n'a pas besoin de ;.


2. description : " 'c' -expression sur la portée globale non autorisée ". Même ligne que ci-dessus. Je ne comprends pas, comment peuvent-ils ne pas autoriser une déclaration de variable globale ? De plus, de nombreuses personnes utilisent ce code et il fonctionne bien.

3. description : " NUM_CURRENCY_PAIRS " - expression sur la portée globale non autorisée ". Mais j'ai déjà déclaré ceci à côté des externes, donc ça ne peut pas être plus global que ça !

4. description : "{expression on global scope not allowed. Il semble ne pas aimer les parenthèses pour le code ci-dessous.


Merci,

nick

Pouvez-vous poster l'intégralité du code que vous essayez de compiler, s'il vous plaît. Merci.


CB

 
Your wish is my command (j'allais dire "high flyer" mais j'ai regardé le dictionnaire en ligne et apparemment c'est un commentaire grossier, c'est pas grave).
Raison: