makeev
Jr. Member
Сообщений: 85
|
|
« : 28.02.2011, 08:34:46 » |
|
На днях пытался воссоздать возможность проведения тестирования по средствам языка ATF, вот показываю первые плоды. Скипт далеко несовершенен, но он отображает идею. Если идея интересна, то предлагаю в этой ветки отображать свои идеи и предложения.
сам скрипт:
#samewindow extern "string" filename = "export.txt"; var f; extern fast = 9; extern slow = 14; extern trade = 1; // акций по умолчанию var trend = 0; var time; var timeday; var timemonth; var timeyear; var transaction; //номер операции var dipozit = 100000; //дипозит портфеля var portfolio =0; //портфель акций var amount =0; // объем по операции
function init() { setInitCandles(1);
f = new_object("file"); f.wopen(filename); f.write("ИНСТРУМЕНТ"+";"); f.write("№ ТРАНЗАКЦИИ"+";"); f.write("ВРЕМЯ"+";"); f.write("ЦЕНА"+";"); f.write("КУПЛЕНО"+";"); f.write("ПРОДАНО"+";"); f.write("ОБЪЕМ"+";"); f.writeLn("ДИПОЗИТ"+";");
}
function calc() { var sell =0; var buy =0; var a=0; var cv=0;
line[0] = MovAvg(ind_ema, fast, pt_close); line[1] = MovAvg(ind_ema, slow, pt_close);
time = getHour(getCandleTime())*60+getMinute(getCandleTime()); timeday=getDay(getCandleTime()); timemonth=getMonth(getCandleTime()); timeyear=getYear(getCandleTime());
// Покупка
if (trend == -1 and line[0] > line[1] ){
if (portfolio==0 and cv!=noCandle() ){ a=1;
amount= close*trade; dipozit=dipozit-amount; portfolio=portfolio+trade; transaction = transaction + 1; buy =trade; cv=noCandle(); } }
// Продажа if (trend == 1 and line[0] < line[1] ){
if (portfolio>0 and cv!=noCandle() ){ a=1;
amount= close*trade; dipozit=dipozit+amount; portfolio=portfolio-trade; transaction = transaction + 1; sell=-1*trade; cv=noCandle(); } }
if (line[1] < line[0]) {trend = 1;} else if (line[1] > line[0]) {trend = -1;}
if (a==1){
f.write(getSecName()+";"); f.write(transaction+";"); f.write(timeday+"/"+timemonth+"/"+timeyear+";"); f.write(close+";"); f.write(buy+";"); f.write(sell+";"); f.write(amount+";"); f.writeLn(dipozit); }
a=0;
}
вот что вышло
ИНСТРУМЕНТ;№ ТРАНЗАКЦИИ;ВРЕМЯ;ЦЕНА;КУПЛЕНО;ПРОДАНО;ОБЪЕМ;ДИПОЗИТ; Сбербанк;1;19/1/2010;91.4;1;0;91.4;99908.6 Сбербанк;2;19/1/2010;89.69;0;-1;89.69;99998.3 Сбербанк;3;19/1/2010;91.4;1;0;91.4;99906.9 Сбербанк;4;21/1/2010;90.16;0;-1;90.16;99997.1 Сбербанк;5;27/1/2010;87.7;1;0;87.7;99909.4 Сбербанк;6;29/1/2010;87;0;-1;87;99996.4 Сбербанк;7;29/1/2010;88.13;1;0;88.13;99908.2
и т.д
|