eSignal (www.esignal.com) rappresenta il terzo datafeed mondiale ed è una piattaforma informativa molto utilizzata non solo da un pubblico privato ma soprattutto da una clientela istituzionale. A renderla tanto amata sono soprattutto l’elevata qualità dei dati forniti in real time le sue grandi potenzialità grafiche tra cui citiamo:
-
possibilità di costruire grafici sintetici spread di qualunque combinazione di strumenti finanziari;
-
disponibilità di oltre 150 indicatori grafici tra cui Andrews’Pitchfork, estensioni di Fibonacci, price ruler, rettangoli, ellissi, ecc..
-
alert anche sugli studi grafici al raggiungimento di un prezzo via audio, pop up, email;
-
settaggio di line templates: per definire con un click gruppi di indicatori grafici;
-
chart e book trading: per piazzare ordini discrezionalmente e automaticamente via trading system, anche con proprie regole di money management;
-
funzione replay: per tornare indietro nel tempo e studiare il comportamento delle proprie strategie.
Quello che ci interessa sottolineare in questa sede sono però le potenzialità di eSignal come piattaforma di progettazione di trading systems. eSignal ha introdotto fin dal 2004 il linguaggio EFS (eSignal Formula Script) derivato dal Javascript 1.5. Si tratta di un linguaggio ad oggetti molto usato in finanza dagli operatori istituzionali, potente e flessibile che consente di progettare algoritmi sofisticati. eSignal dispone si di un tradizionale editor ma completato però da una funzione denominato EFS TOOL BOX che consente di scrivere i codici selezionando le varie reserved words (ognuna accompagnanta da una spiegazione) e di inserirle direttamente sul grafico con un click evitando di compiere errori di digitazione. Il linguaggio EFS è case sensitive, ossia distingue maiuscole e minuscole ed un banale errore di questo tipo comporta il non funzionamento del listato. Per i principianti che non conoscono la programmazione e sono desiderosi di testare le proprie idee di trading esiste anche un Wizard, un assistente alla compilazione che permette di realizzare codici non troppo complessi. A livello di backtesting eSignal dispone di un report con oltre 250 parametri di valutazione delle proprie strategie e numerosi grafici di valutazione delle equity line e delle performance. Per chi volesse diversificare le proprie strategie anche con trading system sviluppati da professionisti è possibile sfruttare i numerosi studi Add On (a pagamento) . Sottolineiamo inoltre come sia possibile interfacciare direttamente i trading system con numerosi broker eseguendo così le strategie in modo completamente automatizzato. Con la nuova versione 11.3 eSignal permette di introdurre dentro ad una tabella watchlist sia i valori in tempo reale di un indicatore o studio sia di un trading system o indicatore di proprietà sviluppato tramite il linguaggio di programmazione eSignal Formula Script (EFS) per una immediata visualizzazione di segnali di Alert o veri e propri Buy/Sell.
Purtroppo da un paio d’anni l’assistenza non ha più sede italiana ma a Londra.
Riportiamo l’esempio di un listato EFS basato sullo oscillatore stocastico:
function preMain() {
setPriceStudy(false);
setStudyTitle(“EM_Stockas 1.1”);
setCursorLabelName(“Fastk”, 0);
setCursorLabelName(“FastD”, 1);
setDefaultBarStyle(PS_SOLID, 0);
setDefaultBarStyle(PS_SOLID, 1);
setDefaultBarFgColor(Color.purple, 0);
setDefaultBarFgColor(Color.red, 1);
setDefaultBarThickness(1, 0);
setDefaultBarThickness(1, 1);
setPlotType(PLOTTYPE_LINE, 0);
setPlotType(PLOTTYPE_LINE, 1);
}
function main() {
if ((stochK(14, 1, 3) > stochD(14, 1, 3)) && (stochD(14, 1, 3) >= 75))
{
Strategy.doLong(“Buy”, Strategy.CLOSE, Strategy.THISBAR, Strategy.DEFAULT, 0);
Alert.playSound(“C:\\Programmi\\DBC\\eSignal\\Sounds\\Chimes.wav”);
Alert.addToList(getSymbol(), “Buy”, Color.RGB(0,0,0), Color.RGB(0,0,255));
}
if ((stochK(14, 1, 3) < stochD(14, 1, 3)) && (stochD(14, 1, 3) <= 25))
{
Strategy.doShort(“Sell”, Strategy.CLOSE, Strategy.THISBAR, Strategy.DEFAULT, 0);
Alert.addToList(getSymbol(), “EnterShort”, Color.RGB(0,0,0), Color.RGB(195,0,0));
Alert.playSound(“C:\\Programmi\\DBC\\eSignal\\Sounds\\Ding.wav”);
}
if(Strategy.isShort())
setBarBgColor(Color.yellow);
if (Strategy.isLong())
setBarBgColor(Color.green);
return new Array (stochK(14, 1, 3), stochD(14, 1, 3));