Hi, hast du mal versucht den ACD-Code in esignal umzusetzen ? Bei meinem ersten Versuch MT-ACD auf den Bund mt dem IB-Simulationaccount automatisch zu handeln (mit manuell eingetragenen Werten für Oup/Odn), endete damit, dass in einer Minute 58 Kauf- und Verkaufsaufträge abgeschickt wurden.
Ich kam bis jezt nur zur Barrange mit Box-Wh.
Zitat:
function main(){
MyVal = CustomAverageRange( 30 );
//Average will be in array index 0 and standard deviation will be
//in array index 1
theAverage = MyVal [ 0];
theStdDev = MyVal [ 1 ];
return new Array(theAverage,theStdDev);
}
function CustomAverageRange( nBars ) {
var x=0;
var nRemove = null;
var nMin = null;
var nMax = null;
var nPrd = null;
var aVals = null;
var nAvg = 0;
var nSumAvg = 0;
//smallest value you can pass to this function is 4
if ( nBars<4 ) nBars = 4;
//gather the range values over the specified period
while( x
aVals[x] = ( high(-x, inv("d"))-low(-x, inv("d")) );
x++;
}
//sort the array
aVals.sort(SortMe);
//calculate the average. We are ignoring 1/6 of the lower values
//and 1/6 of the higher values
x=nMin;
while( x
nAvg += aVals[x];
x++;
}
nAvg /= nPrd;
//calculate the standard deviation using the same process
x=nMin;
while( x
nSumAvg += Math.pow( ( aVals[x]-nAvg ), 2 );
x++;
}
nSumAvg /= nPrd;
nStdDev = Math.sqrt( nSumAvg );
return new Array( nAvg, nStdDev );
}
function SortMe( arg1, arg2 ) {
if (arg1
return( -1 )
}
else {
return( 1 );
}
}
wuelle
Bis jetzt hatte ich noch keine Logik für Box Whisker gefunden. Mit Deinem Code sieht die Welt schon wieder anders aus! Darauf kann man sicher aufbauen.
Als erstes habe ich mir mal die 30 Bar Box Whisker Barrange im Vergleich zur konventionellen 30 Bar Average True Range angesehen. Damit man den Unterschied sieht.
In einem zweiten Schritt würde ich mit dem gleichen Verfahren die OpenUps und OpenDowns berechnen, unabhängig von der Pivotlage.
while( x aVals[x] = ( high(-x, inv("d"))-open(-x, inv("d")) );
x++;
while( x aVals[x] = ( low(-x, inv("d"))-open(-x, inv("d")) );
x++;
Hast Du das schon mal ausprobiert?
Das Problem, daß eSignal eine Flut an Orders an die TWS feuert, habe ich auch schon bewundert. Gelöst hab´ich es noch nicht.
_________________
Zuletzt bearbeitet von wp am 15.02.2006, 13:59, insgesamt einmal bearbeitet
wp
Anmeldedatum: 29.08.2005 Beiträge: 388
Verfasst am: 15.02.2006, 14:11
So, jetzt fehlt nur noch die Fallunterscheidung, die Kauf und-Verkaufsbedingungen und eine Vereinfachung/Ausmistung des Codes.
Vorsicht: Der Code ist extrem CPU-intensiv, da er die Daten der letzten 30 Tage holen muss und "schlecht" geschrieben ist.
Zuletzt bearbeitet von wp am 15.02.2006, 14:21, insgesamt einmal bearbeitet
wp schrieb am 15.02.2006 15:11
Vorsicht: Der Code ist extrem CPU-intensiv, da er die Daten der letzten 30 Tage holen muss und "schlecht" geschrieben ist.
@ WP, the codepusher :-)
Sieht Klasse aus! Wir sollten an dem CPU Problemchen arbeiten. Dazu mache ich folgenden Vorschlag:
Wenn man in Deinen Code direkt hinter "function main" die Zeile
Zitat:
if ( getBarStateInterval("D") == BARSTATE_NEWBAR ) { //Check new day
...
...
}
einsetzt, kann man eine Beschleunigung erreichen, wie in dem Nachbar Thread beschrieben.
Ich habe aber die abschließende Klammer hinter "return new Array" offensichtlich falsch gesetzt, denn das Progarmm rechnet zwar die Levels im Handumdrehen aus, zeichnet auch die Texte, aber die Linien fehlen.
Könntest Du bitte mal nachschauen, wo man die Zeile //Check new Day korrekt einsetzen muß.
Thanks!
Werde mich ansonsten mal durch den Code wühlen und versuchen auf das Open umzustellen, damit man mit Joram´s Levels vergleichen kann.
wp
Anmeldedatum: 29.08.2005 Beiträge: 388
Verfasst am: 17.02.2006, 09:55
@ wuelle
Wo man die Zeile einsetzen muss konnte ich nicht herausfinden. Ich habe jetzt mal die Lern-Videos heruntergeladen und werde mich am Wochenende mit Javascript beschäftigen.
Ich bin immer noch am rätseln wie intern die Werte berechnet werden bzw. wo der Unterschied ziwschen getValue, getSeries, dem direkten Einsatz mit [ 1 ] und den arrays ist.
wuelle
Anmeldedatum: 24.08.2005 Beiträge: 336
Verfasst am: 17.02.2006, 11:42
@WP
Ich habe nochmal Deinen Code aus dem Link zum Download neu heruntergeladen. Seltsamerweise bekomme ich jetzt einen eSignal Crash, obwohl dieser Code schon bei mir gelaufen ist.
Hast Du eine Idee, woran das liegen könnte?
_________________
wp
Anmeldedatum: 29.08.2005 Beiträge: 388
Verfasst am: 02.03.2006, 16:35
@wuelle
Crash hatte ich in den letzten Tagen nicht, aber weitergekommen bin ich mit dem Code noch nicht.