INPUT main_order_atmarket(true); buy_stop (70); buy_gain (120); sell_stop (70); sell_gain (120); buy_range_1 (5); buy_range_2 (8); buy_range_3 (9); buy_range_4 (15); sell_range_1 (5); sell_range_2 (8); sell_range_3 (9); sell_range_4 (15); VAR i : integer; j : integer; candle_close_sell : float; candle_close_buy : float; BEGIN // ----------------------------------------------- // - SELL OPERATION - // ----------------------------------------------- i := 0; // ACCOUNT LAST SEQUENCE OF NEGATIVE CANDLES WHILE (open[i] > close[i]) DO BEGIN i := i + 1; END; // SELL ORDER // (IF ACCOUNT CANDLES ARE BETWEEN "SELL_RANGE" PARAMETERS --> SUBMIT SELL ORDER) IF ( (i>sell_range_1) AND (isell_range_3) AND (i SUBMIT LOSS ORDER AT MARKET) IF (issold) AND (close >= (candle_close_sell + sell_stop)) THEN BEGIN // SUBMIT STOP LOSS ORDER AT MARKET BuyToCoverAtMarket; // CANCEL GAIN ORDER BuytoCover.CancelOrder; paintbar(clyellow); END; // ----------------------------------------------- // - BUY OPERATION - // ----------------------------------------------- j := 0; // ACCOUNT LAST SEQUENCE OF POSITIVE CANDLES WHILE (open[j] < close[j]) DO BEGIN j := j + 1; END; // BUY ORDER // (IF ACCOUNT CANDLES ARE BETWEEN "SELL_RANGE" PARAMETERS --> SUBMIT BUY ORDER) IF ( (j>buy_range_1) AND (jbuy_range_3) AND (j SUBMIT LOSS ORDER AT MARKET) IF (isbought) AND (close <= (candle_close_buy - buy_stop)) THEN BEGIN // SUBMIT STOP LOSS ORDER AT MARKET; SellToCoverAtMarket; // CANCEL GAIN ORDER SelltoCover.CancelOrder; paintbar(clyellow); END; END;