I have a strategy to manage a pairs trade using stops and targets.The original trade is placed manually.
The following code works fine and the Debug message is correct, but the position is not closed.
Any pointer would be gratefully received.
Thanks
Ian
if ((( aPair.PandL[0] >= Target1 ) || ( aPair.PandL[0] <= Stop1 )) && LiveData && ManageTrade && Lot1_T1 == OrderSize1_T1)
{
/// Target1 or Stop1 have been hit
if ( aPair.PandL[0] >= Target1 )
{
Mess = "T1";
triggerPrice = Target1;
}
else
{
Mess = "Stop1";
triggerPrice = Stop1;
}
if (aPair.OrderSize1 > 0)
{
ExitLong(1, Lot1_T1, Mess + " Lot 1", "");
// Param 1 is barsInProgressIndex
// Param 2 is OrderSize
// Param 3 is SignalName
// Param 4 is fromEntryName
ExitShort(2, Lot2_T1, Mess + " Lot 2", "");
}
else
{
ExitShort(1, Lot1_T1, Mess + " Lot 1", "");
ExitLong(2, Lot2_T1, Mess + " Lot 2", "");
}
OrderSize1_T1 = 0;
if(Debug)
Print("Hit " + Mess + " for " + Inst1 + " / " + Inst2 + " . . . @ " + Time[0] +
" Trigger Price " + triggerPrice.ToString("0.0") + " Actual Price " + aPair.PandL[0].ToString("0.0") );
}
Comment