Capital_Inicial = 100000; SetOption("InitialEquity",Capital_Inicial); // Numero de Posiciones Num_Pos = 5; SetOption("MaxOpenPositions",Num_Pos); // No apalancamiento, si se quiere apalancamiento se puede bajar el numero. Margin = 100; SetOption("AccountMargin",Margin); // Equiposiciones (improvement usando F-Kelly y otra condicion para reducir el tamanyo de las posiciones si estamos en un mercado muy volatil: // por ejemplo: IIf(ATR(14)/MA(C,14)*100 > BBandTop(ATR(14),14,2),0.5*Margin/Posiciones,Margin/Posiciones); Riesgo_trade = 2; Tam_Pos = Min(Riesgo_trade*Close/(3*ATR(14)),(100/Margin)*100/Num_Pos); SetPositionSize(Tam_pos,spsPercentOfEquity); //SetPositionSize(500,spsValue); // Aplicamos Stop loss, al perder cierto % al dia siguiente vende StopLoss = 5; Nbars = 5; //Optimize("Nbar",10,5,15,1); ApplyStop(stopTypeLoss,stopModePercent,StopLoss,2); ApplyStop(stopTypeNBar ,stopModeBars,Nbars,2); ApplyStop(stopTypeProfit ,stopModePercent,StopLoss,2); // Compramos y vendemos al dia siguiente en open y solo Largos. SetBacktestMode(backtestRegular); SetTradeDelays(1,1,1,1); BuyPrice=Open; SellPrice=Open; Short=Cover=0; // Condiciones para incluir/excluir acciones descatalogadas Accion_valida = (datetime() < GetFnData("DelistingDate") OR IsEmpty(GetFnData("DelistingDate"))) AND Close>1 AND MA(Volume,14)*MA(Close,14)>10000000 ; Accion_deslistada = datetime() >= GetFnData("DelistingDate"); // Parametros sistema Senyal = Signal(12,26,9); LineaMACD = MACD(12,26); Cross_zero = Cross(LineaMACD ,0); Cross_up = Cross(LineaMACD ,Senyal); Cross_down = Cross(Senyal,LineaMACD); B_Cross_zero = BarsSince(Cross_zero); B_Cross_up = BarsSince(Cross_up); B_Cross_down = BarsSince(Cross_down); Barras = BarsSince(B_Cross_up > B_Cross_down ) ; // Busqueda de retroceso Low_X = LLV(L,40); High_X = HHV(H,10); Impulso = (High_X-Low_X); Retroceso = (High_X - Close); Nivel_fib = 0.382*Impulso; Buy = Impulso > 6* ATR(14) AND Retroceso > Nivel_fib AND Cross_down AND Accion_valida AND LineaMACD>0 AND Senyal > 0; Sell = Accion_deslistada OR Cross_zero; Buy = ExRem(Buy,Sell); Sell = ExRem(Sell,Buy);