//RSI_PERIODS =Optimize( "RSI_PERIODS", 19 , 1, 100, 1 );
RSI_PERIODS =Param( "RSI_PERIODS", 16 , 1, 100, 1 );
//Short_RSI_SETUP_VALUE =Optimize( "Short_RSI_SETUP_VALUE", 19 , 1, 100, 1 );
Short_RSI_SETUP_VALUE =Param( "Short_RSI_SETUP_VALUE", 74 , 1, 100, 1 );
//LONG_RSI_SETUP_VALUE =Optimize( "LONG_RSI_SETUP_VALUE", 19 , 1, 100, 1 );
LONG_RSI_SETUP_VALUE =Param( "LONG_RSI_SETUP_VALUE", 48 , 1, 100, 1 );
//maxpositions = Optimize( "maxpositions", 3, 1, 20, 1 ); // note that default value is 2
maxpositions = Param( "maxpositions", 100 , 1, 10, 1 );
//TARGET_RATIO = Optimize( "TARGET_RATIO", 2.7, 1.0, 10.0, 0.1 );
TARGET_RATIO = Param( "TARGET_RATIO", 1.4, 1, 10, 1 );
TRADE_START_TIME = 090000 ;
//TRADE_START_TIME = Optimize( "TRADE_START_TIME", 091900, 091900, 095900, 500 );
TRADE_END_TIME = 151500 ;
//TRADE_END_TIME = Optimize( "TRADE_END_TIME", 151400, 150900, 151400, 100 );
SQUARE_OFF_TIME = 151500 ;
//MAX_AMOUNT = Param( "MAX_AMOUNT", 10000, 1000, 100000, 1000 );
SCRIP_NAME1 = Name();
SCRIP_NAME2 = StrReplace( SCRIP_NAME1, "-I", "" );
//SCRIP_NAME2 = StrReplace( SCRIP_NAME1, "_1M", "" );
SCRIP_NAME3 = StrReplace( SCRIP_NAME2, "-", "" );
SCRIP_NAME = StrReplace( SCRIP_NAME3, "&", "" );
/////////////////////////////////////////////////////
TRADING_CAPITAL = 100000;
STOPLOSS_PERCENT = 1 ;
SPREAD_MULTIPLIER=0;
SD_PERCENT=0;
COST_PER_CRORE = 1457.08;
CRUDEOIL=100;
//***********************************************************************
// OPTIMIZATON PART
//***********************************************************************
SetOption("WarningLevel",1);
//SetOption("GenerateReport", 1 );
//SetOption("PortfolioReportMode", 3 );
SetOption("MCEnable", 0 );
SetOption( "PriceBoundChecking", False );
SetOption( "ExtraColumnsLocation", 1 );
SetOption( "MaxOpenPositions", maxpositions );
//************************************************************************
// GENERAL TRADE VARIABLES
//************************************************************************
STOPLOSS_AMOUNT = ( TRADING_CAPITAL / 100 ) * STOPLOSS_PERCENT;
//BAR_RANGE=1;
//PositionSize = 0;
SETUP_OPEN = ( Ref( Open, -1 ) );
SETUP_CLOSE = ( Ref( Close, -1 ) );
PREV1_CLOSE = ( Ref( Close, -2 ) );
SETUP_HIGH = ( Ref( High, -1 ) );
SETUP_LOW = ( Ref( Low, -1 ) );
SETUP_AVG = (SETUP_HIGH + SETUP_LOW)/2;
SETUP_BAR_RANGE = abs( SETUP_HIGH - SETUP_LOW ) ;
SETUP_BAR_SIZE = abs( SETUP_HIGH - SETUP_LOW ) ;
SETUP_BAR_RANGE_PERCENT = ( 100 * SETUP_BAR_RANGE ) / SETUP_HIGH;
///////////////////
TRIGGER_OPEN = ( Ref( Open, 0 ) );
TRIGGER_LOW = ( Ref( Low, 0 ) );
TRIGGER_HIGH = ( Ref( High, 0 ) );
ENTRY_HIGH1 = ( Ref( High, -1 ) );
ENTRY_HIGH =ENTRY_HIGH1 + 0.05 ;
ENTRY_LOW1 = ( Ref( Low, -1 ) );
ENTRY_LOW = ENTRY_LOW1 -0.05 ;
ENTRY_OPEN = ( Ref( Open, -1 ) );
ENTRY_CLOSE = ( Ref( Close, -1 ) );
PREVIOUS_HIGH = ( Ref( High, -2 ) );
PREVIOUS_LOW = ( Ref( Low, -2 ) );
//TIME = TimeNum();
TIME = Ref ( TimeNum(), 0 );
//************************************************************************
// SHORT TRADE VARIABLES
//************************************************************************
Short_TRADE_ON = 0;
Short = 0;
ShortPrice = 0;
Cover = 0;
CoverPrice = 0;
S_EBARNUM = 0;
S_targetprice = 0;
S_stopprice = 0;
Short = ExRem( Short, Cover );
Cover = ExRem( Cover, Short );
//************************************************************************
// LONG TRADE VARIABLES
//************************************************************************
Long_TRADE_ON = 0 ;
Buy = 0;
BuyPrice = 0;
Sell = 0;
SellPrice = 0;
L_EBARNUM = 0;
L_targetprice = 0;
L_stopprice = 0;
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );
///////////
LOTUNIT = VarGet( SCRIP_NAME );
POINT_VALUE_AMOUNT = ( STOPLOSS_AMOUNT / SETUP_BAR_RANGE );
TRADE_LOT = round( abs( POINT_VALUE_AMOUNT / LOTUNIT ) );
//TRADE_LOT = 1 ;
REAL_LOT = ( abs( POINT_VALUE_AMOUNT / LOTUNIT ) );
RISK_AMOUNT = ( TRADE_LOT * STOPLOSS_AMOUNT ) / REAL_LOT;
PREVIOUS_HIGH0 = ( Ref( High, - 1 ) );
PREVIOUS_LOW0 = ( Ref( Low, - 1 ) );
PREVIOUS_HIGH1 = ( Ref( HIGH, - 2 ) );
PREVIOUS_LOW1 = ( Ref( LOW, - 2 ) );
////////////////////////SHORT VARIABLES/////////////////////////////////
S_TRIGGER_PRICE = SETUP_LOW - 0 ;
S_ENTRY_PRICE = S_TRIGGER_PRICE ;
S_STOPLOSS_PRICE = S_TRIGGER_PRICE + SETUP_BAR_RANGE ;
//S_TARGET_PRICE_FRACTION = S_TRIGGER_PRICE - ( TARGET_RATIO * SETUP_BAR_RANGE );
//S_TARGET_REMINDER = S_TARGET_PRICE_FRACTION % 0.05;
S_TARGET_PRICE = S_TRIGGER_PRICE - (TARGET_RATIO*SETUP_BAR_RANGE) ;
S_POINT_VALUE_AMOUNT = ( STOPLOSS_AMOUNT / SETUP_BAR_RANGE );
S_TRADE_LOT = round( abs( S_POINT_VALUE_AMOUNT / LOTUNIT ) );
//S_TRADE_LOT = 1 ;
S_REAL_LOT = ( abs( S_POINT_VALUE_AMOUNT / LOTUNIT ) );
S_TRADE_QUANTITY = S_TRADE_LOT * LOTUNIT;
S_RISK_AMOUNT = ( S_TRADE_LOT * STOPLOSS_AMOUNT ) / S_REAL_LOT;
///////////////////LONG VARIABLES/////////////////////
L_TRIGGER_PRICE = SETUP_HIGH + 0 ;
L_ENTRY_PRICE = L_TRIGGER_PRICE ;
L_STOPLOSS_PRICE = L_TRIGGER_PRICE - SETUP_BAR_RANGE ;
//L_TARGET_PRICE_FRACTION = L_TRIGGER_PRICE + ( TARGET_RATIO * SETUP_BAR_RANGE );
//L_TARGET_REMINDER = L_TARGET_PRICE_FRACTION % 0.05;
//L_TARGET_PLUS = IIf( L_TARGET_REMINDER == 0, 0, 0.05 );
L_TARGET_PRICE = L_TRIGGER_PRICE + (TARGET_RATIO*SETUP_BAR_RANGE) ;
L_POINT_VALUE_AMOUNT = ( STOPLOSS_AMOUNT / SETUP_BAR_RANGE );
L_TRADE_LOT = round( abs( L_POINT_VALUE_AMOUNT / LOTUNIT ) );
//L_TRADE_LOT = 1 ;
L_REAL_LOT = ( abs( L_POINT_VALUE_AMOUNT / LOTUNIT ) );
L_TRADE_QUANTITY = L_TRADE_LOT * LOTUNIT;
L_RISK_AMOUNT = ( L_TRADE_LOT * STOPLOSS_AMOUNT ) / L_REAL_LOT;
/////////////////////////////////////////////////////////////
TRIGGER_CLOSE = ( Ref( Close, 0 ) );
TRIGGER_OPEN = ( Ref( Open, 0 ) );
//--------------------------------------------
SETUP_CLOSE = ( Ref( Close, -1 ) );
SETUP_Open = ( Ref( Open, -1 ) );
SETUP_HIGH = ( Ref( High, -1 ) );
SETUP_LOW = ( Ref( Low, -1 ) );
////////////////////////////////////
PREVIOUS3_HIGH = ( Ref( High, -4 ) );
PREVIOUS3_LOW = ( Ref( Low, -4 ) );
PREVIOUS3_BAR_RANGE = abs( PREVIOUS3_HIGH - PREVIOUS3_LOW );
//PREVIOUS3_BAR_LOWEXCESS = abs( OUTSIDE_LOW - PREVIOUS3_LOW );
//PREVIOUS3_BAR_HIGHEXCESS = abs(PREVIOUS3_HIGH - OUTSIDE_HIGH );
PREVIOUS3_BAR_LOWEXCESS = abs(PREVIOUS3_LOW - PREVIOUS3_BAR_RANGE );
PREVIOUS3_BAR_HIGHEXCESS = abs(PREVIOUS3_HIGH + PREVIOUS3_BAR_RANGE );
////////////////////////////////////
SETUP_MID = (SETUP_HIGH + SETUP_LOW)/2;
//--------------------------------------
//--------------------------------------
PREVIOUS_CLOSE1 = ( Ref( Close, -2 ) );
PREVIOUS_HIGH1 = ( Ref( High, -2 ) );
PREVIOUS_LOW1 = ( Ref( Low, -2 ) );
PREVIOUS_MID1 = (PREVIOUS_HIGH1 + PREVIOUS_LOW1)/2;
//------------------------------------------
//---------------------------------------------
//SETUP_BAR_RANGE = ( SETUP_HIGH - SETUP_LOW ) + 0.10;
SETUP_BAR_RANGE_PERCENT = ( 100 * SETUP_BAR_RANGE ) / SETUP_HIGH;
//******************************************************************************
// YOUR TRADING SYSTEM HERE
//******************************************************************************
//////////////////////////////////////////////////
///////////////// RSI STARTS /////////////////////
//////////////////////////////////////////////////
RSI_INDICATOR = RSI(RSI_PERIODS) ;
RSI_TRIGER = ( REF( RSI_INDICATOR, - 0 ) );
RSI_SETUP = ( REF( RSI_INDICATOR, - 1 ) );
RSI_PREVIOUS_1 = ( REF( RSI_INDICATOR, - 2 ) );
RSI_PREVIOUS_2 = ( REF( RSI_INDICATOR, - 3 ) );
RSI_PREVIOUS_3 = ( REF( RSI_INDICATOR, - 4 ) );
RSI_PREVIOUS_4 = ( REF( RSI_INDICATOR, - 5 ) );
RSI_PREVIOUS_5 = ( REF( RSI_INDICATOR, - 6 ) );