Abenteuer eines Neulings - Seite 9

 

Tim,


Ich habe den Code so weit gebracht, dass beim Kompilieren keine Fehler mehr gemeldet werden (ich habe nur ein paar Fehler behoben, die Sie hervorgehoben haben), auch wenn er im Strategietester noch keine Geschäfte macht. Aber ich bin über etwas verwirrt:


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 



Die Parameter TopFilter und BottomFilter. Meinen Sie stattdessen die Parameter "TopFilters" und "BotFilters"? (Das sind die, die wir als Variablen auf globaler Ebene definiert haben. Die unten stehenden. Ich habe den Code entsprechend geändert, und es traten keine Fehler auf (das bedeutete, die Debug-Anweisung entsprechend zu ändern). Was sagt Ihr Guru dazu?

   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, 
 
niko:

Hey CB, ideal wäre ein Multipair-EA - das ist das, was Tim und ich versuchen, zu bauen. Ein Single-Pair-EA ist jedoch auch sehr wünschenswert, da ich dadurch lerne, wie man programmiert. Eure Codierungsstile sind unterschiedlich, und es ist eine ausgezeichnete Übung für mich, um zu sehen, wie die gleiche/ähnliche Idee unterschiedlich codiert werden kann. Außerdem dachte ich, wenn wir den einzelnen EA zuerst fertigstellen, würde ich ihn nutzen, um mir beim manuellen Handel zu helfen, aber es sieht so aus, als würden beide Codes jetzt etwa zur gleichen Zeit fertig werden

Ich bin mir nicht sicher, was genau Sie mit Single und Multi meinen. Wie beziehen sie sich auf das Modell, das ich oben beschrieben habe? d.h. Ein einzelner EA, der auf jedes Paar fallen gelassen werden könnte und nur mit dem Paar des Charts handeln würde, auf das er fallen gelassen wurde - und alle Handelsentscheidungen nur auf der Grundlage des Paars des Charts trifft, auf das er fallen gelassen wurde (eine einzige Codebasis zu pflegen). Ich versuche nur, die Terminologie richtig zu verstehen, damit ich weiß, was Sie wollen.


CB

 

Hallo CB,

In meinem vagen Verständnis, wie die EA's ausgeführt werden, was ich meinte, war 1. 1 EA, der ausgeführt werden kann und der mehrere Paare auf einmal handeln wird. 2. Ein einzelner EA, der auf einem bestimmten Chart abgelegt werden muss und somit NUR für diesen Chart gelten würde (die Frage ist, ob es möglich ist, einen einzelnen EA zu erstellen, der auf, sagen wir, 3 verschiedenen Charts abgelegt werden kann und trotzdem auf diesen 3 Charts funktionieren würde? Ich habe das schon einmal versucht, aber aus irgendeinem Grund wurde nur 1 Chart ausgeführt (alle anderen liefen nicht).

 
niko:

Hallo CB,

In meinem vagen Verständnis, wie die EA's ausgeführt werden, was ich meinte, war 1. 1 EA, der ausgeführt werden kann und der mehrere Paare auf einmal handeln wird. 2. Ein einzelner EA, der auf einem bestimmten Chart abgelegt werden muss und somit NUR für diesen Chart gelten würde (die Frage ist, ob es möglich ist, einen einzelnen EA zu erstellen, der auf, sagen wir, 3 verschiedenen Charts abgelegt werden kann und trotzdem auf diesen 3 Charts funktionieren würde? Ich habe das schon einmal versucht, aber aus irgendeinem Grund wurde nur 1 Chart ausgeführt (alle anderen liefen nicht).

Ja, das ist problemlos möglich. Einer meiner EAs:

- Kann auf mehrere verschiedene Charts gelegt werden (die gleichzeitig auf derselben Plattforminstanz oder auf einer separaten Plattforminstanz laufen - je nachdem, was Sie wählen)

- trifft seine Entscheidungen nur auf der Grundlage des Paares, das mit dem Chart verbunden ist, auf dem er läuft

- Handelt nur für das Paar, das mit diesem Chart verbunden ist


CB

 

Danke, CB, das wusste ich nicht. Ich werde diese Woche mehr Zeit damit verbringen, die beiden Codes zu vergleichen. Ich habe sogar beide ausgedruckt und werde sie überall in meinem Zimmer aushängen, um zu versuchen, besser zu verstehen, was vor sich geht. die logischen Gründe hinter der Codierung zu verstehen, ist wahrscheinlich das Schwierigste, womit ich im Moment konfrontiert bin.

 
niko:

Danke, CB, das wusste ich nicht. Ich werde diese Woche mehr Zeit damit verbringen, die beiden Codes zu vergleichen. Ich habe sogar beide ausgedruckt und werde sie überall in meinem Zimmer aushängen, um zu versuchen, besser zu verstehen, was vor sich geht. die logische Argumentation hinter der Codierung zu verstehen, ist wahrscheinlich das Schwierigste, womit ich im Moment konfrontiert bin.

Ok, wenn du in dem Code, den ich dir hinterlassen habe, auf etwas stößt, das du nicht verstehst, dann frag einfach.


CB.

 
Danke, CB. Das werde ich auf jeden Fall tun! Ich gehe es gerade durch
 

CB, ich brauche Ihre Weisheit. Ich kann nicht scheinen, um herauszufinden, die Fehler in den Compiler (und es ist die gleichen, die ich vor begegnet und wusste nicht, was zu tun ist). In der Reihenfolge der Fehler. könnten Sie etwas Licht pro Fehler teilen, so dass ich weiß, was das nächste Mal zu tun.


1. Beschreibung: " 'for' - semicolon expected." Meines Erachtens stimmt etwas mit den Klammern nicht, da diese Zeile kein ; benötigt.

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


2. Beschreibung: " 'c'-Ausdruck im globalen Bereich nicht erlaubt". Dieselbe Zeile wie oben. Ich verstehe das nicht, wie können sie eine globale Variablendeklaration nicht zulassen? Außerdem verwenden viele Leute diesen Code und er funktioniert einwandfrei.

3. Beschreibung "NUM_CURRENCY_PAIRS" - Ausdruck im globalen Bereich nicht erlaubt". Aber ich habe dies bereits neben Externals deklariert, also kann es nicht globaler werden als das!

4. description : "{ expression on global scope not allowed. Die Klammern für den untenstehenden Code scheinen nicht zu passen.

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


Vielen Dank,

Nick

 
niko:

CB, ich brauche deine Weisheit. Ich kann nicht scheinen, um herauszufinden, die Fehler in den Compiler (und es ist die gleichen, die ich vor begegnet und wusste nicht, was zu tun ist). In der Reihenfolge der Fehler. könnten Sie etwas Licht pro Fehler teilen, so dass ich weiß, was das nächste Mal zu tun.


1. Beschreibung: " 'for' - semicolon expected." Meines Erachtens stimmt etwas mit den Klammern nicht, da diese Zeile kein ; benötigt.


2. Beschreibung: " 'c'-Ausdruck im globalen Bereich nicht erlaubt". Dieselbe Zeile wie oben. Ich verstehe das nicht, wie können sie eine globale Variablendeklaration nicht zulassen? Außerdem verwenden viele Leute diesen Code und er funktioniert einwandfrei.

3. Beschreibung "NUM_CURRENCY_PAIRS" - Ausdruck im globalen Bereich nicht erlaubt". Aber ich habe dies bereits neben Externals deklariert, also kann es nicht globaler werden als das!

4. description : "{ expression on global scope not allowed. Die Klammern für den untenstehenden Code scheinen nicht zu passen.


Vielen Dank,

nick

Können Sie bitte den gesamten Code, den Sie zu kompilieren versuchen, posten? Danke.


CB

 
Dein Wunsch ist mir Befehl (ich wollte eigentlich 'Überflieger' sagen, aber dann habe ich im Online-Wörterbuch nachgeschaut und anscheinend ist das eine unhöfliche Bemerkung, also vergiss es)