Fehler, Irrtümer, Fragen - Seite 2310

 
ExpertRemove arbeitet im Optimierungsmodus nicht korrekt.
input int Range = 0; // 1 .. 10

bool FuncInit()
{
  ExpertRemove();
  
  return(true);
}

int Count = 0;

void OnTick()
{
  static const bool Init = FuncInit();
  
  Count++;
}

double OnTester()
{
  return(Count);
}


Optimierung der Ausführung. Aus dem Code ist ersichtlich, dass alle Durchläufe durch ExpertRemove beendet werden sollten. Aber das passiert nicht:

Core 5  pass 8 tested with error "expert removed itself in global initialization function" in 0:00:00.312
Core 5  pass 9 returned result 331851.00 in 0:00:00.125
Core 4  pass 6 tested with error "expert removed itself in global initialization function" in 0:00:00.265
Core 4  pass 7 returned result 331851.00 in 0:00:00.140
Core 1  pass 0 tested with error "expert removed itself in global initialization function" in 0:00:00.312
Core 1  pass 1 returned result 331851.00 in 0:00:00.125
Core 3  pass 4 tested with error "expert removed itself in global initialization function" in 0:00:00.296
Core 3  pass 5 returned result 331851.00 in 0:00:00.156
Core 8  pass 2 tested with error "expert removed itself in global initialization function" in 0:00:00.265
Core 8  pass 3 returned result 331851.00 in 0:00:00.140
Tester  optimization finished, total passes 10
Statistics      optimization done in 0 minutes 01 seconds
Statistics      shortest pass 0:00:00.125, longest pass 0:00:00.156, average pass 0:00:00.137
Statistics      local 10 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Die Hälfte der Pässe hat ExpertRemove ignoriert. Ist sie reproduzierbar?


ZY Dies führt zu Diskrepanzen zwischen einzelnen Durchgängen und Optimierungen.

 
fxsaber:
typedef void (*FUNC)();
void f1() {};

void f2()
{
   f1();
}

void f2( FUNC g) 
{
   g();
}

Dies ist im Wesentlichen dasselbe wie eine einzelne Funktion mit einem Standardparameter. So wird es normalerweise gehandhabt, es ist also keine Umgehung oder Krücke, sondern eine ganz normale Lösung.

 
TheXpert:

Im Grunde ist es dasselbe wie eine Funktion mit einem Standardparameter. So wird es normalerweise gelöst, es ist also kein Workaround oder eine Krücke, sondern eine ganz normale Lösung.

Die Möglichkeit der Überlastung ist verständlich. Aber es ist überhaupt nicht flexibel, so etwas für jede Funktion zu erstellen. Kann man das nicht auch in C++ schön machen?

 
fxsaber:

Die Möglichkeit der Überlastung ist verständlich. Aber es ist überhaupt nicht flexibel, so etwas für jede Funktion zu erstellen. Können wir es nicht auch in C++ schön machen?

Ich weiß nicht, C++ ist flexibler mit Konstanten, aber ich habe nicht mit Funktionszeigern als Standardparameter gearbeitet

UPD g++ frisst Ihren Code
 
TheXpert:

hz, C++ ist flexibler mit Konstanten, aber ich habe nicht speziell mit Funktionszeigern als Standardparameter gearbeitet

UPD g++ frisst Ihren Code mit Bravour

Vielen Dank für die Informationen!

 
fxsaber:

Wie kann ich einen Standardwert für den Eingabeparameter einer Funktion festlegen?

Sie können pythonähnlichen Code verwenden

typedef void (*FUNC)();

void f0() {Print(__FUNCSIG__);};
void f1() {Print(__FUNCSIG__);};

void f2( FUNC g = NULL ) {
   if (g == NULL){g = f1;}
   
   g();
}


void OnStart()
{
   f2();
   f2(f0);
}
 
Sergey Dzyublik:

Sie können pythonähnlichen Code verwenden

Danke, ich wusste nicht, dass es NULL gibt.

 

Im Testerbericht wird bei der Berechnung der mathematischen Erwartung von zwei zusammengefallenen Positionen durch CloseBy durch zwei statt durch eins geteilt. Daher erhalten wir falsche Werte im Bericht.


Und solche Missgeschicke bei CloseBy im Bericht


 

Привет

Ich habe dieses [Produktname Markt wurde vom Moderator gelöscht] für mich gemietet und ich konnte die Einstellungen nicht ändern, Position Nummer drei 3 max

wie man die Anzahl der gleichzeitigen Kauf- und Verkaufspositionen ändert

Philip

 
foonet:

Diskussionen über Marktprodukte sind in diesem Forum leider verboten.
Diskussionen über Marktprodukte sind in diesem Forum leider verboten.