Фьючерс РТС. Стратегия N1

RTS Фьючерс. Timeframe Daily. 2005-2021.

Этот вариант стратегии есть в примерах к Openquant- Breakout with 4% limit В данном случае big jump = 3%

only long / with commission

Код

using OpenQuant.API;

public class MyStrategy : Strategy
{
	[Parameter("Order quantity (number of contracts to trade)")]
	int Qty = 1;
	
	// enter trade on 4 breakoutPercent breakout
	[Parameter("Percent")]
	double BreakoutPercent = 3;
	
	// orders and trade quantity
	Order buyOrder;
	// for calculating breakout price limit
	double prevClose;

	public override void OnStrategyStart()
	{
		prevClose = -1;
	}

	public override void OnBarOpen(Bar bar)
	{
		// we need to let the first bar go by before we can
		// calculate the breakout limit
		if (prevClose != -1)
		{
			// if we do not have a position, then cancel the
			// previous limit order (it is out of date)
			if (!HasPosition)
			{
				if (buyOrder != null)
					buyOrder.Cancel();

				// now try to enter a trade by setting a limit order
				// to automatically buy in if the big 4% jump arrives.
				// This order will reside on the exchange servers, and 
				// will execute during the day if the limit is triggered.
				double breakout_fraction = 1 + (BreakoutPercent / 100);
				double breakout_price = prevClose * breakout_fraction;
				buyOrder = BuyStopOrder(Qty, breakout_price, "Entry");	
				buyOrder.Send();
			}

				// if we have a position open, then close it now. 
				// Now (which is the leading edge of today's daily bar)
				// is the start of the day after the trade was opened.
			else
				Sell(Qty, "Exit");
		}
	}

	public override void OnBar(Bar bar)
	{
		// update the prevClose value for the breakout calculation
		prevClose = bar.Close;
	}
}