Al enige tijd ben ik het automatisch traden aan het testen. Ik gebruik hiervoor Ninjatrader(NT) en IB. Bij een signaal schrijft Vestics een bestand weg die NT leest ?en de order doorgeeft aan het TWS van IB. Daarnaast houdt Vestic ook nog een logfile bij zodat je, mocht het fout gaan, kunt nagaan of en wat Vestics heeft weggeschreven.
Het prgramma werkt alleen met signalen aan het EIND van de bar. Hiervoor moet je bij grafiekeigenschappen de optie ?grafiek bij elke tick verversen UIT zetten. Je kunt het bv gebruiken voor de ROCEMA die op deze manier werkt.
De logfile logfile.txt moet je eerst even aanmaken in de map
c:\Program Files\Ninjatrader\Ninjatrader version 3\AT
De vesticode moet je naar een nieuwe indicator kopieren met de naam NinjaDax. Hier wordt op een future van de dax gehandeld die je eerst in NT moet definieren. Wil je op iets anders handelen dan moet je DAX vervangen door een ander symbool, gedefinieerd in NT.
Deze indicator moet je toevoegen na het handelssysteem en evt aparte stops.
Iedereen zal begrijpen dat ik geen enkele verantwoording aanvaard mocht iemand deze code gebruiken voor het echt handelen.
Mocht je echt geinteresseerd zijn download Ninjatrader, lees alle documentatie en ga in simulatiemode automated trading.
mvg
Cees
Ps Als Pierre de koppeling met IB klaar heeft kan de oplossing met NT komen te vervallen.
value function NinjaDax
?Begin
?value xMarketPosition;
?String Ninjamap,tijd;
?{-------NINJA TRADER--------}
NinjaMap='C:\Program Files\NinjaTrader\NinjaTrader Version 3\AT\';
tijd=Numtostr(Currenttime);
if CurrentBar=vLastBar then
begin
{-----Long entry-----}
if (xMarketPosition=0) and (MarketPosition=1) then
Begin
Print(File(NinjaMap+'order.txt'),'DAX,1,GTC,BUY,MKT,,,,,,,TRUE,,');
FileAppend(NInjaMap+'Logfile.txt',tijd+' ?#1 DAX,1,GTC,BUY,MKT,,,,,,,TRUE,,');
End;
{----Short Entry------}
if (xMarketPosition=0) and (MarketPosition=-1) then
Begin
Print(file(NinjaMap+'order.txt'),'DAX,1,GTC,SELL,MKT,,,,,,,TRUE,,');
FileAppend(NInjaMap+'Logfile.txt',tijd+' ?#2 DAX,1,GTC,SELL,MKT,,,,,,,TRUE,,');
End;
{----Close Long Position--}
if (xMarketPosition=1) and (MarketPosition=0) then
Begin
Print(file(NinjaMap+'close.txt'),'DAX');
FileAppend(NInjaMap+'Logfile.txt',tijd+' ?#3 DAX ?CLOSE');
End;
{----Close Short Position--}
if (xMarketPosition=-1) and (MarketPosition=0) then
Begin
Print(file(NinjaMap+'close.txt'),'DAX');
FileAppend(NInjaMap+'Logfile.txt',tijd+' ?#4 DAX ? CLOSE');
End;
{-----Reverse Long->Short --}
if (xMarketPosition=1) and (MarketPosition=-1) then
Begin
Print(file(NinjaMap+'reverse.txt'),'DAX,1,,');
FileAppend(NInjaMap+'Logfile.txt',tijd+' ?#5 DAX,1,, ?REVERSE');
End;
{-----Reverse Short->Long--}
if (xMarketPosition=-1) and (MarketPosition=1) then
Begin
Print(file(NinjaMap+'reverse.txt'),'DAX,1,,');
FileAppend(NInjaMap+'Logfile.txt',tijd+' ?#6 DAX,1,, ?REVERSE');
End;
End;
xMarketPosition=MarketPosition;
?end;
?