Hilfe bei der Codierung - Seite 371

 

2014.10.15 12:36:23.875 Tester: Kann nicht laden Experten\Fisher Auto EA v1 m11

 

2014.10.15 12:36:23.875 Datei 'C:\Programme\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' kann nicht geöffnet werden [2]

 
grego:
2014.10.15 12:36:23.875 Die Datei 'C:\Programmdateien\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' kann nicht geöffnet werden [2]

Wenn Ihr EA kompiliert ist und, wie ich gesehen habe, auf einem Live-Chart geladen werden kann, ist das einzige, was das verursachen kann, ein neuer Metatrader 4 und seine Backtester-Bugs. Aber überprüfen Sie, ob der EA korrekt kompiliert ist

 

Deklaration von 'LeftNum1' verdeckt globale Deklaration in Zeile 20 fisher m111.mq4 119 8

vielleicht Problem zwischen Experte und Indikator!?

 
grego:
2014.10.15 12:36:23.875 Datei 'C:\Programmdateien\Forex Broker Inc MT4 Client Terminal\MQL4\Experts\Fisher Auto EA v1 m11.ex4' kann nicht geöffnet werden [2]

Schneller visueller Backtest dieses EA

Er funktioniert und öffnet (und schließt) Aufträge. Standard-Parameter verwendet

Dateien:
backtest.gif  66 kb
 

Hallo Leute wieder... eine weitere kleine Anfrage:

Kann mir jemand sagen, wie man doppelte Werte aus einem String-Array entfernt?

Bitte

Danke!

 
AtApi:
Hallo Leute... noch eine kleine Anfrage:

kann mir jemand sagen, wie man doppelte Werte aus einem String-Array zu entfernen?

Bitte

Danke!

Sie können ein oder mehrere Array-Elemente nur dann entfernen, wenn es sich um das letzte Element des Arrays handelt. Da das in 99,999% der Fälle nicht der Fall sein wird, müssen Sie ein neues leeres Array erstellen und nur eindeutige Elemente des bestehenden Arrays zu diesem neu erstellten Array hinzufügen

 

Danke mladen für deine Antwort.. sollte ich also so etwas tun?

int numDups = 0, prevIndex = 0;

string tempArray[];

for (int x = 0; x < ArraySize(myArray); x++)

{

bool foundDup = false;

for (int j = 0; j < x; j++)

{

if (myArray[x] == myArray[j])

{

foundDup = true;

numDups++; // Increment means Count for Duplicate found in array.

continue;

}

}

if (foundDup == false)

{

tempArray[prevIndex] = myArray[x]; prevIndex++;

}

}

 
AtApi:
Danke mladen für deine Antwort.. sollte ich also so etwas machen?

int numDups = 0, prevIndex = 0;

string tempArray[];

for (int x = 0; x < ArraySize(myArray); x++)

{

bool foundDup = false;

for (int j = 0; j < x; j++)

{

if (myArray[x] == myArray[j])

{

foundDup = true;

numDups++; // Increment means Count for Duplicate found in array.

continue;

}

}

if (foundDup == false)

{

tempArray[prevIndex] = myArray[x]; prevIndex++;

}

}

[/CODE]

Versuchen Sie etwas wie dies:

[CODE] string tempArray[];

for (int i = 0; i < ArraySize(meinArray); i++)

for (int j = i+1; j < ArrayGröße(meinArray); j++)

if (myArray == myArray[j]) myArray[j]="entfernen";

for (i = 0; i < ArraySize(meinArray); i++)

if (myArray != "remove") { ArrayResize(tempArray, ArraySize(tempArray)+1); tempArray[ArraySize(tempArray)-1]=myArray; }

 
mladen:
Versuchen Sie etwas wie dieses:
string tempArray[];

for (int i = 0; i < ArraySize(myArray); i++)

for (int j = i+1; j < ArraySize(myArray); j++)

if (myArray == myArray[j]) myArray[j]="remove";

for (i = 0; i < ArraySize(myArray); i++)

if (myArray != "remove") { ArrayResize(tempArray, ArraySize(tempArray)+1); tempArray[ArraySize(tempArray)-1]=myArray; }

Danke mladen!

das Problem dieser Weg ist, dass es nicht wirklich entfernen Sie die Zeichenfolge aus dem Array es nur ändern Sie den Wert der Zeichenfolge zu "entfernen" auf beiden ursprünglichen und doppelten Wert... so, wenn ich später filtern wollen sie ich den ursprünglichen Wert als gut zu entfernen... ich hoffe, ich bin klar.