I am trading with Buy short and Cover buy orders.
enter trade and target and stop loss.
Every time i would like to place 1 quantity there is not issue with below scnario.
BUY or short and exit cover or sell. with 1 quantity.
The main problem here is if the cover or sell (target or stoplos) not hit then it went to next trade short and sell 1 quantity and next trade we can not continue. hence
For BUY or SHORT and COVER and Sell --------- QUANTITY should 1
AND
If
BUY or SHORT The quantity should be also 1; Please review below code and provide your sugitions who to manage quantity.
AT_QUANTITY=1;
Next_QUANTITY=0;
if(shouldSquareOff() == 1) {
squareOffPosition();
}
else {
if ( LastValue(Buy) == True AND isFirstOrder() == 0 )
{
placeOrderAdvancedNew(AT_EXCHANGE, AT_INSTRUMENT, Name(), "BUY", AT_PRODUCT_TYPE, AT_ORDER_TYPE, AT_QUANTITY, 0, defaultTriggerPrice(), defaultDisclosedQuantity(), AT_OPTION_TYPE, AT_STRIKE_PRICE, AT_EXPIRY, defaultClientId(), defaultValidity(), defaultTraderType(), defaultMarketProtectionPct(), defaultStrategyId(), defaultComments(),
"regular", 0, 0, 0);
Next_QUANTITY=AT_QUANTITY+1;
}
if ( LastValue(Short) == True AND isFirstOrder() == 0)
{
placeOrderAdvancedNew(AT_EXCHANGE, AT_INSTRUMENT, Name(), "SELL", AT_PRODUCT_TYPE, AT_ORDER_TYPE, AT_QUANTITY,0, defaultTriggerPrice(), defaultDisclosedQuantity(), AT_OPTION_TYPE, AT_STRIKE_PRICE, AT_EXPIRY, defaultClientId(), defaultValidity(), defaultTraderType(), defaultMarketProtectionPct(), defaultStrategyId(), defaultComments(),
"regular", 0, 0, 0);
Next_QUANTITY=AT_QUANTITY+1;
}
if ( LastValue(Buy) == True )
{
placeOrderAdvancedNew(AT_EXCHANGE, AT_INSTRUMENT, Name(), "BUY", AT_PRODUCT_TYPE, AT_ORDER_TYPE, QTY, 0, defaultTriggerPrice(), defaultDisclosedQuantity(), AT_OPTION_TYPE, AT_STRIKE_PRICE, AT_EXPIRY, defaultClientId(), defaultValidity(), defaultTraderType(), defaultMarketProtectionPct(), defaultStrategyId(), defaultComments(),
"regular", 0, 0, 0);
Next_QUANTITY=AT_QUANTITY+1;
}
if ( LastValue(Short) == True )
{
placeOrderAdvancedNew(AT_EXCHANGE, AT_INSTRUMENT, Name(), "SELL", AT_PRODUCT_TYPE, AT_ORDER_TYPE, QTY,0, defaultTriggerPrice(), defaultDisclosedQuantity(), AT_OPTION_TYPE, AT_STRIKE_PRICE, AT_EXPIRY, defaultClientId(), defaultValidity(), defaultTraderType(), defaultMarketProtectionPct(), defaultStrategyId(), defaultComments(),
"regular", 0, 0, 0);
Next_QUANTITY=AT_QUANTITY+1;
}
}
StopLevel = Param( "Stop Loss (%)", 0.25, 0.01, 10, 0.01 );
TgtLevel = Param( "Profit target (%)", 0.5, 0.01, 10, 0.01 );
ApplyStop( stopTypeLoss, stopModePercent, StopLevel, True );
ApplyStop( stopTypeProfit, stopModePercent, TgtLevel, True );
Equity( 1, 0 );
sellcond2=Sell==2; covercond2=Cover==2;
sellcond3=Sell==3; covercond3=Cover==3;
Sell=ExRem(Sell,Cover);
Cover=ExRem(Cover,Sell);
if ( LastValue(covercond2) ==True OR LastValue(covercond3) ==True)
{
tradeType="Buy";
placeOrderAdvancedNew(AT_EXCHANGE, AT_INSTRUMENT, Name(), "BUY", AT_PRODUCT_TYPE, AT_ORDER_TYPE, 1, 0, defaultTriggerPrice(), defaultDisclosedQuantity(), AT_OPTION_TYPE, AT_STRIKE_PRICE, AT_EXPIRY, defaultClientId(), defaultValidity(), defaultTraderType(), defaultMarketProtectionPct(), defaultStrategyId(), defaultComments(),
"regular", 0, 0, 0);
//AT_QUANTITY = Param("Order quantity (lot size)", 1, 0, 300000, 10);
Next_QUANTITY=AT_QUANTITY;
}
if ( LastValue(sellcond2)==True OR LastValue(sellcond3) ==True)
{
placeOrderAdvancedNew(AT_EXCHANGE, AT_INSTRUMENT, Name(), "SELL", AT_PRODUCT_TYPE, AT_ORDER_TYPE, 1,0, defaultTriggerPrice(), defaultDisclosedQuantity(), AT_OPTION_TYPE, AT_STRIKE_PRICE, AT_EXPIRY, defaultClientId(), defaultValidity(), defaultTraderType(), defaultMarketProtectionPct(), defaultStrategyId(), defaultComments(),
"regular", 0, 0, 0);
Next_QUANTITY=AT_QUANTITY;
//AT_QUANTITY = Param("Order quantity (lot size)", 1, 0, 300000, 10);
}
QTY=Next_QUANTITY;