в сделку, используя определенный тип


Глава 1 Глава 2 Глава 3
tmp = thresh * mal[k] ; if(savg[k] > tmp && savg[k- l] <= tmp) signal = 1; else if(savg[k] < - tmp && savg[k- l] >= - tmp) signal = - 1; break; case 2 : // основная модель пересечения k = cb + disp; if (CrossesAbove (mal, ma2 , k) } signal = 1 ; else if (CrossesBelow{mal, ma2, k)} signal = - 1; break; case 3: // пересечение с подтверждением k = cb + disp; if(CrossesAbove{mal, ma2, k)) { if(stoch[cb] < 25.0) signal = 1; } else if {CrossesBelow(mal, ma2, k)) {

if(stoch[cb] > 75.0} signal = - 1; } break; case 4 : // пересечение с подтверждением и инверсией k = cb + disp; if{CrossesAbove(mal, ma2, k)) { if (stoch[cb] < 25.0) signal = 1; else if{stoch[cb] > 75.0} signal = - 1; } else if (CrossesBelow (rnal, ma2 , k) } { if (stoch[cb] > 75.0) signal = - 1; else if (stoch[cb] < 25.0} signal = 1; } break; ) limprice = 0.5 * (hi [cb] + lo [cb] ) ; stpprice = cls[cb] + 0.5 * signal * exitatr[cb] ; // входим в сделку, используя определенный тип приказа if (ts.position{) <= 0 && signal == 1) { switch(ordertype) { // select desired order type case 1: ts .buyopen ('1' , ncontracts) ; break; case 2: ts.buylimit('2', limprice, ncontracts); break; case 3: ts.buystop('3', stpprice, ncontracts); break; default: nrerror{"Invalid buy order selected"); } } else if (ts.position{) >= 0 && signal == - 1) { switch(ordertype) { // выбираем нужный вид приказа case 1: ts.sellopen('4', ncontracts); break; case 2: ts.selllimit('5', limprice, ncontracts); break; case 3: ts.sellstop(6', stpprice, ncontracts); break; default: nrerror{"Invalid sell order selected"); } } // симулятор использует стандартную стратегию выхода tmp = exitatr[cb]; ts.stdexitcls('X', ptlim*tmp, mmstp*tmp, maxhold); } // обрабатываем следующий день }
Содержание раздела