| Overall Statistics |
|
Total Trades 396 Average Win 0.00% Average Loss -0.03% Compounding Annual Return 0.025% Drawdown 0.000% Expectancy 0.053 Net Profit 0.254% Sharpe Ratio 1.26 Probabilistic Sharpe Ratio 79.965% Loss Rate 1% Win Rate 99% Profit-Loss Ratio 0.06 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio -0.816 Tracking Error 0.154 Treynor Ratio 1.857 Total Fees $29.57 |
using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct USDCHF_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public USDCHF_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
}
if (Base.USDCHF_OCO1_EO1_DOWN_S2)
Base.USDCHF_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO1_EO2_DOWN_S2)
Base.USDCHF_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO1_EO3_DOWN_S2)
Base.USDCHF_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO1_EO4_DOWN_S2)
Base.USDCHF_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO1_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP1_USDCHF_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP1,"TP1_USDCHF_DOWN_S2_OCO1"));
};
Base.USDCHF_DOWN_S2_OCO1Sets1.Add( Base.USDCHF_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO2_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP2_USDCHF_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP2,"TP2_USDCHF_DOWN_S2_OCO1"));
};
Base.USDCHF_DOWN_S2_OCO1Sets2.Add( Base.USDCHF_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO3_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP3_USDCHF_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP3,"TP3_USDCHF_DOWN_S2_OCO1"));
};
Base.USDCHF_DOWN_S2_OCO1Sets3.Add( Base.USDCHF_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO4_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP4_USDCHF_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP4,"TP4_USDCHF_DOWN_S2_OCO1"));
};
Base.USDCHF_DOWN_S2_OCO1Sets4.Add( Base.USDCHF_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO4_DOWN_S2_ID = -1;
}
int USDCHF_OCO1S1_DOWN_S2 = 0;
for (; USDCHF_OCO1S1_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets1.Count; USDCHF_OCO1S1_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets1[USDCHF_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO1Sets1[USDCHF_OCO1S1_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO1Sets1.RemoveAt(USDCHF_OCO1S1_DOWN_S2);
USDCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int USDCHF_OCO1S2_DOWN_S2 = 0;
for (; USDCHF_OCO1S2_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets2.Count; USDCHF_OCO1S2_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets2[USDCHF_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO1Sets2[USDCHF_OCO1S2_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO1Sets2.RemoveAt(USDCHF_OCO1S2_DOWN_S2);
USDCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int USDCHF_OCO1S3_DOWN_S2 = 0;
for (; USDCHF_OCO1S3_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets3.Count; USDCHF_OCO1S3_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets3[USDCHF_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO1Sets3[USDCHF_OCO1S3_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO1Sets3.RemoveAt(USDCHF_OCO1S3_DOWN_S2);
USDCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int USDCHF_OCO1S4_DOWN_S2 = 0;
for (; USDCHF_OCO1S4_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets4.Count; USDCHF_OCO1S4_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets4[USDCHF_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO1Sets4[USDCHF_OCO1S4_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO1Sets4.RemoveAt(USDCHF_OCO1S4_DOWN_S2);
USDCHF_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO2_EO1_DOWN_S2)
Base.USDCHF_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO2_EO2_DOWN_S2)
Base.USDCHF_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO2_EO3_DOWN_S2)
Base.USDCHF_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO2_EO4_DOWN_S2)
Base.USDCHF_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO1_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP1_USDCHF_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP1,"TP1_USDCHF_DOWN_S2_OCO2"));
};
Base.USDCHF_DOWN_S2_OCO2Sets1.Add( Base.USDCHF_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO2_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP2_USDCHF_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP2,"TP2_USDCHF_DOWN_S2_OCO2"));
};
Base.USDCHF_DOWN_S2_OCO2Sets2.Add( Base.USDCHF_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO3_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP3_USDCHF_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP3,"TP3_USDCHF_DOWN_S2_OCO2"));
};
Base.USDCHF_DOWN_S2_OCO2Sets3.Add( Base.USDCHF_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO4_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP4_USDCHF_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP4,"TP4_USDCHF_DOWN_S2_OCO2"));
};
Base.USDCHF_DOWN_S2_OCO2Sets4.Add( Base.USDCHF_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO4_DOWN_S2_ID = -1;
}
int USDCHF_OCO2S1_DOWN_S2 = 0;
for (; USDCHF_OCO2S1_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets1.Count; USDCHF_OCO2S1_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets1[USDCHF_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO2Sets1[USDCHF_OCO2S1_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO2Sets1.RemoveAt(USDCHF_OCO2S1_DOWN_S2);
USDCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int USDCHF_OCO2S2_DOWN_S2 = 0;
for (; USDCHF_OCO2S2_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets2.Count; USDCHF_OCO2S2_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets2[USDCHF_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO2Sets2[USDCHF_OCO2S2_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO2Sets2.RemoveAt(USDCHF_OCO2S2_DOWN_S2);
USDCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int USDCHF_OCO2S3_DOWN_S2 = 0;
for (; USDCHF_OCO2S3_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets3.Count; USDCHF_OCO2S3_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets3[USDCHF_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO2Sets3[USDCHF_OCO2S3_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO2Sets3.RemoveAt(USDCHF_OCO2S3_DOWN_S2);
USDCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int USDCHF_OCO2S4_DOWN_S2 = 0;
for (; USDCHF_OCO2S4_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets4.Count; USDCHF_OCO2S4_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets4[USDCHF_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO2Sets4[USDCHF_OCO2S4_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO2Sets4.RemoveAt(USDCHF_OCO2S4_DOWN_S2);
USDCHF_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO3_EO1_DOWN_S2)
Base.USDCHF_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO3_EO2_DOWN_S2)
Base.USDCHF_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO3_EO3_DOWN_S2)
Base.USDCHF_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO3_EO4_DOWN_S2)
Base.USDCHF_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO1_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP1_USDCHF_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP1,"TP1_USDCHF_DOWN_S2_OCO3"));
};
Base.USDCHF_DOWN_S2_OCO3Sets1.Add( Base.USDCHF_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO2_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP2_USDCHF_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP2,"TP2_USDCHF_DOWN_S2_OCO3"));
};
Base.USDCHF_DOWN_S2_OCO3Sets2.Add( Base.USDCHF_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO3_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP3_USDCHF_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP3,"TP3_USDCHF_DOWN_S2_OCO3"));
};
Base.USDCHF_DOWN_S2_OCO3Sets3.Add( Base.USDCHF_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO4_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP4_USDCHF_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP4,"TP4_USDCHF_DOWN_S2_OCO3"));
};
Base.USDCHF_DOWN_S2_OCO3Sets4.Add( Base.USDCHF_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO4_DOWN_S2_ID = -1;
}
int USDCHF_OCO3S1_DOWN_S2 = 0;
for (; USDCHF_OCO3S1_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets1.Count; USDCHF_OCO3S1_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets1[USDCHF_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO3Sets1[USDCHF_OCO3S1_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO3Sets1.RemoveAt(USDCHF_OCO3S1_DOWN_S2);
USDCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int USDCHF_OCO3S2_DOWN_S2 = 0;
for (; USDCHF_OCO3S2_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets2.Count; USDCHF_OCO3S2_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets2[USDCHF_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO3Sets2[USDCHF_OCO3S2_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO3Sets2.RemoveAt(USDCHF_OCO3S2_DOWN_S2);
USDCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int USDCHF_OCO3S3_DOWN_S2 = 0;
for (; USDCHF_OCO3S3_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets3.Count; USDCHF_OCO3S3_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets3[USDCHF_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO3Sets3[USDCHF_OCO3S3_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO3Sets3.RemoveAt(USDCHF_OCO3S3_DOWN_S2);
USDCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int USDCHF_OCO3S4_DOWN_S2 = 0;
for (; USDCHF_OCO3S4_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets4.Count; USDCHF_OCO3S4_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets4[USDCHF_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO3Sets4[USDCHF_OCO3S4_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO3Sets4.RemoveAt(USDCHF_OCO3S4_DOWN_S2);
USDCHF_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO4_EO1_DOWN_S2)
Base.USDCHF_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO4_EO2_DOWN_S2)
Base.USDCHF_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO4_EO3_DOWN_S2)
Base.USDCHF_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO4_EO4_DOWN_S2)
Base.USDCHF_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO1_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP1_USDCHF_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP1,"TP1_USDCHF_DOWN_S2_OCO4"));
};
Base.USDCHF_DOWN_S2_OCO4Sets1.Add( Base.USDCHF_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO2_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP2_USDCHF_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP2,"TP2_USDCHF_DOWN_S2_OCO4"));
};
Base.USDCHF_DOWN_S2_OCO4Sets2.Add( Base.USDCHF_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO3_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP3_USDCHF_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP3,"TP3_USDCHF_DOWN_S2_OCO4"));
};
Base.USDCHF_DOWN_S2_OCO4Sets3.Add( Base.USDCHF_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO4_DOWN_S2_ID)
{
Base.USDCHF_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_DOWN_S2_SL,"SL_TP4_USDCHF_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_DOWN_S2_TP4,"TP4_USDCHF_DOWN_S2_OCO4"));
};
Base.USDCHF_DOWN_S2_OCO4Sets4.Add( Base.USDCHF_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO4_DOWN_S2_ID = -1;
}
int USDCHF_OCO4S1_DOWN_S2 = 0;
for (; USDCHF_OCO4S1_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets1.Count; USDCHF_OCO4S1_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets1[USDCHF_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO4Sets1[USDCHF_OCO4S1_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO4Sets1.RemoveAt(USDCHF_OCO4S1_DOWN_S2);
USDCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int USDCHF_OCO4S2_DOWN_S2 = 0;
for (; USDCHF_OCO4S2_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets2.Count; USDCHF_OCO4S2_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets2[USDCHF_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO4Sets2[USDCHF_OCO4S2_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO4Sets2.RemoveAt(USDCHF_OCO4S2_DOWN_S2);
USDCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int USDCHF_OCO4S3_DOWN_S2 = 0;
for (; USDCHF_OCO4S3_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets3.Count; USDCHF_OCO4S3_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets3[USDCHF_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO4Sets3[USDCHF_OCO4S3_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO4Sets3.RemoveAt(USDCHF_OCO4S3_DOWN_S2);
USDCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int USDCHF_OCO4S4_DOWN_S2 = 0;
for (; USDCHF_OCO4S4_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets4.Count; USDCHF_OCO4S4_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets4[USDCHF_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_DOWN_S2_OCO4Sets4[USDCHF_OCO4S4_DOWN_S2].Filled();
Base.USDCHF_DOWN_S2_OCO4Sets4.RemoveAt(USDCHF_OCO4S4_DOWN_S2);
USDCHF_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURJPY_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURJPY_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
}
if (Base.EURJPY_OCO1_EO1_UP_S2)
Base.EURJPY_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO1_EO2_UP_S2)
Base.EURJPY_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO1_EO3_UP_S2)
Base.EURJPY_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO1_EO4_UP_S2)
Base.EURJPY_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO1_EO5_UP_S2)
Base.EURJPY_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO1_EO6_UP_S2)
Base.EURJPY_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO1_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP1,"TP1_EURJPY_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP1_EURJPY_UP_S2_OCO1"));
};
Base.EURJPY_UP_S2_OCO1Sets1.Add( Base.EURJPY_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO2_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP2,"TP2_EURJPY_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP2_EURJPY_UP_S2_OCO1"));
};
Base.EURJPY_UP_S2_OCO1Sets2.Add( Base.EURJPY_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO3_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP3,"TP3_EURJPY_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP3_EURJPY_UP_S2_OCO1"));
};
Base.EURJPY_UP_S2_OCO1Sets3.Add( Base.EURJPY_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO4_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP4,"TP4_EURJPY_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP4_EURJPY_UP_S2_OCO1"));
};
Base.EURJPY_UP_S2_OCO1Sets4.Add( Base.EURJPY_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO5_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP5,"TP5_EURJPY_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP5_EURJPY_UP_S2_OCO1"));
};
Base.EURJPY_UP_S2_OCO1Sets5.Add( Base.EURJPY_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO6_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP6,"TP6_EURJPY_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP6_EURJPY_UP_S2_OCO1"));
};
Base.EURJPY_UP_S2_OCO1Sets6.Add( Base.EURJPY_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO6_UP_S2_ID = -1;
}
int EURJPY_OCO1S1_UP_S2 = 0;
for (; EURJPY_OCO1S1_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets1.Count; EURJPY_OCO1S1_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets1[EURJPY_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO1Sets1[EURJPY_OCO1S1_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO1Sets1.RemoveAt(EURJPY_OCO1S1_UP_S2);
EURJPY_OCO1S1_UP_S2 = 0;
break;
}
int EURJPY_OCO1S2_UP_S2 = 0;
for (; EURJPY_OCO1S2_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets2.Count; EURJPY_OCO1S2_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets2[EURJPY_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO1Sets2[EURJPY_OCO1S2_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO1Sets2.RemoveAt(EURJPY_OCO1S2_UP_S2);
EURJPY_OCO1S2_UP_S2 = 0;
break;
}
int EURJPY_OCO1S3_UP_S2 = 0;
for (; EURJPY_OCO1S3_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets3.Count; EURJPY_OCO1S3_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets3[EURJPY_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO1Sets3[EURJPY_OCO1S3_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO1Sets3.RemoveAt(EURJPY_OCO1S3_UP_S2);
EURJPY_OCO1S3_UP_S2 = 0;
break;
}
int EURJPY_OCO1S4_UP_S2 = 0;
for (; EURJPY_OCO1S4_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets4.Count; EURJPY_OCO1S4_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets4[EURJPY_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO1Sets4[EURJPY_OCO1S4_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO1Sets4.RemoveAt(EURJPY_OCO1S4_UP_S2);
EURJPY_OCO1S4_UP_S2 = 0;
break;
}
int EURJPY_OCO1S5_UP_S2 = 0;
for (; EURJPY_OCO1S5_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets5.Count; EURJPY_OCO1S5_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets5[EURJPY_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO1Sets5[EURJPY_OCO1S5_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO1Sets5.RemoveAt(EURJPY_OCO1S5_UP_S2);
EURJPY_OCO1S5_UP_S2 = 0;
break;
}
int EURJPY_OCO1S6_UP_S2 = 0;
for (; EURJPY_OCO1S6_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets6.Count; EURJPY_OCO1S6_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets6[EURJPY_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO1Sets6[EURJPY_OCO1S6_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO1Sets6.RemoveAt(EURJPY_OCO1S6_UP_S2);
EURJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO2_EO1_UP_S2)
Base.EURJPY_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO2_EO2_UP_S2)
Base.EURJPY_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO2_EO3_UP_S2)
Base.EURJPY_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO2_EO4_UP_S2)
Base.EURJPY_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO2_EO5_UP_S2)
Base.EURJPY_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO2_EO6_UP_S2)
Base.EURJPY_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO1_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP1,"TP1_EURJPY_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP1_EURJPY_UP_S2_OCO2"));
};
Base.EURJPY_UP_S2_OCO2Sets1.Add( Base.EURJPY_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO2_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP2,"TP2_EURJPY_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP2_EURJPY_UP_S2_OCO2"));
};
Base.EURJPY_UP_S2_OCO2Sets2.Add( Base.EURJPY_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO3_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP3,"TP3_EURJPY_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP3_EURJPY_UP_S2_OCO2"));
};
Base.EURJPY_UP_S2_OCO2Sets3.Add( Base.EURJPY_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO4_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP4,"TP4_EURJPY_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP4_EURJPY_UP_S2_OCO2"));
};
Base.EURJPY_UP_S2_OCO2Sets4.Add( Base.EURJPY_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO5_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP5,"TP5_EURJPY_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP5_EURJPY_UP_S2_OCO2"));
};
Base.EURJPY_UP_S2_OCO2Sets5.Add( Base.EURJPY_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO6_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP6,"TP6_EURJPY_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP6_EURJPY_UP_S2_OCO2"));
};
Base.EURJPY_UP_S2_OCO2Sets6.Add( Base.EURJPY_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO6_UP_S2_ID = -1;
}
int EURJPY_OCO2S1_UP_S2 = 0;
for (; EURJPY_OCO2S1_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets1.Count; EURJPY_OCO2S1_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets1[EURJPY_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO2Sets1[EURJPY_OCO2S1_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO2Sets1.RemoveAt(EURJPY_OCO2S1_UP_S2);
EURJPY_OCO2S1_UP_S2 = 0;
break;
}
int EURJPY_OCO2S2_UP_S2 = 0;
for (; EURJPY_OCO2S2_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets2.Count; EURJPY_OCO2S2_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets2[EURJPY_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO2Sets2[EURJPY_OCO2S2_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO2Sets2.RemoveAt(EURJPY_OCO2S2_UP_S2);
EURJPY_OCO2S2_UP_S2 = 0;
break;
}
int EURJPY_OCO2S3_UP_S2 = 0;
for (; EURJPY_OCO2S3_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets3.Count; EURJPY_OCO2S3_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets3[EURJPY_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO2Sets3[EURJPY_OCO2S3_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO2Sets3.RemoveAt(EURJPY_OCO2S3_UP_S2);
EURJPY_OCO2S3_UP_S2 = 0;
break;
}
int EURJPY_OCO2S4_UP_S2 = 0;
for (; EURJPY_OCO2S4_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets4.Count; EURJPY_OCO2S4_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets4[EURJPY_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO2Sets4[EURJPY_OCO2S4_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO2Sets4.RemoveAt(EURJPY_OCO2S4_UP_S2);
EURJPY_OCO2S4_UP_S2 = 0;
break;
}
int EURJPY_OCO2S5_UP_S2 = 0;
for (; EURJPY_OCO2S5_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets5.Count; EURJPY_OCO2S5_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets5[EURJPY_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO2Sets5[EURJPY_OCO2S5_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO2Sets5.RemoveAt(EURJPY_OCO2S5_UP_S2);
EURJPY_OCO2S5_UP_S2 = 0;
break;
}
int EURJPY_OCO2S6_UP_S2 = 0;
for (; EURJPY_OCO2S6_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets6.Count; EURJPY_OCO2S6_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets6[EURJPY_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO2Sets6[EURJPY_OCO2S6_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO2Sets6.RemoveAt(EURJPY_OCO2S6_UP_S2);
EURJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO3_EO1_UP_S2)
Base.EURJPY_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO3_EO2_UP_S2)
Base.EURJPY_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO3_EO3_UP_S2)
Base.EURJPY_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO3_EO4_UP_S2)
Base.EURJPY_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO3_EO5_UP_S2)
Base.EURJPY_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO3_EO6_UP_S2)
Base.EURJPY_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO1_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP1,"TP1_EURJPY_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP1_EURJPY_UP_S2_OCO3"));
};
Base.EURJPY_UP_S2_OCO3Sets1.Add( Base.EURJPY_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO2_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP2,"TP2_EURJPY_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP2_EURJPY_UP_S2_OCO3"));
};
Base.EURJPY_UP_S2_OCO3Sets2.Add( Base.EURJPY_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO3_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP3,"TP3_EURJPY_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP3_EURJPY_UP_S2_OCO3"));
};
Base.EURJPY_UP_S2_OCO3Sets3.Add( Base.EURJPY_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO4_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP4,"TP4_EURJPY_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP4_EURJPY_UP_S2_OCO3"));
};
Base.EURJPY_UP_S2_OCO3Sets4.Add( Base.EURJPY_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO5_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP5,"TP5_EURJPY_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP5_EURJPY_UP_S2_OCO3"));
};
Base.EURJPY_UP_S2_OCO3Sets5.Add( Base.EURJPY_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO6_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP6,"TP6_EURJPY_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP6_EURJPY_UP_S2_OCO3"));
};
Base.EURJPY_UP_S2_OCO3Sets6.Add( Base.EURJPY_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO6_UP_S2_ID = -1;
}
int EURJPY_OCO3S1_UP_S2 = 0;
for (; EURJPY_OCO3S1_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets1.Count; EURJPY_OCO3S1_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets1[EURJPY_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO3Sets1[EURJPY_OCO3S1_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO3Sets1.RemoveAt(EURJPY_OCO3S1_UP_S2);
EURJPY_OCO3S1_UP_S2 = 0;
break;
}
int EURJPY_OCO3S2_UP_S2 = 0;
for (; EURJPY_OCO3S2_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets2.Count; EURJPY_OCO3S2_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets2[EURJPY_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO3Sets2[EURJPY_OCO3S2_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO3Sets2.RemoveAt(EURJPY_OCO3S2_UP_S2);
EURJPY_OCO3S2_UP_S2 = 0;
break;
}
int EURJPY_OCO3S3_UP_S2 = 0;
for (; EURJPY_OCO3S3_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets3.Count; EURJPY_OCO3S3_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets3[EURJPY_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO3Sets3[EURJPY_OCO3S3_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO3Sets3.RemoveAt(EURJPY_OCO3S3_UP_S2);
EURJPY_OCO3S3_UP_S2 = 0;
break;
}
int EURJPY_OCO3S4_UP_S2 = 0;
for (; EURJPY_OCO3S4_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets4.Count; EURJPY_OCO3S4_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets4[EURJPY_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO3Sets4[EURJPY_OCO3S4_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO3Sets4.RemoveAt(EURJPY_OCO3S4_UP_S2);
EURJPY_OCO3S4_UP_S2 = 0;
break;
}
int EURJPY_OCO3S5_UP_S2 = 0;
for (; EURJPY_OCO3S5_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets5.Count; EURJPY_OCO3S5_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets5[EURJPY_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO3Sets5[EURJPY_OCO3S5_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO3Sets5.RemoveAt(EURJPY_OCO3S5_UP_S2);
EURJPY_OCO3S5_UP_S2 = 0;
break;
}
int EURJPY_OCO3S6_UP_S2 = 0;
for (; EURJPY_OCO3S6_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets6.Count; EURJPY_OCO3S6_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets6[EURJPY_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO3Sets6[EURJPY_OCO3S6_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO3Sets6.RemoveAt(EURJPY_OCO3S6_UP_S2);
EURJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO4_EO1_UP_S2)
Base.EURJPY_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO4_EO2_UP_S2)
Base.EURJPY_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO4_EO3_UP_S2)
Base.EURJPY_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO4_EO4_UP_S2)
Base.EURJPY_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO4_EO5_UP_S2)
Base.EURJPY_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO4_EO6_UP_S2)
Base.EURJPY_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO1_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP1,"TP1_EURJPY_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP1_EURJPY_UP_S2_OCO4"));
};
Base.EURJPY_UP_S2_OCO4Sets1.Add( Base.EURJPY_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO2_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP2,"TP2_EURJPY_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP2_EURJPY_UP_S2_OCO4"));
};
Base.EURJPY_UP_S2_OCO4Sets2.Add( Base.EURJPY_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO3_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP3,"TP3_EURJPY_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP3_EURJPY_UP_S2_OCO4"));
};
Base.EURJPY_UP_S2_OCO4Sets3.Add( Base.EURJPY_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO4_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP4,"TP4_EURJPY_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP4_EURJPY_UP_S2_OCO4"));
};
Base.EURJPY_UP_S2_OCO4Sets4.Add( Base.EURJPY_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO5_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP5,"TP5_EURJPY_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP5_EURJPY_UP_S2_OCO4"));
};
Base.EURJPY_UP_S2_OCO4Sets5.Add( Base.EURJPY_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO6_UP_S2_ID)
{
Base.EURJPY_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_UP_S2_TP6,"TP6_EURJPY_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_UP_S2_SL,"SL_TP6_EURJPY_UP_S2_OCO4"));
};
Base.EURJPY_UP_S2_OCO4Sets6.Add( Base.EURJPY_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO6_UP_S2_ID = -1;
}
int EURJPY_OCO4S1_UP_S2 = 0;
for (; EURJPY_OCO4S1_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets1.Count; EURJPY_OCO4S1_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets1[EURJPY_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO4Sets1[EURJPY_OCO4S1_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO4Sets1.RemoveAt(EURJPY_OCO4S1_UP_S2);
EURJPY_OCO4S1_UP_S2 = 0;
break;
}
int EURJPY_OCO4S2_UP_S2 = 0;
for (; EURJPY_OCO4S2_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets2.Count; EURJPY_OCO4S2_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets2[EURJPY_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO4Sets2[EURJPY_OCO4S2_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO4Sets2.RemoveAt(EURJPY_OCO4S2_UP_S2);
EURJPY_OCO4S2_UP_S2 = 0;
break;
}
int EURJPY_OCO4S3_UP_S2 = 0;
for (; EURJPY_OCO4S3_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets3.Count; EURJPY_OCO4S3_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets3[EURJPY_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO4Sets3[EURJPY_OCO4S3_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO4Sets3.RemoveAt(EURJPY_OCO4S3_UP_S2);
EURJPY_OCO4S3_UP_S2 = 0;
break;
}
int EURJPY_OCO4S4_UP_S2 = 0;
for (; EURJPY_OCO4S4_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets4.Count; EURJPY_OCO4S4_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets4[EURJPY_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO4Sets4[EURJPY_OCO4S4_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO4Sets4.RemoveAt(EURJPY_OCO4S4_UP_S2);
EURJPY_OCO4S4_UP_S2 = 0;
break;
}
int EURJPY_OCO4S5_UP_S2 = 0;
for (; EURJPY_OCO4S5_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets5.Count; EURJPY_OCO4S5_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets5[EURJPY_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO4Sets5[EURJPY_OCO4S5_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO4Sets5.RemoveAt(EURJPY_OCO4S5_UP_S2);
EURJPY_OCO4S5_UP_S2 = 0;
break;
}
int EURJPY_OCO4S6_UP_S2 = 0;
for (; EURJPY_OCO4S6_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets6.Count; EURJPY_OCO4S6_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets6[EURJPY_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_UP_S2_OCO4Sets6[EURJPY_OCO4S6_UP_S2].Filled();
Base.EURJPY_UP_S2_OCO4Sets6.RemoveAt(EURJPY_OCO4S6_UP_S2);
EURJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct USDCHF_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public USDCHF_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
if (OrderID.Tag.StartsWith("USDCHF OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDCHF OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCHF S2");
}
}
if (Base.USDCHF_OCO1_EO1_UP_S2)
Base.USDCHF_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO1_EO2_UP_S2)
Base.USDCHF_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO1_EO3_UP_S2)
Base.USDCHF_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO1_EO4_UP_S2)
Base.USDCHF_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO1_EO5_UP_S2)
Base.USDCHF_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO1_EO6_UP_S2)
Base.USDCHF_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO1_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP1,"TP1_USDCHF_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP1_USDCHF_UP_S2_OCO1"));
};
Base.USDCHF_UP_S2_OCO1Sets1.Add( Base.USDCHF_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO2_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP2,"TP2_USDCHF_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP2_USDCHF_UP_S2_OCO1"));
};
Base.USDCHF_UP_S2_OCO1Sets2.Add( Base.USDCHF_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO3_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP3,"TP3_USDCHF_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP3_USDCHF_UP_S2_OCO1"));
};
Base.USDCHF_UP_S2_OCO1Sets3.Add( Base.USDCHF_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO4_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP4,"TP4_USDCHF_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP4_USDCHF_UP_S2_OCO1"));
};
Base.USDCHF_UP_S2_OCO1Sets4.Add( Base.USDCHF_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO5_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP5,"TP5_USDCHF_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP5_USDCHF_UP_S2_OCO1"));
};
Base.USDCHF_UP_S2_OCO1Sets5.Add( Base.USDCHF_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO1_EO6_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP6,"TP6_USDCHF_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP6_USDCHF_UP_S2_OCO1"));
};
Base.USDCHF_UP_S2_OCO1Sets6.Add( Base.USDCHF_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO1_EO6_UP_S2_ID = -1;
}
int USDCHF_OCO1S1_UP_S2 = 0;
for (; USDCHF_OCO1S1_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets1.Count; USDCHF_OCO1S1_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets1[USDCHF_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO1Sets1[USDCHF_OCO1S1_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO1Sets1.RemoveAt(USDCHF_OCO1S1_UP_S2);
USDCHF_OCO1S1_UP_S2 = 0;
break;
}
int USDCHF_OCO1S2_UP_S2 = 0;
for (; USDCHF_OCO1S2_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets2.Count; USDCHF_OCO1S2_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets2[USDCHF_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO1Sets2[USDCHF_OCO1S2_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO1Sets2.RemoveAt(USDCHF_OCO1S2_UP_S2);
USDCHF_OCO1S2_UP_S2 = 0;
break;
}
int USDCHF_OCO1S3_UP_S2 = 0;
for (; USDCHF_OCO1S3_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets3.Count; USDCHF_OCO1S3_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets3[USDCHF_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO1Sets3[USDCHF_OCO1S3_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO1Sets3.RemoveAt(USDCHF_OCO1S3_UP_S2);
USDCHF_OCO1S3_UP_S2 = 0;
break;
}
int USDCHF_OCO1S4_UP_S2 = 0;
for (; USDCHF_OCO1S4_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets4.Count; USDCHF_OCO1S4_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets4[USDCHF_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO1Sets4[USDCHF_OCO1S4_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO1Sets4.RemoveAt(USDCHF_OCO1S4_UP_S2);
USDCHF_OCO1S4_UP_S2 = 0;
break;
}
int USDCHF_OCO1S5_UP_S2 = 0;
for (; USDCHF_OCO1S5_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets5.Count; USDCHF_OCO1S5_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets5[USDCHF_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO1Sets5[USDCHF_OCO1S5_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO1Sets5.RemoveAt(USDCHF_OCO1S5_UP_S2);
USDCHF_OCO1S5_UP_S2 = 0;
break;
}
int USDCHF_OCO1S6_UP_S2 = 0;
for (; USDCHF_OCO1S6_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets6.Count; USDCHF_OCO1S6_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets6[USDCHF_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO1Sets6[USDCHF_OCO1S6_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO1Sets6.RemoveAt(USDCHF_OCO1S6_UP_S2);
USDCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO2_EO1_UP_S2)
Base.USDCHF_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO2_EO2_UP_S2)
Base.USDCHF_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO2_EO3_UP_S2)
Base.USDCHF_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO2_EO4_UP_S2)
Base.USDCHF_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO2_EO5_UP_S2)
Base.USDCHF_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO2_EO6_UP_S2)
Base.USDCHF_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO1_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP1,"TP1_USDCHF_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP1_USDCHF_UP_S2_OCO2"));
};
Base.USDCHF_UP_S2_OCO2Sets1.Add( Base.USDCHF_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO2_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP2,"TP2_USDCHF_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP2_USDCHF_UP_S2_OCO2"));
};
Base.USDCHF_UP_S2_OCO2Sets2.Add( Base.USDCHF_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO3_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP3,"TP3_USDCHF_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP3_USDCHF_UP_S2_OCO2"));
};
Base.USDCHF_UP_S2_OCO2Sets3.Add( Base.USDCHF_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO4_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP4,"TP4_USDCHF_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP4_USDCHF_UP_S2_OCO2"));
};
Base.USDCHF_UP_S2_OCO2Sets4.Add( Base.USDCHF_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO5_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP5,"TP5_USDCHF_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP5_USDCHF_UP_S2_OCO2"));
};
Base.USDCHF_UP_S2_OCO2Sets5.Add( Base.USDCHF_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO2_EO6_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP6,"TP6_USDCHF_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP6_USDCHF_UP_S2_OCO2"));
};
Base.USDCHF_UP_S2_OCO2Sets6.Add( Base.USDCHF_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO2_EO6_UP_S2_ID = -1;
}
int USDCHF_OCO2S1_UP_S2 = 0;
for (; USDCHF_OCO2S1_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets1.Count; USDCHF_OCO2S1_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets1[USDCHF_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO2Sets1[USDCHF_OCO2S1_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO2Sets1.RemoveAt(USDCHF_OCO2S1_UP_S2);
USDCHF_OCO2S1_UP_S2 = 0;
break;
}
int USDCHF_OCO2S2_UP_S2 = 0;
for (; USDCHF_OCO2S2_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets2.Count; USDCHF_OCO2S2_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets2[USDCHF_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO2Sets2[USDCHF_OCO2S2_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO2Sets2.RemoveAt(USDCHF_OCO2S2_UP_S2);
USDCHF_OCO2S2_UP_S2 = 0;
break;
}
int USDCHF_OCO2S3_UP_S2 = 0;
for (; USDCHF_OCO2S3_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets3.Count; USDCHF_OCO2S3_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets3[USDCHF_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO2Sets3[USDCHF_OCO2S3_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO2Sets3.RemoveAt(USDCHF_OCO2S3_UP_S2);
USDCHF_OCO2S3_UP_S2 = 0;
break;
}
int USDCHF_OCO2S4_UP_S2 = 0;
for (; USDCHF_OCO2S4_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets4.Count; USDCHF_OCO2S4_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets4[USDCHF_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO2Sets4[USDCHF_OCO2S4_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO2Sets4.RemoveAt(USDCHF_OCO2S4_UP_S2);
USDCHF_OCO2S4_UP_S2 = 0;
break;
}
int USDCHF_OCO2S5_UP_S2 = 0;
for (; USDCHF_OCO2S5_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets5.Count; USDCHF_OCO2S5_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets5[USDCHF_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO2Sets5[USDCHF_OCO2S5_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO2Sets5.RemoveAt(USDCHF_OCO2S5_UP_S2);
USDCHF_OCO2S5_UP_S2 = 0;
break;
}
int USDCHF_OCO2S6_UP_S2 = 0;
for (; USDCHF_OCO2S6_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets6.Count; USDCHF_OCO2S6_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets6[USDCHF_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO2Sets6[USDCHF_OCO2S6_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO2Sets6.RemoveAt(USDCHF_OCO2S6_UP_S2);
USDCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO3_EO1_UP_S2)
Base.USDCHF_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO3_EO2_UP_S2)
Base.USDCHF_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO3_EO3_UP_S2)
Base.USDCHF_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO3_EO4_UP_S2)
Base.USDCHF_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO3_EO5_UP_S2)
Base.USDCHF_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO3_EO6_UP_S2)
Base.USDCHF_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO1_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP1,"TP1_USDCHF_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP1_USDCHF_UP_S2_OCO3"));
};
Base.USDCHF_UP_S2_OCO3Sets1.Add( Base.USDCHF_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO2_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP2,"TP2_USDCHF_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP2_USDCHF_UP_S2_OCO3"));
};
Base.USDCHF_UP_S2_OCO3Sets2.Add( Base.USDCHF_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO3_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP3,"TP3_USDCHF_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP3_USDCHF_UP_S2_OCO3"));
};
Base.USDCHF_UP_S2_OCO3Sets3.Add( Base.USDCHF_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO4_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP4,"TP4_USDCHF_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP4_USDCHF_UP_S2_OCO3"));
};
Base.USDCHF_UP_S2_OCO3Sets4.Add( Base.USDCHF_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO5_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP5,"TP5_USDCHF_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP5_USDCHF_UP_S2_OCO3"));
};
Base.USDCHF_UP_S2_OCO3Sets5.Add( Base.USDCHF_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO3_EO6_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP6,"TP6_USDCHF_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP6_USDCHF_UP_S2_OCO3"));
};
Base.USDCHF_UP_S2_OCO3Sets6.Add( Base.USDCHF_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO3_EO6_UP_S2_ID = -1;
}
int USDCHF_OCO3S1_UP_S2 = 0;
for (; USDCHF_OCO3S1_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets1.Count; USDCHF_OCO3S1_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets1[USDCHF_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO3Sets1[USDCHF_OCO3S1_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO3Sets1.RemoveAt(USDCHF_OCO3S1_UP_S2);
USDCHF_OCO3S1_UP_S2 = 0;
break;
}
int USDCHF_OCO3S2_UP_S2 = 0;
for (; USDCHF_OCO3S2_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets2.Count; USDCHF_OCO3S2_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets2[USDCHF_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO3Sets2[USDCHF_OCO3S2_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO3Sets2.RemoveAt(USDCHF_OCO3S2_UP_S2);
USDCHF_OCO3S2_UP_S2 = 0;
break;
}
int USDCHF_OCO3S3_UP_S2 = 0;
for (; USDCHF_OCO3S3_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets3.Count; USDCHF_OCO3S3_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets3[USDCHF_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO3Sets3[USDCHF_OCO3S3_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO3Sets3.RemoveAt(USDCHF_OCO3S3_UP_S2);
USDCHF_OCO3S3_UP_S2 = 0;
break;
}
int USDCHF_OCO3S4_UP_S2 = 0;
for (; USDCHF_OCO3S4_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets4.Count; USDCHF_OCO3S4_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets4[USDCHF_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO3Sets4[USDCHF_OCO3S4_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO3Sets4.RemoveAt(USDCHF_OCO3S4_UP_S2);
USDCHF_OCO3S4_UP_S2 = 0;
break;
}
int USDCHF_OCO3S5_UP_S2 = 0;
for (; USDCHF_OCO3S5_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets5.Count; USDCHF_OCO3S5_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets5[USDCHF_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO3Sets5[USDCHF_OCO3S5_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO3Sets5.RemoveAt(USDCHF_OCO3S5_UP_S2);
USDCHF_OCO3S5_UP_S2 = 0;
break;
}
int USDCHF_OCO3S6_UP_S2 = 0;
for (; USDCHF_OCO3S6_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets6.Count; USDCHF_OCO3S6_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets6[USDCHF_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO3Sets6[USDCHF_OCO3S6_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO3Sets6.RemoveAt(USDCHF_OCO3S6_UP_S2);
USDCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO4_EO1_UP_S2)
Base.USDCHF_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO4_EO2_UP_S2)
Base.USDCHF_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO4_EO3_UP_S2)
Base.USDCHF_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO4_EO4_UP_S2)
Base.USDCHF_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO4_EO5_UP_S2)
Base.USDCHF_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCHF_OCO4_EO6_UP_S2)
Base.USDCHF_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO1_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP1,"TP1_USDCHF_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP1_USDCHF_UP_S2_OCO4"));
};
Base.USDCHF_UP_S2_OCO4Sets1.Add( Base.USDCHF_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO2_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP2,"TP2_USDCHF_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP2_USDCHF_UP_S2_OCO4"));
};
Base.USDCHF_UP_S2_OCO4Sets2.Add( Base.USDCHF_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO3_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP3,"TP3_USDCHF_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP3_USDCHF_UP_S2_OCO4"));
};
Base.USDCHF_UP_S2_OCO4Sets3.Add( Base.USDCHF_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO4_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP4,"TP4_USDCHF_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP4_USDCHF_UP_S2_OCO4"));
};
Base.USDCHF_UP_S2_OCO4Sets4.Add( Base.USDCHF_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO5_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP5,"TP5_USDCHF_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP5_USDCHF_UP_S2_OCO4"));
};
Base.USDCHF_UP_S2_OCO4Sets5.Add( Base.USDCHF_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCHF_OCO4_EO6_UP_S2_ID)
{
Base.USDCHF_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDCHF_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCHF_UP_S2_TP6,"TP6_USDCHF_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCHF_UP_S2_SL,"SL_TP6_USDCHF_UP_S2_OCO4"));
};
Base.USDCHF_UP_S2_OCO4Sets6.Add( Base.USDCHF_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCHF_OCO4_EO6_UP_S2_ID = -1;
}
int USDCHF_OCO4S1_UP_S2 = 0;
for (; USDCHF_OCO4S1_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets1.Count; USDCHF_OCO4S1_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets1[USDCHF_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO4Sets1[USDCHF_OCO4S1_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO4Sets1.RemoveAt(USDCHF_OCO4S1_UP_S2);
USDCHF_OCO4S1_UP_S2 = 0;
break;
}
int USDCHF_OCO4S2_UP_S2 = 0;
for (; USDCHF_OCO4S2_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets2.Count; USDCHF_OCO4S2_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets2[USDCHF_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO4Sets2[USDCHF_OCO4S2_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO4Sets2.RemoveAt(USDCHF_OCO4S2_UP_S2);
USDCHF_OCO4S2_UP_S2 = 0;
break;
}
int USDCHF_OCO4S3_UP_S2 = 0;
for (; USDCHF_OCO4S3_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets3.Count; USDCHF_OCO4S3_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets3[USDCHF_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO4Sets3[USDCHF_OCO4S3_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO4Sets3.RemoveAt(USDCHF_OCO4S3_UP_S2);
USDCHF_OCO4S3_UP_S2 = 0;
break;
}
int USDCHF_OCO4S4_UP_S2 = 0;
for (; USDCHF_OCO4S4_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets4.Count; USDCHF_OCO4S4_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets4[USDCHF_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO4Sets4[USDCHF_OCO4S4_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO4Sets4.RemoveAt(USDCHF_OCO4S4_UP_S2);
USDCHF_OCO4S4_UP_S2 = 0;
break;
}
int USDCHF_OCO4S5_UP_S2 = 0;
for (; USDCHF_OCO4S5_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets5.Count; USDCHF_OCO4S5_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets5[USDCHF_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO4Sets5[USDCHF_OCO4S5_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO4Sets5.RemoveAt(USDCHF_OCO4S5_UP_S2);
USDCHF_OCO4S5_UP_S2 = 0;
break;
}
int USDCHF_OCO4S6_UP_S2 = 0;
for (; USDCHF_OCO4S6_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets6.Count; USDCHF_OCO4S6_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets6[USDCHF_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCHF_UP_S2_OCO4Sets6[USDCHF_OCO4S6_UP_S2].Filled();
Base.USDCHF_UP_S2_OCO4Sets6.RemoveAt(USDCHF_OCO4S6_UP_S2);
USDCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _GBPUSD;
///oco1 up
public static OrderTicket GBPUSD_OCO1_MO1_UP_S2;
public static OrderTicket GBPUSD_OCO1_MO2_UP_S2;
public static OrderTicket GBPUSD_OCO1_MO3_UP_S2;
public static OrderTicket GBPUSD_OCO1_MO4_UP_S2;
public static OrderTicket GBPUSD_OCO1_MO5_UP_S2;
public static OrderTicket GBPUSD_OCO1_MO6_UP_S2;
public static int GBPUSD_OCO1_EO1_UP_S2_ID ;
public static int GBPUSD_OCO1_EO2_UP_S2_ID ;
public static int GBPUSD_OCO1_EO3_UP_S2_ID ;
public static int GBPUSD_OCO1_EO4_UP_S2_ID ;
public static int GBPUSD_OCO1_EO5_UP_S2_ID ;
public static int GBPUSD_OCO1_EO6_UP_S2_ID ;
public static bool GBPUSD_OCO1_EO1_UP_S2 ;
public static bool GBPUSD_OCO1_EO2_UP_S2 ;
public static bool GBPUSD_OCO1_EO3_UP_S2 ;
public static bool GBPUSD_OCO1_EO4_UP_S2 ;
public static bool GBPUSD_OCO1_EO5_UP_S2 ;
public static bool GBPUSD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_UP_S2> GBPUSD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_UP_S2> GBPUSD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_UP_S2> GBPUSD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_UP_S2> GBPUSD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_UP_S2> GBPUSD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_UP_S2> GBPUSD_OOFE_OCO1_UP_S2_6 ;
public static GBPUSD_OCO1_UP_S2 GBPUSD_PFO_OCO1_UP_S2_1 ;
public static GBPUSD_OCO1_UP_S2 GBPUSD_PFO_OCO1_UP_S2_2 ;
public static GBPUSD_OCO1_UP_S2 GBPUSD_PFO_OCO1_UP_S2_3 ;
public static GBPUSD_OCO1_UP_S2 GBPUSD_PFO_OCO1_UP_S2_4 ;
public static GBPUSD_OCO1_UP_S2 GBPUSD_PFO_OCO1_UP_S2_5 ;
public static GBPUSD_OCO1_UP_S2 GBPUSD_PFO_OCO1_UP_S2_6 ;
public static List<GBPUSD_OCO1_UP_S2> GBPUSD_UP_S2_OCO1Sets1 = new List<GBPUSD_OCO1_UP_S2>();
public static List<GBPUSD_OCO1_UP_S2> GBPUSD_UP_S2_OCO1Sets2 = new List<GBPUSD_OCO1_UP_S2>();
public static List<GBPUSD_OCO1_UP_S2> GBPUSD_UP_S2_OCO1Sets3 = new List<GBPUSD_OCO1_UP_S2>();
public static List<GBPUSD_OCO1_UP_S2> GBPUSD_UP_S2_OCO1Sets4 = new List<GBPUSD_OCO1_UP_S2>();
public static List<GBPUSD_OCO1_UP_S2> GBPUSD_UP_S2_OCO1Sets5 = new List<GBPUSD_OCO1_UP_S2>();
public static List<GBPUSD_OCO1_UP_S2> GBPUSD_UP_S2_OCO1Sets6 = new List<GBPUSD_OCO1_UP_S2>();
public static bool GBPUSD_OCO1_UP_S2_IsReady = true;
public static bool GBPUSD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket GBPUSD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO1_MO6_DOWN_S2 ;
public static int GBPUSD_OCO1_EO1_DOWN_S2_ID ;
public static int GBPUSD_OCO1_EO2_DOWN_S2_ID ;
public static int GBPUSD_OCO1_EO3_DOWN_S2_ID ;
public static int GBPUSD_OCO1_EO4_DOWN_S2_ID ;
public static int GBPUSD_OCO1_EO5_DOWN_S2_ID ;
public static int GBPUSD_OCO1_EO6_DOWN_S2_ID ;
public static bool GBPUSD_OCO1_EO1_DOWN_S2 ;
public static bool GBPUSD_OCO1_EO2_DOWN_S2 ;
public static bool GBPUSD_OCO1_EO3_DOWN_S2 ;
public static bool GBPUSD_OCO1_EO4_DOWN_S2 ;
public static bool GBPUSD_OCO1_EO5_DOWN_S2 ;
public static bool GBPUSD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_DOWN_S2> GBPUSD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_DOWN_S2> GBPUSD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_DOWN_S2> GBPUSD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_DOWN_S2> GBPUSD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_DOWN_S2> GBPUSD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO1_DOWN_S2> GBPUSD_OOFE_OCO1_DOWN_S2_6 ;
public static GBPUSD_OCO1_DOWN_S2 GBPUSD_PFO_OCO1_DOWN_S2_1 ;
public static GBPUSD_OCO1_DOWN_S2 GBPUSD_PFO_OCO1_DOWN_S2_2 ;
public static GBPUSD_OCO1_DOWN_S2 GBPUSD_PFO_OCO1_DOWN_S2_3 ;
public static GBPUSD_OCO1_DOWN_S2 GBPUSD_PFO_OCO1_DOWN_S2_4 ;
public static GBPUSD_OCO1_DOWN_S2 GBPUSD_PFO_OCO1_DOWN_S2_5 ;
public static GBPUSD_OCO1_DOWN_S2 GBPUSD_PFO_OCO1_DOWN_S2_6 ;
public static List<GBPUSD_OCO1_DOWN_S2> GBPUSD_DOWN_S2_OCO1Sets1 = new List<GBPUSD_OCO1_DOWN_S2>();
public static List<GBPUSD_OCO1_DOWN_S2> GBPUSD_DOWN_S2_OCO1Sets2 = new List<GBPUSD_OCO1_DOWN_S2>();
public static List<GBPUSD_OCO1_DOWN_S2> GBPUSD_DOWN_S2_OCO1Sets3 = new List<GBPUSD_OCO1_DOWN_S2>();
public static List<GBPUSD_OCO1_DOWN_S2> GBPUSD_DOWN_S2_OCO1Sets4 = new List<GBPUSD_OCO1_DOWN_S2>();
public static List<GBPUSD_OCO1_DOWN_S2> GBPUSD_DOWN_S2_OCO1Sets5 = new List<GBPUSD_OCO1_DOWN_S2>();
public static List<GBPUSD_OCO1_DOWN_S2> GBPUSD_DOWN_S2_OCO1Sets6 = new List<GBPUSD_OCO1_DOWN_S2>();
public static bool GBPUSD_OCO1_DOWN_S2_IsReady = true;
public static bool GBPUSD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket GBPUSD_OCO2_MO1_UP_S2 ;
public static OrderTicket GBPUSD_OCO2_MO2_UP_S2 ;
public static OrderTicket GBPUSD_OCO2_MO3_UP_S2 ;
public static OrderTicket GBPUSD_OCO2_MO4_UP_S2 ;
public static OrderTicket GBPUSD_OCO2_MO5_UP_S2 ;
public static OrderTicket GBPUSD_OCO2_MO6_UP_S2 ;
public static int GBPUSD_OCO2_EO1_UP_S2_ID ;
public static int GBPUSD_OCO2_EO2_UP_S2_ID ;
public static int GBPUSD_OCO2_EO3_UP_S2_ID ;
public static int GBPUSD_OCO2_EO4_UP_S2_ID ;
public static int GBPUSD_OCO2_EO5_UP_S2_ID ;
public static int GBPUSD_OCO2_EO6_UP_S2_ID ;
public static bool GBPUSD_OCO2_EO1_UP_S2 ;
public static bool GBPUSD_OCO2_EO2_UP_S2 ;
public static bool GBPUSD_OCO2_EO3_UP_S2 ;
public static bool GBPUSD_OCO2_EO4_UP_S2 ;
public static bool GBPUSD_OCO2_EO5_UP_S2 ;
public static bool GBPUSD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_UP_S2> GBPUSD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_UP_S2> GBPUSD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_UP_S2> GBPUSD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_UP_S2> GBPUSD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_UP_S2> GBPUSD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_UP_S2> GBPUSD_OOFE_OCO2_UP_S2_6 ;
public static GBPUSD_OCO2_UP_S2 GBPUSD_PFO_OCO2_UP_S2_1 ;
public static GBPUSD_OCO2_UP_S2 GBPUSD_PFO_OCO2_UP_S2_2 ;
public static GBPUSD_OCO2_UP_S2 GBPUSD_PFO_OCO2_UP_S2_3 ;
public static GBPUSD_OCO2_UP_S2 GBPUSD_PFO_OCO2_UP_S2_4 ;
public static GBPUSD_OCO2_UP_S2 GBPUSD_PFO_OCO2_UP_S2_5 ;
public static GBPUSD_OCO2_UP_S2 GBPUSD_PFO_OCO2_UP_S2_6 ;
public static List<GBPUSD_OCO2_UP_S2> GBPUSD_UP_S2_OCO2Sets1 = new List<GBPUSD_OCO2_UP_S2>();
public static List<GBPUSD_OCO2_UP_S2> GBPUSD_UP_S2_OCO2Sets2 = new List<GBPUSD_OCO2_UP_S2>();
public static List<GBPUSD_OCO2_UP_S2> GBPUSD_UP_S2_OCO2Sets3 = new List<GBPUSD_OCO2_UP_S2>();
public static List<GBPUSD_OCO2_UP_S2> GBPUSD_UP_S2_OCO2Sets4 = new List<GBPUSD_OCO2_UP_S2>();
public static List<GBPUSD_OCO2_UP_S2> GBPUSD_UP_S2_OCO2Sets5 = new List<GBPUSD_OCO2_UP_S2>();
public static List<GBPUSD_OCO2_UP_S2> GBPUSD_UP_S2_OCO2Sets6 = new List<GBPUSD_OCO2_UP_S2>();
public static bool GBPUSD_OCO2_UP_S2_IsReady = true;
public static bool GBPUSD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket GBPUSD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO2_MO6_DOWN_S2 ;
public static int GBPUSD_OCO2_EO1_DOWN_S2_ID ;
public static int GBPUSD_OCO2_EO2_DOWN_S2_ID ;
public static int GBPUSD_OCO2_EO3_DOWN_S2_ID ;
public static int GBPUSD_OCO2_EO4_DOWN_S2_ID ;
public static int GBPUSD_OCO2_EO5_DOWN_S2_ID ;
public static int GBPUSD_OCO2_EO6_DOWN_S2_ID ;
public static bool GBPUSD_OCO2_EO1_DOWN_S2 ;
public static bool GBPUSD_OCO2_EO2_DOWN_S2 ;
public static bool GBPUSD_OCO2_EO3_DOWN_S2 ;
public static bool GBPUSD_OCO2_EO4_DOWN_S2 ;
public static bool GBPUSD_OCO2_EO5_DOWN_S2 ;
public static bool GBPUSD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_DOWN_S2> GBPUSD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_DOWN_S2> GBPUSD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_DOWN_S2> GBPUSD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_DOWN_S2> GBPUSD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_DOWN_S2> GBPUSD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO2_DOWN_S2> GBPUSD_OOFE_OCO2_DOWN_S2_6 ;
public static GBPUSD_OCO2_DOWN_S2 GBPUSD_PFO_OCO2_DOWN_S2_1 ;
public static GBPUSD_OCO2_DOWN_S2 GBPUSD_PFO_OCO2_DOWN_S2_2 ;
public static GBPUSD_OCO2_DOWN_S2 GBPUSD_PFO_OCO2_DOWN_S2_3 ;
public static GBPUSD_OCO2_DOWN_S2 GBPUSD_PFO_OCO2_DOWN_S2_4 ;
public static GBPUSD_OCO2_DOWN_S2 GBPUSD_PFO_OCO2_DOWN_S2_5 ;
public static GBPUSD_OCO2_DOWN_S2 GBPUSD_PFO_OCO2_DOWN_S2_6 ;
public static List<GBPUSD_OCO2_DOWN_S2> GBPUSD_DOWN_S2_OCO2Sets1 = new List<GBPUSD_OCO2_DOWN_S2>();
public static List<GBPUSD_OCO2_DOWN_S2> GBPUSD_DOWN_S2_OCO2Sets2 = new List<GBPUSD_OCO2_DOWN_S2>();
public static List<GBPUSD_OCO2_DOWN_S2> GBPUSD_DOWN_S2_OCO2Sets3 = new List<GBPUSD_OCO2_DOWN_S2>();
public static List<GBPUSD_OCO2_DOWN_S2> GBPUSD_DOWN_S2_OCO2Sets4 = new List<GBPUSD_OCO2_DOWN_S2>();
public static List<GBPUSD_OCO2_DOWN_S2> GBPUSD_DOWN_S2_OCO2Sets5 = new List<GBPUSD_OCO2_DOWN_S2>();
public static List<GBPUSD_OCO2_DOWN_S2> GBPUSD_DOWN_S2_OCO2Sets6 = new List<GBPUSD_OCO2_DOWN_S2>();
public static bool GBPUSD_OCO2_DOWN_S2_IsReady = true;
public static bool GBPUSD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket GBPUSD_OCO3_MO1_UP_S2 ;
public static OrderTicket GBPUSD_OCO3_MO2_UP_S2 ;
public static OrderTicket GBPUSD_OCO3_MO3_UP_S2 ;
public static OrderTicket GBPUSD_OCO3_MO4_UP_S2 ;
public static OrderTicket GBPUSD_OCO3_MO5_UP_S2 ;
public static OrderTicket GBPUSD_OCO3_MO6_UP_S2 ;
public static int GBPUSD_OCO3_EO1_UP_S2_ID ;
public static int GBPUSD_OCO3_EO2_UP_S2_ID ;
public static int GBPUSD_OCO3_EO3_UP_S2_ID ;
public static int GBPUSD_OCO3_EO4_UP_S2_ID ;
public static int GBPUSD_OCO3_EO5_UP_S2_ID ;
public static int GBPUSD_OCO3_EO6_UP_S2_ID ;
public static bool GBPUSD_OCO3_EO1_UP_S2 ;
public static bool GBPUSD_OCO3_EO2_UP_S2 ;
public static bool GBPUSD_OCO3_EO3_UP_S2 ;
public static bool GBPUSD_OCO3_EO4_UP_S2 ;
public static bool GBPUSD_OCO3_EO5_UP_S2 ;
public static bool GBPUSD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_UP_S2> GBPUSD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_UP_S2> GBPUSD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_UP_S2> GBPUSD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_UP_S2> GBPUSD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_UP_S2> GBPUSD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_UP_S2> GBPUSD_OOFE_OCO3_UP_S2_6 ;
public static GBPUSD_OCO3_UP_S2 GBPUSD_PFO_OCO3_UP_S2_1 ;
public static GBPUSD_OCO3_UP_S2 GBPUSD_PFO_OCO3_UP_S2_2 ;
public static GBPUSD_OCO3_UP_S2 GBPUSD_PFO_OCO3_UP_S2_3 ;
public static GBPUSD_OCO3_UP_S2 GBPUSD_PFO_OCO3_UP_S2_4 ;
public static GBPUSD_OCO3_UP_S2 GBPUSD_PFO_OCO3_UP_S2_5 ;
public static GBPUSD_OCO3_UP_S2 GBPUSD_PFO_OCO3_UP_S2_6 ;
public static List<GBPUSD_OCO3_UP_S2> GBPUSD_UP_S2_OCO3Sets1 = new List<GBPUSD_OCO3_UP_S2>();
public static List<GBPUSD_OCO3_UP_S2> GBPUSD_UP_S2_OCO3Sets2 = new List<GBPUSD_OCO3_UP_S2>();
public static List<GBPUSD_OCO3_UP_S2> GBPUSD_UP_S2_OCO3Sets3 = new List<GBPUSD_OCO3_UP_S2>();
public static List<GBPUSD_OCO3_UP_S2> GBPUSD_UP_S2_OCO3Sets4 = new List<GBPUSD_OCO3_UP_S2>();
public static List<GBPUSD_OCO3_UP_S2> GBPUSD_UP_S2_OCO3Sets5 = new List<GBPUSD_OCO3_UP_S2>();
public static List<GBPUSD_OCO3_UP_S2> GBPUSD_UP_S2_OCO3Sets6 = new List<GBPUSD_OCO3_UP_S2>();
public static bool GBPUSD_OCO3_UP_S2_IsReady = true;
public static bool GBPUSD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket GBPUSD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO3_MO6_DOWN_S2 ;
public static int GBPUSD_OCO3_EO1_DOWN_S2_ID ;
public static int GBPUSD_OCO3_EO2_DOWN_S2_ID ;
public static int GBPUSD_OCO3_EO3_DOWN_S2_ID ;
public static int GBPUSD_OCO3_EO4_DOWN_S2_ID ;
public static int GBPUSD_OCO3_EO5_DOWN_S2_ID ;
public static int GBPUSD_OCO3_EO6_DOWN_S2_ID ;
public static bool GBPUSD_OCO3_EO1_DOWN_S2 ;
public static bool GBPUSD_OCO3_EO2_DOWN_S2 ;
public static bool GBPUSD_OCO3_EO3_DOWN_S2 ;
public static bool GBPUSD_OCO3_EO4_DOWN_S2 ;
public static bool GBPUSD_OCO3_EO5_DOWN_S2 ;
public static bool GBPUSD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_DOWN_S2> GBPUSD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_DOWN_S2> GBPUSD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_DOWN_S2> GBPUSD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_DOWN_S2> GBPUSD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_DOWN_S2> GBPUSD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO3_DOWN_S2> GBPUSD_OOFE_OCO3_DOWN_S2_6 ;
public static GBPUSD_OCO3_DOWN_S2 GBPUSD_PFO_OCO3_DOWN_S2_1 ;
public static GBPUSD_OCO3_DOWN_S2 GBPUSD_PFO_OCO3_DOWN_S2_2 ;
public static GBPUSD_OCO3_DOWN_S2 GBPUSD_PFO_OCO3_DOWN_S2_3 ;
public static GBPUSD_OCO3_DOWN_S2 GBPUSD_PFO_OCO3_DOWN_S2_4 ;
public static GBPUSD_OCO3_DOWN_S2 GBPUSD_PFO_OCO3_DOWN_S2_5 ;
public static GBPUSD_OCO3_DOWN_S2 GBPUSD_PFO_OCO3_DOWN_S2_6 ;
public static List<GBPUSD_OCO3_DOWN_S2> GBPUSD_DOWN_S2_OCO3Sets1 = new List<GBPUSD_OCO3_DOWN_S2>();
public static List<GBPUSD_OCO3_DOWN_S2> GBPUSD_DOWN_S2_OCO3Sets2 = new List<GBPUSD_OCO3_DOWN_S2>();
public static List<GBPUSD_OCO3_DOWN_S2> GBPUSD_DOWN_S2_OCO3Sets3 = new List<GBPUSD_OCO3_DOWN_S2>();
public static List<GBPUSD_OCO3_DOWN_S2> GBPUSD_DOWN_S2_OCO3Sets4 = new List<GBPUSD_OCO3_DOWN_S2>();
public static List<GBPUSD_OCO3_DOWN_S2> GBPUSD_DOWN_S2_OCO3Sets5 = new List<GBPUSD_OCO3_DOWN_S2>();
public static List<GBPUSD_OCO3_DOWN_S2> GBPUSD_DOWN_S2_OCO3Sets6 = new List<GBPUSD_OCO3_DOWN_S2>();
public static bool GBPUSD_OCO3_DOWN_S2_IsReady = true;
public static bool GBPUSD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket GBPUSD_OCO4_MO1_UP_S2 ;
public static OrderTicket GBPUSD_OCO4_MO2_UP_S2 ;
public static OrderTicket GBPUSD_OCO4_MO3_UP_S2 ;
public static OrderTicket GBPUSD_OCO4_MO4_UP_S2 ;
public static OrderTicket GBPUSD_OCO4_MO5_UP_S2 ;
public static OrderTicket GBPUSD_OCO4_MO6_UP_S2 ;
public static int GBPUSD_OCO4_EO1_UP_S2_ID ;
public static int GBPUSD_OCO4_EO2_UP_S2_ID ;
public static int GBPUSD_OCO4_EO3_UP_S2_ID ;
public static int GBPUSD_OCO4_EO4_UP_S2_ID ;
public static int GBPUSD_OCO4_EO5_UP_S2_ID ;
public static int GBPUSD_OCO4_EO6_UP_S2_ID ;
public static bool GBPUSD_OCO4_EO1_UP_S2 ;
public static bool GBPUSD_OCO4_EO2_UP_S2 ;
public static bool GBPUSD_OCO4_EO3_UP_S2 ;
public static bool GBPUSD_OCO4_EO4_UP_S2 ;
public static bool GBPUSD_OCO4_EO5_UP_S2 ;
public static bool GBPUSD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_UP_S2> GBPUSD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_UP_S2> GBPUSD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_UP_S2> GBPUSD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_UP_S2> GBPUSD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_UP_S2> GBPUSD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_UP_S2> GBPUSD_OOFE_OCO4_UP_S2_6 ;
public static GBPUSD_OCO4_UP_S2 GBPUSD_PFO_OCO4_UP_S2_1 ;
public static GBPUSD_OCO4_UP_S2 GBPUSD_PFO_OCO4_UP_S2_2 ;
public static GBPUSD_OCO4_UP_S2 GBPUSD_PFO_OCO4_UP_S2_3 ;
public static GBPUSD_OCO4_UP_S2 GBPUSD_PFO_OCO4_UP_S2_4 ;
public static GBPUSD_OCO4_UP_S2 GBPUSD_PFO_OCO4_UP_S2_5 ;
public static GBPUSD_OCO4_UP_S2 GBPUSD_PFO_OCO4_UP_S2_6 ;
public static List<GBPUSD_OCO4_UP_S2> GBPUSD_UP_S2_OCO4Sets1 = new List<GBPUSD_OCO4_UP_S2>();
public static List<GBPUSD_OCO4_UP_S2> GBPUSD_UP_S2_OCO4Sets2 = new List<GBPUSD_OCO4_UP_S2>();
public static List<GBPUSD_OCO4_UP_S2> GBPUSD_UP_S2_OCO4Sets3 = new List<GBPUSD_OCO4_UP_S2>();
public static List<GBPUSD_OCO4_UP_S2> GBPUSD_UP_S2_OCO4Sets4 = new List<GBPUSD_OCO4_UP_S2>();
public static List<GBPUSD_OCO4_UP_S2> GBPUSD_UP_S2_OCO4Sets5 = new List<GBPUSD_OCO4_UP_S2>();
public static List<GBPUSD_OCO4_UP_S2> GBPUSD_UP_S2_OCO4Sets6 = new List<GBPUSD_OCO4_UP_S2>();
public static bool GBPUSD_OCO4_UP_S2_IsReady = true;
public static bool GBPUSD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket GBPUSD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket GBPUSD_OCO4_MO6_DOWN_S2 ;
public static int GBPUSD_OCO4_EO1_DOWN_S2_ID ;
public static int GBPUSD_OCO4_EO2_DOWN_S2_ID ;
public static int GBPUSD_OCO4_EO3_DOWN_S2_ID ;
public static int GBPUSD_OCO4_EO4_DOWN_S2_ID ;
public static int GBPUSD_OCO4_EO5_DOWN_S2_ID ;
public static int GBPUSD_OCO4_EO6_DOWN_S2_ID ;
public static bool GBPUSD_OCO4_EO1_DOWN_S2 ;
public static bool GBPUSD_OCO4_EO2_DOWN_S2 ;
public static bool GBPUSD_OCO4_EO3_DOWN_S2 ;
public static bool GBPUSD_OCO4_EO4_DOWN_S2 ;
public static bool GBPUSD_OCO4_EO5_DOWN_S2 ;
public static bool GBPUSD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_DOWN_S2> GBPUSD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_DOWN_S2> GBPUSD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_DOWN_S2> GBPUSD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_DOWN_S2> GBPUSD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_DOWN_S2> GBPUSD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPUSD_OCO4_DOWN_S2> GBPUSD_OOFE_OCO4_DOWN_S2_6 ;
public static GBPUSD_OCO4_DOWN_S2 GBPUSD_PFO_OCO4_DOWN_S2_1 ;
public static GBPUSD_OCO4_DOWN_S2 GBPUSD_PFO_OCO4_DOWN_S2_2 ;
public static GBPUSD_OCO4_DOWN_S2 GBPUSD_PFO_OCO4_DOWN_S2_3 ;
public static GBPUSD_OCO4_DOWN_S2 GBPUSD_PFO_OCO4_DOWN_S2_4 ;
public static GBPUSD_OCO4_DOWN_S2 GBPUSD_PFO_OCO4_DOWN_S2_5 ;
public static GBPUSD_OCO4_DOWN_S2 GBPUSD_PFO_OCO4_DOWN_S2_6 ;
public static List<GBPUSD_OCO4_DOWN_S2> GBPUSD_DOWN_S2_OCO4Sets1 = new List<GBPUSD_OCO4_DOWN_S2>();
public static List<GBPUSD_OCO4_DOWN_S2> GBPUSD_DOWN_S2_OCO4Sets2 = new List<GBPUSD_OCO4_DOWN_S2>();
public static List<GBPUSD_OCO4_DOWN_S2> GBPUSD_DOWN_S2_OCO4Sets3 = new List<GBPUSD_OCO4_DOWN_S2>();
public static List<GBPUSD_OCO4_DOWN_S2> GBPUSD_DOWN_S2_OCO4Sets4 = new List<GBPUSD_OCO4_DOWN_S2>();
public static List<GBPUSD_OCO4_DOWN_S2> GBPUSD_DOWN_S2_OCO4Sets5 = new List<GBPUSD_OCO4_DOWN_S2>();
public static List<GBPUSD_OCO4_DOWN_S2> GBPUSD_DOWN_S2_OCO4Sets6 = new List<GBPUSD_OCO4_DOWN_S2>();
public static bool GBPUSD_OCO4_DOWN_S2_IsReady = true;
public static bool GBPUSD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal GBPUSD_UP_S2_SL {get; set;}
public static decimal GBPUSD_UP_S2_TP1 {get; set;}
public static decimal GBPUSD_UP_S2_TP2 {get; set;}
public static decimal GBPUSD_UP_S2_TP3 {get; set;}
public static decimal GBPUSD_UP_S2_TP4 {get; set;}
public static decimal GBPUSD_UP_S2_TP5 {get; set;}
public static decimal GBPUSD_UP_S2_TP6 {get; set;}
public static decimal GBPUSD_DOWN_S2_SL {get; set;}
public static decimal GBPUSD_DOWN_S2_TP1 {get; set;}
public static decimal GBPUSD_DOWN_S2_TP2 {get; set;}
public static decimal GBPUSD_DOWN_S2_TP3 {get; set;}
public static decimal GBPUSD_DOWN_S2_TP4 {get; set;}
public static decimal GBPUSD_DOWN_S2_TP5 {get; set;}
public static decimal GBPUSD_DOWN_S2_TP6 {get; set;}
public static bool GBPUSD_Signal_Condition_UP_1 ;
public static bool GBPUSD_Signal_Condition_UP_2 ;
public static bool GBPUSD_Signal_Condition_UP_3 ;
public static bool GBPUSD_Signal_Condition_DOWN_1 ;
public static bool GBPUSD_Signal_Condition_DOWN_2 ;
public static bool GBPUSD_Signal_Condition_DOWN_3 ;
public static int GBPUSD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int GBPUSD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int GBPUSD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int GBPUSD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int GBPUSD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int GBPUSD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int GBPUSD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int GBPUSD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int GBPUSD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int GBPUSD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_GBPUSD_UP_S2 ;
public static bool DOWM_GBPUSD_UP_S2 ;
public static bool DOWT_GBPUSD_UP_S2 ;
public static bool DOWW_GBPUSD_UP_S2 ;
public static bool DOWTH_GBPUSD_UP_S2 ;
public static bool DOWR_GBPUSD_DOWN_S2 ;
public static bool DOWM_GBPUSD_DOWN_S2 ;
public static bool DOWT_GBPUSD_DOWN_S2 ;
public static bool DOWW_GBPUSD_DOWN_S2 ;
public static bool DOWTH_GBPUSD_DOWN_S2 ;
public static int GBPUSD_quantity_UP_S2 ;
public static int GBPUSD_quantity_SL_UP_S2 ;
public static int GBPUSD_quantity_TP1_UP_S2 ;
public static int GBPUSD_quantity_TP2_UP_S2 ;
public static int GBPUSD_quantity_TP3_UP_S2 ;
public static int GBPUSD_quantity_TP4_UP_S2 ;
public static int GBPUSD_quantity_TP5_UP_S2;
public static int GBPUSD_quantity_TP6_UP_S2 ;
public static int GBPUSD_quantity_DOWN_S2 ;
public static int GBPUSD_quantity_SL_DOWN_S2 ;
public static int GBPUSD_quantity_TP1_DOWN_S2 ;
public static int GBPUSD_quantity_TP2_DOWN_S2 ;
public static int GBPUSD_quantity_TP3_DOWN_S2 ;
public static int GBPUSD_quantity_TP4_DOWN_S2 ;
public static int GBPUSD_quantity_TP5_DOWN_S2;
public static int GBPUSD_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _AUDCHF;
///oco1 up
public static OrderTicket AUDCHF_OCO1_MO1_UP_S2;
public static OrderTicket AUDCHF_OCO1_MO2_UP_S2;
public static OrderTicket AUDCHF_OCO1_MO3_UP_S2;
public static OrderTicket AUDCHF_OCO1_MO4_UP_S2;
public static OrderTicket AUDCHF_OCO1_MO5_UP_S2;
public static OrderTicket AUDCHF_OCO1_MO6_UP_S2;
public static int AUDCHF_OCO1_EO1_UP_S2_ID ;
public static int AUDCHF_OCO1_EO2_UP_S2_ID ;
public static int AUDCHF_OCO1_EO3_UP_S2_ID ;
public static int AUDCHF_OCO1_EO4_UP_S2_ID ;
public static int AUDCHF_OCO1_EO5_UP_S2_ID ;
public static int AUDCHF_OCO1_EO6_UP_S2_ID ;
public static bool AUDCHF_OCO1_EO1_UP_S2 ;
public static bool AUDCHF_OCO1_EO2_UP_S2 ;
public static bool AUDCHF_OCO1_EO3_UP_S2 ;
public static bool AUDCHF_OCO1_EO4_UP_S2 ;
public static bool AUDCHF_OCO1_EO5_UP_S2 ;
public static bool AUDCHF_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_UP_S2> AUDCHF_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_UP_S2> AUDCHF_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_UP_S2> AUDCHF_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_UP_S2> AUDCHF_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_UP_S2> AUDCHF_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_UP_S2> AUDCHF_OOFE_OCO1_UP_S2_6 ;
public static AUDCHF_OCO1_UP_S2 AUDCHF_PFO_OCO1_UP_S2_1 ;
public static AUDCHF_OCO1_UP_S2 AUDCHF_PFO_OCO1_UP_S2_2 ;
public static AUDCHF_OCO1_UP_S2 AUDCHF_PFO_OCO1_UP_S2_3 ;
public static AUDCHF_OCO1_UP_S2 AUDCHF_PFO_OCO1_UP_S2_4 ;
public static AUDCHF_OCO1_UP_S2 AUDCHF_PFO_OCO1_UP_S2_5 ;
public static AUDCHF_OCO1_UP_S2 AUDCHF_PFO_OCO1_UP_S2_6 ;
public static List<AUDCHF_OCO1_UP_S2> AUDCHF_UP_S2_OCO1Sets1 = new List<AUDCHF_OCO1_UP_S2>();
public static List<AUDCHF_OCO1_UP_S2> AUDCHF_UP_S2_OCO1Sets2 = new List<AUDCHF_OCO1_UP_S2>();
public static List<AUDCHF_OCO1_UP_S2> AUDCHF_UP_S2_OCO1Sets3 = new List<AUDCHF_OCO1_UP_S2>();
public static List<AUDCHF_OCO1_UP_S2> AUDCHF_UP_S2_OCO1Sets4 = new List<AUDCHF_OCO1_UP_S2>();
public static List<AUDCHF_OCO1_UP_S2> AUDCHF_UP_S2_OCO1Sets5 = new List<AUDCHF_OCO1_UP_S2>();
public static List<AUDCHF_OCO1_UP_S2> AUDCHF_UP_S2_OCO1Sets6 = new List<AUDCHF_OCO1_UP_S2>();
public static bool AUDCHF_OCO1_UP_S2_IsReady = true;
public static bool AUDCHF_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket AUDCHF_OCO1_MO1_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO1_MO2_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO1_MO3_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO1_MO4_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO1_MO5_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO1_MO6_DOWN_S2 ;
public static int AUDCHF_OCO1_EO1_DOWN_S2_ID ;
public static int AUDCHF_OCO1_EO2_DOWN_S2_ID ;
public static int AUDCHF_OCO1_EO3_DOWN_S2_ID ;
public static int AUDCHF_OCO1_EO4_DOWN_S2_ID ;
public static int AUDCHF_OCO1_EO5_DOWN_S2_ID ;
public static int AUDCHF_OCO1_EO6_DOWN_S2_ID ;
public static bool AUDCHF_OCO1_EO1_DOWN_S2 ;
public static bool AUDCHF_OCO1_EO2_DOWN_S2 ;
public static bool AUDCHF_OCO1_EO3_DOWN_S2 ;
public static bool AUDCHF_OCO1_EO4_DOWN_S2 ;
public static bool AUDCHF_OCO1_EO5_DOWN_S2 ;
public static bool AUDCHF_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_DOWN_S2> AUDCHF_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_DOWN_S2> AUDCHF_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_DOWN_S2> AUDCHF_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_DOWN_S2> AUDCHF_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_DOWN_S2> AUDCHF_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO1_DOWN_S2> AUDCHF_OOFE_OCO1_DOWN_S2_6 ;
public static AUDCHF_OCO1_DOWN_S2 AUDCHF_PFO_OCO1_DOWN_S2_1 ;
public static AUDCHF_OCO1_DOWN_S2 AUDCHF_PFO_OCO1_DOWN_S2_2 ;
public static AUDCHF_OCO1_DOWN_S2 AUDCHF_PFO_OCO1_DOWN_S2_3 ;
public static AUDCHF_OCO1_DOWN_S2 AUDCHF_PFO_OCO1_DOWN_S2_4 ;
public static AUDCHF_OCO1_DOWN_S2 AUDCHF_PFO_OCO1_DOWN_S2_5 ;
public static AUDCHF_OCO1_DOWN_S2 AUDCHF_PFO_OCO1_DOWN_S2_6 ;
public static List<AUDCHF_OCO1_DOWN_S2> AUDCHF_DOWN_S2_OCO1Sets1 = new List<AUDCHF_OCO1_DOWN_S2>();
public static List<AUDCHF_OCO1_DOWN_S2> AUDCHF_DOWN_S2_OCO1Sets2 = new List<AUDCHF_OCO1_DOWN_S2>();
public static List<AUDCHF_OCO1_DOWN_S2> AUDCHF_DOWN_S2_OCO1Sets3 = new List<AUDCHF_OCO1_DOWN_S2>();
public static List<AUDCHF_OCO1_DOWN_S2> AUDCHF_DOWN_S2_OCO1Sets4 = new List<AUDCHF_OCO1_DOWN_S2>();
public static List<AUDCHF_OCO1_DOWN_S2> AUDCHF_DOWN_S2_OCO1Sets5 = new List<AUDCHF_OCO1_DOWN_S2>();
public static List<AUDCHF_OCO1_DOWN_S2> AUDCHF_DOWN_S2_OCO1Sets6 = new List<AUDCHF_OCO1_DOWN_S2>();
public static bool AUDCHF_OCO1_DOWN_S2_IsReady = true;
public static bool AUDCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket AUDCHF_OCO2_MO1_UP_S2 ;
public static OrderTicket AUDCHF_OCO2_MO2_UP_S2 ;
public static OrderTicket AUDCHF_OCO2_MO3_UP_S2 ;
public static OrderTicket AUDCHF_OCO2_MO4_UP_S2 ;
public static OrderTicket AUDCHF_OCO2_MO5_UP_S2 ;
public static OrderTicket AUDCHF_OCO2_MO6_UP_S2 ;
public static int AUDCHF_OCO2_EO1_UP_S2_ID ;
public static int AUDCHF_OCO2_EO2_UP_S2_ID ;
public static int AUDCHF_OCO2_EO3_UP_S2_ID ;
public static int AUDCHF_OCO2_EO4_UP_S2_ID ;
public static int AUDCHF_OCO2_EO5_UP_S2_ID ;
public static int AUDCHF_OCO2_EO6_UP_S2_ID ;
public static bool AUDCHF_OCO2_EO1_UP_S2 ;
public static bool AUDCHF_OCO2_EO2_UP_S2 ;
public static bool AUDCHF_OCO2_EO3_UP_S2 ;
public static bool AUDCHF_OCO2_EO4_UP_S2 ;
public static bool AUDCHF_OCO2_EO5_UP_S2 ;
public static bool AUDCHF_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_UP_S2> AUDCHF_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_UP_S2> AUDCHF_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_UP_S2> AUDCHF_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_UP_S2> AUDCHF_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_UP_S2> AUDCHF_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_UP_S2> AUDCHF_OOFE_OCO2_UP_S2_6 ;
public static AUDCHF_OCO2_UP_S2 AUDCHF_PFO_OCO2_UP_S2_1 ;
public static AUDCHF_OCO2_UP_S2 AUDCHF_PFO_OCO2_UP_S2_2 ;
public static AUDCHF_OCO2_UP_S2 AUDCHF_PFO_OCO2_UP_S2_3 ;
public static AUDCHF_OCO2_UP_S2 AUDCHF_PFO_OCO2_UP_S2_4 ;
public static AUDCHF_OCO2_UP_S2 AUDCHF_PFO_OCO2_UP_S2_5 ;
public static AUDCHF_OCO2_UP_S2 AUDCHF_PFO_OCO2_UP_S2_6 ;
public static List<AUDCHF_OCO2_UP_S2> AUDCHF_UP_S2_OCO2Sets1 = new List<AUDCHF_OCO2_UP_S2>();
public static List<AUDCHF_OCO2_UP_S2> AUDCHF_UP_S2_OCO2Sets2 = new List<AUDCHF_OCO2_UP_S2>();
public static List<AUDCHF_OCO2_UP_S2> AUDCHF_UP_S2_OCO2Sets3 = new List<AUDCHF_OCO2_UP_S2>();
public static List<AUDCHF_OCO2_UP_S2> AUDCHF_UP_S2_OCO2Sets4 = new List<AUDCHF_OCO2_UP_S2>();
public static List<AUDCHF_OCO2_UP_S2> AUDCHF_UP_S2_OCO2Sets5 = new List<AUDCHF_OCO2_UP_S2>();
public static List<AUDCHF_OCO2_UP_S2> AUDCHF_UP_S2_OCO2Sets6 = new List<AUDCHF_OCO2_UP_S2>();
public static bool AUDCHF_OCO2_UP_S2_IsReady = true;
public static bool AUDCHF_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket AUDCHF_OCO2_MO1_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO2_MO2_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO2_MO3_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO2_MO4_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO2_MO5_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO2_MO6_DOWN_S2 ;
public static int AUDCHF_OCO2_EO1_DOWN_S2_ID ;
public static int AUDCHF_OCO2_EO2_DOWN_S2_ID ;
public static int AUDCHF_OCO2_EO3_DOWN_S2_ID ;
public static int AUDCHF_OCO2_EO4_DOWN_S2_ID ;
public static int AUDCHF_OCO2_EO5_DOWN_S2_ID ;
public static int AUDCHF_OCO2_EO6_DOWN_S2_ID ;
public static bool AUDCHF_OCO2_EO1_DOWN_S2 ;
public static bool AUDCHF_OCO2_EO2_DOWN_S2 ;
public static bool AUDCHF_OCO2_EO3_DOWN_S2 ;
public static bool AUDCHF_OCO2_EO4_DOWN_S2 ;
public static bool AUDCHF_OCO2_EO5_DOWN_S2 ;
public static bool AUDCHF_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_DOWN_S2> AUDCHF_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_DOWN_S2> AUDCHF_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_DOWN_S2> AUDCHF_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_DOWN_S2> AUDCHF_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_DOWN_S2> AUDCHF_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO2_DOWN_S2> AUDCHF_OOFE_OCO2_DOWN_S2_6 ;
public static AUDCHF_OCO2_DOWN_S2 AUDCHF_PFO_OCO2_DOWN_S2_1 ;
public static AUDCHF_OCO2_DOWN_S2 AUDCHF_PFO_OCO2_DOWN_S2_2 ;
public static AUDCHF_OCO2_DOWN_S2 AUDCHF_PFO_OCO2_DOWN_S2_3 ;
public static AUDCHF_OCO2_DOWN_S2 AUDCHF_PFO_OCO2_DOWN_S2_4 ;
public static AUDCHF_OCO2_DOWN_S2 AUDCHF_PFO_OCO2_DOWN_S2_5 ;
public static AUDCHF_OCO2_DOWN_S2 AUDCHF_PFO_OCO2_DOWN_S2_6 ;
public static List<AUDCHF_OCO2_DOWN_S2> AUDCHF_DOWN_S2_OCO2Sets1 = new List<AUDCHF_OCO2_DOWN_S2>();
public static List<AUDCHF_OCO2_DOWN_S2> AUDCHF_DOWN_S2_OCO2Sets2 = new List<AUDCHF_OCO2_DOWN_S2>();
public static List<AUDCHF_OCO2_DOWN_S2> AUDCHF_DOWN_S2_OCO2Sets3 = new List<AUDCHF_OCO2_DOWN_S2>();
public static List<AUDCHF_OCO2_DOWN_S2> AUDCHF_DOWN_S2_OCO2Sets4 = new List<AUDCHF_OCO2_DOWN_S2>();
public static List<AUDCHF_OCO2_DOWN_S2> AUDCHF_DOWN_S2_OCO2Sets5 = new List<AUDCHF_OCO2_DOWN_S2>();
public static List<AUDCHF_OCO2_DOWN_S2> AUDCHF_DOWN_S2_OCO2Sets6 = new List<AUDCHF_OCO2_DOWN_S2>();
public static bool AUDCHF_OCO2_DOWN_S2_IsReady = true;
public static bool AUDCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket AUDCHF_OCO3_MO1_UP_S2 ;
public static OrderTicket AUDCHF_OCO3_MO2_UP_S2 ;
public static OrderTicket AUDCHF_OCO3_MO3_UP_S2 ;
public static OrderTicket AUDCHF_OCO3_MO4_UP_S2 ;
public static OrderTicket AUDCHF_OCO3_MO5_UP_S2 ;
public static OrderTicket AUDCHF_OCO3_MO6_UP_S2 ;
public static int AUDCHF_OCO3_EO1_UP_S2_ID ;
public static int AUDCHF_OCO3_EO2_UP_S2_ID ;
public static int AUDCHF_OCO3_EO3_UP_S2_ID ;
public static int AUDCHF_OCO3_EO4_UP_S2_ID ;
public static int AUDCHF_OCO3_EO5_UP_S2_ID ;
public static int AUDCHF_OCO3_EO6_UP_S2_ID ;
public static bool AUDCHF_OCO3_EO1_UP_S2 ;
public static bool AUDCHF_OCO3_EO2_UP_S2 ;
public static bool AUDCHF_OCO3_EO3_UP_S2 ;
public static bool AUDCHF_OCO3_EO4_UP_S2 ;
public static bool AUDCHF_OCO3_EO5_UP_S2 ;
public static bool AUDCHF_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_UP_S2> AUDCHF_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_UP_S2> AUDCHF_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_UP_S2> AUDCHF_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_UP_S2> AUDCHF_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_UP_S2> AUDCHF_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_UP_S2> AUDCHF_OOFE_OCO3_UP_S2_6 ;
public static AUDCHF_OCO3_UP_S2 AUDCHF_PFO_OCO3_UP_S2_1 ;
public static AUDCHF_OCO3_UP_S2 AUDCHF_PFO_OCO3_UP_S2_2 ;
public static AUDCHF_OCO3_UP_S2 AUDCHF_PFO_OCO3_UP_S2_3 ;
public static AUDCHF_OCO3_UP_S2 AUDCHF_PFO_OCO3_UP_S2_4 ;
public static AUDCHF_OCO3_UP_S2 AUDCHF_PFO_OCO3_UP_S2_5 ;
public static AUDCHF_OCO3_UP_S2 AUDCHF_PFO_OCO3_UP_S2_6 ;
public static List<AUDCHF_OCO3_UP_S2> AUDCHF_UP_S2_OCO3Sets1 = new List<AUDCHF_OCO3_UP_S2>();
public static List<AUDCHF_OCO3_UP_S2> AUDCHF_UP_S2_OCO3Sets2 = new List<AUDCHF_OCO3_UP_S2>();
public static List<AUDCHF_OCO3_UP_S2> AUDCHF_UP_S2_OCO3Sets3 = new List<AUDCHF_OCO3_UP_S2>();
public static List<AUDCHF_OCO3_UP_S2> AUDCHF_UP_S2_OCO3Sets4 = new List<AUDCHF_OCO3_UP_S2>();
public static List<AUDCHF_OCO3_UP_S2> AUDCHF_UP_S2_OCO3Sets5 = new List<AUDCHF_OCO3_UP_S2>();
public static List<AUDCHF_OCO3_UP_S2> AUDCHF_UP_S2_OCO3Sets6 = new List<AUDCHF_OCO3_UP_S2>();
public static bool AUDCHF_OCO3_UP_S2_IsReady = true;
public static bool AUDCHF_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket AUDCHF_OCO3_MO1_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO3_MO2_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO3_MO3_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO3_MO4_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO3_MO5_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO3_MO6_DOWN_S2 ;
public static int AUDCHF_OCO3_EO1_DOWN_S2_ID ;
public static int AUDCHF_OCO3_EO2_DOWN_S2_ID ;
public static int AUDCHF_OCO3_EO3_DOWN_S2_ID ;
public static int AUDCHF_OCO3_EO4_DOWN_S2_ID ;
public static int AUDCHF_OCO3_EO5_DOWN_S2_ID ;
public static int AUDCHF_OCO3_EO6_DOWN_S2_ID ;
public static bool AUDCHF_OCO3_EO1_DOWN_S2 ;
public static bool AUDCHF_OCO3_EO2_DOWN_S2 ;
public static bool AUDCHF_OCO3_EO3_DOWN_S2 ;
public static bool AUDCHF_OCO3_EO4_DOWN_S2 ;
public static bool AUDCHF_OCO3_EO5_DOWN_S2 ;
public static bool AUDCHF_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_DOWN_S2> AUDCHF_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_DOWN_S2> AUDCHF_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_DOWN_S2> AUDCHF_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_DOWN_S2> AUDCHF_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_DOWN_S2> AUDCHF_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO3_DOWN_S2> AUDCHF_OOFE_OCO3_DOWN_S2_6 ;
public static AUDCHF_OCO3_DOWN_S2 AUDCHF_PFO_OCO3_DOWN_S2_1 ;
public static AUDCHF_OCO3_DOWN_S2 AUDCHF_PFO_OCO3_DOWN_S2_2 ;
public static AUDCHF_OCO3_DOWN_S2 AUDCHF_PFO_OCO3_DOWN_S2_3 ;
public static AUDCHF_OCO3_DOWN_S2 AUDCHF_PFO_OCO3_DOWN_S2_4 ;
public static AUDCHF_OCO3_DOWN_S2 AUDCHF_PFO_OCO3_DOWN_S2_5 ;
public static AUDCHF_OCO3_DOWN_S2 AUDCHF_PFO_OCO3_DOWN_S2_6 ;
public static List<AUDCHF_OCO3_DOWN_S2> AUDCHF_DOWN_S2_OCO3Sets1 = new List<AUDCHF_OCO3_DOWN_S2>();
public static List<AUDCHF_OCO3_DOWN_S2> AUDCHF_DOWN_S2_OCO3Sets2 = new List<AUDCHF_OCO3_DOWN_S2>();
public static List<AUDCHF_OCO3_DOWN_S2> AUDCHF_DOWN_S2_OCO3Sets3 = new List<AUDCHF_OCO3_DOWN_S2>();
public static List<AUDCHF_OCO3_DOWN_S2> AUDCHF_DOWN_S2_OCO3Sets4 = new List<AUDCHF_OCO3_DOWN_S2>();
public static List<AUDCHF_OCO3_DOWN_S2> AUDCHF_DOWN_S2_OCO3Sets5 = new List<AUDCHF_OCO3_DOWN_S2>();
public static List<AUDCHF_OCO3_DOWN_S2> AUDCHF_DOWN_S2_OCO3Sets6 = new List<AUDCHF_OCO3_DOWN_S2>();
public static bool AUDCHF_OCO3_DOWN_S2_IsReady = true;
public static bool AUDCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket AUDCHF_OCO4_MO1_UP_S2 ;
public static OrderTicket AUDCHF_OCO4_MO2_UP_S2 ;
public static OrderTicket AUDCHF_OCO4_MO3_UP_S2 ;
public static OrderTicket AUDCHF_OCO4_MO4_UP_S2 ;
public static OrderTicket AUDCHF_OCO4_MO5_UP_S2 ;
public static OrderTicket AUDCHF_OCO4_MO6_UP_S2 ;
public static int AUDCHF_OCO4_EO1_UP_S2_ID ;
public static int AUDCHF_OCO4_EO2_UP_S2_ID ;
public static int AUDCHF_OCO4_EO3_UP_S2_ID ;
public static int AUDCHF_OCO4_EO4_UP_S2_ID ;
public static int AUDCHF_OCO4_EO5_UP_S2_ID ;
public static int AUDCHF_OCO4_EO6_UP_S2_ID ;
public static bool AUDCHF_OCO4_EO1_UP_S2 ;
public static bool AUDCHF_OCO4_EO2_UP_S2 ;
public static bool AUDCHF_OCO4_EO3_UP_S2 ;
public static bool AUDCHF_OCO4_EO4_UP_S2 ;
public static bool AUDCHF_OCO4_EO5_UP_S2 ;
public static bool AUDCHF_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_UP_S2> AUDCHF_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_UP_S2> AUDCHF_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_UP_S2> AUDCHF_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_UP_S2> AUDCHF_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_UP_S2> AUDCHF_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_UP_S2> AUDCHF_OOFE_OCO4_UP_S2_6 ;
public static AUDCHF_OCO4_UP_S2 AUDCHF_PFO_OCO4_UP_S2_1 ;
public static AUDCHF_OCO4_UP_S2 AUDCHF_PFO_OCO4_UP_S2_2 ;
public static AUDCHF_OCO4_UP_S2 AUDCHF_PFO_OCO4_UP_S2_3 ;
public static AUDCHF_OCO4_UP_S2 AUDCHF_PFO_OCO4_UP_S2_4 ;
public static AUDCHF_OCO4_UP_S2 AUDCHF_PFO_OCO4_UP_S2_5 ;
public static AUDCHF_OCO4_UP_S2 AUDCHF_PFO_OCO4_UP_S2_6 ;
public static List<AUDCHF_OCO4_UP_S2> AUDCHF_UP_S2_OCO4Sets1 = new List<AUDCHF_OCO4_UP_S2>();
public static List<AUDCHF_OCO4_UP_S2> AUDCHF_UP_S2_OCO4Sets2 = new List<AUDCHF_OCO4_UP_S2>();
public static List<AUDCHF_OCO4_UP_S2> AUDCHF_UP_S2_OCO4Sets3 = new List<AUDCHF_OCO4_UP_S2>();
public static List<AUDCHF_OCO4_UP_S2> AUDCHF_UP_S2_OCO4Sets4 = new List<AUDCHF_OCO4_UP_S2>();
public static List<AUDCHF_OCO4_UP_S2> AUDCHF_UP_S2_OCO4Sets5 = new List<AUDCHF_OCO4_UP_S2>();
public static List<AUDCHF_OCO4_UP_S2> AUDCHF_UP_S2_OCO4Sets6 = new List<AUDCHF_OCO4_UP_S2>();
public static bool AUDCHF_OCO4_UP_S2_IsReady = true;
public static bool AUDCHF_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket AUDCHF_OCO4_MO1_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO4_MO2_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO4_MO3_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO4_MO4_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO4_MO5_DOWN_S2 ;
public static OrderTicket AUDCHF_OCO4_MO6_DOWN_S2 ;
public static int AUDCHF_OCO4_EO1_DOWN_S2_ID ;
public static int AUDCHF_OCO4_EO2_DOWN_S2_ID ;
public static int AUDCHF_OCO4_EO3_DOWN_S2_ID ;
public static int AUDCHF_OCO4_EO4_DOWN_S2_ID ;
public static int AUDCHF_OCO4_EO5_DOWN_S2_ID ;
public static int AUDCHF_OCO4_EO6_DOWN_S2_ID ;
public static bool AUDCHF_OCO4_EO1_DOWN_S2 ;
public static bool AUDCHF_OCO4_EO2_DOWN_S2 ;
public static bool AUDCHF_OCO4_EO3_DOWN_S2 ;
public static bool AUDCHF_OCO4_EO4_DOWN_S2 ;
public static bool AUDCHF_OCO4_EO5_DOWN_S2 ;
public static bool AUDCHF_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_DOWN_S2> AUDCHF_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_DOWN_S2> AUDCHF_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_DOWN_S2> AUDCHF_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_DOWN_S2> AUDCHF_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_DOWN_S2> AUDCHF_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCHF_OCO4_DOWN_S2> AUDCHF_OOFE_OCO4_DOWN_S2_6 ;
public static AUDCHF_OCO4_DOWN_S2 AUDCHF_PFO_OCO4_DOWN_S2_1 ;
public static AUDCHF_OCO4_DOWN_S2 AUDCHF_PFO_OCO4_DOWN_S2_2 ;
public static AUDCHF_OCO4_DOWN_S2 AUDCHF_PFO_OCO4_DOWN_S2_3 ;
public static AUDCHF_OCO4_DOWN_S2 AUDCHF_PFO_OCO4_DOWN_S2_4 ;
public static AUDCHF_OCO4_DOWN_S2 AUDCHF_PFO_OCO4_DOWN_S2_5 ;
public static AUDCHF_OCO4_DOWN_S2 AUDCHF_PFO_OCO4_DOWN_S2_6 ;
public static List<AUDCHF_OCO4_DOWN_S2> AUDCHF_DOWN_S2_OCO4Sets1 = new List<AUDCHF_OCO4_DOWN_S2>();
public static List<AUDCHF_OCO4_DOWN_S2> AUDCHF_DOWN_S2_OCO4Sets2 = new List<AUDCHF_OCO4_DOWN_S2>();
public static List<AUDCHF_OCO4_DOWN_S2> AUDCHF_DOWN_S2_OCO4Sets3 = new List<AUDCHF_OCO4_DOWN_S2>();
public static List<AUDCHF_OCO4_DOWN_S2> AUDCHF_DOWN_S2_OCO4Sets4 = new List<AUDCHF_OCO4_DOWN_S2>();
public static List<AUDCHF_OCO4_DOWN_S2> AUDCHF_DOWN_S2_OCO4Sets5 = new List<AUDCHF_OCO4_DOWN_S2>();
public static List<AUDCHF_OCO4_DOWN_S2> AUDCHF_DOWN_S2_OCO4Sets6 = new List<AUDCHF_OCO4_DOWN_S2>();
public static bool AUDCHF_OCO4_DOWN_S2_IsReady = true;
public static bool AUDCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal AUDCHF_UP_S2_SL {get; set;}
public static decimal AUDCHF_UP_S2_TP1 {get; set;}
public static decimal AUDCHF_UP_S2_TP2 {get; set;}
public static decimal AUDCHF_UP_S2_TP3 {get; set;}
public static decimal AUDCHF_UP_S2_TP4 {get; set;}
public static decimal AUDCHF_UP_S2_TP5 {get; set;}
public static decimal AUDCHF_UP_S2_TP6 {get; set;}
public static decimal AUDCHF_DOWN_S2_SL {get; set;}
public static decimal AUDCHF_DOWN_S2_TP1 {get; set;}
public static decimal AUDCHF_DOWN_S2_TP2 {get; set;}
public static decimal AUDCHF_DOWN_S2_TP3 {get; set;}
public static decimal AUDCHF_DOWN_S2_TP4 {get; set;}
public static decimal AUDCHF_DOWN_S2_TP5 {get; set;}
public static decimal AUDCHF_DOWN_S2_TP6 {get; set;}
public static bool AUDCHF_Signal_Condition_UP_1 ;
public static bool AUDCHF_Signal_Condition_UP_2 ;
public static bool AUDCHF_Signal_Condition_UP_3 ;
public static bool AUDCHF_Signal_Condition_DOWN_S2 ;
public static int AUDCHF_UP_S2_OCO_DELAY_7DAY = 10080;
public static int AUDCHF_UP_S2_OCOM_DELAY_DAY = 4320;
public static int AUDCHF_UP_S2_OCOT_DELAY_DAY = 2880;
public static int AUDCHF_UP_S2_OCOW_DELAY_DAY = 1440;
public static int AUDCHF_UP_S2_OCOTH_DELAY_DAY = 720;
public static int AUDCHF_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int AUDCHF_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int AUDCHF_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int AUDCHF_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int AUDCHF_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_AUDCHF_UP_S2 ;
public static bool DOWM_AUDCHF_UP_S2 ;
public static bool DOWT_AUDCHF_UP_S2 ;
public static bool DOWW_AUDCHF_UP_S2 ;
public static bool DOWTH_AUDCHF_UP_S2 ;
public static bool DOWR_AUDCHF_DOWN_S2 ;
public static bool DOWM_AUDCHF_DOWN_S2 ;
public static bool DOWT_AUDCHF_DOWN_S2 ;
public static bool DOWW_AUDCHF_DOWN_S2 ;
public static bool DOWTH_AUDCHF_DOWN_S2 ;
public static int AUDCHF_quantity_UP_S2 ;
public static int AUDCHF_quantity_SL_UP_S2 ;
public static int AUDCHF_quantity_TP1_UP_S2 ;
public static int AUDCHF_quantity_TP2_UP_S2 ;
public static int AUDCHF_quantity_TP3_UP_S2 ;
public static int AUDCHF_quantity_TP4_UP_S2 ;
public static int AUDCHF_quantity_TP5_UP_S2;
public static int AUDCHF_quantity_TP6_UP_S2 ;
public static int AUDCHF_quantity_DOWN_S2 ;
public static int AUDCHF_quantity_SL_DOWN_S2 ;
public static int AUDCHF_quantity_TP1_DOWN_S2 ;
public static int AUDCHF_quantity_TP2_DOWN_S2 ;
public static int AUDCHF_quantity_TP3_DOWN_S2 ;
public static int AUDCHF_quantity_TP4_DOWN_S2 ;
public static int AUDCHF_quantity_TP5_DOWN_S2;
public static int AUDCHF_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURJPY_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURJPY_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
if (OrderID.Tag.StartsWith("EURJPY OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURJPY OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURJPY S2");
}
}
if (Base.EURJPY_OCO1_EO1_DOWN_S2)
Base.EURJPY_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO1_EO2_DOWN_S2)
Base.EURJPY_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO1_EO3_DOWN_S2)
Base.EURJPY_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO1_EO4_DOWN_S2)
Base.EURJPY_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO1_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP1_EURJPY_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP1,"TP1_EURJPY_DOWN_S2_OCO1"));
};
Base.EURJPY_DOWN_S2_OCO1Sets1.Add( Base.EURJPY_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO2_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP2_EURJPY_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP2,"TP2_EURJPY_DOWN_S2_OCO1"));
};
Base.EURJPY_DOWN_S2_OCO1Sets2.Add( Base.EURJPY_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO3_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP3_EURJPY_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP3,"TP3_EURJPY_DOWN_S2_OCO1"));
};
Base.EURJPY_DOWN_S2_OCO1Sets3.Add( Base.EURJPY_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO1_EO4_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP4_EURJPY_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP4,"TP4_EURJPY_DOWN_S2_OCO1"));
};
Base.EURJPY_DOWN_S2_OCO1Sets4.Add( Base.EURJPY_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO1_EO4_DOWN_S2_ID = -1;
}
int EURJPY_OCO1S1_DOWN_S2 = 0;
for (; EURJPY_OCO1S1_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets1.Count; EURJPY_OCO1S1_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets1[EURJPY_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO1Sets1[EURJPY_OCO1S1_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO1Sets1.RemoveAt(EURJPY_OCO1S1_DOWN_S2);
EURJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int EURJPY_OCO1S2_DOWN_S2 = 0;
for (; EURJPY_OCO1S2_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets2.Count; EURJPY_OCO1S2_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets2[EURJPY_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO1Sets2[EURJPY_OCO1S2_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO1Sets2.RemoveAt(EURJPY_OCO1S2_DOWN_S2);
EURJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int EURJPY_OCO1S3_DOWN_S2 = 0;
for (; EURJPY_OCO1S3_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets3.Count; EURJPY_OCO1S3_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets3[EURJPY_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO1Sets3[EURJPY_OCO1S3_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO1Sets3.RemoveAt(EURJPY_OCO1S3_DOWN_S2);
EURJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int EURJPY_OCO1S4_DOWN_S2 = 0;
for (; EURJPY_OCO1S4_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets4.Count; EURJPY_OCO1S4_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets4[EURJPY_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO1Sets4[EURJPY_OCO1S4_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO1Sets4.RemoveAt(EURJPY_OCO1S4_DOWN_S2);
EURJPY_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO2_EO1_DOWN_S2)
Base.EURJPY_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO2_EO2_DOWN_S2)
Base.EURJPY_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO2_EO3_DOWN_S2)
Base.EURJPY_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO2_EO4_DOWN_S2)
Base.EURJPY_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO1_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP1_EURJPY_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP1,"TP1_EURJPY_DOWN_S2_OCO2"));
};
Base.EURJPY_DOWN_S2_OCO2Sets1.Add( Base.EURJPY_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO2_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP2_EURJPY_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP2,"TP2_EURJPY_DOWN_S2_OCO2"));
};
Base.EURJPY_DOWN_S2_OCO2Sets2.Add( Base.EURJPY_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO3_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP3_EURJPY_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP3,"TP3_EURJPY_DOWN_S2_OCO2"));
};
Base.EURJPY_DOWN_S2_OCO2Sets3.Add( Base.EURJPY_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO2_EO4_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP4_EURJPY_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP4,"TP4_EURJPY_DOWN_S2_OCO2"));
};
Base.EURJPY_DOWN_S2_OCO2Sets4.Add( Base.EURJPY_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO2_EO4_DOWN_S2_ID = -1;
}
int EURJPY_OCO2S1_DOWN_S2 = 0;
for (; EURJPY_OCO2S1_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets1.Count; EURJPY_OCO2S1_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets1[EURJPY_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO2Sets1[EURJPY_OCO2S1_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO2Sets1.RemoveAt(EURJPY_OCO2S1_DOWN_S2);
EURJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int EURJPY_OCO2S2_DOWN_S2 = 0;
for (; EURJPY_OCO2S2_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets2.Count; EURJPY_OCO2S2_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets2[EURJPY_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO2Sets2[EURJPY_OCO2S2_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO2Sets2.RemoveAt(EURJPY_OCO2S2_DOWN_S2);
EURJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int EURJPY_OCO2S3_DOWN_S2 = 0;
for (; EURJPY_OCO2S3_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets3.Count; EURJPY_OCO2S3_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets3[EURJPY_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO2Sets3[EURJPY_OCO2S3_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO2Sets3.RemoveAt(EURJPY_OCO2S3_DOWN_S2);
EURJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int EURJPY_OCO2S4_DOWN_S2 = 0;
for (; EURJPY_OCO2S4_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets4.Count; EURJPY_OCO2S4_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets4[EURJPY_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO2Sets4[EURJPY_OCO2S4_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO2Sets4.RemoveAt(EURJPY_OCO2S4_DOWN_S2);
EURJPY_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO3_EO1_DOWN_S2)
Base.EURJPY_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO3_EO2_DOWN_S2)
Base.EURJPY_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO3_EO3_DOWN_S2)
Base.EURJPY_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO3_EO4_DOWN_S2)
Base.EURJPY_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO1_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP1_EURJPY_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP1,"TP1_EURJPY_DOWN_S2_OCO3"));
};
Base.EURJPY_DOWN_S2_OCO3Sets1.Add( Base.EURJPY_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO2_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP2_EURJPY_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP2,"TP2_EURJPY_DOWN_S2_OCO3"));
};
Base.EURJPY_DOWN_S2_OCO3Sets2.Add( Base.EURJPY_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO3_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP3_EURJPY_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP3,"TP3_EURJPY_DOWN_S2_OCO3"));
};
Base.EURJPY_DOWN_S2_OCO3Sets3.Add( Base.EURJPY_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO3_EO4_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP4_EURJPY_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP4,"TP4_EURJPY_DOWN_S2_OCO3"));
};
Base.EURJPY_DOWN_S2_OCO3Sets4.Add( Base.EURJPY_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO3_EO4_DOWN_S2_ID = -1;
}
int EURJPY_OCO3S1_DOWN_S2 = 0;
for (; EURJPY_OCO3S1_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets1.Count; EURJPY_OCO3S1_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets1[EURJPY_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO3Sets1[EURJPY_OCO3S1_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO3Sets1.RemoveAt(EURJPY_OCO3S1_DOWN_S2);
EURJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int EURJPY_OCO3S2_DOWN_S2 = 0;
for (; EURJPY_OCO3S2_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets2.Count; EURJPY_OCO3S2_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets2[EURJPY_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO3Sets2[EURJPY_OCO3S2_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO3Sets2.RemoveAt(EURJPY_OCO3S2_DOWN_S2);
EURJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int EURJPY_OCO3S3_DOWN_S2 = 0;
for (; EURJPY_OCO3S3_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets3.Count; EURJPY_OCO3S3_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets3[EURJPY_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO3Sets3[EURJPY_OCO3S3_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO3Sets3.RemoveAt(EURJPY_OCO3S3_DOWN_S2);
EURJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int EURJPY_OCO3S4_DOWN_S2 = 0;
for (; EURJPY_OCO3S4_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets4.Count; EURJPY_OCO3S4_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets4[EURJPY_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO3Sets4[EURJPY_OCO3S4_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO3Sets4.RemoveAt(EURJPY_OCO3S4_DOWN_S2);
EURJPY_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO4_EO1_DOWN_S2)
Base.EURJPY_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO4_EO2_DOWN_S2)
Base.EURJPY_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO4_EO3_DOWN_S2)
Base.EURJPY_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURJPY_OCO4_EO4_DOWN_S2)
Base.EURJPY_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO1_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP1_EURJPY_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP1,"TP1_EURJPY_DOWN_S2_OCO4"));
};
Base.EURJPY_DOWN_S2_OCO4Sets1.Add( Base.EURJPY_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO2_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP2_EURJPY_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP2,"TP2_EURJPY_DOWN_S2_OCO4"));
};
Base.EURJPY_DOWN_S2_OCO4Sets2.Add( Base.EURJPY_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO3_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP3_EURJPY_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP3,"TP3_EURJPY_DOWN_S2_OCO4"));
};
Base.EURJPY_DOWN_S2_OCO4Sets3.Add( Base.EURJPY_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURJPY_OCO4_EO4_DOWN_S2_ID)
{
Base.EURJPY_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURJPY_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURJPY_DOWN_S2_SL,"SL_TP4_EURJPY_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURJPY_DOWN_S2_TP4,"TP4_EURJPY_DOWN_S2_OCO4"));
};
Base.EURJPY_DOWN_S2_OCO4Sets4.Add( Base.EURJPY_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURJPY_OCO4_EO4_DOWN_S2_ID = -1;
}
int EURJPY_OCO4S1_DOWN_S2 = 0;
for (; EURJPY_OCO4S1_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets1.Count; EURJPY_OCO4S1_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets1[EURJPY_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO4Sets1[EURJPY_OCO4S1_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO4Sets1.RemoveAt(EURJPY_OCO4S1_DOWN_S2);
EURJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int EURJPY_OCO4S2_DOWN_S2 = 0;
for (; EURJPY_OCO4S2_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets2.Count; EURJPY_OCO4S2_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets2[EURJPY_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO4Sets2[EURJPY_OCO4S2_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO4Sets2.RemoveAt(EURJPY_OCO4S2_DOWN_S2);
EURJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int EURJPY_OCO4S3_DOWN_S2 = 0;
for (; EURJPY_OCO4S3_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets3.Count; EURJPY_OCO4S3_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets3[EURJPY_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO4Sets3[EURJPY_OCO4S3_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO4Sets3.RemoveAt(EURJPY_OCO4S3_DOWN_S2);
EURJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int EURJPY_OCO4S4_DOWN_S2 = 0;
for (; EURJPY_OCO4S4_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets4.Count; EURJPY_OCO4S4_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets4[EURJPY_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURJPY_DOWN_S2_OCO4Sets4[EURJPY_OCO4S4_DOWN_S2].Filled();
Base.EURJPY_DOWN_S2_OCO4Sets4.RemoveAt(EURJPY_OCO4S4_DOWN_S2);
EURJPY_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _GBPNZD;
///oco1 up
public static OrderTicket GBPNZD_OCO1_MO1_UP_S2;
public static OrderTicket GBPNZD_OCO1_MO2_UP_S2;
public static OrderTicket GBPNZD_OCO1_MO3_UP_S2;
public static OrderTicket GBPNZD_OCO1_MO4_UP_S2;
public static OrderTicket GBPNZD_OCO1_MO5_UP_S2;
public static OrderTicket GBPNZD_OCO1_MO6_UP_S2;
public static int GBPNZD_OCO1_EO1_UP_S2_ID ;
public static int GBPNZD_OCO1_EO2_UP_S2_ID ;
public static int GBPNZD_OCO1_EO3_UP_S2_ID ;
public static int GBPNZD_OCO1_EO4_UP_S2_ID ;
public static int GBPNZD_OCO1_EO5_UP_S2_ID ;
public static int GBPNZD_OCO1_EO6_UP_S2_ID ;
public static bool GBPNZD_OCO1_EO1_UP_S2 ;
public static bool GBPNZD_OCO1_EO2_UP_S2 ;
public static bool GBPNZD_OCO1_EO3_UP_S2 ;
public static bool GBPNZD_OCO1_EO4_UP_S2 ;
public static bool GBPNZD_OCO1_EO5_UP_S2 ;
public static bool GBPNZD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_UP_S2> GBPNZD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_UP_S2> GBPNZD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_UP_S2> GBPNZD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_UP_S2> GBPNZD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_UP_S2> GBPNZD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_UP_S2> GBPNZD_OOFE_OCO1_UP_S2_6 ;
public static GBPNZD_OCO1_UP_S2 GBPNZD_PFO_OCO1_UP_S2_1 ;
public static GBPNZD_OCO1_UP_S2 GBPNZD_PFO_OCO1_UP_S2_2 ;
public static GBPNZD_OCO1_UP_S2 GBPNZD_PFO_OCO1_UP_S2_3 ;
public static GBPNZD_OCO1_UP_S2 GBPNZD_PFO_OCO1_UP_S2_4 ;
public static GBPNZD_OCO1_UP_S2 GBPNZD_PFO_OCO1_UP_S2_5 ;
public static GBPNZD_OCO1_UP_S2 GBPNZD_PFO_OCO1_UP_S2_6 ;
public static List<GBPNZD_OCO1_UP_S2> GBPNZD_UP_S2_OCO1Sets1 = new List<GBPNZD_OCO1_UP_S2>();
public static List<GBPNZD_OCO1_UP_S2> GBPNZD_UP_S2_OCO1Sets2 = new List<GBPNZD_OCO1_UP_S2>();
public static List<GBPNZD_OCO1_UP_S2> GBPNZD_UP_S2_OCO1Sets3 = new List<GBPNZD_OCO1_UP_S2>();
public static List<GBPNZD_OCO1_UP_S2> GBPNZD_UP_S2_OCO1Sets4 = new List<GBPNZD_OCO1_UP_S2>();
public static List<GBPNZD_OCO1_UP_S2> GBPNZD_UP_S2_OCO1Sets5 = new List<GBPNZD_OCO1_UP_S2>();
public static List<GBPNZD_OCO1_UP_S2> GBPNZD_UP_S2_OCO1Sets6 = new List<GBPNZD_OCO1_UP_S2>();
public static bool GBPNZD_OCO1_UP_S2_IsReady = true;
public static bool GBPNZD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket GBPNZD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO1_MO6_DOWN_S2 ;
public static int GBPNZD_OCO1_EO1_DOWN_S2_ID ;
public static int GBPNZD_OCO1_EO2_DOWN_S2_ID ;
public static int GBPNZD_OCO1_EO3_DOWN_S2_ID ;
public static int GBPNZD_OCO1_EO4_DOWN_S2_ID ;
public static int GBPNZD_OCO1_EO5_DOWN_S2_ID ;
public static int GBPNZD_OCO1_EO6_DOWN_S2_ID ;
public static bool GBPNZD_OCO1_EO1_DOWN_S2 ;
public static bool GBPNZD_OCO1_EO2_DOWN_S2 ;
public static bool GBPNZD_OCO1_EO3_DOWN_S2 ;
public static bool GBPNZD_OCO1_EO4_DOWN_S2 ;
public static bool GBPNZD_OCO1_EO5_DOWN_S2 ;
public static bool GBPNZD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_DOWN_S2> GBPNZD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_DOWN_S2> GBPNZD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_DOWN_S2> GBPNZD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_DOWN_S2> GBPNZD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_DOWN_S2> GBPNZD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO1_DOWN_S2> GBPNZD_OOFE_OCO1_DOWN_S2_6 ;
public static GBPNZD_OCO1_DOWN_S2 GBPNZD_PFO_OCO1_DOWN_S2_1 ;
public static GBPNZD_OCO1_DOWN_S2 GBPNZD_PFO_OCO1_DOWN_S2_2 ;
public static GBPNZD_OCO1_DOWN_S2 GBPNZD_PFO_OCO1_DOWN_S2_3 ;
public static GBPNZD_OCO1_DOWN_S2 GBPNZD_PFO_OCO1_DOWN_S2_4 ;
public static GBPNZD_OCO1_DOWN_S2 GBPNZD_PFO_OCO1_DOWN_S2_5 ;
public static GBPNZD_OCO1_DOWN_S2 GBPNZD_PFO_OCO1_DOWN_S2_6 ;
public static List<GBPNZD_OCO1_DOWN_S2> GBPNZD_DOWN_S2_OCO1Sets1 = new List<GBPNZD_OCO1_DOWN_S2>();
public static List<GBPNZD_OCO1_DOWN_S2> GBPNZD_DOWN_S2_OCO1Sets2 = new List<GBPNZD_OCO1_DOWN_S2>();
public static List<GBPNZD_OCO1_DOWN_S2> GBPNZD_DOWN_S2_OCO1Sets3 = new List<GBPNZD_OCO1_DOWN_S2>();
public static List<GBPNZD_OCO1_DOWN_S2> GBPNZD_DOWN_S2_OCO1Sets4 = new List<GBPNZD_OCO1_DOWN_S2>();
public static List<GBPNZD_OCO1_DOWN_S2> GBPNZD_DOWN_S2_OCO1Sets5 = new List<GBPNZD_OCO1_DOWN_S2>();
public static List<GBPNZD_OCO1_DOWN_S2> GBPNZD_DOWN_S2_OCO1Sets6 = new List<GBPNZD_OCO1_DOWN_S2>();
public static bool GBPNZD_OCO1_DOWN_S2_IsReady = true;
public static bool GBPNZD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket GBPNZD_OCO2_MO1_UP_S2 ;
public static OrderTicket GBPNZD_OCO2_MO2_UP_S2 ;
public static OrderTicket GBPNZD_OCO2_MO3_UP_S2 ;
public static OrderTicket GBPNZD_OCO2_MO4_UP_S2 ;
public static OrderTicket GBPNZD_OCO2_MO5_UP_S2 ;
public static OrderTicket GBPNZD_OCO2_MO6_UP_S2 ;
public static int GBPNZD_OCO2_EO1_UP_S2_ID ;
public static int GBPNZD_OCO2_EO2_UP_S2_ID ;
public static int GBPNZD_OCO2_EO3_UP_S2_ID ;
public static int GBPNZD_OCO2_EO4_UP_S2_ID ;
public static int GBPNZD_OCO2_EO5_UP_S2_ID ;
public static int GBPNZD_OCO2_EO6_UP_S2_ID ;
public static bool GBPNZD_OCO2_EO1_UP_S2 ;
public static bool GBPNZD_OCO2_EO2_UP_S2 ;
public static bool GBPNZD_OCO2_EO3_UP_S2 ;
public static bool GBPNZD_OCO2_EO4_UP_S2 ;
public static bool GBPNZD_OCO2_EO5_UP_S2 ;
public static bool GBPNZD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_UP_S2> GBPNZD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_UP_S2> GBPNZD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_UP_S2> GBPNZD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_UP_S2> GBPNZD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_UP_S2> GBPNZD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_UP_S2> GBPNZD_OOFE_OCO2_UP_S2_6 ;
public static GBPNZD_OCO2_UP_S2 GBPNZD_PFO_OCO2_UP_S2_1 ;
public static GBPNZD_OCO2_UP_S2 GBPNZD_PFO_OCO2_UP_S2_2 ;
public static GBPNZD_OCO2_UP_S2 GBPNZD_PFO_OCO2_UP_S2_3 ;
public static GBPNZD_OCO2_UP_S2 GBPNZD_PFO_OCO2_UP_S2_4 ;
public static GBPNZD_OCO2_UP_S2 GBPNZD_PFO_OCO2_UP_S2_5 ;
public static GBPNZD_OCO2_UP_S2 GBPNZD_PFO_OCO2_UP_S2_6 ;
public static List<GBPNZD_OCO2_UP_S2> GBPNZD_UP_S2_OCO2Sets1 = new List<GBPNZD_OCO2_UP_S2>();
public static List<GBPNZD_OCO2_UP_S2> GBPNZD_UP_S2_OCO2Sets2 = new List<GBPNZD_OCO2_UP_S2>();
public static List<GBPNZD_OCO2_UP_S2> GBPNZD_UP_S2_OCO2Sets3 = new List<GBPNZD_OCO2_UP_S2>();
public static List<GBPNZD_OCO2_UP_S2> GBPNZD_UP_S2_OCO2Sets4 = new List<GBPNZD_OCO2_UP_S2>();
public static List<GBPNZD_OCO2_UP_S2> GBPNZD_UP_S2_OCO2Sets5 = new List<GBPNZD_OCO2_UP_S2>();
public static List<GBPNZD_OCO2_UP_S2> GBPNZD_UP_S2_OCO2Sets6 = new List<GBPNZD_OCO2_UP_S2>();
public static bool GBPNZD_OCO2_UP_S2_IsReady = true;
public static bool GBPNZD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket GBPNZD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO2_MO6_DOWN_S2 ;
public static int GBPNZD_OCO2_EO1_DOWN_S2_ID ;
public static int GBPNZD_OCO2_EO2_DOWN_S2_ID ;
public static int GBPNZD_OCO2_EO3_DOWN_S2_ID ;
public static int GBPNZD_OCO2_EO4_DOWN_S2_ID ;
public static int GBPNZD_OCO2_EO5_DOWN_S2_ID ;
public static int GBPNZD_OCO2_EO6_DOWN_S2_ID ;
public static bool GBPNZD_OCO2_EO1_DOWN_S2 ;
public static bool GBPNZD_OCO2_EO2_DOWN_S2 ;
public static bool GBPNZD_OCO2_EO3_DOWN_S2 ;
public static bool GBPNZD_OCO2_EO4_DOWN_S2 ;
public static bool GBPNZD_OCO2_EO5_DOWN_S2 ;
public static bool GBPNZD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_DOWN_S2> GBPNZD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_DOWN_S2> GBPNZD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_DOWN_S2> GBPNZD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_DOWN_S2> GBPNZD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_DOWN_S2> GBPNZD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO2_DOWN_S2> GBPNZD_OOFE_OCO2_DOWN_S2_6 ;
public static GBPNZD_OCO2_DOWN_S2 GBPNZD_PFO_OCO2_DOWN_S2_1 ;
public static GBPNZD_OCO2_DOWN_S2 GBPNZD_PFO_OCO2_DOWN_S2_2 ;
public static GBPNZD_OCO2_DOWN_S2 GBPNZD_PFO_OCO2_DOWN_S2_3 ;
public static GBPNZD_OCO2_DOWN_S2 GBPNZD_PFO_OCO2_DOWN_S2_4 ;
public static GBPNZD_OCO2_DOWN_S2 GBPNZD_PFO_OCO2_DOWN_S2_5 ;
public static GBPNZD_OCO2_DOWN_S2 GBPNZD_PFO_OCO2_DOWN_S2_6 ;
public static List<GBPNZD_OCO2_DOWN_S2> GBPNZD_DOWN_S2_OCO2Sets1 = new List<GBPNZD_OCO2_DOWN_S2>();
public static List<GBPNZD_OCO2_DOWN_S2> GBPNZD_DOWN_S2_OCO2Sets2 = new List<GBPNZD_OCO2_DOWN_S2>();
public static List<GBPNZD_OCO2_DOWN_S2> GBPNZD_DOWN_S2_OCO2Sets3 = new List<GBPNZD_OCO2_DOWN_S2>();
public static List<GBPNZD_OCO2_DOWN_S2> GBPNZD_DOWN_S2_OCO2Sets4 = new List<GBPNZD_OCO2_DOWN_S2>();
public static List<GBPNZD_OCO2_DOWN_S2> GBPNZD_DOWN_S2_OCO2Sets5 = new List<GBPNZD_OCO2_DOWN_S2>();
public static List<GBPNZD_OCO2_DOWN_S2> GBPNZD_DOWN_S2_OCO2Sets6 = new List<GBPNZD_OCO2_DOWN_S2>();
public static bool GBPNZD_OCO2_DOWN_S2_IsReady = true;
public static bool GBPNZD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket GBPNZD_OCO3_MO1_UP_S2 ;
public static OrderTicket GBPNZD_OCO3_MO2_UP_S2 ;
public static OrderTicket GBPNZD_OCO3_MO3_UP_S2 ;
public static OrderTicket GBPNZD_OCO3_MO4_UP_S2 ;
public static OrderTicket GBPNZD_OCO3_MO5_UP_S2 ;
public static OrderTicket GBPNZD_OCO3_MO6_UP_S2 ;
public static int GBPNZD_OCO3_EO1_UP_S2_ID ;
public static int GBPNZD_OCO3_EO2_UP_S2_ID ;
public static int GBPNZD_OCO3_EO3_UP_S2_ID ;
public static int GBPNZD_OCO3_EO4_UP_S2_ID ;
public static int GBPNZD_OCO3_EO5_UP_S2_ID ;
public static int GBPNZD_OCO3_EO6_UP_S2_ID ;
public static bool GBPNZD_OCO3_EO1_UP_S2 ;
public static bool GBPNZD_OCO3_EO2_UP_S2 ;
public static bool GBPNZD_OCO3_EO3_UP_S2 ;
public static bool GBPNZD_OCO3_EO4_UP_S2 ;
public static bool GBPNZD_OCO3_EO5_UP_S2 ;
public static bool GBPNZD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_UP_S2> GBPNZD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_UP_S2> GBPNZD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_UP_S2> GBPNZD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_UP_S2> GBPNZD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_UP_S2> GBPNZD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_UP_S2> GBPNZD_OOFE_OCO3_UP_S2_6 ;
public static GBPNZD_OCO3_UP_S2 GBPNZD_PFO_OCO3_UP_S2_1 ;
public static GBPNZD_OCO3_UP_S2 GBPNZD_PFO_OCO3_UP_S2_2 ;
public static GBPNZD_OCO3_UP_S2 GBPNZD_PFO_OCO3_UP_S2_3 ;
public static GBPNZD_OCO3_UP_S2 GBPNZD_PFO_OCO3_UP_S2_4 ;
public static GBPNZD_OCO3_UP_S2 GBPNZD_PFO_OCO3_UP_S2_5 ;
public static GBPNZD_OCO3_UP_S2 GBPNZD_PFO_OCO3_UP_S2_6 ;
public static List<GBPNZD_OCO3_UP_S2> GBPNZD_UP_S2_OCO3Sets1 = new List<GBPNZD_OCO3_UP_S2>();
public static List<GBPNZD_OCO3_UP_S2> GBPNZD_UP_S2_OCO3Sets2 = new List<GBPNZD_OCO3_UP_S2>();
public static List<GBPNZD_OCO3_UP_S2> GBPNZD_UP_S2_OCO3Sets3 = new List<GBPNZD_OCO3_UP_S2>();
public static List<GBPNZD_OCO3_UP_S2> GBPNZD_UP_S2_OCO3Sets4 = new List<GBPNZD_OCO3_UP_S2>();
public static List<GBPNZD_OCO3_UP_S2> GBPNZD_UP_S2_OCO3Sets5 = new List<GBPNZD_OCO3_UP_S2>();
public static List<GBPNZD_OCO3_UP_S2> GBPNZD_UP_S2_OCO3Sets6 = new List<GBPNZD_OCO3_UP_S2>();
public static bool GBPNZD_OCO3_UP_S2_IsReady = true;
public static bool GBPNZD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket GBPNZD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO3_MO6_DOWN_S2 ;
public static int GBPNZD_OCO3_EO1_DOWN_S2_ID ;
public static int GBPNZD_OCO3_EO2_DOWN_S2_ID ;
public static int GBPNZD_OCO3_EO3_DOWN_S2_ID ;
public static int GBPNZD_OCO3_EO4_DOWN_S2_ID ;
public static int GBPNZD_OCO3_EO5_DOWN_S2_ID ;
public static int GBPNZD_OCO3_EO6_DOWN_S2_ID ;
public static bool GBPNZD_OCO3_EO1_DOWN_S2 ;
public static bool GBPNZD_OCO3_EO2_DOWN_S2 ;
public static bool GBPNZD_OCO3_EO3_DOWN_S2 ;
public static bool GBPNZD_OCO3_EO4_DOWN_S2 ;
public static bool GBPNZD_OCO3_EO5_DOWN_S2 ;
public static bool GBPNZD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_DOWN_S2> GBPNZD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_DOWN_S2> GBPNZD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_DOWN_S2> GBPNZD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_DOWN_S2> GBPNZD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_DOWN_S2> GBPNZD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO3_DOWN_S2> GBPNZD_OOFE_OCO3_DOWN_S2_6 ;
public static GBPNZD_OCO3_DOWN_S2 GBPNZD_PFO_OCO3_DOWN_S2_1 ;
public static GBPNZD_OCO3_DOWN_S2 GBPNZD_PFO_OCO3_DOWN_S2_2 ;
public static GBPNZD_OCO3_DOWN_S2 GBPNZD_PFO_OCO3_DOWN_S2_3 ;
public static GBPNZD_OCO3_DOWN_S2 GBPNZD_PFO_OCO3_DOWN_S2_4 ;
public static GBPNZD_OCO3_DOWN_S2 GBPNZD_PFO_OCO3_DOWN_S2_5 ;
public static GBPNZD_OCO3_DOWN_S2 GBPNZD_PFO_OCO3_DOWN_S2_6 ;
public static List<GBPNZD_OCO3_DOWN_S2> GBPNZD_DOWN_S2_OCO3Sets1 = new List<GBPNZD_OCO3_DOWN_S2>();
public static List<GBPNZD_OCO3_DOWN_S2> GBPNZD_DOWN_S2_OCO3Sets2 = new List<GBPNZD_OCO3_DOWN_S2>();
public static List<GBPNZD_OCO3_DOWN_S2> GBPNZD_DOWN_S2_OCO3Sets3 = new List<GBPNZD_OCO3_DOWN_S2>();
public static List<GBPNZD_OCO3_DOWN_S2> GBPNZD_DOWN_S2_OCO3Sets4 = new List<GBPNZD_OCO3_DOWN_S2>();
public static List<GBPNZD_OCO3_DOWN_S2> GBPNZD_DOWN_S2_OCO3Sets5 = new List<GBPNZD_OCO3_DOWN_S2>();
public static List<GBPNZD_OCO3_DOWN_S2> GBPNZD_DOWN_S2_OCO3Sets6 = new List<GBPNZD_OCO3_DOWN_S2>();
public static bool GBPNZD_OCO3_DOWN_S2_IsReady = true;
public static bool GBPNZD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket GBPNZD_OCO4_MO1_UP_S2 ;
public static OrderTicket GBPNZD_OCO4_MO2_UP_S2 ;
public static OrderTicket GBPNZD_OCO4_MO3_UP_S2 ;
public static OrderTicket GBPNZD_OCO4_MO4_UP_S2 ;
public static OrderTicket GBPNZD_OCO4_MO5_UP_S2 ;
public static OrderTicket GBPNZD_OCO4_MO6_UP_S2 ;
public static int GBPNZD_OCO4_EO1_UP_S2_ID ;
public static int GBPNZD_OCO4_EO2_UP_S2_ID ;
public static int GBPNZD_OCO4_EO3_UP_S2_ID ;
public static int GBPNZD_OCO4_EO4_UP_S2_ID ;
public static int GBPNZD_OCO4_EO5_UP_S2_ID ;
public static int GBPNZD_OCO4_EO6_UP_S2_ID ;
public static bool GBPNZD_OCO4_EO1_UP_S2 ;
public static bool GBPNZD_OCO4_EO2_UP_S2 ;
public static bool GBPNZD_OCO4_EO3_UP_S2 ;
public static bool GBPNZD_OCO4_EO4_UP_S2 ;
public static bool GBPNZD_OCO4_EO5_UP_S2 ;
public static bool GBPNZD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_UP_S2> GBPNZD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_UP_S2> GBPNZD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_UP_S2> GBPNZD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_UP_S2> GBPNZD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_UP_S2> GBPNZD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_UP_S2> GBPNZD_OOFE_OCO4_UP_S2_6 ;
public static GBPNZD_OCO4_UP_S2 GBPNZD_PFO_OCO4_UP_S2_1 ;
public static GBPNZD_OCO4_UP_S2 GBPNZD_PFO_OCO4_UP_S2_2 ;
public static GBPNZD_OCO4_UP_S2 GBPNZD_PFO_OCO4_UP_S2_3 ;
public static GBPNZD_OCO4_UP_S2 GBPNZD_PFO_OCO4_UP_S2_4 ;
public static GBPNZD_OCO4_UP_S2 GBPNZD_PFO_OCO4_UP_S2_5 ;
public static GBPNZD_OCO4_UP_S2 GBPNZD_PFO_OCO4_UP_S2_6 ;
public static List<GBPNZD_OCO4_UP_S2> GBPNZD_UP_S2_OCO4Sets1 = new List<GBPNZD_OCO4_UP_S2>();
public static List<GBPNZD_OCO4_UP_S2> GBPNZD_UP_S2_OCO4Sets2 = new List<GBPNZD_OCO4_UP_S2>();
public static List<GBPNZD_OCO4_UP_S2> GBPNZD_UP_S2_OCO4Sets3 = new List<GBPNZD_OCO4_UP_S2>();
public static List<GBPNZD_OCO4_UP_S2> GBPNZD_UP_S2_OCO4Sets4 = new List<GBPNZD_OCO4_UP_S2>();
public static List<GBPNZD_OCO4_UP_S2> GBPNZD_UP_S2_OCO4Sets5 = new List<GBPNZD_OCO4_UP_S2>();
public static List<GBPNZD_OCO4_UP_S2> GBPNZD_UP_S2_OCO4Sets6 = new List<GBPNZD_OCO4_UP_S2>();
public static bool GBPNZD_OCO4_UP_S2_IsReady = true;
public static bool GBPNZD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket GBPNZD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket GBPNZD_OCO4_MO6_DOWN_S2 ;
public static int GBPNZD_OCO4_EO1_DOWN_S2_ID ;
public static int GBPNZD_OCO4_EO2_DOWN_S2_ID ;
public static int GBPNZD_OCO4_EO3_DOWN_S2_ID ;
public static int GBPNZD_OCO4_EO4_DOWN_S2_ID ;
public static int GBPNZD_OCO4_EO5_DOWN_S2_ID ;
public static int GBPNZD_OCO4_EO6_DOWN_S2_ID ;
public static bool GBPNZD_OCO4_EO1_DOWN_S2 ;
public static bool GBPNZD_OCO4_EO2_DOWN_S2 ;
public static bool GBPNZD_OCO4_EO3_DOWN_S2 ;
public static bool GBPNZD_OCO4_EO4_DOWN_S2 ;
public static bool GBPNZD_OCO4_EO5_DOWN_S2 ;
public static bool GBPNZD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_DOWN_S2> GBPNZD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_DOWN_S2> GBPNZD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_DOWN_S2> GBPNZD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_DOWN_S2> GBPNZD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_DOWN_S2> GBPNZD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPNZD_OCO4_DOWN_S2> GBPNZD_OOFE_OCO4_DOWN_S2_6 ;
public static GBPNZD_OCO4_DOWN_S2 GBPNZD_PFO_OCO4_DOWN_S2_1 ;
public static GBPNZD_OCO4_DOWN_S2 GBPNZD_PFO_OCO4_DOWN_S2_2 ;
public static GBPNZD_OCO4_DOWN_S2 GBPNZD_PFO_OCO4_DOWN_S2_3 ;
public static GBPNZD_OCO4_DOWN_S2 GBPNZD_PFO_OCO4_DOWN_S2_4 ;
public static GBPNZD_OCO4_DOWN_S2 GBPNZD_PFO_OCO4_DOWN_S2_5 ;
public static GBPNZD_OCO4_DOWN_S2 GBPNZD_PFO_OCO4_DOWN_S2_6 ;
public static List<GBPNZD_OCO4_DOWN_S2> GBPNZD_DOWN_S2_OCO4Sets1 = new List<GBPNZD_OCO4_DOWN_S2>();
public static List<GBPNZD_OCO4_DOWN_S2> GBPNZD_DOWN_S2_OCO4Sets2 = new List<GBPNZD_OCO4_DOWN_S2>();
public static List<GBPNZD_OCO4_DOWN_S2> GBPNZD_DOWN_S2_OCO4Sets3 = new List<GBPNZD_OCO4_DOWN_S2>();
public static List<GBPNZD_OCO4_DOWN_S2> GBPNZD_DOWN_S2_OCO4Sets4 = new List<GBPNZD_OCO4_DOWN_S2>();
public static List<GBPNZD_OCO4_DOWN_S2> GBPNZD_DOWN_S2_OCO4Sets5 = new List<GBPNZD_OCO4_DOWN_S2>();
public static List<GBPNZD_OCO4_DOWN_S2> GBPNZD_DOWN_S2_OCO4Sets6 = new List<GBPNZD_OCO4_DOWN_S2>();
public static bool GBPNZD_OCO4_DOWN_S2_IsReady = true;
public static bool GBPNZD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal GBPNZD_UP_S2_SL {get; set;}
public static decimal GBPNZD_UP_S2_TP1 {get; set;}
public static decimal GBPNZD_UP_S2_TP2 {get; set;}
public static decimal GBPNZD_UP_S2_TP3 {get; set;}
public static decimal GBPNZD_UP_S2_TP4 {get; set;}
public static decimal GBPNZD_UP_S2_TP5 {get; set;}
public static decimal GBPNZD_UP_S2_TP6 {get; set;}
public static decimal GBPNZD_DOWN_S2_SL {get; set;}
public static decimal GBPNZD_DOWN_S2_TP1 {get; set;}
public static decimal GBPNZD_DOWN_S2_TP2 {get; set;}
public static decimal GBPNZD_DOWN_S2_TP3 {get; set;}
public static decimal GBPNZD_DOWN_S2_TP4 {get; set;}
public static decimal GBPNZD_DOWN_S2_TP5 {get; set;}
public static decimal GBPNZD_DOWN_S2_TP6 {get; set;}
public static bool GBPNZD_Signal_Condition_UP_1 ;
public static bool GBPNZD_Signal_Condition_UP_2 ;
public static bool GBPNZD_Signal_Condition_UP_3 ;
public static bool GBPNZD_Signal_Condition_DOWN_1 ;
public static bool GBPNZD_Signal_Condition_DOWN_2 ;
public static bool GBPNZD_Signal_Condition_DOWN_3 ;
public static int GBPNZD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int GBPNZD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int GBPNZD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int GBPNZD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int GBPNZD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int GBPNZD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int GBPNZD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int GBPNZD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int GBPNZD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int GBPNZD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_GBPNZD_UP_S2 ;
public static bool DOWM_GBPNZD_UP_S2 ;
public static bool DOWT_GBPNZD_UP_S2 ;
public static bool DOWW_GBPNZD_UP_S2 ;
public static bool DOWTH_GBPNZD_UP_S2 ;
public static bool DOWR_GBPNZD_DOWN_S2 ;
public static bool DOWM_GBPNZD_DOWN_S2 ;
public static bool DOWT_GBPNZD_DOWN_S2 ;
public static bool DOWW_GBPNZD_DOWN_S2 ;
public static bool DOWTH_GBPNZD_DOWN_S2 ;
public static int GBPNZD_quantity_UP_S2 ;
public static int GBPNZD_quantity_SL_UP_S2 ;
public static int GBPNZD_quantity_TP1_UP_S2 ;
public static int GBPNZD_quantity_TP2_UP_S2 ;
public static int GBPNZD_quantity_TP3_UP_S2 ;
public static int GBPNZD_quantity_TP4_UP_S2 ;
public static int GBPNZD_quantity_TP5_UP_S2;
public static int GBPNZD_quantity_TP6_UP_S2 ;
public static int GBPNZD_quantity_DOWN_S2 ;
public static int GBPNZD_quantity_SL_DOWN_S2 ;
public static int GBPNZD_quantity_TP1_DOWN_S2 ;
public static int GBPNZD_quantity_TP2_DOWN_S2 ;
public static int GBPNZD_quantity_TP3_DOWN_S2 ;
public static int GBPNZD_quantity_TP4_DOWN_S2 ;
public static int GBPNZD_quantity_TP5_DOWN_S2;
public static int GBPNZD_quantity_TP6_DOWN_S2 ;
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURNZD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURNZD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURNZD_DOWN_S2_OCO1")))
{
Base.EURNZD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURNZD_DOWN_S2_OCO2")))
{
Base.EURNZD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURNZD_DOWN_S2_OCO3")))
{
Base.EURNZD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURNZD_DOWN_S2_OCO4")))
{
Base.EURNZD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURNZD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURNZD_OCO1_EO1_DOWN_S2)
Base.EURNZD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO2_DOWN_S2)
Base.EURNZD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO3_DOWN_S2)
Base.EURNZD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO4_DOWN_S2)
Base.EURNZD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO5_DOWN_S2)
Base.EURNZD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO6_DOWN_S2)
Base.EURNZD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURNZD_OCO1S1_DOWN_S2 = 0;
for (; EURNZD_OCO1S1_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets1.Count; EURNZD_OCO1S1_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets1[EURNZD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO1Sets1[EURNZD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_1__Time out_OCO1");
Base.EURNZD_DOWN_S2_OCO1Sets1.Clear();
EURNZD_OCO1S1_DOWN_S2 = 0;
break;
}
int EURNZD_OCO1S2_DOWN_S2 = 0;
for (; EURNZD_OCO1S2_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets2.Count; EURNZD_OCO1S2_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets2[EURNZD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO1Sets2[EURNZD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_2__Time out_OCO1");
Base.EURNZD_DOWN_S2_OCO1Sets2.Clear();
EURNZD_OCO1S2_DOWN_S2 = 0;
break;
}
int EURNZD_OCO1S3_DOWN_S2 = 0;
for (; EURNZD_OCO1S3_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets3.Count; EURNZD_OCO1S3_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets3[EURNZD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO1Sets3[EURNZD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_3__Time out_OCO1");
Base.EURNZD_DOWN_S2_OCO1Sets3.Clear();
EURNZD_OCO1S3_DOWN_S2 = 0;
break;
}
int EURNZD_OCO1S4_DOWN_S2 = 0;
for (; EURNZD_OCO1S4_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets4.Count; EURNZD_OCO1S4_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets4[EURNZD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO1Sets4[EURNZD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_4__Time out_OCO1");
Base.EURNZD_DOWN_S2_OCO1Sets4.Clear();
EURNZD_OCO1S4_DOWN_S2 = 0;
break;
}
int EURNZD_OCO1S5_DOWN_S2 = 0;
for (; EURNZD_OCO1S5_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets5.Count; EURNZD_OCO1S5_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets5[EURNZD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO1Sets5[EURNZD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_5__Time out_OCO1");
Base.EURNZD_DOWN_S2_OCO1Sets5.Clear();
EURNZD_OCO1S5_DOWN_S2 = 0;
break;
}
int EURNZD_OCO1S6_DOWN_S2 = 0;
for (; EURNZD_OCO1S6_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets6.Count; EURNZD_OCO1S6_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets6[EURNZD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO1Sets6[EURNZD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_6__Time out_OCO1");
Base.EURNZD_DOWN_S2_OCO1Sets6.Clear();
EURNZD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO2_EO1_DOWN_S2)
Base.EURNZD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO2_DOWN_S2)
Base.EURNZD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO3_DOWN_S2)
Base.EURNZD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO4_DOWN_S2)
Base.EURNZD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO5_DOWN_S2)
Base.EURNZD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO6_DOWN_S2)
Base.EURNZD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURNZD_OCO2S1_DOWN_S2 = 0;
for (; EURNZD_OCO2S1_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets1.Count; EURNZD_OCO2S1_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets1[EURNZD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO2Sets1[EURNZD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_1__Time out_OCO2");
Base.EURNZD_DOWN_S2_OCO2Sets1.Clear();
EURNZD_OCO2S1_DOWN_S2 = 0;
break;
}
int EURNZD_OCO2S2_DOWN_S2 = 0;
for (; EURNZD_OCO2S2_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets2.Count; EURNZD_OCO2S2_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets2[EURNZD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO2Sets2[EURNZD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_2__Time out_OCO2");
Base.EURNZD_DOWN_S2_OCO2Sets2.Clear();
EURNZD_OCO2S2_DOWN_S2 = 0;
break;
}
int EURNZD_OCO2S3_DOWN_S2 = 0;
for (; EURNZD_OCO2S3_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets3.Count; EURNZD_OCO2S3_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets3[EURNZD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO2Sets3[EURNZD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_3__Time out_OCO2");
Base.EURNZD_DOWN_S2_OCO2Sets3.Clear();
EURNZD_OCO2S3_DOWN_S2 = 0;
break;
}
int EURNZD_OCO2S4_DOWN_S2 = 0;
for (; EURNZD_OCO2S4_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets4.Count; EURNZD_OCO2S4_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets4[EURNZD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO2Sets4[EURNZD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_4__Time out_OCO2");
Base.EURNZD_DOWN_S2_OCO2Sets4.Clear();
EURNZD_OCO2S4_DOWN_S2 = 0;
break;
}
int EURNZD_OCO2S5_DOWN_S2 = 0;
for (; EURNZD_OCO2S5_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets5.Count; EURNZD_OCO2S5_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets5[EURNZD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO2Sets5[EURNZD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_5__Time out_OCO2");
Base.EURNZD_DOWN_S2_OCO2Sets5.Clear();
EURNZD_OCO2S5_DOWN_S2 = 0;
break;
}
int EURNZD_OCO2S6_DOWN_S2 = 0;
for (; EURNZD_OCO2S6_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets6.Count; EURNZD_OCO2S6_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets6[EURNZD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO2Sets6[EURNZD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_6__Time out_OCO2");
Base.EURNZD_DOWN_S2_OCO2Sets6.Clear();
EURNZD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO3_EO1_DOWN_S2)
Base.EURNZD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO2_DOWN_S2)
Base.EURNZD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO3_DOWN_S2)
Base.EURNZD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO4_DOWN_S2)
Base.EURNZD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO5_DOWN_S2)
Base.EURNZD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO6_DOWN_S2)
Base.EURNZD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURNZD_OCO3S1_DOWN_S2 = 0;
for (; EURNZD_OCO3S1_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets1.Count; EURNZD_OCO3S1_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets1[EURNZD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO3Sets1[EURNZD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_1__Time out_OCO3");
Base.EURNZD_DOWN_S2_OCO3Sets1.Clear();
EURNZD_OCO3S1_DOWN_S2 = 0;
break;
}
int EURNZD_OCO3S2_DOWN_S2 = 0;
for (; EURNZD_OCO3S2_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets2.Count; EURNZD_OCO3S2_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets2[EURNZD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO3Sets2[EURNZD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_2__Time out_OCO3");
Base.EURNZD_DOWN_S2_OCO3Sets2.Clear();
EURNZD_OCO3S2_DOWN_S2 = 0;
break;
}
int EURNZD_OCO3S3_DOWN_S2 = 0;
for (; EURNZD_OCO3S3_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets3.Count; EURNZD_OCO3S3_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets3[EURNZD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO3Sets3[EURNZD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_3__Time out_OCO3");
Base.EURNZD_DOWN_S2_OCO3Sets3.Clear();
EURNZD_OCO3S3_DOWN_S2 = 0;
break;
}
int EURNZD_OCO3S4_DOWN_S2 = 0;
for (; EURNZD_OCO3S4_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets4.Count; EURNZD_OCO3S4_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets4[EURNZD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO3Sets4[EURNZD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_4__Time out_OCO3");
Base.EURNZD_DOWN_S2_OCO3Sets4.Clear();
EURNZD_OCO3S4_DOWN_S2 = 0;
break;
}
int EURNZD_OCO3S5_DOWN_S2 = 0;
for (; EURNZD_OCO3S5_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets5.Count; EURNZD_OCO3S5_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets5[EURNZD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO3Sets5[EURNZD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_5__Time out_OCO3");
Base.EURNZD_DOWN_S2_OCO3Sets5.Clear();
EURNZD_OCO3S5_DOWN_S2 = 0;
break;
}
int EURNZD_OCO3S6_DOWN_S2 = 0;
for (; EURNZD_OCO3S6_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets6.Count; EURNZD_OCO3S6_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets6[EURNZD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO3Sets6[EURNZD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_6__Time out_OCO3");
Base.EURNZD_DOWN_S2_OCO3Sets6.Clear();
EURNZD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO4_EO1_DOWN_S2)
Base.EURNZD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO2_DOWN_S2)
Base.EURNZD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO3_DOWN_S2)
Base.EURNZD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO4_DOWN_S2)
Base.EURNZD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO5_DOWN_S2)
Base.EURNZD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO6_DOWN_S2)
Base.EURNZD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURNZD_OCO4S1_DOWN_S2 = 0;
for (; EURNZD_OCO4S1_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets1.Count; EURNZD_OCO4S1_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets1[EURNZD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO4Sets1[EURNZD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_1__Time out_OCO4");
Base.EURNZD_DOWN_S2_OCO4Sets1.Clear();
EURNZD_OCO4S1_DOWN_S2 = 0;
break;
}
int EURNZD_OCO4S2_DOWN_S2 = 0;
for (; EURNZD_OCO4S2_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets2.Count; EURNZD_OCO4S2_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets2[EURNZD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO4Sets2[EURNZD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_2__Time out_OCO4");
Base.EURNZD_DOWN_S2_OCO4Sets2.Clear();
EURNZD_OCO4S2_DOWN_S2 = 0;
break;
}
int EURNZD_OCO4S3_DOWN_S2 = 0;
for (; EURNZD_OCO4S3_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets3.Count; EURNZD_OCO4S3_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets3[EURNZD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO4Sets3[EURNZD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_3__Time out_OCO4");
Base.EURNZD_DOWN_S2_OCO4Sets3.Clear();
EURNZD_OCO4S3_DOWN_S2 = 0;
break;
}
int EURNZD_OCO4S4_DOWN_S2 = 0;
for (; EURNZD_OCO4S4_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets4.Count; EURNZD_OCO4S4_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets4[EURNZD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO4Sets4[EURNZD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_4__Time out_OCO4");
Base.EURNZD_DOWN_S2_OCO4Sets4.Clear();
EURNZD_OCO4S4_DOWN_S2 = 0;
break;
}
int EURNZD_OCO4S5_DOWN_S2 = 0;
for (; EURNZD_OCO4S5_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets5.Count; EURNZD_OCO4S5_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets5[EURNZD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO4Sets5[EURNZD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_5__Time out_OCO4");
Base.EURNZD_DOWN_S2_OCO4Sets5.Clear();
EURNZD_OCO4S5_DOWN_S2 = 0;
break;
}
int EURNZD_OCO4S6_DOWN_S2 = 0;
for (; EURNZD_OCO4S6_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets6.Count; EURNZD_OCO4S6_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets6[EURNZD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.EURNZD_DOWN_S2_OCO4Sets6[EURNZD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_DOWN_S2_Entry_6__Time out_OCO4");
Base.EURNZD_DOWN_S2_OCO4Sets6.Clear();
EURNZD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURNZD_DOWN_S2 = DOWM_EURNZD_DOWN_S2 || DOWT_EURNZD_DOWN_S2 || DOWW_EURNZD_DOWN_S2 || DOWTH_EURNZD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURNZD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURNZD_OCO1_DOWN_S2_IsReady == false ||
Base.EURNZD_OCO2_DOWN_S2_IsReady == false ||
Base.EURNZD_OCO3_DOWN_S2_IsReady == false ||
Base.EURNZD_OCO4_DOWN_S2_IsReady == false)
{
Base.EURNZD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.EURNZD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.EURNZD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.EURNZD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURNZD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.EURNZD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.EURNZD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.EURNZD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
EURNZD_Signal_Condition_DOWN_S2 =
(
//ricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.02m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
//prices_BID_Close[0] - prices_ASK_Open[0] > 0 &&
prices_BID_Open[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] < pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.0005m
);
EURNZD_DOWN_S2_SL = 0.005m;
EURNZD_DOWN_S2_TP1 = 0.02m;
EURNZD_DOWN_S2_TP2 = EURNZD_DOWN_S2_SL * 0;
EURNZD_DOWN_S2_TP3 = EURNZD_DOWN_S2_SL * 0;
EURNZD_DOWN_S2_TP4 = EURNZD_DOWN_S2_SL * 0;
EURNZD_DOWN_S2_TP5 = EURNZD_DOWN_S2_SL * 0;
EURNZD_DOWN_S2_TP6 = EURNZD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
EURNZD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURNZD_quantity_SL_DOWN_S2 = EURNZD_quantity_DOWN_S2;
EURNZD_quantity_TP1_DOWN_S2 = (int)Math.Floor(EURNZD_quantity_DOWN_S2 * 1m);
EURNZD_quantity_TP2_DOWN_S2 = (int)Math.Floor(EURNZD_quantity_TP1_DOWN_S2 * 0m);
EURNZD_quantity_TP3_DOWN_S2 = (int)Math.Floor(EURNZD_quantity_TP2_DOWN_S2 * 0m);
EURNZD_quantity_TP4_DOWN_S2 = (int)Math.Floor(EURNZD_quantity_TP3_DOWN_S2 * 0m);
EURNZD_quantity_TP5_DOWN_S2 = (int)Math.Floor(EURNZD_quantity_TP4_DOWN_S2 * 0m);
EURNZD_quantity_TP6_DOWN_S2 = (int)Math.Floor(EURNZD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (EURNZD_Signal_Condition_DOWN_S2 &&
DOWR_EURNZD_DOWN_S2 &&
Base.EURNZD_OCO1_DOWN_S2_IsReady == true &&
Base.EURNZD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.EURNZD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP1_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP1_OCO1");
Base.EURNZD_OCO1_EO1_DOWN_S2 = false;
Base.EURNZD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP2_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP2_OCO1");
Base.EURNZD_OCO1_EO2_DOWN_S2 = false;
Base.EURNZD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP3_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP3_OCO1");
Base.EURNZD_OCO1_EO3_DOWN_S2 = false;
Base.EURNZD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP4_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP4_OCO1");
Base.EURNZD_OCO1_EO4_DOWN_S2 = false;
Base.EURNZD_OCO1_DOWN_S2_IsReady = false;
if (Base.EURNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (EURNZD_Signal_Condition_DOWN_S2 &&
DOWR_EURNZD_DOWN_S2 &&
Base.EURNZD_OCO2_DOWN_S2_IsReady == true &&
Base.EURNZD_OCO1_DOWN_S2_IsReady == false &&
Base.EURNZD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.EURNZD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP1_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP1_OCO2");
Base.EURNZD_OCO2_EO1_DOWN_S2 = false;
Base.EURNZD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP2_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP2_OCO2");
Base.EURNZD_OCO2_EO2_DOWN_S2 = false;
Base.EURNZD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP3_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP3_OCO2");
Base.EURNZD_OCO2_EO3_DOWN_S2 = false;
Base.EURNZD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP4_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP4_OCO2");
Base.EURNZD_OCO2_EO4_DOWN_S2 = false;
Base.EURNZD_OCO2_DOWN_S2_IsReady = false;
if (Base.EURNZD_OCO2_DOWN_S2_IsReady == false && Base.EURNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (EURNZD_Signal_Condition_DOWN_S2 &&
DOWR_EURNZD_DOWN_S2 &&
Base.EURNZD_OCO3_DOWN_S2_IsReady == true &&
Base.EURNZD_OCO1_DOWN_S2_IsReady == false &&
Base.EURNZD_OCO2_DOWN_S2_IsReady == false &&
Base.EURNZD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.EURNZD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP1_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP1_OCO3");
Base.EURNZD_OCO3_EO1_DOWN_S2 = false;
Base.EURNZD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP2_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP2_OCO3");
Base.EURNZD_OCO3_EO2_DOWN_S2 = false;
Base.EURNZD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP3_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP3_OCO3");
Base.EURNZD_OCO3_EO3_DOWN_S2 = false;
Base.EURNZD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP4_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP4_OCO3");
Base.EURNZD_OCO3_EO4_DOWN_S2 = false;
Base.EURNZD_OCO3_DOWN_S2_IsReady = false;
if (Base.EURNZD_OCO3_DOWN_S2_IsReady == false && Base.EURNZD_OCO2_DOWN_S2_IsReady == false && Base.EURNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (EURNZD_Signal_Condition_DOWN_S2 &&
DOWR_EURNZD_DOWN_S2 &&
Base.EURNZD_OCO4_DOWN_S2_IsReady == true &&
Base.EURNZD_OCO1_DOWN_S2_IsReady == false &&
Base.EURNZD_OCO2_DOWN_S2_IsReady == false &&
Base.EURNZD_OCO3_DOWN_S2_IsReady == false &&
Base.EURNZD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.EURNZD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP1_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP1_OCO4");
Base.EURNZD_OCO4_EO1_DOWN_S2 = false;
Base.EURNZD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP2_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP2_OCO4");
Base.EURNZD_OCO4_EO2_DOWN_S2 = false;
Base.EURNZD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP3_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP3_OCO4");
Base.EURNZD_OCO4_EO3_DOWN_S2 = false;
Base.EURNZD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURNZD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP4_DOWN_S2, false,"EURNZD_DOWN_S2_Entry_TP4_OCO4");
Base.EURNZD_OCO4_EO4_DOWN_S2 = false;
Base.EURNZD_OCO4_DOWN_S2_IsReady = false;
if (Base.EURNZD_OCO4_DOWN_S2_IsReady == false && Base.EURNZD_OCO3_DOWN_S2_IsReady == false && Base.EURNZD_OCO2_DOWN_S2_IsReady == false && Base.EURNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _GBPJPY;
///oco1 up
public static OrderTicket GBPJPY_OCO1_MO1_UP_S2;
public static OrderTicket GBPJPY_OCO1_MO2_UP_S2;
public static OrderTicket GBPJPY_OCO1_MO3_UP_S2;
public static OrderTicket GBPJPY_OCO1_MO4_UP_S2;
public static OrderTicket GBPJPY_OCO1_MO5_UP_S2;
public static OrderTicket GBPJPY_OCO1_MO6_UP_S2;
public static int GBPJPY_OCO1_EO1_UP_S2_ID ;
public static int GBPJPY_OCO1_EO2_UP_S2_ID ;
public static int GBPJPY_OCO1_EO3_UP_S2_ID ;
public static int GBPJPY_OCO1_EO4_UP_S2_ID ;
public static int GBPJPY_OCO1_EO5_UP_S2_ID ;
public static int GBPJPY_OCO1_EO6_UP_S2_ID ;
public static bool GBPJPY_OCO1_EO1_UP_S2 ;
public static bool GBPJPY_OCO1_EO2_UP_S2 ;
public static bool GBPJPY_OCO1_EO3_UP_S2 ;
public static bool GBPJPY_OCO1_EO4_UP_S2 ;
public static bool GBPJPY_OCO1_EO5_UP_S2 ;
public static bool GBPJPY_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_UP_S2> GBPJPY_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_UP_S2> GBPJPY_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_UP_S2> GBPJPY_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_UP_S2> GBPJPY_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_UP_S2> GBPJPY_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_UP_S2> GBPJPY_OOFE_OCO1_UP_S2_6 ;
public static GBPJPY_OCO1_UP_S2 GBPJPY_PFO_OCO1_UP_S2_1 ;
public static GBPJPY_OCO1_UP_S2 GBPJPY_PFO_OCO1_UP_S2_2 ;
public static GBPJPY_OCO1_UP_S2 GBPJPY_PFO_OCO1_UP_S2_3 ;
public static GBPJPY_OCO1_UP_S2 GBPJPY_PFO_OCO1_UP_S2_4 ;
public static GBPJPY_OCO1_UP_S2 GBPJPY_PFO_OCO1_UP_S2_5 ;
public static GBPJPY_OCO1_UP_S2 GBPJPY_PFO_OCO1_UP_S2_6 ;
public static List<GBPJPY_OCO1_UP_S2> GBPJPY_UP_S2_OCO1Sets1 = new List<GBPJPY_OCO1_UP_S2>();
public static List<GBPJPY_OCO1_UP_S2> GBPJPY_UP_S2_OCO1Sets2 = new List<GBPJPY_OCO1_UP_S2>();
public static List<GBPJPY_OCO1_UP_S2> GBPJPY_UP_S2_OCO1Sets3 = new List<GBPJPY_OCO1_UP_S2>();
public static List<GBPJPY_OCO1_UP_S2> GBPJPY_UP_S2_OCO1Sets4 = new List<GBPJPY_OCO1_UP_S2>();
public static List<GBPJPY_OCO1_UP_S2> GBPJPY_UP_S2_OCO1Sets5 = new List<GBPJPY_OCO1_UP_S2>();
public static List<GBPJPY_OCO1_UP_S2> GBPJPY_UP_S2_OCO1Sets6 = new List<GBPJPY_OCO1_UP_S2>();
public static bool GBPJPY_OCO1_UP_S2_IsReady = true;
public static bool GBPJPY_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket GBPJPY_OCO1_MO1_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO1_MO2_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO1_MO3_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO1_MO4_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO1_MO5_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO1_MO6_DOWN_S2 ;
public static int GBPJPY_OCO1_EO1_DOWN_S2_ID ;
public static int GBPJPY_OCO1_EO2_DOWN_S2_ID ;
public static int GBPJPY_OCO1_EO3_DOWN_S2_ID ;
public static int GBPJPY_OCO1_EO4_DOWN_S2_ID ;
public static int GBPJPY_OCO1_EO5_DOWN_S2_ID ;
public static int GBPJPY_OCO1_EO6_DOWN_S2_ID ;
public static bool GBPJPY_OCO1_EO1_DOWN_S2 ;
public static bool GBPJPY_OCO1_EO2_DOWN_S2 ;
public static bool GBPJPY_OCO1_EO3_DOWN_S2 ;
public static bool GBPJPY_OCO1_EO4_DOWN_S2 ;
public static bool GBPJPY_OCO1_EO5_DOWN_S2 ;
public static bool GBPJPY_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_DOWN_S2> GBPJPY_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_DOWN_S2> GBPJPY_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_DOWN_S2> GBPJPY_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_DOWN_S2> GBPJPY_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_DOWN_S2> GBPJPY_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO1_DOWN_S2> GBPJPY_OOFE_OCO1_DOWN_S2_6 ;
public static GBPJPY_OCO1_DOWN_S2 GBPJPY_PFO_OCO1_DOWN_S2_1 ;
public static GBPJPY_OCO1_DOWN_S2 GBPJPY_PFO_OCO1_DOWN_S2_2 ;
public static GBPJPY_OCO1_DOWN_S2 GBPJPY_PFO_OCO1_DOWN_S2_3 ;
public static GBPJPY_OCO1_DOWN_S2 GBPJPY_PFO_OCO1_DOWN_S2_4 ;
public static GBPJPY_OCO1_DOWN_S2 GBPJPY_PFO_OCO1_DOWN_S2_5 ;
public static GBPJPY_OCO1_DOWN_S2 GBPJPY_PFO_OCO1_DOWN_S2_6 ;
public static List<GBPJPY_OCO1_DOWN_S2> GBPJPY_DOWN_S2_OCO1Sets1 = new List<GBPJPY_OCO1_DOWN_S2>();
public static List<GBPJPY_OCO1_DOWN_S2> GBPJPY_DOWN_S2_OCO1Sets2 = new List<GBPJPY_OCO1_DOWN_S2>();
public static List<GBPJPY_OCO1_DOWN_S2> GBPJPY_DOWN_S2_OCO1Sets3 = new List<GBPJPY_OCO1_DOWN_S2>();
public static List<GBPJPY_OCO1_DOWN_S2> GBPJPY_DOWN_S2_OCO1Sets4 = new List<GBPJPY_OCO1_DOWN_S2>();
public static List<GBPJPY_OCO1_DOWN_S2> GBPJPY_DOWN_S2_OCO1Sets5 = new List<GBPJPY_OCO1_DOWN_S2>();
public static List<GBPJPY_OCO1_DOWN_S2> GBPJPY_DOWN_S2_OCO1Sets6 = new List<GBPJPY_OCO1_DOWN_S2>();
public static bool GBPJPY_OCO1_DOWN_S2_IsReady = true;
public static bool GBPJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket GBPJPY_OCO2_MO1_UP_S2 ;
public static OrderTicket GBPJPY_OCO2_MO2_UP_S2 ;
public static OrderTicket GBPJPY_OCO2_MO3_UP_S2 ;
public static OrderTicket GBPJPY_OCO2_MO4_UP_S2 ;
public static OrderTicket GBPJPY_OCO2_MO5_UP_S2 ;
public static OrderTicket GBPJPY_OCO2_MO6_UP_S2 ;
public static int GBPJPY_OCO2_EO1_UP_S2_ID ;
public static int GBPJPY_OCO2_EO2_UP_S2_ID ;
public static int GBPJPY_OCO2_EO3_UP_S2_ID ;
public static int GBPJPY_OCO2_EO4_UP_S2_ID ;
public static int GBPJPY_OCO2_EO5_UP_S2_ID ;
public static int GBPJPY_OCO2_EO6_UP_S2_ID ;
public static bool GBPJPY_OCO2_EO1_UP_S2 ;
public static bool GBPJPY_OCO2_EO2_UP_S2 ;
public static bool GBPJPY_OCO2_EO3_UP_S2 ;
public static bool GBPJPY_OCO2_EO4_UP_S2 ;
public static bool GBPJPY_OCO2_EO5_UP_S2 ;
public static bool GBPJPY_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_UP_S2> GBPJPY_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_UP_S2> GBPJPY_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_UP_S2> GBPJPY_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_UP_S2> GBPJPY_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_UP_S2> GBPJPY_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_UP_S2> GBPJPY_OOFE_OCO2_UP_S2_6 ;
public static GBPJPY_OCO2_UP_S2 GBPJPY_PFO_OCO2_UP_S2_1 ;
public static GBPJPY_OCO2_UP_S2 GBPJPY_PFO_OCO2_UP_S2_2 ;
public static GBPJPY_OCO2_UP_S2 GBPJPY_PFO_OCO2_UP_S2_3 ;
public static GBPJPY_OCO2_UP_S2 GBPJPY_PFO_OCO2_UP_S2_4 ;
public static GBPJPY_OCO2_UP_S2 GBPJPY_PFO_OCO2_UP_S2_5 ;
public static GBPJPY_OCO2_UP_S2 GBPJPY_PFO_OCO2_UP_S2_6 ;
public static List<GBPJPY_OCO2_UP_S2> GBPJPY_UP_S2_OCO2Sets1 = new List<GBPJPY_OCO2_UP_S2>();
public static List<GBPJPY_OCO2_UP_S2> GBPJPY_UP_S2_OCO2Sets2 = new List<GBPJPY_OCO2_UP_S2>();
public static List<GBPJPY_OCO2_UP_S2> GBPJPY_UP_S2_OCO2Sets3 = new List<GBPJPY_OCO2_UP_S2>();
public static List<GBPJPY_OCO2_UP_S2> GBPJPY_UP_S2_OCO2Sets4 = new List<GBPJPY_OCO2_UP_S2>();
public static List<GBPJPY_OCO2_UP_S2> GBPJPY_UP_S2_OCO2Sets5 = new List<GBPJPY_OCO2_UP_S2>();
public static List<GBPJPY_OCO2_UP_S2> GBPJPY_UP_S2_OCO2Sets6 = new List<GBPJPY_OCO2_UP_S2>();
public static bool GBPJPY_OCO2_UP_S2_IsReady = true;
public static bool GBPJPY_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket GBPJPY_OCO2_MO1_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO2_MO2_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO2_MO3_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO2_MO4_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO2_MO5_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO2_MO6_DOWN_S2 ;
public static int GBPJPY_OCO2_EO1_DOWN_S2_ID ;
public static int GBPJPY_OCO2_EO2_DOWN_S2_ID ;
public static int GBPJPY_OCO2_EO3_DOWN_S2_ID ;
public static int GBPJPY_OCO2_EO4_DOWN_S2_ID ;
public static int GBPJPY_OCO2_EO5_DOWN_S2_ID ;
public static int GBPJPY_OCO2_EO6_DOWN_S2_ID ;
public static bool GBPJPY_OCO2_EO1_DOWN_S2 ;
public static bool GBPJPY_OCO2_EO2_DOWN_S2 ;
public static bool GBPJPY_OCO2_EO3_DOWN_S2 ;
public static bool GBPJPY_OCO2_EO4_DOWN_S2 ;
public static bool GBPJPY_OCO2_EO5_DOWN_S2 ;
public static bool GBPJPY_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_DOWN_S2> GBPJPY_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_DOWN_S2> GBPJPY_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_DOWN_S2> GBPJPY_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_DOWN_S2> GBPJPY_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_DOWN_S2> GBPJPY_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO2_DOWN_S2> GBPJPY_OOFE_OCO2_DOWN_S2_6 ;
public static GBPJPY_OCO2_DOWN_S2 GBPJPY_PFO_OCO2_DOWN_S2_1 ;
public static GBPJPY_OCO2_DOWN_S2 GBPJPY_PFO_OCO2_DOWN_S2_2 ;
public static GBPJPY_OCO2_DOWN_S2 GBPJPY_PFO_OCO2_DOWN_S2_3 ;
public static GBPJPY_OCO2_DOWN_S2 GBPJPY_PFO_OCO2_DOWN_S2_4 ;
public static GBPJPY_OCO2_DOWN_S2 GBPJPY_PFO_OCO2_DOWN_S2_5 ;
public static GBPJPY_OCO2_DOWN_S2 GBPJPY_PFO_OCO2_DOWN_S2_6 ;
public static List<GBPJPY_OCO2_DOWN_S2> GBPJPY_DOWN_S2_OCO2Sets1 = new List<GBPJPY_OCO2_DOWN_S2>();
public static List<GBPJPY_OCO2_DOWN_S2> GBPJPY_DOWN_S2_OCO2Sets2 = new List<GBPJPY_OCO2_DOWN_S2>();
public static List<GBPJPY_OCO2_DOWN_S2> GBPJPY_DOWN_S2_OCO2Sets3 = new List<GBPJPY_OCO2_DOWN_S2>();
public static List<GBPJPY_OCO2_DOWN_S2> GBPJPY_DOWN_S2_OCO2Sets4 = new List<GBPJPY_OCO2_DOWN_S2>();
public static List<GBPJPY_OCO2_DOWN_S2> GBPJPY_DOWN_S2_OCO2Sets5 = new List<GBPJPY_OCO2_DOWN_S2>();
public static List<GBPJPY_OCO2_DOWN_S2> GBPJPY_DOWN_S2_OCO2Sets6 = new List<GBPJPY_OCO2_DOWN_S2>();
public static bool GBPJPY_OCO2_DOWN_S2_IsReady = true;
public static bool GBPJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket GBPJPY_OCO3_MO1_UP_S2 ;
public static OrderTicket GBPJPY_OCO3_MO2_UP_S2 ;
public static OrderTicket GBPJPY_OCO3_MO3_UP_S2 ;
public static OrderTicket GBPJPY_OCO3_MO4_UP_S2 ;
public static OrderTicket GBPJPY_OCO3_MO5_UP_S2 ;
public static OrderTicket GBPJPY_OCO3_MO6_UP_S2 ;
public static int GBPJPY_OCO3_EO1_UP_S2_ID ;
public static int GBPJPY_OCO3_EO2_UP_S2_ID ;
public static int GBPJPY_OCO3_EO3_UP_S2_ID ;
public static int GBPJPY_OCO3_EO4_UP_S2_ID ;
public static int GBPJPY_OCO3_EO5_UP_S2_ID ;
public static int GBPJPY_OCO3_EO6_UP_S2_ID ;
public static bool GBPJPY_OCO3_EO1_UP_S2 ;
public static bool GBPJPY_OCO3_EO2_UP_S2 ;
public static bool GBPJPY_OCO3_EO3_UP_S2 ;
public static bool GBPJPY_OCO3_EO4_UP_S2 ;
public static bool GBPJPY_OCO3_EO5_UP_S2 ;
public static bool GBPJPY_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_UP_S2> GBPJPY_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_UP_S2> GBPJPY_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_UP_S2> GBPJPY_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_UP_S2> GBPJPY_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_UP_S2> GBPJPY_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_UP_S2> GBPJPY_OOFE_OCO3_UP_S2_6 ;
public static GBPJPY_OCO3_UP_S2 GBPJPY_PFO_OCO3_UP_S2_1 ;
public static GBPJPY_OCO3_UP_S2 GBPJPY_PFO_OCO3_UP_S2_2 ;
public static GBPJPY_OCO3_UP_S2 GBPJPY_PFO_OCO3_UP_S2_3 ;
public static GBPJPY_OCO3_UP_S2 GBPJPY_PFO_OCO3_UP_S2_4 ;
public static GBPJPY_OCO3_UP_S2 GBPJPY_PFO_OCO3_UP_S2_5 ;
public static GBPJPY_OCO3_UP_S2 GBPJPY_PFO_OCO3_UP_S2_6 ;
public static List<GBPJPY_OCO3_UP_S2> GBPJPY_UP_S2_OCO3Sets1 = new List<GBPJPY_OCO3_UP_S2>();
public static List<GBPJPY_OCO3_UP_S2> GBPJPY_UP_S2_OCO3Sets2 = new List<GBPJPY_OCO3_UP_S2>();
public static List<GBPJPY_OCO3_UP_S2> GBPJPY_UP_S2_OCO3Sets3 = new List<GBPJPY_OCO3_UP_S2>();
public static List<GBPJPY_OCO3_UP_S2> GBPJPY_UP_S2_OCO3Sets4 = new List<GBPJPY_OCO3_UP_S2>();
public static List<GBPJPY_OCO3_UP_S2> GBPJPY_UP_S2_OCO3Sets5 = new List<GBPJPY_OCO3_UP_S2>();
public static List<GBPJPY_OCO3_UP_S2> GBPJPY_UP_S2_OCO3Sets6 = new List<GBPJPY_OCO3_UP_S2>();
public static bool GBPJPY_OCO3_UP_S2_IsReady = true;
public static bool GBPJPY_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket GBPJPY_OCO3_MO1_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO3_MO2_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO3_MO3_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO3_MO4_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO3_MO5_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO3_MO6_DOWN_S2 ;
public static int GBPJPY_OCO3_EO1_DOWN_S2_ID ;
public static int GBPJPY_OCO3_EO2_DOWN_S2_ID ;
public static int GBPJPY_OCO3_EO3_DOWN_S2_ID ;
public static int GBPJPY_OCO3_EO4_DOWN_S2_ID ;
public static int GBPJPY_OCO3_EO5_DOWN_S2_ID ;
public static int GBPJPY_OCO3_EO6_DOWN_S2_ID ;
public static bool GBPJPY_OCO3_EO1_DOWN_S2 ;
public static bool GBPJPY_OCO3_EO2_DOWN_S2 ;
public static bool GBPJPY_OCO3_EO3_DOWN_S2 ;
public static bool GBPJPY_OCO3_EO4_DOWN_S2 ;
public static bool GBPJPY_OCO3_EO5_DOWN_S2 ;
public static bool GBPJPY_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_DOWN_S2> GBPJPY_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_DOWN_S2> GBPJPY_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_DOWN_S2> GBPJPY_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_DOWN_S2> GBPJPY_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_DOWN_S2> GBPJPY_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO3_DOWN_S2> GBPJPY_OOFE_OCO3_DOWN_S2_6 ;
public static GBPJPY_OCO3_DOWN_S2 GBPJPY_PFO_OCO3_DOWN_S2_1 ;
public static GBPJPY_OCO3_DOWN_S2 GBPJPY_PFO_OCO3_DOWN_S2_2 ;
public static GBPJPY_OCO3_DOWN_S2 GBPJPY_PFO_OCO3_DOWN_S2_3 ;
public static GBPJPY_OCO3_DOWN_S2 GBPJPY_PFO_OCO3_DOWN_S2_4 ;
public static GBPJPY_OCO3_DOWN_S2 GBPJPY_PFO_OCO3_DOWN_S2_5 ;
public static GBPJPY_OCO3_DOWN_S2 GBPJPY_PFO_OCO3_DOWN_S2_6 ;
public static List<GBPJPY_OCO3_DOWN_S2> GBPJPY_DOWN_S2_OCO3Sets1 = new List<GBPJPY_OCO3_DOWN_S2>();
public static List<GBPJPY_OCO3_DOWN_S2> GBPJPY_DOWN_S2_OCO3Sets2 = new List<GBPJPY_OCO3_DOWN_S2>();
public static List<GBPJPY_OCO3_DOWN_S2> GBPJPY_DOWN_S2_OCO3Sets3 = new List<GBPJPY_OCO3_DOWN_S2>();
public static List<GBPJPY_OCO3_DOWN_S2> GBPJPY_DOWN_S2_OCO3Sets4 = new List<GBPJPY_OCO3_DOWN_S2>();
public static List<GBPJPY_OCO3_DOWN_S2> GBPJPY_DOWN_S2_OCO3Sets5 = new List<GBPJPY_OCO3_DOWN_S2>();
public static List<GBPJPY_OCO3_DOWN_S2> GBPJPY_DOWN_S2_OCO3Sets6 = new List<GBPJPY_OCO3_DOWN_S2>();
public static bool GBPJPY_OCO3_DOWN_S2_IsReady = true;
public static bool GBPJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket GBPJPY_OCO4_MO1_UP_S2 ;
public static OrderTicket GBPJPY_OCO4_MO2_UP_S2 ;
public static OrderTicket GBPJPY_OCO4_MO3_UP_S2 ;
public static OrderTicket GBPJPY_OCO4_MO4_UP_S2 ;
public static OrderTicket GBPJPY_OCO4_MO5_UP_S2 ;
public static OrderTicket GBPJPY_OCO4_MO6_UP_S2 ;
public static int GBPJPY_OCO4_EO1_UP_S2_ID ;
public static int GBPJPY_OCO4_EO2_UP_S2_ID ;
public static int GBPJPY_OCO4_EO3_UP_S2_ID ;
public static int GBPJPY_OCO4_EO4_UP_S2_ID ;
public static int GBPJPY_OCO4_EO5_UP_S2_ID ;
public static int GBPJPY_OCO4_EO6_UP_S2_ID ;
public static bool GBPJPY_OCO4_EO1_UP_S2 ;
public static bool GBPJPY_OCO4_EO2_UP_S2 ;
public static bool GBPJPY_OCO4_EO3_UP_S2 ;
public static bool GBPJPY_OCO4_EO4_UP_S2 ;
public static bool GBPJPY_OCO4_EO5_UP_S2 ;
public static bool GBPJPY_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_UP_S2> GBPJPY_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_UP_S2> GBPJPY_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_UP_S2> GBPJPY_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_UP_S2> GBPJPY_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_UP_S2> GBPJPY_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_UP_S2> GBPJPY_OOFE_OCO4_UP_S2_6 ;
public static GBPJPY_OCO4_UP_S2 GBPJPY_PFO_OCO4_UP_S2_1 ;
public static GBPJPY_OCO4_UP_S2 GBPJPY_PFO_OCO4_UP_S2_2 ;
public static GBPJPY_OCO4_UP_S2 GBPJPY_PFO_OCO4_UP_S2_3 ;
public static GBPJPY_OCO4_UP_S2 GBPJPY_PFO_OCO4_UP_S2_4 ;
public static GBPJPY_OCO4_UP_S2 GBPJPY_PFO_OCO4_UP_S2_5 ;
public static GBPJPY_OCO4_UP_S2 GBPJPY_PFO_OCO4_UP_S2_6 ;
public static List<GBPJPY_OCO4_UP_S2> GBPJPY_UP_S2_OCO4Sets1 = new List<GBPJPY_OCO4_UP_S2>();
public static List<GBPJPY_OCO4_UP_S2> GBPJPY_UP_S2_OCO4Sets2 = new List<GBPJPY_OCO4_UP_S2>();
public static List<GBPJPY_OCO4_UP_S2> GBPJPY_UP_S2_OCO4Sets3 = new List<GBPJPY_OCO4_UP_S2>();
public static List<GBPJPY_OCO4_UP_S2> GBPJPY_UP_S2_OCO4Sets4 = new List<GBPJPY_OCO4_UP_S2>();
public static List<GBPJPY_OCO4_UP_S2> GBPJPY_UP_S2_OCO4Sets5 = new List<GBPJPY_OCO4_UP_S2>();
public static List<GBPJPY_OCO4_UP_S2> GBPJPY_UP_S2_OCO4Sets6 = new List<GBPJPY_OCO4_UP_S2>();
public static bool GBPJPY_OCO4_UP_S2_IsReady = true;
public static bool GBPJPY_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket GBPJPY_OCO4_MO1_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO4_MO2_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO4_MO3_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO4_MO4_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO4_MO5_DOWN_S2 ;
public static OrderTicket GBPJPY_OCO4_MO6_DOWN_S2 ;
public static int GBPJPY_OCO4_EO1_DOWN_S2_ID ;
public static int GBPJPY_OCO4_EO2_DOWN_S2_ID ;
public static int GBPJPY_OCO4_EO3_DOWN_S2_ID ;
public static int GBPJPY_OCO4_EO4_DOWN_S2_ID ;
public static int GBPJPY_OCO4_EO5_DOWN_S2_ID ;
public static int GBPJPY_OCO4_EO6_DOWN_S2_ID ;
public static bool GBPJPY_OCO4_EO1_DOWN_S2 ;
public static bool GBPJPY_OCO4_EO2_DOWN_S2 ;
public static bool GBPJPY_OCO4_EO3_DOWN_S2 ;
public static bool GBPJPY_OCO4_EO4_DOWN_S2 ;
public static bool GBPJPY_OCO4_EO5_DOWN_S2 ;
public static bool GBPJPY_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_DOWN_S2> GBPJPY_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_DOWN_S2> GBPJPY_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_DOWN_S2> GBPJPY_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_DOWN_S2> GBPJPY_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_DOWN_S2> GBPJPY_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPJPY_OCO4_DOWN_S2> GBPJPY_OOFE_OCO4_DOWN_S2_6 ;
public static GBPJPY_OCO4_DOWN_S2 GBPJPY_PFO_OCO4_DOWN_S2_1 ;
public static GBPJPY_OCO4_DOWN_S2 GBPJPY_PFO_OCO4_DOWN_S2_2 ;
public static GBPJPY_OCO4_DOWN_S2 GBPJPY_PFO_OCO4_DOWN_S2_3 ;
public static GBPJPY_OCO4_DOWN_S2 GBPJPY_PFO_OCO4_DOWN_S2_4 ;
public static GBPJPY_OCO4_DOWN_S2 GBPJPY_PFO_OCO4_DOWN_S2_5 ;
public static GBPJPY_OCO4_DOWN_S2 GBPJPY_PFO_OCO4_DOWN_S2_6 ;
public static List<GBPJPY_OCO4_DOWN_S2> GBPJPY_DOWN_S2_OCO4Sets1 = new List<GBPJPY_OCO4_DOWN_S2>();
public static List<GBPJPY_OCO4_DOWN_S2> GBPJPY_DOWN_S2_OCO4Sets2 = new List<GBPJPY_OCO4_DOWN_S2>();
public static List<GBPJPY_OCO4_DOWN_S2> GBPJPY_DOWN_S2_OCO4Sets3 = new List<GBPJPY_OCO4_DOWN_S2>();
public static List<GBPJPY_OCO4_DOWN_S2> GBPJPY_DOWN_S2_OCO4Sets4 = new List<GBPJPY_OCO4_DOWN_S2>();
public static List<GBPJPY_OCO4_DOWN_S2> GBPJPY_DOWN_S2_OCO4Sets5 = new List<GBPJPY_OCO4_DOWN_S2>();
public static List<GBPJPY_OCO4_DOWN_S2> GBPJPY_DOWN_S2_OCO4Sets6 = new List<GBPJPY_OCO4_DOWN_S2>();
public static bool GBPJPY_OCO4_DOWN_S2_IsReady = true;
public static bool GBPJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal GBPJPY_UP_S2_SL {get; set;}
public static decimal GBPJPY_UP_S2_TP1 {get; set;}
public static decimal GBPJPY_UP_S2_TP2 {get; set;}
public static decimal GBPJPY_UP_S2_TP3 {get; set;}
public static decimal GBPJPY_UP_S2_TP4 {get; set;}
public static decimal GBPJPY_UP_S2_TP5 {get; set;}
public static decimal GBPJPY_UP_S2_TP6 {get; set;}
public static decimal GBPJPY_DOWN_S2_SL {get; set;}
public static decimal GBPJPY_DOWN_S2_TP1 {get; set;}
public static decimal GBPJPY_DOWN_S2_TP2 {get; set;}
public static decimal GBPJPY_DOWN_S2_TP3 {get; set;}
public static decimal GBPJPY_DOWN_S2_TP4 {get; set;}
public static decimal GBPJPY_DOWN_S2_TP5 {get; set;}
public static decimal GBPJPY_DOWN_S2_TP6 {get; set;}
public static bool GBPJPY_Signal_Condition_UP_1 ;
public static bool GBPJPY_Signal_Condition_UP_2 ;
public static bool GBPJPY_Signal_Condition_UP_3 ;
public static bool GBPJPY_Signal_Condition_DOWN_S2 ;
public static int GBPJPY_UP_S2_OCO_DELAY_7DAY = 10080;
public static int GBPJPY_UP_S2_OCOM_DELAY_DAY = 4320;
public static int GBPJPY_UP_S2_OCOT_DELAY_DAY = 2880;
public static int GBPJPY_UP_S2_OCOW_DELAY_DAY = 1440;
public static int GBPJPY_UP_S2_OCOTH_DELAY_DAY = 720;
public static int GBPJPY_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int GBPJPY_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int GBPJPY_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int GBPJPY_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int GBPJPY_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_GBPJPY_UP_S2 ;
public static bool DOWM_GBPJPY_UP_S2 ;
public static bool DOWT_GBPJPY_UP_S2 ;
public static bool DOWW_GBPJPY_UP_S2 ;
public static bool DOWTH_GBPJPY_UP_S2 ;
public static bool DOWR_GBPJPY_DOWN_S2 ;
public static bool DOWM_GBPJPY_DOWN_S2 ;
public static bool DOWT_GBPJPY_DOWN_S2 ;
public static bool DOWW_GBPJPY_DOWN_S2 ;
public static bool DOWTH_GBPJPY_DOWN_S2 ;
public static int GBPJPY_quantity_UP_S2 ;
public static int GBPJPY_quantity_SL_UP_S2 ;
public static int GBPJPY_quantity_TP1_UP_S2 ;
public static int GBPJPY_quantity_TP2_UP_S2 ;
public static int GBPJPY_quantity_TP3_UP_S2 ;
public static int GBPJPY_quantity_TP4_UP_S2 ;
public static int GBPJPY_quantity_TP5_UP_S2;
public static int GBPJPY_quantity_TP6_UP_S2 ;
public static int GBPJPY_quantity_DOWN_S2 ;
public static int GBPJPY_quantity_SL_DOWN_S2 ;
public static int GBPJPY_quantity_TP1_DOWN_S2 ;
public static int GBPJPY_quantity_TP2_DOWN_S2 ;
public static int GBPJPY_quantity_TP3_DOWN_S2 ;
public static int GBPJPY_quantity_TP4_DOWN_S2 ;
public static int GBPJPY_quantity_TP5_DOWN_S2;
public static int GBPJPY_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _USDCAD;
///oco1 up
public static OrderTicket USDCAD_OCO1_MO1_UP_S2;
public static OrderTicket USDCAD_OCO1_MO2_UP_S2;
public static OrderTicket USDCAD_OCO1_MO3_UP_S2;
public static OrderTicket USDCAD_OCO1_MO4_UP_S2;
public static OrderTicket USDCAD_OCO1_MO5_UP_S2;
public static OrderTicket USDCAD_OCO1_MO6_UP_S2;
public static int USDCAD_OCO1_EO1_UP_S2_ID ;
public static int USDCAD_OCO1_EO2_UP_S2_ID ;
public static int USDCAD_OCO1_EO3_UP_S2_ID ;
public static int USDCAD_OCO1_EO4_UP_S2_ID ;
public static int USDCAD_OCO1_EO5_UP_S2_ID ;
public static int USDCAD_OCO1_EO6_UP_S2_ID ;
public static bool USDCAD_OCO1_EO1_UP_S2 ;
public static bool USDCAD_OCO1_EO2_UP_S2 ;
public static bool USDCAD_OCO1_EO3_UP_S2 ;
public static bool USDCAD_OCO1_EO4_UP_S2 ;
public static bool USDCAD_OCO1_EO5_UP_S2 ;
public static bool USDCAD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_UP_S2> USDCAD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_UP_S2> USDCAD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_UP_S2> USDCAD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_UP_S2> USDCAD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_UP_S2> USDCAD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_UP_S2> USDCAD_OOFE_OCO1_UP_S2_6 ;
public static USDCAD_OCO1_UP_S2 USDCAD_PFO_OCO1_UP_S2_1 ;
public static USDCAD_OCO1_UP_S2 USDCAD_PFO_OCO1_UP_S2_2 ;
public static USDCAD_OCO1_UP_S2 USDCAD_PFO_OCO1_UP_S2_3 ;
public static USDCAD_OCO1_UP_S2 USDCAD_PFO_OCO1_UP_S2_4 ;
public static USDCAD_OCO1_UP_S2 USDCAD_PFO_OCO1_UP_S2_5 ;
public static USDCAD_OCO1_UP_S2 USDCAD_PFO_OCO1_UP_S2_6 ;
public static List<USDCAD_OCO1_UP_S2> USDCAD_UP_S2_OCO1Sets1 = new List<USDCAD_OCO1_UP_S2>();
public static List<USDCAD_OCO1_UP_S2> USDCAD_UP_S2_OCO1Sets2 = new List<USDCAD_OCO1_UP_S2>();
public static List<USDCAD_OCO1_UP_S2> USDCAD_UP_S2_OCO1Sets3 = new List<USDCAD_OCO1_UP_S2>();
public static List<USDCAD_OCO1_UP_S2> USDCAD_UP_S2_OCO1Sets4 = new List<USDCAD_OCO1_UP_S2>();
public static List<USDCAD_OCO1_UP_S2> USDCAD_UP_S2_OCO1Sets5 = new List<USDCAD_OCO1_UP_S2>();
public static List<USDCAD_OCO1_UP_S2> USDCAD_UP_S2_OCO1Sets6 = new List<USDCAD_OCO1_UP_S2>();
public static bool USDCAD_OCO1_UP_S2_IsReady = true;
public static bool USDCAD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket USDCAD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket USDCAD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket USDCAD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket USDCAD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket USDCAD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket USDCAD_OCO1_MO6_DOWN_S2 ;
public static int USDCAD_OCO1_EO1_DOWN_S2_ID ;
public static int USDCAD_OCO1_EO2_DOWN_S2_ID ;
public static int USDCAD_OCO1_EO3_DOWN_S2_ID ;
public static int USDCAD_OCO1_EO4_DOWN_S2_ID ;
public static int USDCAD_OCO1_EO5_DOWN_S2_ID ;
public static int USDCAD_OCO1_EO6_DOWN_S2_ID ;
public static bool USDCAD_OCO1_EO1_DOWN_S2 ;
public static bool USDCAD_OCO1_EO2_DOWN_S2 ;
public static bool USDCAD_OCO1_EO3_DOWN_S2 ;
public static bool USDCAD_OCO1_EO4_DOWN_S2 ;
public static bool USDCAD_OCO1_EO5_DOWN_S2 ;
public static bool USDCAD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_DOWN_S2> USDCAD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_DOWN_S2> USDCAD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_DOWN_S2> USDCAD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_DOWN_S2> USDCAD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_DOWN_S2> USDCAD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO1_DOWN_S2> USDCAD_OOFE_OCO1_DOWN_S2_6 ;
public static USDCAD_OCO1_DOWN_S2 USDCAD_PFO_OCO1_DOWN_S2_1 ;
public static USDCAD_OCO1_DOWN_S2 USDCAD_PFO_OCO1_DOWN_S2_2 ;
public static USDCAD_OCO1_DOWN_S2 USDCAD_PFO_OCO1_DOWN_S2_3 ;
public static USDCAD_OCO1_DOWN_S2 USDCAD_PFO_OCO1_DOWN_S2_4 ;
public static USDCAD_OCO1_DOWN_S2 USDCAD_PFO_OCO1_DOWN_S2_5 ;
public static USDCAD_OCO1_DOWN_S2 USDCAD_PFO_OCO1_DOWN_S2_6 ;
public static List<USDCAD_OCO1_DOWN_S2> USDCAD_DOWN_S2_OCO1Sets1 = new List<USDCAD_OCO1_DOWN_S2>();
public static List<USDCAD_OCO1_DOWN_S2> USDCAD_DOWN_S2_OCO1Sets2 = new List<USDCAD_OCO1_DOWN_S2>();
public static List<USDCAD_OCO1_DOWN_S2> USDCAD_DOWN_S2_OCO1Sets3 = new List<USDCAD_OCO1_DOWN_S2>();
public static List<USDCAD_OCO1_DOWN_S2> USDCAD_DOWN_S2_OCO1Sets4 = new List<USDCAD_OCO1_DOWN_S2>();
public static List<USDCAD_OCO1_DOWN_S2> USDCAD_DOWN_S2_OCO1Sets5 = new List<USDCAD_OCO1_DOWN_S2>();
public static List<USDCAD_OCO1_DOWN_S2> USDCAD_DOWN_S2_OCO1Sets6 = new List<USDCAD_OCO1_DOWN_S2>();
public static bool USDCAD_OCO1_DOWN_S2_IsReady = true;
public static bool USDCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket USDCAD_OCO2_MO1_UP_S2 ;
public static OrderTicket USDCAD_OCO2_MO2_UP_S2 ;
public static OrderTicket USDCAD_OCO2_MO3_UP_S2 ;
public static OrderTicket USDCAD_OCO2_MO4_UP_S2 ;
public static OrderTicket USDCAD_OCO2_MO5_UP_S2 ;
public static OrderTicket USDCAD_OCO2_MO6_UP_S2 ;
public static int USDCAD_OCO2_EO1_UP_S2_ID ;
public static int USDCAD_OCO2_EO2_UP_S2_ID ;
public static int USDCAD_OCO2_EO3_UP_S2_ID ;
public static int USDCAD_OCO2_EO4_UP_S2_ID ;
public static int USDCAD_OCO2_EO5_UP_S2_ID ;
public static int USDCAD_OCO2_EO6_UP_S2_ID ;
public static bool USDCAD_OCO2_EO1_UP_S2 ;
public static bool USDCAD_OCO2_EO2_UP_S2 ;
public static bool USDCAD_OCO2_EO3_UP_S2 ;
public static bool USDCAD_OCO2_EO4_UP_S2 ;
public static bool USDCAD_OCO2_EO5_UP_S2 ;
public static bool USDCAD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_UP_S2> USDCAD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_UP_S2> USDCAD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_UP_S2> USDCAD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_UP_S2> USDCAD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_UP_S2> USDCAD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_UP_S2> USDCAD_OOFE_OCO2_UP_S2_6 ;
public static USDCAD_OCO2_UP_S2 USDCAD_PFO_OCO2_UP_S2_1 ;
public static USDCAD_OCO2_UP_S2 USDCAD_PFO_OCO2_UP_S2_2 ;
public static USDCAD_OCO2_UP_S2 USDCAD_PFO_OCO2_UP_S2_3 ;
public static USDCAD_OCO2_UP_S2 USDCAD_PFO_OCO2_UP_S2_4 ;
public static USDCAD_OCO2_UP_S2 USDCAD_PFO_OCO2_UP_S2_5 ;
public static USDCAD_OCO2_UP_S2 USDCAD_PFO_OCO2_UP_S2_6 ;
public static List<USDCAD_OCO2_UP_S2> USDCAD_UP_S2_OCO2Sets1 = new List<USDCAD_OCO2_UP_S2>();
public static List<USDCAD_OCO2_UP_S2> USDCAD_UP_S2_OCO2Sets2 = new List<USDCAD_OCO2_UP_S2>();
public static List<USDCAD_OCO2_UP_S2> USDCAD_UP_S2_OCO2Sets3 = new List<USDCAD_OCO2_UP_S2>();
public static List<USDCAD_OCO2_UP_S2> USDCAD_UP_S2_OCO2Sets4 = new List<USDCAD_OCO2_UP_S2>();
public static List<USDCAD_OCO2_UP_S2> USDCAD_UP_S2_OCO2Sets5 = new List<USDCAD_OCO2_UP_S2>();
public static List<USDCAD_OCO2_UP_S2> USDCAD_UP_S2_OCO2Sets6 = new List<USDCAD_OCO2_UP_S2>();
public static bool USDCAD_OCO2_UP_S2_IsReady = true;
public static bool USDCAD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket USDCAD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket USDCAD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket USDCAD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket USDCAD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket USDCAD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket USDCAD_OCO2_MO6_DOWN_S2 ;
public static int USDCAD_OCO2_EO1_DOWN_S2_ID ;
public static int USDCAD_OCO2_EO2_DOWN_S2_ID ;
public static int USDCAD_OCO2_EO3_DOWN_S2_ID ;
public static int USDCAD_OCO2_EO4_DOWN_S2_ID ;
public static int USDCAD_OCO2_EO5_DOWN_S2_ID ;
public static int USDCAD_OCO2_EO6_DOWN_S2_ID ;
public static bool USDCAD_OCO2_EO1_DOWN_S2 ;
public static bool USDCAD_OCO2_EO2_DOWN_S2 ;
public static bool USDCAD_OCO2_EO3_DOWN_S2 ;
public static bool USDCAD_OCO2_EO4_DOWN_S2 ;
public static bool USDCAD_OCO2_EO5_DOWN_S2 ;
public static bool USDCAD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_DOWN_S2> USDCAD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_DOWN_S2> USDCAD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_DOWN_S2> USDCAD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_DOWN_S2> USDCAD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_DOWN_S2> USDCAD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO2_DOWN_S2> USDCAD_OOFE_OCO2_DOWN_S2_6 ;
public static USDCAD_OCO2_DOWN_S2 USDCAD_PFO_OCO2_DOWN_S2_1 ;
public static USDCAD_OCO2_DOWN_S2 USDCAD_PFO_OCO2_DOWN_S2_2 ;
public static USDCAD_OCO2_DOWN_S2 USDCAD_PFO_OCO2_DOWN_S2_3 ;
public static USDCAD_OCO2_DOWN_S2 USDCAD_PFO_OCO2_DOWN_S2_4 ;
public static USDCAD_OCO2_DOWN_S2 USDCAD_PFO_OCO2_DOWN_S2_5 ;
public static USDCAD_OCO2_DOWN_S2 USDCAD_PFO_OCO2_DOWN_S2_6 ;
public static List<USDCAD_OCO2_DOWN_S2> USDCAD_DOWN_S2_OCO2Sets1 = new List<USDCAD_OCO2_DOWN_S2>();
public static List<USDCAD_OCO2_DOWN_S2> USDCAD_DOWN_S2_OCO2Sets2 = new List<USDCAD_OCO2_DOWN_S2>();
public static List<USDCAD_OCO2_DOWN_S2> USDCAD_DOWN_S2_OCO2Sets3 = new List<USDCAD_OCO2_DOWN_S2>();
public static List<USDCAD_OCO2_DOWN_S2> USDCAD_DOWN_S2_OCO2Sets4 = new List<USDCAD_OCO2_DOWN_S2>();
public static List<USDCAD_OCO2_DOWN_S2> USDCAD_DOWN_S2_OCO2Sets5 = new List<USDCAD_OCO2_DOWN_S2>();
public static List<USDCAD_OCO2_DOWN_S2> USDCAD_DOWN_S2_OCO2Sets6 = new List<USDCAD_OCO2_DOWN_S2>();
public static bool USDCAD_OCO2_DOWN_S2_IsReady = true;
public static bool USDCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket USDCAD_OCO3_MO1_UP_S2 ;
public static OrderTicket USDCAD_OCO3_MO2_UP_S2 ;
public static OrderTicket USDCAD_OCO3_MO3_UP_S2 ;
public static OrderTicket USDCAD_OCO3_MO4_UP_S2 ;
public static OrderTicket USDCAD_OCO3_MO5_UP_S2 ;
public static OrderTicket USDCAD_OCO3_MO6_UP_S2 ;
public static int USDCAD_OCO3_EO1_UP_S2_ID ;
public static int USDCAD_OCO3_EO2_UP_S2_ID ;
public static int USDCAD_OCO3_EO3_UP_S2_ID ;
public static int USDCAD_OCO3_EO4_UP_S2_ID ;
public static int USDCAD_OCO3_EO5_UP_S2_ID ;
public static int USDCAD_OCO3_EO6_UP_S2_ID ;
public static bool USDCAD_OCO3_EO1_UP_S2 ;
public static bool USDCAD_OCO3_EO2_UP_S2 ;
public static bool USDCAD_OCO3_EO3_UP_S2 ;
public static bool USDCAD_OCO3_EO4_UP_S2 ;
public static bool USDCAD_OCO3_EO5_UP_S2 ;
public static bool USDCAD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_UP_S2> USDCAD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_UP_S2> USDCAD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_UP_S2> USDCAD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_UP_S2> USDCAD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_UP_S2> USDCAD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_UP_S2> USDCAD_OOFE_OCO3_UP_S2_6 ;
public static USDCAD_OCO3_UP_S2 USDCAD_PFO_OCO3_UP_S2_1 ;
public static USDCAD_OCO3_UP_S2 USDCAD_PFO_OCO3_UP_S2_2 ;
public static USDCAD_OCO3_UP_S2 USDCAD_PFO_OCO3_UP_S2_3 ;
public static USDCAD_OCO3_UP_S2 USDCAD_PFO_OCO3_UP_S2_4 ;
public static USDCAD_OCO3_UP_S2 USDCAD_PFO_OCO3_UP_S2_5 ;
public static USDCAD_OCO3_UP_S2 USDCAD_PFO_OCO3_UP_S2_6 ;
public static List<USDCAD_OCO3_UP_S2> USDCAD_UP_S2_OCO3Sets1 = new List<USDCAD_OCO3_UP_S2>();
public static List<USDCAD_OCO3_UP_S2> USDCAD_UP_S2_OCO3Sets2 = new List<USDCAD_OCO3_UP_S2>();
public static List<USDCAD_OCO3_UP_S2> USDCAD_UP_S2_OCO3Sets3 = new List<USDCAD_OCO3_UP_S2>();
public static List<USDCAD_OCO3_UP_S2> USDCAD_UP_S2_OCO3Sets4 = new List<USDCAD_OCO3_UP_S2>();
public static List<USDCAD_OCO3_UP_S2> USDCAD_UP_S2_OCO3Sets5 = new List<USDCAD_OCO3_UP_S2>();
public static List<USDCAD_OCO3_UP_S2> USDCAD_UP_S2_OCO3Sets6 = new List<USDCAD_OCO3_UP_S2>();
public static bool USDCAD_OCO3_UP_S2_IsReady = true;
public static bool USDCAD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket USDCAD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket USDCAD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket USDCAD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket USDCAD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket USDCAD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket USDCAD_OCO3_MO6_DOWN_S2 ;
public static int USDCAD_OCO3_EO1_DOWN_S2_ID ;
public static int USDCAD_OCO3_EO2_DOWN_S2_ID ;
public static int USDCAD_OCO3_EO3_DOWN_S2_ID ;
public static int USDCAD_OCO3_EO4_DOWN_S2_ID ;
public static int USDCAD_OCO3_EO5_DOWN_S2_ID ;
public static int USDCAD_OCO3_EO6_DOWN_S2_ID ;
public static bool USDCAD_OCO3_EO1_DOWN_S2 ;
public static bool USDCAD_OCO3_EO2_DOWN_S2 ;
public static bool USDCAD_OCO3_EO3_DOWN_S2 ;
public static bool USDCAD_OCO3_EO4_DOWN_S2 ;
public static bool USDCAD_OCO3_EO5_DOWN_S2 ;
public static bool USDCAD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_DOWN_S2> USDCAD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_DOWN_S2> USDCAD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_DOWN_S2> USDCAD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_DOWN_S2> USDCAD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_DOWN_S2> USDCAD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO3_DOWN_S2> USDCAD_OOFE_OCO3_DOWN_S2_6 ;
public static USDCAD_OCO3_DOWN_S2 USDCAD_PFO_OCO3_DOWN_S2_1 ;
public static USDCAD_OCO3_DOWN_S2 USDCAD_PFO_OCO3_DOWN_S2_2 ;
public static USDCAD_OCO3_DOWN_S2 USDCAD_PFO_OCO3_DOWN_S2_3 ;
public static USDCAD_OCO3_DOWN_S2 USDCAD_PFO_OCO3_DOWN_S2_4 ;
public static USDCAD_OCO3_DOWN_S2 USDCAD_PFO_OCO3_DOWN_S2_5 ;
public static USDCAD_OCO3_DOWN_S2 USDCAD_PFO_OCO3_DOWN_S2_6 ;
public static List<USDCAD_OCO3_DOWN_S2> USDCAD_DOWN_S2_OCO3Sets1 = new List<USDCAD_OCO3_DOWN_S2>();
public static List<USDCAD_OCO3_DOWN_S2> USDCAD_DOWN_S2_OCO3Sets2 = new List<USDCAD_OCO3_DOWN_S2>();
public static List<USDCAD_OCO3_DOWN_S2> USDCAD_DOWN_S2_OCO3Sets3 = new List<USDCAD_OCO3_DOWN_S2>();
public static List<USDCAD_OCO3_DOWN_S2> USDCAD_DOWN_S2_OCO3Sets4 = new List<USDCAD_OCO3_DOWN_S2>();
public static List<USDCAD_OCO3_DOWN_S2> USDCAD_DOWN_S2_OCO3Sets5 = new List<USDCAD_OCO3_DOWN_S2>();
public static List<USDCAD_OCO3_DOWN_S2> USDCAD_DOWN_S2_OCO3Sets6 = new List<USDCAD_OCO3_DOWN_S2>();
public static bool USDCAD_OCO3_DOWN_S2_IsReady = true;
public static bool USDCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket USDCAD_OCO4_MO1_UP_S2 ;
public static OrderTicket USDCAD_OCO4_MO2_UP_S2 ;
public static OrderTicket USDCAD_OCO4_MO3_UP_S2 ;
public static OrderTicket USDCAD_OCO4_MO4_UP_S2 ;
public static OrderTicket USDCAD_OCO4_MO5_UP_S2 ;
public static OrderTicket USDCAD_OCO4_MO6_UP_S2 ;
public static int USDCAD_OCO4_EO1_UP_S2_ID ;
public static int USDCAD_OCO4_EO2_UP_S2_ID ;
public static int USDCAD_OCO4_EO3_UP_S2_ID ;
public static int USDCAD_OCO4_EO4_UP_S2_ID ;
public static int USDCAD_OCO4_EO5_UP_S2_ID ;
public static int USDCAD_OCO4_EO6_UP_S2_ID ;
public static bool USDCAD_OCO4_EO1_UP_S2 ;
public static bool USDCAD_OCO4_EO2_UP_S2 ;
public static bool USDCAD_OCO4_EO3_UP_S2 ;
public static bool USDCAD_OCO4_EO4_UP_S2 ;
public static bool USDCAD_OCO4_EO5_UP_S2 ;
public static bool USDCAD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_UP_S2> USDCAD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_UP_S2> USDCAD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_UP_S2> USDCAD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_UP_S2> USDCAD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_UP_S2> USDCAD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_UP_S2> USDCAD_OOFE_OCO4_UP_S2_6 ;
public static USDCAD_OCO4_UP_S2 USDCAD_PFO_OCO4_UP_S2_1 ;
public static USDCAD_OCO4_UP_S2 USDCAD_PFO_OCO4_UP_S2_2 ;
public static USDCAD_OCO4_UP_S2 USDCAD_PFO_OCO4_UP_S2_3 ;
public static USDCAD_OCO4_UP_S2 USDCAD_PFO_OCO4_UP_S2_4 ;
public static USDCAD_OCO4_UP_S2 USDCAD_PFO_OCO4_UP_S2_5 ;
public static USDCAD_OCO4_UP_S2 USDCAD_PFO_OCO4_UP_S2_6 ;
public static List<USDCAD_OCO4_UP_S2> USDCAD_UP_S2_OCO4Sets1 = new List<USDCAD_OCO4_UP_S2>();
public static List<USDCAD_OCO4_UP_S2> USDCAD_UP_S2_OCO4Sets2 = new List<USDCAD_OCO4_UP_S2>();
public static List<USDCAD_OCO4_UP_S2> USDCAD_UP_S2_OCO4Sets3 = new List<USDCAD_OCO4_UP_S2>();
public static List<USDCAD_OCO4_UP_S2> USDCAD_UP_S2_OCO4Sets4 = new List<USDCAD_OCO4_UP_S2>();
public static List<USDCAD_OCO4_UP_S2> USDCAD_UP_S2_OCO4Sets5 = new List<USDCAD_OCO4_UP_S2>();
public static List<USDCAD_OCO4_UP_S2> USDCAD_UP_S2_OCO4Sets6 = new List<USDCAD_OCO4_UP_S2>();
public static bool USDCAD_OCO4_UP_S2_IsReady = true;
public static bool USDCAD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket USDCAD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket USDCAD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket USDCAD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket USDCAD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket USDCAD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket USDCAD_OCO4_MO6_DOWN_S2 ;
public static int USDCAD_OCO4_EO1_DOWN_S2_ID ;
public static int USDCAD_OCO4_EO2_DOWN_S2_ID ;
public static int USDCAD_OCO4_EO3_DOWN_S2_ID ;
public static int USDCAD_OCO4_EO4_DOWN_S2_ID ;
public static int USDCAD_OCO4_EO5_DOWN_S2_ID ;
public static int USDCAD_OCO4_EO6_DOWN_S2_ID ;
public static bool USDCAD_OCO4_EO1_DOWN_S2 ;
public static bool USDCAD_OCO4_EO2_DOWN_S2 ;
public static bool USDCAD_OCO4_EO3_DOWN_S2 ;
public static bool USDCAD_OCO4_EO4_DOWN_S2 ;
public static bool USDCAD_OCO4_EO5_DOWN_S2 ;
public static bool USDCAD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_DOWN_S2> USDCAD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_DOWN_S2> USDCAD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_DOWN_S2> USDCAD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_DOWN_S2> USDCAD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_DOWN_S2> USDCAD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCAD_OCO4_DOWN_S2> USDCAD_OOFE_OCO4_DOWN_S2_6 ;
public static USDCAD_OCO4_DOWN_S2 USDCAD_PFO_OCO4_DOWN_S2_1 ;
public static USDCAD_OCO4_DOWN_S2 USDCAD_PFO_OCO4_DOWN_S2_2 ;
public static USDCAD_OCO4_DOWN_S2 USDCAD_PFO_OCO4_DOWN_S2_3 ;
public static USDCAD_OCO4_DOWN_S2 USDCAD_PFO_OCO4_DOWN_S2_4 ;
public static USDCAD_OCO4_DOWN_S2 USDCAD_PFO_OCO4_DOWN_S2_5 ;
public static USDCAD_OCO4_DOWN_S2 USDCAD_PFO_OCO4_DOWN_S2_6 ;
public static List<USDCAD_OCO4_DOWN_S2> USDCAD_DOWN_S2_OCO4Sets1 = new List<USDCAD_OCO4_DOWN_S2>();
public static List<USDCAD_OCO4_DOWN_S2> USDCAD_DOWN_S2_OCO4Sets2 = new List<USDCAD_OCO4_DOWN_S2>();
public static List<USDCAD_OCO4_DOWN_S2> USDCAD_DOWN_S2_OCO4Sets3 = new List<USDCAD_OCO4_DOWN_S2>();
public static List<USDCAD_OCO4_DOWN_S2> USDCAD_DOWN_S2_OCO4Sets4 = new List<USDCAD_OCO4_DOWN_S2>();
public static List<USDCAD_OCO4_DOWN_S2> USDCAD_DOWN_S2_OCO4Sets5 = new List<USDCAD_OCO4_DOWN_S2>();
public static List<USDCAD_OCO4_DOWN_S2> USDCAD_DOWN_S2_OCO4Sets6 = new List<USDCAD_OCO4_DOWN_S2>();
public static bool USDCAD_OCO4_DOWN_S2_IsReady = true;
public static bool USDCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal USDCAD_UP_S2_SL {get; set;}
public static decimal USDCAD_UP_S2_TP1 {get; set;}
public static decimal USDCAD_UP_S2_TP2 {get; set;}
public static decimal USDCAD_UP_S2_TP3 {get; set;}
public static decimal USDCAD_UP_S2_TP4 {get; set;}
public static decimal USDCAD_UP_S2_TP5 {get; set;}
public static decimal USDCAD_UP_S2_TP6 {get; set;}
public static decimal USDCAD_DOWN_S2_SL {get; set;}
public static decimal USDCAD_DOWN_S2_TP1 {get; set;}
public static decimal USDCAD_DOWN_S2_TP2 {get; set;}
public static decimal USDCAD_DOWN_S2_TP3 {get; set;}
public static decimal USDCAD_DOWN_S2_TP4 {get; set;}
public static decimal USDCAD_DOWN_S2_TP5 {get; set;}
public static decimal USDCAD_DOWN_S2_TP6 {get; set;}
public static bool USDCAD_Signal_Condition_UP_1 ;
public static bool USDCAD_Signal_Condition_UP_2 ;
public static bool USDCAD_Signal_Condition_UP_3 ;
public static bool USDCAD_Signal_Condition_DOWN_1 ;
public static bool USDCAD_Signal_Condition_DOWN_2 ;
public static bool USDCAD_Signal_Condition_DOWN_3 ;
public static int USDCAD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int USDCAD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int USDCAD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int USDCAD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int USDCAD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int USDCAD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int USDCAD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int USDCAD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int USDCAD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int USDCAD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_USDCAD_UP_S2 ;
public static bool DOWM_USDCAD_UP_S2 ;
public static bool DOWT_USDCAD_UP_S2 ;
public static bool DOWW_USDCAD_UP_S2 ;
public static bool DOWTH_USDCAD_UP_S2 ;
public static bool DOWR_USDCAD_DOWN_S2 ;
public static bool DOWM_USDCAD_DOWN_S2 ;
public static bool DOWT_USDCAD_DOWN_S2 ;
public static bool DOWW_USDCAD_DOWN_S2 ;
public static bool DOWTH_USDCAD_DOWN_S2 ;
public static int USDCAD_quantity_UP_S2 ;
public static int USDCAD_quantity_SL_UP_S2 ;
public static int USDCAD_quantity_TP1_UP_S2 ;
public static int USDCAD_quantity_TP2_UP_S2 ;
public static int USDCAD_quantity_TP3_UP_S2 ;
public static int USDCAD_quantity_TP4_UP_S2 ;
public static int USDCAD_quantity_TP5_UP_S2;
public static int USDCAD_quantity_TP6_UP_S2 ;
public static int USDCAD_quantity_DOWN_S2 ;
public static int USDCAD_quantity_SL_DOWN_S2 ;
public static int USDCAD_quantity_TP1_DOWN_S2 ;
public static int USDCAD_quantity_TP2_DOWN_S2 ;
public static int USDCAD_quantity_TP3_DOWN_S2 ;
public static int USDCAD_quantity_TP4_DOWN_S2 ;
public static int USDCAD_quantity_TP5_DOWN_S2;
public static int USDCAD_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _GBPCHF;
///oco1 up
public static OrderTicket GBPCHF_OCO1_MO1_UP_S2;
public static OrderTicket GBPCHF_OCO1_MO2_UP_S2;
public static OrderTicket GBPCHF_OCO1_MO3_UP_S2;
public static OrderTicket GBPCHF_OCO1_MO4_UP_S2;
public static OrderTicket GBPCHF_OCO1_MO5_UP_S2;
public static OrderTicket GBPCHF_OCO1_MO6_UP_S2;
public static int GBPCHF_OCO1_EO1_UP_S2_ID ;
public static int GBPCHF_OCO1_EO2_UP_S2_ID ;
public static int GBPCHF_OCO1_EO3_UP_S2_ID ;
public static int GBPCHF_OCO1_EO4_UP_S2_ID ;
public static int GBPCHF_OCO1_EO5_UP_S2_ID ;
public static int GBPCHF_OCO1_EO6_UP_S2_ID ;
public static bool GBPCHF_OCO1_EO1_UP_S2 ;
public static bool GBPCHF_OCO1_EO2_UP_S2 ;
public static bool GBPCHF_OCO1_EO3_UP_S2 ;
public static bool GBPCHF_OCO1_EO4_UP_S2 ;
public static bool GBPCHF_OCO1_EO5_UP_S2 ;
public static bool GBPCHF_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_UP_S2> GBPCHF_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_UP_S2> GBPCHF_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_UP_S2> GBPCHF_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_UP_S2> GBPCHF_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_UP_S2> GBPCHF_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_UP_S2> GBPCHF_OOFE_OCO1_UP_S2_6 ;
public static GBPCHF_OCO1_UP_S2 GBPCHF_PFO_OCO1_UP_S2_1 ;
public static GBPCHF_OCO1_UP_S2 GBPCHF_PFO_OCO1_UP_S2_2 ;
public static GBPCHF_OCO1_UP_S2 GBPCHF_PFO_OCO1_UP_S2_3 ;
public static GBPCHF_OCO1_UP_S2 GBPCHF_PFO_OCO1_UP_S2_4 ;
public static GBPCHF_OCO1_UP_S2 GBPCHF_PFO_OCO1_UP_S2_5 ;
public static GBPCHF_OCO1_UP_S2 GBPCHF_PFO_OCO1_UP_S2_6 ;
public static List<GBPCHF_OCO1_UP_S2> GBPCHF_UP_S2_OCO1Sets1 = new List<GBPCHF_OCO1_UP_S2>();
public static List<GBPCHF_OCO1_UP_S2> GBPCHF_UP_S2_OCO1Sets2 = new List<GBPCHF_OCO1_UP_S2>();
public static List<GBPCHF_OCO1_UP_S2> GBPCHF_UP_S2_OCO1Sets3 = new List<GBPCHF_OCO1_UP_S2>();
public static List<GBPCHF_OCO1_UP_S2> GBPCHF_UP_S2_OCO1Sets4 = new List<GBPCHF_OCO1_UP_S2>();
public static List<GBPCHF_OCO1_UP_S2> GBPCHF_UP_S2_OCO1Sets5 = new List<GBPCHF_OCO1_UP_S2>();
public static List<GBPCHF_OCO1_UP_S2> GBPCHF_UP_S2_OCO1Sets6 = new List<GBPCHF_OCO1_UP_S2>();
public static bool GBPCHF_OCO1_UP_S2_IsReady = true;
public static bool GBPCHF_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket GBPCHF_OCO1_MO1_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO1_MO2_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO1_MO3_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO1_MO4_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO1_MO5_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO1_MO6_DOWN_S2 ;
public static int GBPCHF_OCO1_EO1_DOWN_S2_ID ;
public static int GBPCHF_OCO1_EO2_DOWN_S2_ID ;
public static int GBPCHF_OCO1_EO3_DOWN_S2_ID ;
public static int GBPCHF_OCO1_EO4_DOWN_S2_ID ;
public static int GBPCHF_OCO1_EO5_DOWN_S2_ID ;
public static int GBPCHF_OCO1_EO6_DOWN_S2_ID ;
public static bool GBPCHF_OCO1_EO1_DOWN_S2 ;
public static bool GBPCHF_OCO1_EO2_DOWN_S2 ;
public static bool GBPCHF_OCO1_EO3_DOWN_S2 ;
public static bool GBPCHF_OCO1_EO4_DOWN_S2 ;
public static bool GBPCHF_OCO1_EO5_DOWN_S2 ;
public static bool GBPCHF_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_DOWN_S2> GBPCHF_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_DOWN_S2> GBPCHF_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_DOWN_S2> GBPCHF_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_DOWN_S2> GBPCHF_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_DOWN_S2> GBPCHF_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO1_DOWN_S2> GBPCHF_OOFE_OCO1_DOWN_S2_6 ;
public static GBPCHF_OCO1_DOWN_S2 GBPCHF_PFO_OCO1_DOWN_S2_1 ;
public static GBPCHF_OCO1_DOWN_S2 GBPCHF_PFO_OCO1_DOWN_S2_2 ;
public static GBPCHF_OCO1_DOWN_S2 GBPCHF_PFO_OCO1_DOWN_S2_3 ;
public static GBPCHF_OCO1_DOWN_S2 GBPCHF_PFO_OCO1_DOWN_S2_4 ;
public static GBPCHF_OCO1_DOWN_S2 GBPCHF_PFO_OCO1_DOWN_S2_5 ;
public static GBPCHF_OCO1_DOWN_S2 GBPCHF_PFO_OCO1_DOWN_S2_6 ;
public static List<GBPCHF_OCO1_DOWN_S2> GBPCHF_DOWN_S2_OCO1Sets1 = new List<GBPCHF_OCO1_DOWN_S2>();
public static List<GBPCHF_OCO1_DOWN_S2> GBPCHF_DOWN_S2_OCO1Sets2 = new List<GBPCHF_OCO1_DOWN_S2>();
public static List<GBPCHF_OCO1_DOWN_S2> GBPCHF_DOWN_S2_OCO1Sets3 = new List<GBPCHF_OCO1_DOWN_S2>();
public static List<GBPCHF_OCO1_DOWN_S2> GBPCHF_DOWN_S2_OCO1Sets4 = new List<GBPCHF_OCO1_DOWN_S2>();
public static List<GBPCHF_OCO1_DOWN_S2> GBPCHF_DOWN_S2_OCO1Sets5 = new List<GBPCHF_OCO1_DOWN_S2>();
public static List<GBPCHF_OCO1_DOWN_S2> GBPCHF_DOWN_S2_OCO1Sets6 = new List<GBPCHF_OCO1_DOWN_S2>();
public static bool GBPCHF_OCO1_DOWN_S2_IsReady = true;
public static bool GBPCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket GBPCHF_OCO2_MO1_UP_S2 ;
public static OrderTicket GBPCHF_OCO2_MO2_UP_S2 ;
public static OrderTicket GBPCHF_OCO2_MO3_UP_S2 ;
public static OrderTicket GBPCHF_OCO2_MO4_UP_S2 ;
public static OrderTicket GBPCHF_OCO2_MO5_UP_S2 ;
public static OrderTicket GBPCHF_OCO2_MO6_UP_S2 ;
public static int GBPCHF_OCO2_EO1_UP_S2_ID ;
public static int GBPCHF_OCO2_EO2_UP_S2_ID ;
public static int GBPCHF_OCO2_EO3_UP_S2_ID ;
public static int GBPCHF_OCO2_EO4_UP_S2_ID ;
public static int GBPCHF_OCO2_EO5_UP_S2_ID ;
public static int GBPCHF_OCO2_EO6_UP_S2_ID ;
public static bool GBPCHF_OCO2_EO1_UP_S2 ;
public static bool GBPCHF_OCO2_EO2_UP_S2 ;
public static bool GBPCHF_OCO2_EO3_UP_S2 ;
public static bool GBPCHF_OCO2_EO4_UP_S2 ;
public static bool GBPCHF_OCO2_EO5_UP_S2 ;
public static bool GBPCHF_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_UP_S2> GBPCHF_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_UP_S2> GBPCHF_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_UP_S2> GBPCHF_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_UP_S2> GBPCHF_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_UP_S2> GBPCHF_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_UP_S2> GBPCHF_OOFE_OCO2_UP_S2_6 ;
public static GBPCHF_OCO2_UP_S2 GBPCHF_PFO_OCO2_UP_S2_1 ;
public static GBPCHF_OCO2_UP_S2 GBPCHF_PFO_OCO2_UP_S2_2 ;
public static GBPCHF_OCO2_UP_S2 GBPCHF_PFO_OCO2_UP_S2_3 ;
public static GBPCHF_OCO2_UP_S2 GBPCHF_PFO_OCO2_UP_S2_4 ;
public static GBPCHF_OCO2_UP_S2 GBPCHF_PFO_OCO2_UP_S2_5 ;
public static GBPCHF_OCO2_UP_S2 GBPCHF_PFO_OCO2_UP_S2_6 ;
public static List<GBPCHF_OCO2_UP_S2> GBPCHF_UP_S2_OCO2Sets1 = new List<GBPCHF_OCO2_UP_S2>();
public static List<GBPCHF_OCO2_UP_S2> GBPCHF_UP_S2_OCO2Sets2 = new List<GBPCHF_OCO2_UP_S2>();
public static List<GBPCHF_OCO2_UP_S2> GBPCHF_UP_S2_OCO2Sets3 = new List<GBPCHF_OCO2_UP_S2>();
public static List<GBPCHF_OCO2_UP_S2> GBPCHF_UP_S2_OCO2Sets4 = new List<GBPCHF_OCO2_UP_S2>();
public static List<GBPCHF_OCO2_UP_S2> GBPCHF_UP_S2_OCO2Sets5 = new List<GBPCHF_OCO2_UP_S2>();
public static List<GBPCHF_OCO2_UP_S2> GBPCHF_UP_S2_OCO2Sets6 = new List<GBPCHF_OCO2_UP_S2>();
public static bool GBPCHF_OCO2_UP_S2_IsReady = true;
public static bool GBPCHF_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket GBPCHF_OCO2_MO1_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO2_MO2_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO2_MO3_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO2_MO4_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO2_MO5_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO2_MO6_DOWN_S2 ;
public static int GBPCHF_OCO2_EO1_DOWN_S2_ID ;
public static int GBPCHF_OCO2_EO2_DOWN_S2_ID ;
public static int GBPCHF_OCO2_EO3_DOWN_S2_ID ;
public static int GBPCHF_OCO2_EO4_DOWN_S2_ID ;
public static int GBPCHF_OCO2_EO5_DOWN_S2_ID ;
public static int GBPCHF_OCO2_EO6_DOWN_S2_ID ;
public static bool GBPCHF_OCO2_EO1_DOWN_S2 ;
public static bool GBPCHF_OCO2_EO2_DOWN_S2 ;
public static bool GBPCHF_OCO2_EO3_DOWN_S2 ;
public static bool GBPCHF_OCO2_EO4_DOWN_S2 ;
public static bool GBPCHF_OCO2_EO5_DOWN_S2 ;
public static bool GBPCHF_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_DOWN_S2> GBPCHF_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_DOWN_S2> GBPCHF_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_DOWN_S2> GBPCHF_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_DOWN_S2> GBPCHF_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_DOWN_S2> GBPCHF_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO2_DOWN_S2> GBPCHF_OOFE_OCO2_DOWN_S2_6 ;
public static GBPCHF_OCO2_DOWN_S2 GBPCHF_PFO_OCO2_DOWN_S2_1 ;
public static GBPCHF_OCO2_DOWN_S2 GBPCHF_PFO_OCO2_DOWN_S2_2 ;
public static GBPCHF_OCO2_DOWN_S2 GBPCHF_PFO_OCO2_DOWN_S2_3 ;
public static GBPCHF_OCO2_DOWN_S2 GBPCHF_PFO_OCO2_DOWN_S2_4 ;
public static GBPCHF_OCO2_DOWN_S2 GBPCHF_PFO_OCO2_DOWN_S2_5 ;
public static GBPCHF_OCO2_DOWN_S2 GBPCHF_PFO_OCO2_DOWN_S2_6 ;
public static List<GBPCHF_OCO2_DOWN_S2> GBPCHF_DOWN_S2_OCO2Sets1 = new List<GBPCHF_OCO2_DOWN_S2>();
public static List<GBPCHF_OCO2_DOWN_S2> GBPCHF_DOWN_S2_OCO2Sets2 = new List<GBPCHF_OCO2_DOWN_S2>();
public static List<GBPCHF_OCO2_DOWN_S2> GBPCHF_DOWN_S2_OCO2Sets3 = new List<GBPCHF_OCO2_DOWN_S2>();
public static List<GBPCHF_OCO2_DOWN_S2> GBPCHF_DOWN_S2_OCO2Sets4 = new List<GBPCHF_OCO2_DOWN_S2>();
public static List<GBPCHF_OCO2_DOWN_S2> GBPCHF_DOWN_S2_OCO2Sets5 = new List<GBPCHF_OCO2_DOWN_S2>();
public static List<GBPCHF_OCO2_DOWN_S2> GBPCHF_DOWN_S2_OCO2Sets6 = new List<GBPCHF_OCO2_DOWN_S2>();
public static bool GBPCHF_OCO2_DOWN_S2_IsReady = true;
public static bool GBPCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket GBPCHF_OCO3_MO1_UP_S2 ;
public static OrderTicket GBPCHF_OCO3_MO2_UP_S2 ;
public static OrderTicket GBPCHF_OCO3_MO3_UP_S2 ;
public static OrderTicket GBPCHF_OCO3_MO4_UP_S2 ;
public static OrderTicket GBPCHF_OCO3_MO5_UP_S2 ;
public static OrderTicket GBPCHF_OCO3_MO6_UP_S2 ;
public static int GBPCHF_OCO3_EO1_UP_S2_ID ;
public static int GBPCHF_OCO3_EO2_UP_S2_ID ;
public static int GBPCHF_OCO3_EO3_UP_S2_ID ;
public static int GBPCHF_OCO3_EO4_UP_S2_ID ;
public static int GBPCHF_OCO3_EO5_UP_S2_ID ;
public static int GBPCHF_OCO3_EO6_UP_S2_ID ;
public static bool GBPCHF_OCO3_EO1_UP_S2 ;
public static bool GBPCHF_OCO3_EO2_UP_S2 ;
public static bool GBPCHF_OCO3_EO3_UP_S2 ;
public static bool GBPCHF_OCO3_EO4_UP_S2 ;
public static bool GBPCHF_OCO3_EO5_UP_S2 ;
public static bool GBPCHF_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_UP_S2> GBPCHF_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_UP_S2> GBPCHF_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_UP_S2> GBPCHF_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_UP_S2> GBPCHF_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_UP_S2> GBPCHF_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_UP_S2> GBPCHF_OOFE_OCO3_UP_S2_6 ;
public static GBPCHF_OCO3_UP_S2 GBPCHF_PFO_OCO3_UP_S2_1 ;
public static GBPCHF_OCO3_UP_S2 GBPCHF_PFO_OCO3_UP_S2_2 ;
public static GBPCHF_OCO3_UP_S2 GBPCHF_PFO_OCO3_UP_S2_3 ;
public static GBPCHF_OCO3_UP_S2 GBPCHF_PFO_OCO3_UP_S2_4 ;
public static GBPCHF_OCO3_UP_S2 GBPCHF_PFO_OCO3_UP_S2_5 ;
public static GBPCHF_OCO3_UP_S2 GBPCHF_PFO_OCO3_UP_S2_6 ;
public static List<GBPCHF_OCO3_UP_S2> GBPCHF_UP_S2_OCO3Sets1 = new List<GBPCHF_OCO3_UP_S2>();
public static List<GBPCHF_OCO3_UP_S2> GBPCHF_UP_S2_OCO3Sets2 = new List<GBPCHF_OCO3_UP_S2>();
public static List<GBPCHF_OCO3_UP_S2> GBPCHF_UP_S2_OCO3Sets3 = new List<GBPCHF_OCO3_UP_S2>();
public static List<GBPCHF_OCO3_UP_S2> GBPCHF_UP_S2_OCO3Sets4 = new List<GBPCHF_OCO3_UP_S2>();
public static List<GBPCHF_OCO3_UP_S2> GBPCHF_UP_S2_OCO3Sets5 = new List<GBPCHF_OCO3_UP_S2>();
public static List<GBPCHF_OCO3_UP_S2> GBPCHF_UP_S2_OCO3Sets6 = new List<GBPCHF_OCO3_UP_S2>();
public static bool GBPCHF_OCO3_UP_S2_IsReady = true;
public static bool GBPCHF_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket GBPCHF_OCO3_MO1_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO3_MO2_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO3_MO3_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO3_MO4_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO3_MO5_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO3_MO6_DOWN_S2 ;
public static int GBPCHF_OCO3_EO1_DOWN_S2_ID ;
public static int GBPCHF_OCO3_EO2_DOWN_S2_ID ;
public static int GBPCHF_OCO3_EO3_DOWN_S2_ID ;
public static int GBPCHF_OCO3_EO4_DOWN_S2_ID ;
public static int GBPCHF_OCO3_EO5_DOWN_S2_ID ;
public static int GBPCHF_OCO3_EO6_DOWN_S2_ID ;
public static bool GBPCHF_OCO3_EO1_DOWN_S2 ;
public static bool GBPCHF_OCO3_EO2_DOWN_S2 ;
public static bool GBPCHF_OCO3_EO3_DOWN_S2 ;
public static bool GBPCHF_OCO3_EO4_DOWN_S2 ;
public static bool GBPCHF_OCO3_EO5_DOWN_S2 ;
public static bool GBPCHF_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_DOWN_S2> GBPCHF_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_DOWN_S2> GBPCHF_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_DOWN_S2> GBPCHF_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_DOWN_S2> GBPCHF_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_DOWN_S2> GBPCHF_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO3_DOWN_S2> GBPCHF_OOFE_OCO3_DOWN_S2_6 ;
public static GBPCHF_OCO3_DOWN_S2 GBPCHF_PFO_OCO3_DOWN_S2_1 ;
public static GBPCHF_OCO3_DOWN_S2 GBPCHF_PFO_OCO3_DOWN_S2_2 ;
public static GBPCHF_OCO3_DOWN_S2 GBPCHF_PFO_OCO3_DOWN_S2_3 ;
public static GBPCHF_OCO3_DOWN_S2 GBPCHF_PFO_OCO3_DOWN_S2_4 ;
public static GBPCHF_OCO3_DOWN_S2 GBPCHF_PFO_OCO3_DOWN_S2_5 ;
public static GBPCHF_OCO3_DOWN_S2 GBPCHF_PFO_OCO3_DOWN_S2_6 ;
public static List<GBPCHF_OCO3_DOWN_S2> GBPCHF_DOWN_S2_OCO3Sets1 = new List<GBPCHF_OCO3_DOWN_S2>();
public static List<GBPCHF_OCO3_DOWN_S2> GBPCHF_DOWN_S2_OCO3Sets2 = new List<GBPCHF_OCO3_DOWN_S2>();
public static List<GBPCHF_OCO3_DOWN_S2> GBPCHF_DOWN_S2_OCO3Sets3 = new List<GBPCHF_OCO3_DOWN_S2>();
public static List<GBPCHF_OCO3_DOWN_S2> GBPCHF_DOWN_S2_OCO3Sets4 = new List<GBPCHF_OCO3_DOWN_S2>();
public static List<GBPCHF_OCO3_DOWN_S2> GBPCHF_DOWN_S2_OCO3Sets5 = new List<GBPCHF_OCO3_DOWN_S2>();
public static List<GBPCHF_OCO3_DOWN_S2> GBPCHF_DOWN_S2_OCO3Sets6 = new List<GBPCHF_OCO3_DOWN_S2>();
public static bool GBPCHF_OCO3_DOWN_S2_IsReady = true;
public static bool GBPCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket GBPCHF_OCO4_MO1_UP_S2 ;
public static OrderTicket GBPCHF_OCO4_MO2_UP_S2 ;
public static OrderTicket GBPCHF_OCO4_MO3_UP_S2 ;
public static OrderTicket GBPCHF_OCO4_MO4_UP_S2 ;
public static OrderTicket GBPCHF_OCO4_MO5_UP_S2 ;
public static OrderTicket GBPCHF_OCO4_MO6_UP_S2 ;
public static int GBPCHF_OCO4_EO1_UP_S2_ID ;
public static int GBPCHF_OCO4_EO2_UP_S2_ID ;
public static int GBPCHF_OCO4_EO3_UP_S2_ID ;
public static int GBPCHF_OCO4_EO4_UP_S2_ID ;
public static int GBPCHF_OCO4_EO5_UP_S2_ID ;
public static int GBPCHF_OCO4_EO6_UP_S2_ID ;
public static bool GBPCHF_OCO4_EO1_UP_S2 ;
public static bool GBPCHF_OCO4_EO2_UP_S2 ;
public static bool GBPCHF_OCO4_EO3_UP_S2 ;
public static bool GBPCHF_OCO4_EO4_UP_S2 ;
public static bool GBPCHF_OCO4_EO5_UP_S2 ;
public static bool GBPCHF_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_UP_S2> GBPCHF_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_UP_S2> GBPCHF_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_UP_S2> GBPCHF_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_UP_S2> GBPCHF_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_UP_S2> GBPCHF_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_UP_S2> GBPCHF_OOFE_OCO4_UP_S2_6 ;
public static GBPCHF_OCO4_UP_S2 GBPCHF_PFO_OCO4_UP_S2_1 ;
public static GBPCHF_OCO4_UP_S2 GBPCHF_PFO_OCO4_UP_S2_2 ;
public static GBPCHF_OCO4_UP_S2 GBPCHF_PFO_OCO4_UP_S2_3 ;
public static GBPCHF_OCO4_UP_S2 GBPCHF_PFO_OCO4_UP_S2_4 ;
public static GBPCHF_OCO4_UP_S2 GBPCHF_PFO_OCO4_UP_S2_5 ;
public static GBPCHF_OCO4_UP_S2 GBPCHF_PFO_OCO4_UP_S2_6 ;
public static List<GBPCHF_OCO4_UP_S2> GBPCHF_UP_S2_OCO4Sets1 = new List<GBPCHF_OCO4_UP_S2>();
public static List<GBPCHF_OCO4_UP_S2> GBPCHF_UP_S2_OCO4Sets2 = new List<GBPCHF_OCO4_UP_S2>();
public static List<GBPCHF_OCO4_UP_S2> GBPCHF_UP_S2_OCO4Sets3 = new List<GBPCHF_OCO4_UP_S2>();
public static List<GBPCHF_OCO4_UP_S2> GBPCHF_UP_S2_OCO4Sets4 = new List<GBPCHF_OCO4_UP_S2>();
public static List<GBPCHF_OCO4_UP_S2> GBPCHF_UP_S2_OCO4Sets5 = new List<GBPCHF_OCO4_UP_S2>();
public static List<GBPCHF_OCO4_UP_S2> GBPCHF_UP_S2_OCO4Sets6 = new List<GBPCHF_OCO4_UP_S2>();
public static bool GBPCHF_OCO4_UP_S2_IsReady = true;
public static bool GBPCHF_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket GBPCHF_OCO4_MO1_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO4_MO2_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO4_MO3_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO4_MO4_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO4_MO5_DOWN_S2 ;
public static OrderTicket GBPCHF_OCO4_MO6_DOWN_S2 ;
public static int GBPCHF_OCO4_EO1_DOWN_S2_ID ;
public static int GBPCHF_OCO4_EO2_DOWN_S2_ID ;
public static int GBPCHF_OCO4_EO3_DOWN_S2_ID ;
public static int GBPCHF_OCO4_EO4_DOWN_S2_ID ;
public static int GBPCHF_OCO4_EO5_DOWN_S2_ID ;
public static int GBPCHF_OCO4_EO6_DOWN_S2_ID ;
public static bool GBPCHF_OCO4_EO1_DOWN_S2 ;
public static bool GBPCHF_OCO4_EO2_DOWN_S2 ;
public static bool GBPCHF_OCO4_EO3_DOWN_S2 ;
public static bool GBPCHF_OCO4_EO4_DOWN_S2 ;
public static bool GBPCHF_OCO4_EO5_DOWN_S2 ;
public static bool GBPCHF_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_DOWN_S2> GBPCHF_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_DOWN_S2> GBPCHF_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_DOWN_S2> GBPCHF_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_DOWN_S2> GBPCHF_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_DOWN_S2> GBPCHF_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCHF_OCO4_DOWN_S2> GBPCHF_OOFE_OCO4_DOWN_S2_6 ;
public static GBPCHF_OCO4_DOWN_S2 GBPCHF_PFO_OCO4_DOWN_S2_1 ;
public static GBPCHF_OCO4_DOWN_S2 GBPCHF_PFO_OCO4_DOWN_S2_2 ;
public static GBPCHF_OCO4_DOWN_S2 GBPCHF_PFO_OCO4_DOWN_S2_3 ;
public static GBPCHF_OCO4_DOWN_S2 GBPCHF_PFO_OCO4_DOWN_S2_4 ;
public static GBPCHF_OCO4_DOWN_S2 GBPCHF_PFO_OCO4_DOWN_S2_5 ;
public static GBPCHF_OCO4_DOWN_S2 GBPCHF_PFO_OCO4_DOWN_S2_6 ;
public static List<GBPCHF_OCO4_DOWN_S2> GBPCHF_DOWN_S2_OCO4Sets1 = new List<GBPCHF_OCO4_DOWN_S2>();
public static List<GBPCHF_OCO4_DOWN_S2> GBPCHF_DOWN_S2_OCO4Sets2 = new List<GBPCHF_OCO4_DOWN_S2>();
public static List<GBPCHF_OCO4_DOWN_S2> GBPCHF_DOWN_S2_OCO4Sets3 = new List<GBPCHF_OCO4_DOWN_S2>();
public static List<GBPCHF_OCO4_DOWN_S2> GBPCHF_DOWN_S2_OCO4Sets4 = new List<GBPCHF_OCO4_DOWN_S2>();
public static List<GBPCHF_OCO4_DOWN_S2> GBPCHF_DOWN_S2_OCO4Sets5 = new List<GBPCHF_OCO4_DOWN_S2>();
public static List<GBPCHF_OCO4_DOWN_S2> GBPCHF_DOWN_S2_OCO4Sets6 = new List<GBPCHF_OCO4_DOWN_S2>();
public static bool GBPCHF_OCO4_DOWN_S2_IsReady = true;
public static bool GBPCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal GBPCHF_UP_S2_SL {get; set;}
public static decimal GBPCHF_UP_S2_TP1 {get; set;}
public static decimal GBPCHF_UP_S2_TP2 {get; set;}
public static decimal GBPCHF_UP_S2_TP3 {get; set;}
public static decimal GBPCHF_UP_S2_TP4 {get; set;}
public static decimal GBPCHF_UP_S2_TP5 {get; set;}
public static decimal GBPCHF_UP_S2_TP6 {get; set;}
public static decimal GBPCHF_DOWN_S2_SL {get; set;}
public static decimal GBPCHF_DOWN_S2_TP1 {get; set;}
public static decimal GBPCHF_DOWN_S2_TP2 {get; set;}
public static decimal GBPCHF_DOWN_S2_TP3 {get; set;}
public static decimal GBPCHF_DOWN_S2_TP4 {get; set;}
public static decimal GBPCHF_DOWN_S2_TP5 {get; set;}
public static decimal GBPCHF_DOWN_S2_TP6 {get; set;}
public static bool GBPCHF_Signal_Condition_UP_1 ;
public static bool GBPCHF_Signal_Condition_UP_2 ;
public static bool GBPCHF_Signal_Condition_UP_3 ;
public static bool GBPCHF_Signal_Condition_DOWN_S2 ;
public static int GBPCHF_UP_S2_OCO_DELAY_7DAY = 10080;
public static int GBPCHF_UP_S2_OCOM_DELAY_DAY = 4320;
public static int GBPCHF_UP_S2_OCOT_DELAY_DAY = 2880;
public static int GBPCHF_UP_S2_OCOW_DELAY_DAY = 1440;
public static int GBPCHF_UP_S2_OCOTH_DELAY_DAY = 720;
public static int GBPCHF_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int GBPCHF_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int GBPCHF_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int GBPCHF_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int GBPCHF_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_GBPCHF_UP_S2 ;
public static bool DOWM_GBPCHF_UP_S2 ;
public static bool DOWT_GBPCHF_UP_S2 ;
public static bool DOWW_GBPCHF_UP_S2 ;
public static bool DOWTH_GBPCHF_UP_S2 ;
public static bool DOWR_GBPCHF_DOWN_S2 ;
public static bool DOWM_GBPCHF_DOWN_S2 ;
public static bool DOWT_GBPCHF_DOWN_S2 ;
public static bool DOWW_GBPCHF_DOWN_S2 ;
public static bool DOWTH_GBPCHF_DOWN_S2 ;
public static int GBPCHF_quantity_UP_S2 ;
public static int GBPCHF_quantity_SL_UP_S2 ;
public static int GBPCHF_quantity_TP1_UP_S2 ;
public static int GBPCHF_quantity_TP2_UP_S2 ;
public static int GBPCHF_quantity_TP3_UP_S2 ;
public static int GBPCHF_quantity_TP4_UP_S2 ;
public static int GBPCHF_quantity_TP5_UP_S2;
public static int GBPCHF_quantity_TP6_UP_S2 ;
public static int GBPCHF_quantity_DOWN_S2 ;
public static int GBPCHF_quantity_SL_DOWN_S2 ;
public static int GBPCHF_quantity_TP1_DOWN_S2 ;
public static int GBPCHF_quantity_TP2_DOWN_S2 ;
public static int GBPCHF_quantity_TP3_DOWN_S2 ;
public static int GBPCHF_quantity_TP4_DOWN_S2 ;
public static int GBPCHF_quantity_TP5_DOWN_S2;
public static int GBPCHF_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _AUDNZD;
///oco1 up
public static OrderTicket AUDNZD_OCO1_MO1_UP_S2;
public static OrderTicket AUDNZD_OCO1_MO2_UP_S2;
public static OrderTicket AUDNZD_OCO1_MO3_UP_S2;
public static OrderTicket AUDNZD_OCO1_MO4_UP_S2;
public static OrderTicket AUDNZD_OCO1_MO5_UP_S2;
public static OrderTicket AUDNZD_OCO1_MO6_UP_S2;
public static int AUDNZD_OCO1_EO1_UP_S2_ID ;
public static int AUDNZD_OCO1_EO2_UP_S2_ID ;
public static int AUDNZD_OCO1_EO3_UP_S2_ID ;
public static int AUDNZD_OCO1_EO4_UP_S2_ID ;
public static int AUDNZD_OCO1_EO5_UP_S2_ID ;
public static int AUDNZD_OCO1_EO6_UP_S2_ID ;
public static bool AUDNZD_OCO1_EO1_UP_S2 ;
public static bool AUDNZD_OCO1_EO2_UP_S2 ;
public static bool AUDNZD_OCO1_EO3_UP_S2 ;
public static bool AUDNZD_OCO1_EO4_UP_S2 ;
public static bool AUDNZD_OCO1_EO5_UP_S2 ;
public static bool AUDNZD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_UP_S2> AUDNZD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_UP_S2> AUDNZD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_UP_S2> AUDNZD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_UP_S2> AUDNZD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_UP_S2> AUDNZD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_UP_S2> AUDNZD_OOFE_OCO1_UP_S2_6 ;
public static AUDNZD_OCO1_UP_S2 AUDNZD_PFO_OCO1_UP_S2_1 ;
public static AUDNZD_OCO1_UP_S2 AUDNZD_PFO_OCO1_UP_S2_2 ;
public static AUDNZD_OCO1_UP_S2 AUDNZD_PFO_OCO1_UP_S2_3 ;
public static AUDNZD_OCO1_UP_S2 AUDNZD_PFO_OCO1_UP_S2_4 ;
public static AUDNZD_OCO1_UP_S2 AUDNZD_PFO_OCO1_UP_S2_5 ;
public static AUDNZD_OCO1_UP_S2 AUDNZD_PFO_OCO1_UP_S2_6 ;
public static List<AUDNZD_OCO1_UP_S2> AUDNZD_UP_S2_OCO1Sets1 = new List<AUDNZD_OCO1_UP_S2>();
public static List<AUDNZD_OCO1_UP_S2> AUDNZD_UP_S2_OCO1Sets2 = new List<AUDNZD_OCO1_UP_S2>();
public static List<AUDNZD_OCO1_UP_S2> AUDNZD_UP_S2_OCO1Sets3 = new List<AUDNZD_OCO1_UP_S2>();
public static List<AUDNZD_OCO1_UP_S2> AUDNZD_UP_S2_OCO1Sets4 = new List<AUDNZD_OCO1_UP_S2>();
public static List<AUDNZD_OCO1_UP_S2> AUDNZD_UP_S2_OCO1Sets5 = new List<AUDNZD_OCO1_UP_S2>();
public static List<AUDNZD_OCO1_UP_S2> AUDNZD_UP_S2_OCO1Sets6 = new List<AUDNZD_OCO1_UP_S2>();
public static bool AUDNZD_OCO1_UP_S2_IsReady = true;
public static bool AUDNZD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket AUDNZD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO1_MO6_DOWN_S2 ;
public static int AUDNZD_OCO1_EO1_DOWN_S2_ID ;
public static int AUDNZD_OCO1_EO2_DOWN_S2_ID ;
public static int AUDNZD_OCO1_EO3_DOWN_S2_ID ;
public static int AUDNZD_OCO1_EO4_DOWN_S2_ID ;
public static int AUDNZD_OCO1_EO5_DOWN_S2_ID ;
public static int AUDNZD_OCO1_EO6_DOWN_S2_ID ;
public static bool AUDNZD_OCO1_EO1_DOWN_S2 ;
public static bool AUDNZD_OCO1_EO2_DOWN_S2 ;
public static bool AUDNZD_OCO1_EO3_DOWN_S2 ;
public static bool AUDNZD_OCO1_EO4_DOWN_S2 ;
public static bool AUDNZD_OCO1_EO5_DOWN_S2 ;
public static bool AUDNZD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_DOWN_S2> AUDNZD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_DOWN_S2> AUDNZD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_DOWN_S2> AUDNZD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_DOWN_S2> AUDNZD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_DOWN_S2> AUDNZD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO1_DOWN_S2> AUDNZD_OOFE_OCO1_DOWN_S2_6 ;
public static AUDNZD_OCO1_DOWN_S2 AUDNZD_PFO_OCO1_DOWN_S2_1 ;
public static AUDNZD_OCO1_DOWN_S2 AUDNZD_PFO_OCO1_DOWN_S2_2 ;
public static AUDNZD_OCO1_DOWN_S2 AUDNZD_PFO_OCO1_DOWN_S2_3 ;
public static AUDNZD_OCO1_DOWN_S2 AUDNZD_PFO_OCO1_DOWN_S2_4 ;
public static AUDNZD_OCO1_DOWN_S2 AUDNZD_PFO_OCO1_DOWN_S2_5 ;
public static AUDNZD_OCO1_DOWN_S2 AUDNZD_PFO_OCO1_DOWN_S2_6 ;
public static List<AUDNZD_OCO1_DOWN_S2> AUDNZD_DOWN_S2_OCO1Sets1 = new List<AUDNZD_OCO1_DOWN_S2>();
public static List<AUDNZD_OCO1_DOWN_S2> AUDNZD_DOWN_S2_OCO1Sets2 = new List<AUDNZD_OCO1_DOWN_S2>();
public static List<AUDNZD_OCO1_DOWN_S2> AUDNZD_DOWN_S2_OCO1Sets3 = new List<AUDNZD_OCO1_DOWN_S2>();
public static List<AUDNZD_OCO1_DOWN_S2> AUDNZD_DOWN_S2_OCO1Sets4 = new List<AUDNZD_OCO1_DOWN_S2>();
public static List<AUDNZD_OCO1_DOWN_S2> AUDNZD_DOWN_S2_OCO1Sets5 = new List<AUDNZD_OCO1_DOWN_S2>();
public static List<AUDNZD_OCO1_DOWN_S2> AUDNZD_DOWN_S2_OCO1Sets6 = new List<AUDNZD_OCO1_DOWN_S2>();
public static bool AUDNZD_OCO1_DOWN_S2_IsReady = true;
public static bool AUDNZD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket AUDNZD_OCO2_MO1_UP_S2 ;
public static OrderTicket AUDNZD_OCO2_MO2_UP_S2 ;
public static OrderTicket AUDNZD_OCO2_MO3_UP_S2 ;
public static OrderTicket AUDNZD_OCO2_MO4_UP_S2 ;
public static OrderTicket AUDNZD_OCO2_MO5_UP_S2 ;
public static OrderTicket AUDNZD_OCO2_MO6_UP_S2 ;
public static int AUDNZD_OCO2_EO1_UP_S2_ID ;
public static int AUDNZD_OCO2_EO2_UP_S2_ID ;
public static int AUDNZD_OCO2_EO3_UP_S2_ID ;
public static int AUDNZD_OCO2_EO4_UP_S2_ID ;
public static int AUDNZD_OCO2_EO5_UP_S2_ID ;
public static int AUDNZD_OCO2_EO6_UP_S2_ID ;
public static bool AUDNZD_OCO2_EO1_UP_S2 ;
public static bool AUDNZD_OCO2_EO2_UP_S2 ;
public static bool AUDNZD_OCO2_EO3_UP_S2 ;
public static bool AUDNZD_OCO2_EO4_UP_S2 ;
public static bool AUDNZD_OCO2_EO5_UP_S2 ;
public static bool AUDNZD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_UP_S2> AUDNZD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_UP_S2> AUDNZD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_UP_S2> AUDNZD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_UP_S2> AUDNZD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_UP_S2> AUDNZD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_UP_S2> AUDNZD_OOFE_OCO2_UP_S2_6 ;
public static AUDNZD_OCO2_UP_S2 AUDNZD_PFO_OCO2_UP_S2_1 ;
public static AUDNZD_OCO2_UP_S2 AUDNZD_PFO_OCO2_UP_S2_2 ;
public static AUDNZD_OCO2_UP_S2 AUDNZD_PFO_OCO2_UP_S2_3 ;
public static AUDNZD_OCO2_UP_S2 AUDNZD_PFO_OCO2_UP_S2_4 ;
public static AUDNZD_OCO2_UP_S2 AUDNZD_PFO_OCO2_UP_S2_5 ;
public static AUDNZD_OCO2_UP_S2 AUDNZD_PFO_OCO2_UP_S2_6 ;
public static List<AUDNZD_OCO2_UP_S2> AUDNZD_UP_S2_OCO2Sets1 = new List<AUDNZD_OCO2_UP_S2>();
public static List<AUDNZD_OCO2_UP_S2> AUDNZD_UP_S2_OCO2Sets2 = new List<AUDNZD_OCO2_UP_S2>();
public static List<AUDNZD_OCO2_UP_S2> AUDNZD_UP_S2_OCO2Sets3 = new List<AUDNZD_OCO2_UP_S2>();
public static List<AUDNZD_OCO2_UP_S2> AUDNZD_UP_S2_OCO2Sets4 = new List<AUDNZD_OCO2_UP_S2>();
public static List<AUDNZD_OCO2_UP_S2> AUDNZD_UP_S2_OCO2Sets5 = new List<AUDNZD_OCO2_UP_S2>();
public static List<AUDNZD_OCO2_UP_S2> AUDNZD_UP_S2_OCO2Sets6 = new List<AUDNZD_OCO2_UP_S2>();
public static bool AUDNZD_OCO2_UP_S2_IsReady = true;
public static bool AUDNZD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket AUDNZD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO2_MO6_DOWN_S2 ;
public static int AUDNZD_OCO2_EO1_DOWN_S2_ID ;
public static int AUDNZD_OCO2_EO2_DOWN_S2_ID ;
public static int AUDNZD_OCO2_EO3_DOWN_S2_ID ;
public static int AUDNZD_OCO2_EO4_DOWN_S2_ID ;
public static int AUDNZD_OCO2_EO5_DOWN_S2_ID ;
public static int AUDNZD_OCO2_EO6_DOWN_S2_ID ;
public static bool AUDNZD_OCO2_EO1_DOWN_S2 ;
public static bool AUDNZD_OCO2_EO2_DOWN_S2 ;
public static bool AUDNZD_OCO2_EO3_DOWN_S2 ;
public static bool AUDNZD_OCO2_EO4_DOWN_S2 ;
public static bool AUDNZD_OCO2_EO5_DOWN_S2 ;
public static bool AUDNZD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_DOWN_S2> AUDNZD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_DOWN_S2> AUDNZD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_DOWN_S2> AUDNZD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_DOWN_S2> AUDNZD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_DOWN_S2> AUDNZD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO2_DOWN_S2> AUDNZD_OOFE_OCO2_DOWN_S2_6 ;
public static AUDNZD_OCO2_DOWN_S2 AUDNZD_PFO_OCO2_DOWN_S2_1 ;
public static AUDNZD_OCO2_DOWN_S2 AUDNZD_PFO_OCO2_DOWN_S2_2 ;
public static AUDNZD_OCO2_DOWN_S2 AUDNZD_PFO_OCO2_DOWN_S2_3 ;
public static AUDNZD_OCO2_DOWN_S2 AUDNZD_PFO_OCO2_DOWN_S2_4 ;
public static AUDNZD_OCO2_DOWN_S2 AUDNZD_PFO_OCO2_DOWN_S2_5 ;
public static AUDNZD_OCO2_DOWN_S2 AUDNZD_PFO_OCO2_DOWN_S2_6 ;
public static List<AUDNZD_OCO2_DOWN_S2> AUDNZD_DOWN_S2_OCO2Sets1 = new List<AUDNZD_OCO2_DOWN_S2>();
public static List<AUDNZD_OCO2_DOWN_S2> AUDNZD_DOWN_S2_OCO2Sets2 = new List<AUDNZD_OCO2_DOWN_S2>();
public static List<AUDNZD_OCO2_DOWN_S2> AUDNZD_DOWN_S2_OCO2Sets3 = new List<AUDNZD_OCO2_DOWN_S2>();
public static List<AUDNZD_OCO2_DOWN_S2> AUDNZD_DOWN_S2_OCO2Sets4 = new List<AUDNZD_OCO2_DOWN_S2>();
public static List<AUDNZD_OCO2_DOWN_S2> AUDNZD_DOWN_S2_OCO2Sets5 = new List<AUDNZD_OCO2_DOWN_S2>();
public static List<AUDNZD_OCO2_DOWN_S2> AUDNZD_DOWN_S2_OCO2Sets6 = new List<AUDNZD_OCO2_DOWN_S2>();
public static bool AUDNZD_OCO2_DOWN_S2_IsReady = true;
public static bool AUDNZD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket AUDNZD_OCO3_MO1_UP_S2 ;
public static OrderTicket AUDNZD_OCO3_MO2_UP_S2 ;
public static OrderTicket AUDNZD_OCO3_MO3_UP_S2 ;
public static OrderTicket AUDNZD_OCO3_MO4_UP_S2 ;
public static OrderTicket AUDNZD_OCO3_MO5_UP_S2 ;
public static OrderTicket AUDNZD_OCO3_MO6_UP_S2 ;
public static int AUDNZD_OCO3_EO1_UP_S2_ID ;
public static int AUDNZD_OCO3_EO2_UP_S2_ID ;
public static int AUDNZD_OCO3_EO3_UP_S2_ID ;
public static int AUDNZD_OCO3_EO4_UP_S2_ID ;
public static int AUDNZD_OCO3_EO5_UP_S2_ID ;
public static int AUDNZD_OCO3_EO6_UP_S2_ID ;
public static bool AUDNZD_OCO3_EO1_UP_S2 ;
public static bool AUDNZD_OCO3_EO2_UP_S2 ;
public static bool AUDNZD_OCO3_EO3_UP_S2 ;
public static bool AUDNZD_OCO3_EO4_UP_S2 ;
public static bool AUDNZD_OCO3_EO5_UP_S2 ;
public static bool AUDNZD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_UP_S2> AUDNZD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_UP_S2> AUDNZD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_UP_S2> AUDNZD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_UP_S2> AUDNZD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_UP_S2> AUDNZD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_UP_S2> AUDNZD_OOFE_OCO3_UP_S2_6 ;
public static AUDNZD_OCO3_UP_S2 AUDNZD_PFO_OCO3_UP_S2_1 ;
public static AUDNZD_OCO3_UP_S2 AUDNZD_PFO_OCO3_UP_S2_2 ;
public static AUDNZD_OCO3_UP_S2 AUDNZD_PFO_OCO3_UP_S2_3 ;
public static AUDNZD_OCO3_UP_S2 AUDNZD_PFO_OCO3_UP_S2_4 ;
public static AUDNZD_OCO3_UP_S2 AUDNZD_PFO_OCO3_UP_S2_5 ;
public static AUDNZD_OCO3_UP_S2 AUDNZD_PFO_OCO3_UP_S2_6 ;
public static List<AUDNZD_OCO3_UP_S2> AUDNZD_UP_S2_OCO3Sets1 = new List<AUDNZD_OCO3_UP_S2>();
public static List<AUDNZD_OCO3_UP_S2> AUDNZD_UP_S2_OCO3Sets2 = new List<AUDNZD_OCO3_UP_S2>();
public static List<AUDNZD_OCO3_UP_S2> AUDNZD_UP_S2_OCO3Sets3 = new List<AUDNZD_OCO3_UP_S2>();
public static List<AUDNZD_OCO3_UP_S2> AUDNZD_UP_S2_OCO3Sets4 = new List<AUDNZD_OCO3_UP_S2>();
public static List<AUDNZD_OCO3_UP_S2> AUDNZD_UP_S2_OCO3Sets5 = new List<AUDNZD_OCO3_UP_S2>();
public static List<AUDNZD_OCO3_UP_S2> AUDNZD_UP_S2_OCO3Sets6 = new List<AUDNZD_OCO3_UP_S2>();
public static bool AUDNZD_OCO3_UP_S2_IsReady = true;
public static bool AUDNZD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket AUDNZD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO3_MO6_DOWN_S2 ;
public static int AUDNZD_OCO3_EO1_DOWN_S2_ID ;
public static int AUDNZD_OCO3_EO2_DOWN_S2_ID ;
public static int AUDNZD_OCO3_EO3_DOWN_S2_ID ;
public static int AUDNZD_OCO3_EO4_DOWN_S2_ID ;
public static int AUDNZD_OCO3_EO5_DOWN_S2_ID ;
public static int AUDNZD_OCO3_EO6_DOWN_S2_ID ;
public static bool AUDNZD_OCO3_EO1_DOWN_S2 ;
public static bool AUDNZD_OCO3_EO2_DOWN_S2 ;
public static bool AUDNZD_OCO3_EO3_DOWN_S2 ;
public static bool AUDNZD_OCO3_EO4_DOWN_S2 ;
public static bool AUDNZD_OCO3_EO5_DOWN_S2 ;
public static bool AUDNZD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_DOWN_S2> AUDNZD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_DOWN_S2> AUDNZD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_DOWN_S2> AUDNZD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_DOWN_S2> AUDNZD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_DOWN_S2> AUDNZD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO3_DOWN_S2> AUDNZD_OOFE_OCO3_DOWN_S2_6 ;
public static AUDNZD_OCO3_DOWN_S2 AUDNZD_PFO_OCO3_DOWN_S2_1 ;
public static AUDNZD_OCO3_DOWN_S2 AUDNZD_PFO_OCO3_DOWN_S2_2 ;
public static AUDNZD_OCO3_DOWN_S2 AUDNZD_PFO_OCO3_DOWN_S2_3 ;
public static AUDNZD_OCO3_DOWN_S2 AUDNZD_PFO_OCO3_DOWN_S2_4 ;
public static AUDNZD_OCO3_DOWN_S2 AUDNZD_PFO_OCO3_DOWN_S2_5 ;
public static AUDNZD_OCO3_DOWN_S2 AUDNZD_PFO_OCO3_DOWN_S2_6 ;
public static List<AUDNZD_OCO3_DOWN_S2> AUDNZD_DOWN_S2_OCO3Sets1 = new List<AUDNZD_OCO3_DOWN_S2>();
public static List<AUDNZD_OCO3_DOWN_S2> AUDNZD_DOWN_S2_OCO3Sets2 = new List<AUDNZD_OCO3_DOWN_S2>();
public static List<AUDNZD_OCO3_DOWN_S2> AUDNZD_DOWN_S2_OCO3Sets3 = new List<AUDNZD_OCO3_DOWN_S2>();
public static List<AUDNZD_OCO3_DOWN_S2> AUDNZD_DOWN_S2_OCO3Sets4 = new List<AUDNZD_OCO3_DOWN_S2>();
public static List<AUDNZD_OCO3_DOWN_S2> AUDNZD_DOWN_S2_OCO3Sets5 = new List<AUDNZD_OCO3_DOWN_S2>();
public static List<AUDNZD_OCO3_DOWN_S2> AUDNZD_DOWN_S2_OCO3Sets6 = new List<AUDNZD_OCO3_DOWN_S2>();
public static bool AUDNZD_OCO3_DOWN_S2_IsReady = true;
public static bool AUDNZD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket AUDNZD_OCO4_MO1_UP_S2 ;
public static OrderTicket AUDNZD_OCO4_MO2_UP_S2 ;
public static OrderTicket AUDNZD_OCO4_MO3_UP_S2 ;
public static OrderTicket AUDNZD_OCO4_MO4_UP_S2 ;
public static OrderTicket AUDNZD_OCO4_MO5_UP_S2 ;
public static OrderTicket AUDNZD_OCO4_MO6_UP_S2 ;
public static int AUDNZD_OCO4_EO1_UP_S2_ID ;
public static int AUDNZD_OCO4_EO2_UP_S2_ID ;
public static int AUDNZD_OCO4_EO3_UP_S2_ID ;
public static int AUDNZD_OCO4_EO4_UP_S2_ID ;
public static int AUDNZD_OCO4_EO5_UP_S2_ID ;
public static int AUDNZD_OCO4_EO6_UP_S2_ID ;
public static bool AUDNZD_OCO4_EO1_UP_S2 ;
public static bool AUDNZD_OCO4_EO2_UP_S2 ;
public static bool AUDNZD_OCO4_EO3_UP_S2 ;
public static bool AUDNZD_OCO4_EO4_UP_S2 ;
public static bool AUDNZD_OCO4_EO5_UP_S2 ;
public static bool AUDNZD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_UP_S2> AUDNZD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_UP_S2> AUDNZD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_UP_S2> AUDNZD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_UP_S2> AUDNZD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_UP_S2> AUDNZD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_UP_S2> AUDNZD_OOFE_OCO4_UP_S2_6 ;
public static AUDNZD_OCO4_UP_S2 AUDNZD_PFO_OCO4_UP_S2_1 ;
public static AUDNZD_OCO4_UP_S2 AUDNZD_PFO_OCO4_UP_S2_2 ;
public static AUDNZD_OCO4_UP_S2 AUDNZD_PFO_OCO4_UP_S2_3 ;
public static AUDNZD_OCO4_UP_S2 AUDNZD_PFO_OCO4_UP_S2_4 ;
public static AUDNZD_OCO4_UP_S2 AUDNZD_PFO_OCO4_UP_S2_5 ;
public static AUDNZD_OCO4_UP_S2 AUDNZD_PFO_OCO4_UP_S2_6 ;
public static List<AUDNZD_OCO4_UP_S2> AUDNZD_UP_S2_OCO4Sets1 = new List<AUDNZD_OCO4_UP_S2>();
public static List<AUDNZD_OCO4_UP_S2> AUDNZD_UP_S2_OCO4Sets2 = new List<AUDNZD_OCO4_UP_S2>();
public static List<AUDNZD_OCO4_UP_S2> AUDNZD_UP_S2_OCO4Sets3 = new List<AUDNZD_OCO4_UP_S2>();
public static List<AUDNZD_OCO4_UP_S2> AUDNZD_UP_S2_OCO4Sets4 = new List<AUDNZD_OCO4_UP_S2>();
public static List<AUDNZD_OCO4_UP_S2> AUDNZD_UP_S2_OCO4Sets5 = new List<AUDNZD_OCO4_UP_S2>();
public static List<AUDNZD_OCO4_UP_S2> AUDNZD_UP_S2_OCO4Sets6 = new List<AUDNZD_OCO4_UP_S2>();
public static bool AUDNZD_OCO4_UP_S2_IsReady = true;
public static bool AUDNZD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket AUDNZD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket AUDNZD_OCO4_MO6_DOWN_S2 ;
public static int AUDNZD_OCO4_EO1_DOWN_S2_ID ;
public static int AUDNZD_OCO4_EO2_DOWN_S2_ID ;
public static int AUDNZD_OCO4_EO3_DOWN_S2_ID ;
public static int AUDNZD_OCO4_EO4_DOWN_S2_ID ;
public static int AUDNZD_OCO4_EO5_DOWN_S2_ID ;
public static int AUDNZD_OCO4_EO6_DOWN_S2_ID ;
public static bool AUDNZD_OCO4_EO1_DOWN_S2 ;
public static bool AUDNZD_OCO4_EO2_DOWN_S2 ;
public static bool AUDNZD_OCO4_EO3_DOWN_S2 ;
public static bool AUDNZD_OCO4_EO4_DOWN_S2 ;
public static bool AUDNZD_OCO4_EO5_DOWN_S2 ;
public static bool AUDNZD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_DOWN_S2> AUDNZD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_DOWN_S2> AUDNZD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_DOWN_S2> AUDNZD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_DOWN_S2> AUDNZD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_DOWN_S2> AUDNZD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDNZD_OCO4_DOWN_S2> AUDNZD_OOFE_OCO4_DOWN_S2_6 ;
public static AUDNZD_OCO4_DOWN_S2 AUDNZD_PFO_OCO4_DOWN_S2_1 ;
public static AUDNZD_OCO4_DOWN_S2 AUDNZD_PFO_OCO4_DOWN_S2_2 ;
public static AUDNZD_OCO4_DOWN_S2 AUDNZD_PFO_OCO4_DOWN_S2_3 ;
public static AUDNZD_OCO4_DOWN_S2 AUDNZD_PFO_OCO4_DOWN_S2_4 ;
public static AUDNZD_OCO4_DOWN_S2 AUDNZD_PFO_OCO4_DOWN_S2_5 ;
public static AUDNZD_OCO4_DOWN_S2 AUDNZD_PFO_OCO4_DOWN_S2_6 ;
public static List<AUDNZD_OCO4_DOWN_S2> AUDNZD_DOWN_S2_OCO4Sets1 = new List<AUDNZD_OCO4_DOWN_S2>();
public static List<AUDNZD_OCO4_DOWN_S2> AUDNZD_DOWN_S2_OCO4Sets2 = new List<AUDNZD_OCO4_DOWN_S2>();
public static List<AUDNZD_OCO4_DOWN_S2> AUDNZD_DOWN_S2_OCO4Sets3 = new List<AUDNZD_OCO4_DOWN_S2>();
public static List<AUDNZD_OCO4_DOWN_S2> AUDNZD_DOWN_S2_OCO4Sets4 = new List<AUDNZD_OCO4_DOWN_S2>();
public static List<AUDNZD_OCO4_DOWN_S2> AUDNZD_DOWN_S2_OCO4Sets5 = new List<AUDNZD_OCO4_DOWN_S2>();
public static List<AUDNZD_OCO4_DOWN_S2> AUDNZD_DOWN_S2_OCO4Sets6 = new List<AUDNZD_OCO4_DOWN_S2>();
public static bool AUDNZD_OCO4_DOWN_S2_IsReady = true;
public static bool AUDNZD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal AUDNZD_UP_S2_SL {get; set;}
public static decimal AUDNZD_UP_S2_TP1 {get; set;}
public static decimal AUDNZD_UP_S2_TP2 {get; set;}
public static decimal AUDNZD_UP_S2_TP3 {get; set;}
public static decimal AUDNZD_UP_S2_TP4 {get; set;}
public static decimal AUDNZD_UP_S2_TP5 {get; set;}
public static decimal AUDNZD_UP_S2_TP6 {get; set;}
public static decimal AUDNZD_DOWN_S2_SL {get; set;}
public static decimal AUDNZD_DOWN_S2_TP1 {get; set;}
public static decimal AUDNZD_DOWN_S2_TP2 {get; set;}
public static decimal AUDNZD_DOWN_S2_TP3 {get; set;}
public static decimal AUDNZD_DOWN_S2_TP4 {get; set;}
public static decimal AUDNZD_DOWN_S2_TP5 {get; set;}
public static decimal AUDNZD_DOWN_S2_TP6 {get; set;}
public static bool AUDNZD_Signal_Condition_UP_1 ;
public static bool AUDNZD_Signal_Condition_UP_2 ;
public static bool AUDNZD_Signal_Condition_UP_3 ;
public static bool AUDNZD_Signal_Condition_DOWN_S2 ;
public static int AUDNZD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int AUDNZD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int AUDNZD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int AUDNZD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int AUDNZD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int AUDNZD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int AUDNZD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int AUDNZD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int AUDNZD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int AUDNZD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_AUDNZD_UP_S2 ;
public static bool DOWM_AUDNZD_UP_S2 ;
public static bool DOWT_AUDNZD_UP_S2 ;
public static bool DOWW_AUDNZD_UP_S2 ;
public static bool DOWTH_AUDNZD_UP_S2 ;
public static bool DOWR_AUDNZD_DOWN_S2 ;
public static bool DOWM_AUDNZD_DOWN_S2 ;
public static bool DOWT_AUDNZD_DOWN_S2 ;
public static bool DOWW_AUDNZD_DOWN_S2 ;
public static bool DOWTH_AUDNZD_DOWN_S2 ;
public static int AUDNZD_quantity_UP_S2 ;
public static int AUDNZD_quantity_SL_UP_S2 ;
public static int AUDNZD_quantity_TP1_UP_S2 ;
public static int AUDNZD_quantity_TP2_UP_S2 ;
public static int AUDNZD_quantity_TP3_UP_S2 ;
public static int AUDNZD_quantity_TP4_UP_S2 ;
public static int AUDNZD_quantity_TP5_UP_S2;
public static int AUDNZD_quantity_TP6_UP_S2 ;
public static int AUDNZD_quantity_DOWN_S2 ;
public static int AUDNZD_quantity_SL_DOWN_S2 ;
public static int AUDNZD_quantity_TP1_DOWN_S2 ;
public static int AUDNZD_quantity_TP2_DOWN_S2 ;
public static int AUDNZD_quantity_TP3_DOWN_S2 ;
public static int AUDNZD_quantity_TP4_DOWN_S2 ;
public static int AUDNZD_quantity_TP5_DOWN_S2;
public static int AUDNZD_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _GBPCAD;
///oco1 up
public static OrderTicket GBPCAD_OCO1_MO1_UP_S2;
public static OrderTicket GBPCAD_OCO1_MO2_UP_S2;
public static OrderTicket GBPCAD_OCO1_MO3_UP_S2;
public static OrderTicket GBPCAD_OCO1_MO4_UP_S2;
public static OrderTicket GBPCAD_OCO1_MO5_UP_S2;
public static OrderTicket GBPCAD_OCO1_MO6_UP_S2;
public static int GBPCAD_OCO1_EO1_UP_S2_ID ;
public static int GBPCAD_OCO1_EO2_UP_S2_ID ;
public static int GBPCAD_OCO1_EO3_UP_S2_ID ;
public static int GBPCAD_OCO1_EO4_UP_S2_ID ;
public static int GBPCAD_OCO1_EO5_UP_S2_ID ;
public static int GBPCAD_OCO1_EO6_UP_S2_ID ;
public static bool GBPCAD_OCO1_EO1_UP_S2 ;
public static bool GBPCAD_OCO1_EO2_UP_S2 ;
public static bool GBPCAD_OCO1_EO3_UP_S2 ;
public static bool GBPCAD_OCO1_EO4_UP_S2 ;
public static bool GBPCAD_OCO1_EO5_UP_S2 ;
public static bool GBPCAD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_UP_S2> GBPCAD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_UP_S2> GBPCAD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_UP_S2> GBPCAD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_UP_S2> GBPCAD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_UP_S2> GBPCAD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_UP_S2> GBPCAD_OOFE_OCO1_UP_S2_6 ;
public static GBPCAD_OCO1_UP_S2 GBPCAD_PFO_OCO1_UP_S2_1 ;
public static GBPCAD_OCO1_UP_S2 GBPCAD_PFO_OCO1_UP_S2_2 ;
public static GBPCAD_OCO1_UP_S2 GBPCAD_PFO_OCO1_UP_S2_3 ;
public static GBPCAD_OCO1_UP_S2 GBPCAD_PFO_OCO1_UP_S2_4 ;
public static GBPCAD_OCO1_UP_S2 GBPCAD_PFO_OCO1_UP_S2_5 ;
public static GBPCAD_OCO1_UP_S2 GBPCAD_PFO_OCO1_UP_S2_6 ;
public static List<GBPCAD_OCO1_UP_S2> GBPCAD_UP_S2_OCO1Sets1 = new List<GBPCAD_OCO1_UP_S2>();
public static List<GBPCAD_OCO1_UP_S2> GBPCAD_UP_S2_OCO1Sets2 = new List<GBPCAD_OCO1_UP_S2>();
public static List<GBPCAD_OCO1_UP_S2> GBPCAD_UP_S2_OCO1Sets3 = new List<GBPCAD_OCO1_UP_S2>();
public static List<GBPCAD_OCO1_UP_S2> GBPCAD_UP_S2_OCO1Sets4 = new List<GBPCAD_OCO1_UP_S2>();
public static List<GBPCAD_OCO1_UP_S2> GBPCAD_UP_S2_OCO1Sets5 = new List<GBPCAD_OCO1_UP_S2>();
public static List<GBPCAD_OCO1_UP_S2> GBPCAD_UP_S2_OCO1Sets6 = new List<GBPCAD_OCO1_UP_S2>();
public static bool GBPCAD_OCO1_UP_S2_IsReady = true;
public static bool GBPCAD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket GBPCAD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO1_MO6_DOWN_S2 ;
public static int GBPCAD_OCO1_EO1_DOWN_S2_ID ;
public static int GBPCAD_OCO1_EO2_DOWN_S2_ID ;
public static int GBPCAD_OCO1_EO3_DOWN_S2_ID ;
public static int GBPCAD_OCO1_EO4_DOWN_S2_ID ;
public static int GBPCAD_OCO1_EO5_DOWN_S2_ID ;
public static int GBPCAD_OCO1_EO6_DOWN_S2_ID ;
public static bool GBPCAD_OCO1_EO1_DOWN_S2 ;
public static bool GBPCAD_OCO1_EO2_DOWN_S2 ;
public static bool GBPCAD_OCO1_EO3_DOWN_S2 ;
public static bool GBPCAD_OCO1_EO4_DOWN_S2 ;
public static bool GBPCAD_OCO1_EO5_DOWN_S2 ;
public static bool GBPCAD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_DOWN_S2> GBPCAD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_DOWN_S2> GBPCAD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_DOWN_S2> GBPCAD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_DOWN_S2> GBPCAD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_DOWN_S2> GBPCAD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO1_DOWN_S2> GBPCAD_OOFE_OCO1_DOWN_S2_6 ;
public static GBPCAD_OCO1_DOWN_S2 GBPCAD_PFO_OCO1_DOWN_S2_1 ;
public static GBPCAD_OCO1_DOWN_S2 GBPCAD_PFO_OCO1_DOWN_S2_2 ;
public static GBPCAD_OCO1_DOWN_S2 GBPCAD_PFO_OCO1_DOWN_S2_3 ;
public static GBPCAD_OCO1_DOWN_S2 GBPCAD_PFO_OCO1_DOWN_S2_4 ;
public static GBPCAD_OCO1_DOWN_S2 GBPCAD_PFO_OCO1_DOWN_S2_5 ;
public static GBPCAD_OCO1_DOWN_S2 GBPCAD_PFO_OCO1_DOWN_S2_6 ;
public static List<GBPCAD_OCO1_DOWN_S2> GBPCAD_DOWN_S2_OCO1Sets1 = new List<GBPCAD_OCO1_DOWN_S2>();
public static List<GBPCAD_OCO1_DOWN_S2> GBPCAD_DOWN_S2_OCO1Sets2 = new List<GBPCAD_OCO1_DOWN_S2>();
public static List<GBPCAD_OCO1_DOWN_S2> GBPCAD_DOWN_S2_OCO1Sets3 = new List<GBPCAD_OCO1_DOWN_S2>();
public static List<GBPCAD_OCO1_DOWN_S2> GBPCAD_DOWN_S2_OCO1Sets4 = new List<GBPCAD_OCO1_DOWN_S2>();
public static List<GBPCAD_OCO1_DOWN_S2> GBPCAD_DOWN_S2_OCO1Sets5 = new List<GBPCAD_OCO1_DOWN_S2>();
public static List<GBPCAD_OCO1_DOWN_S2> GBPCAD_DOWN_S2_OCO1Sets6 = new List<GBPCAD_OCO1_DOWN_S2>();
public static bool GBPCAD_OCO1_DOWN_S2_IsReady = true;
public static bool GBPCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket GBPCAD_OCO2_MO1_UP_S2 ;
public static OrderTicket GBPCAD_OCO2_MO2_UP_S2 ;
public static OrderTicket GBPCAD_OCO2_MO3_UP_S2 ;
public static OrderTicket GBPCAD_OCO2_MO4_UP_S2 ;
public static OrderTicket GBPCAD_OCO2_MO5_UP_S2 ;
public static OrderTicket GBPCAD_OCO2_MO6_UP_S2 ;
public static int GBPCAD_OCO2_EO1_UP_S2_ID ;
public static int GBPCAD_OCO2_EO2_UP_S2_ID ;
public static int GBPCAD_OCO2_EO3_UP_S2_ID ;
public static int GBPCAD_OCO2_EO4_UP_S2_ID ;
public static int GBPCAD_OCO2_EO5_UP_S2_ID ;
public static int GBPCAD_OCO2_EO6_UP_S2_ID ;
public static bool GBPCAD_OCO2_EO1_UP_S2 ;
public static bool GBPCAD_OCO2_EO2_UP_S2 ;
public static bool GBPCAD_OCO2_EO3_UP_S2 ;
public static bool GBPCAD_OCO2_EO4_UP_S2 ;
public static bool GBPCAD_OCO2_EO5_UP_S2 ;
public static bool GBPCAD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_UP_S2> GBPCAD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_UP_S2> GBPCAD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_UP_S2> GBPCAD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_UP_S2> GBPCAD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_UP_S2> GBPCAD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_UP_S2> GBPCAD_OOFE_OCO2_UP_S2_6 ;
public static GBPCAD_OCO2_UP_S2 GBPCAD_PFO_OCO2_UP_S2_1 ;
public static GBPCAD_OCO2_UP_S2 GBPCAD_PFO_OCO2_UP_S2_2 ;
public static GBPCAD_OCO2_UP_S2 GBPCAD_PFO_OCO2_UP_S2_3 ;
public static GBPCAD_OCO2_UP_S2 GBPCAD_PFO_OCO2_UP_S2_4 ;
public static GBPCAD_OCO2_UP_S2 GBPCAD_PFO_OCO2_UP_S2_5 ;
public static GBPCAD_OCO2_UP_S2 GBPCAD_PFO_OCO2_UP_S2_6 ;
public static List<GBPCAD_OCO2_UP_S2> GBPCAD_UP_S2_OCO2Sets1 = new List<GBPCAD_OCO2_UP_S2>();
public static List<GBPCAD_OCO2_UP_S2> GBPCAD_UP_S2_OCO2Sets2 = new List<GBPCAD_OCO2_UP_S2>();
public static List<GBPCAD_OCO2_UP_S2> GBPCAD_UP_S2_OCO2Sets3 = new List<GBPCAD_OCO2_UP_S2>();
public static List<GBPCAD_OCO2_UP_S2> GBPCAD_UP_S2_OCO2Sets4 = new List<GBPCAD_OCO2_UP_S2>();
public static List<GBPCAD_OCO2_UP_S2> GBPCAD_UP_S2_OCO2Sets5 = new List<GBPCAD_OCO2_UP_S2>();
public static List<GBPCAD_OCO2_UP_S2> GBPCAD_UP_S2_OCO2Sets6 = new List<GBPCAD_OCO2_UP_S2>();
public static bool GBPCAD_OCO2_UP_S2_IsReady = true;
public static bool GBPCAD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket GBPCAD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO2_MO6_DOWN_S2 ;
public static int GBPCAD_OCO2_EO1_DOWN_S2_ID ;
public static int GBPCAD_OCO2_EO2_DOWN_S2_ID ;
public static int GBPCAD_OCO2_EO3_DOWN_S2_ID ;
public static int GBPCAD_OCO2_EO4_DOWN_S2_ID ;
public static int GBPCAD_OCO2_EO5_DOWN_S2_ID ;
public static int GBPCAD_OCO2_EO6_DOWN_S2_ID ;
public static bool GBPCAD_OCO2_EO1_DOWN_S2 ;
public static bool GBPCAD_OCO2_EO2_DOWN_S2 ;
public static bool GBPCAD_OCO2_EO3_DOWN_S2 ;
public static bool GBPCAD_OCO2_EO4_DOWN_S2 ;
public static bool GBPCAD_OCO2_EO5_DOWN_S2 ;
public static bool GBPCAD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_DOWN_S2> GBPCAD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_DOWN_S2> GBPCAD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_DOWN_S2> GBPCAD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_DOWN_S2> GBPCAD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_DOWN_S2> GBPCAD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO2_DOWN_S2> GBPCAD_OOFE_OCO2_DOWN_S2_6 ;
public static GBPCAD_OCO2_DOWN_S2 GBPCAD_PFO_OCO2_DOWN_S2_1 ;
public static GBPCAD_OCO2_DOWN_S2 GBPCAD_PFO_OCO2_DOWN_S2_2 ;
public static GBPCAD_OCO2_DOWN_S2 GBPCAD_PFO_OCO2_DOWN_S2_3 ;
public static GBPCAD_OCO2_DOWN_S2 GBPCAD_PFO_OCO2_DOWN_S2_4 ;
public static GBPCAD_OCO2_DOWN_S2 GBPCAD_PFO_OCO2_DOWN_S2_5 ;
public static GBPCAD_OCO2_DOWN_S2 GBPCAD_PFO_OCO2_DOWN_S2_6 ;
public static List<GBPCAD_OCO2_DOWN_S2> GBPCAD_DOWN_S2_OCO2Sets1 = new List<GBPCAD_OCO2_DOWN_S2>();
public static List<GBPCAD_OCO2_DOWN_S2> GBPCAD_DOWN_S2_OCO2Sets2 = new List<GBPCAD_OCO2_DOWN_S2>();
public static List<GBPCAD_OCO2_DOWN_S2> GBPCAD_DOWN_S2_OCO2Sets3 = new List<GBPCAD_OCO2_DOWN_S2>();
public static List<GBPCAD_OCO2_DOWN_S2> GBPCAD_DOWN_S2_OCO2Sets4 = new List<GBPCAD_OCO2_DOWN_S2>();
public static List<GBPCAD_OCO2_DOWN_S2> GBPCAD_DOWN_S2_OCO2Sets5 = new List<GBPCAD_OCO2_DOWN_S2>();
public static List<GBPCAD_OCO2_DOWN_S2> GBPCAD_DOWN_S2_OCO2Sets6 = new List<GBPCAD_OCO2_DOWN_S2>();
public static bool GBPCAD_OCO2_DOWN_S2_IsReady = true;
public static bool GBPCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket GBPCAD_OCO3_MO1_UP_S2 ;
public static OrderTicket GBPCAD_OCO3_MO2_UP_S2 ;
public static OrderTicket GBPCAD_OCO3_MO3_UP_S2 ;
public static OrderTicket GBPCAD_OCO3_MO4_UP_S2 ;
public static OrderTicket GBPCAD_OCO3_MO5_UP_S2 ;
public static OrderTicket GBPCAD_OCO3_MO6_UP_S2 ;
public static int GBPCAD_OCO3_EO1_UP_S2_ID ;
public static int GBPCAD_OCO3_EO2_UP_S2_ID ;
public static int GBPCAD_OCO3_EO3_UP_S2_ID ;
public static int GBPCAD_OCO3_EO4_UP_S2_ID ;
public static int GBPCAD_OCO3_EO5_UP_S2_ID ;
public static int GBPCAD_OCO3_EO6_UP_S2_ID ;
public static bool GBPCAD_OCO3_EO1_UP_S2 ;
public static bool GBPCAD_OCO3_EO2_UP_S2 ;
public static bool GBPCAD_OCO3_EO3_UP_S2 ;
public static bool GBPCAD_OCO3_EO4_UP_S2 ;
public static bool GBPCAD_OCO3_EO5_UP_S2 ;
public static bool GBPCAD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_UP_S2> GBPCAD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_UP_S2> GBPCAD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_UP_S2> GBPCAD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_UP_S2> GBPCAD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_UP_S2> GBPCAD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_UP_S2> GBPCAD_OOFE_OCO3_UP_S2_6 ;
public static GBPCAD_OCO3_UP_S2 GBPCAD_PFO_OCO3_UP_S2_1 ;
public static GBPCAD_OCO3_UP_S2 GBPCAD_PFO_OCO3_UP_S2_2 ;
public static GBPCAD_OCO3_UP_S2 GBPCAD_PFO_OCO3_UP_S2_3 ;
public static GBPCAD_OCO3_UP_S2 GBPCAD_PFO_OCO3_UP_S2_4 ;
public static GBPCAD_OCO3_UP_S2 GBPCAD_PFO_OCO3_UP_S2_5 ;
public static GBPCAD_OCO3_UP_S2 GBPCAD_PFO_OCO3_UP_S2_6 ;
public static List<GBPCAD_OCO3_UP_S2> GBPCAD_UP_S2_OCO3Sets1 = new List<GBPCAD_OCO3_UP_S2>();
public static List<GBPCAD_OCO3_UP_S2> GBPCAD_UP_S2_OCO3Sets2 = new List<GBPCAD_OCO3_UP_S2>();
public static List<GBPCAD_OCO3_UP_S2> GBPCAD_UP_S2_OCO3Sets3 = new List<GBPCAD_OCO3_UP_S2>();
public static List<GBPCAD_OCO3_UP_S2> GBPCAD_UP_S2_OCO3Sets4 = new List<GBPCAD_OCO3_UP_S2>();
public static List<GBPCAD_OCO3_UP_S2> GBPCAD_UP_S2_OCO3Sets5 = new List<GBPCAD_OCO3_UP_S2>();
public static List<GBPCAD_OCO3_UP_S2> GBPCAD_UP_S2_OCO3Sets6 = new List<GBPCAD_OCO3_UP_S2>();
public static bool GBPCAD_OCO3_UP_S2_IsReady = true;
public static bool GBPCAD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket GBPCAD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO3_MO6_DOWN_S2 ;
public static int GBPCAD_OCO3_EO1_DOWN_S2_ID ;
public static int GBPCAD_OCO3_EO2_DOWN_S2_ID ;
public static int GBPCAD_OCO3_EO3_DOWN_S2_ID ;
public static int GBPCAD_OCO3_EO4_DOWN_S2_ID ;
public static int GBPCAD_OCO3_EO5_DOWN_S2_ID ;
public static int GBPCAD_OCO3_EO6_DOWN_S2_ID ;
public static bool GBPCAD_OCO3_EO1_DOWN_S2 ;
public static bool GBPCAD_OCO3_EO2_DOWN_S2 ;
public static bool GBPCAD_OCO3_EO3_DOWN_S2 ;
public static bool GBPCAD_OCO3_EO4_DOWN_S2 ;
public static bool GBPCAD_OCO3_EO5_DOWN_S2 ;
public static bool GBPCAD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_DOWN_S2> GBPCAD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_DOWN_S2> GBPCAD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_DOWN_S2> GBPCAD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_DOWN_S2> GBPCAD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_DOWN_S2> GBPCAD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO3_DOWN_S2> GBPCAD_OOFE_OCO3_DOWN_S2_6 ;
public static GBPCAD_OCO3_DOWN_S2 GBPCAD_PFO_OCO3_DOWN_S2_1 ;
public static GBPCAD_OCO3_DOWN_S2 GBPCAD_PFO_OCO3_DOWN_S2_2 ;
public static GBPCAD_OCO3_DOWN_S2 GBPCAD_PFO_OCO3_DOWN_S2_3 ;
public static GBPCAD_OCO3_DOWN_S2 GBPCAD_PFO_OCO3_DOWN_S2_4 ;
public static GBPCAD_OCO3_DOWN_S2 GBPCAD_PFO_OCO3_DOWN_S2_5 ;
public static GBPCAD_OCO3_DOWN_S2 GBPCAD_PFO_OCO3_DOWN_S2_6 ;
public static List<GBPCAD_OCO3_DOWN_S2> GBPCAD_DOWN_S2_OCO3Sets1 = new List<GBPCAD_OCO3_DOWN_S2>();
public static List<GBPCAD_OCO3_DOWN_S2> GBPCAD_DOWN_S2_OCO3Sets2 = new List<GBPCAD_OCO3_DOWN_S2>();
public static List<GBPCAD_OCO3_DOWN_S2> GBPCAD_DOWN_S2_OCO3Sets3 = new List<GBPCAD_OCO3_DOWN_S2>();
public static List<GBPCAD_OCO3_DOWN_S2> GBPCAD_DOWN_S2_OCO3Sets4 = new List<GBPCAD_OCO3_DOWN_S2>();
public static List<GBPCAD_OCO3_DOWN_S2> GBPCAD_DOWN_S2_OCO3Sets5 = new List<GBPCAD_OCO3_DOWN_S2>();
public static List<GBPCAD_OCO3_DOWN_S2> GBPCAD_DOWN_S2_OCO3Sets6 = new List<GBPCAD_OCO3_DOWN_S2>();
public static bool GBPCAD_OCO3_DOWN_S2_IsReady = true;
public static bool GBPCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket GBPCAD_OCO4_MO1_UP_S2 ;
public static OrderTicket GBPCAD_OCO4_MO2_UP_S2 ;
public static OrderTicket GBPCAD_OCO4_MO3_UP_S2 ;
public static OrderTicket GBPCAD_OCO4_MO4_UP_S2 ;
public static OrderTicket GBPCAD_OCO4_MO5_UP_S2 ;
public static OrderTicket GBPCAD_OCO4_MO6_UP_S2 ;
public static int GBPCAD_OCO4_EO1_UP_S2_ID ;
public static int GBPCAD_OCO4_EO2_UP_S2_ID ;
public static int GBPCAD_OCO4_EO3_UP_S2_ID ;
public static int GBPCAD_OCO4_EO4_UP_S2_ID ;
public static int GBPCAD_OCO4_EO5_UP_S2_ID ;
public static int GBPCAD_OCO4_EO6_UP_S2_ID ;
public static bool GBPCAD_OCO4_EO1_UP_S2 ;
public static bool GBPCAD_OCO4_EO2_UP_S2 ;
public static bool GBPCAD_OCO4_EO3_UP_S2 ;
public static bool GBPCAD_OCO4_EO4_UP_S2 ;
public static bool GBPCAD_OCO4_EO5_UP_S2 ;
public static bool GBPCAD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_UP_S2> GBPCAD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_UP_S2> GBPCAD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_UP_S2> GBPCAD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_UP_S2> GBPCAD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_UP_S2> GBPCAD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_UP_S2> GBPCAD_OOFE_OCO4_UP_S2_6 ;
public static GBPCAD_OCO4_UP_S2 GBPCAD_PFO_OCO4_UP_S2_1 ;
public static GBPCAD_OCO4_UP_S2 GBPCAD_PFO_OCO4_UP_S2_2 ;
public static GBPCAD_OCO4_UP_S2 GBPCAD_PFO_OCO4_UP_S2_3 ;
public static GBPCAD_OCO4_UP_S2 GBPCAD_PFO_OCO4_UP_S2_4 ;
public static GBPCAD_OCO4_UP_S2 GBPCAD_PFO_OCO4_UP_S2_5 ;
public static GBPCAD_OCO4_UP_S2 GBPCAD_PFO_OCO4_UP_S2_6 ;
public static List<GBPCAD_OCO4_UP_S2> GBPCAD_UP_S2_OCO4Sets1 = new List<GBPCAD_OCO4_UP_S2>();
public static List<GBPCAD_OCO4_UP_S2> GBPCAD_UP_S2_OCO4Sets2 = new List<GBPCAD_OCO4_UP_S2>();
public static List<GBPCAD_OCO4_UP_S2> GBPCAD_UP_S2_OCO4Sets3 = new List<GBPCAD_OCO4_UP_S2>();
public static List<GBPCAD_OCO4_UP_S2> GBPCAD_UP_S2_OCO4Sets4 = new List<GBPCAD_OCO4_UP_S2>();
public static List<GBPCAD_OCO4_UP_S2> GBPCAD_UP_S2_OCO4Sets5 = new List<GBPCAD_OCO4_UP_S2>();
public static List<GBPCAD_OCO4_UP_S2> GBPCAD_UP_S2_OCO4Sets6 = new List<GBPCAD_OCO4_UP_S2>();
public static bool GBPCAD_OCO4_UP_S2_IsReady = true;
public static bool GBPCAD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket GBPCAD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket GBPCAD_OCO4_MO6_DOWN_S2 ;
public static int GBPCAD_OCO4_EO1_DOWN_S2_ID ;
public static int GBPCAD_OCO4_EO2_DOWN_S2_ID ;
public static int GBPCAD_OCO4_EO3_DOWN_S2_ID ;
public static int GBPCAD_OCO4_EO4_DOWN_S2_ID ;
public static int GBPCAD_OCO4_EO5_DOWN_S2_ID ;
public static int GBPCAD_OCO4_EO6_DOWN_S2_ID ;
public static bool GBPCAD_OCO4_EO1_DOWN_S2 ;
public static bool GBPCAD_OCO4_EO2_DOWN_S2 ;
public static bool GBPCAD_OCO4_EO3_DOWN_S2 ;
public static bool GBPCAD_OCO4_EO4_DOWN_S2 ;
public static bool GBPCAD_OCO4_EO5_DOWN_S2 ;
public static bool GBPCAD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_DOWN_S2> GBPCAD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_DOWN_S2> GBPCAD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_DOWN_S2> GBPCAD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_DOWN_S2> GBPCAD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_DOWN_S2> GBPCAD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPCAD_OCO4_DOWN_S2> GBPCAD_OOFE_OCO4_DOWN_S2_6 ;
public static GBPCAD_OCO4_DOWN_S2 GBPCAD_PFO_OCO4_DOWN_S2_1 ;
public static GBPCAD_OCO4_DOWN_S2 GBPCAD_PFO_OCO4_DOWN_S2_2 ;
public static GBPCAD_OCO4_DOWN_S2 GBPCAD_PFO_OCO4_DOWN_S2_3 ;
public static GBPCAD_OCO4_DOWN_S2 GBPCAD_PFO_OCO4_DOWN_S2_4 ;
public static GBPCAD_OCO4_DOWN_S2 GBPCAD_PFO_OCO4_DOWN_S2_5 ;
public static GBPCAD_OCO4_DOWN_S2 GBPCAD_PFO_OCO4_DOWN_S2_6 ;
public static List<GBPCAD_OCO4_DOWN_S2> GBPCAD_DOWN_S2_OCO4Sets1 = new List<GBPCAD_OCO4_DOWN_S2>();
public static List<GBPCAD_OCO4_DOWN_S2> GBPCAD_DOWN_S2_OCO4Sets2 = new List<GBPCAD_OCO4_DOWN_S2>();
public static List<GBPCAD_OCO4_DOWN_S2> GBPCAD_DOWN_S2_OCO4Sets3 = new List<GBPCAD_OCO4_DOWN_S2>();
public static List<GBPCAD_OCO4_DOWN_S2> GBPCAD_DOWN_S2_OCO4Sets4 = new List<GBPCAD_OCO4_DOWN_S2>();
public static List<GBPCAD_OCO4_DOWN_S2> GBPCAD_DOWN_S2_OCO4Sets5 = new List<GBPCAD_OCO4_DOWN_S2>();
public static List<GBPCAD_OCO4_DOWN_S2> GBPCAD_DOWN_S2_OCO4Sets6 = new List<GBPCAD_OCO4_DOWN_S2>();
public static bool GBPCAD_OCO4_DOWN_S2_IsReady = true;
public static bool GBPCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal GBPCAD_UP_S2_SL {get; set;}
public static decimal GBPCAD_UP_S2_TP1 {get; set;}
public static decimal GBPCAD_UP_S2_TP2 {get; set;}
public static decimal GBPCAD_UP_S2_TP3 {get; set;}
public static decimal GBPCAD_UP_S2_TP4 {get; set;}
public static decimal GBPCAD_UP_S2_TP5 {get; set;}
public static decimal GBPCAD_UP_S2_TP6 {get; set;}
public static decimal GBPCAD_DOWN_S2_SL {get; set;}
public static decimal GBPCAD_DOWN_S2_TP1 {get; set;}
public static decimal GBPCAD_DOWN_S2_TP2 {get; set;}
public static decimal GBPCAD_DOWN_S2_TP3 {get; set;}
public static decimal GBPCAD_DOWN_S2_TP4 {get; set;}
public static decimal GBPCAD_DOWN_S2_TP5 {get; set;}
public static decimal GBPCAD_DOWN_S2_TP6 {get; set;}
public static bool GBPCAD_Signal_Condition_UP_1 ;
public static bool GBPCAD_Signal_Condition_UP_2 ;
public static bool GBPCAD_Signal_Condition_UP_3 ;
public static bool GBPCAD_Signal_Condition_DOWN_S2 ;
public static int GBPCAD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int GBPCAD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int GBPCAD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int GBPCAD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int GBPCAD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int GBPCAD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int GBPCAD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int GBPCAD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int GBPCAD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int GBPCAD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_GBPCAD_UP_S2 ;
public static bool DOWM_GBPCAD_UP_S2 ;
public static bool DOWT_GBPCAD_UP_S2 ;
public static bool DOWW_GBPCAD_UP_S2 ;
public static bool DOWTH_GBPCAD_UP_S2 ;
public static bool DOWR_GBPCAD_DOWN_S2 ;
public static bool DOWM_GBPCAD_DOWN_S2 ;
public static bool DOWT_GBPCAD_DOWN_S2 ;
public static bool DOWW_GBPCAD_DOWN_S2 ;
public static bool DOWTH_GBPCAD_DOWN_S2 ;
public static int GBPCAD_quantity_UP_S2 ;
public static int GBPCAD_quantity_SL_UP_S2 ;
public static int GBPCAD_quantity_TP1_UP_S2 ;
public static int GBPCAD_quantity_TP2_UP_S2 ;
public static int GBPCAD_quantity_TP3_UP_S2 ;
public static int GBPCAD_quantity_TP4_UP_S2 ;
public static int GBPCAD_quantity_TP5_UP_S2;
public static int GBPCAD_quantity_TP6_UP_S2 ;
public static int GBPCAD_quantity_DOWN_S2 ;
public static int GBPCAD_quantity_SL_DOWN_S2 ;
public static int GBPCAD_quantity_TP1_DOWN_S2 ;
public static int GBPCAD_quantity_TP2_DOWN_S2 ;
public static int GBPCAD_quantity_TP3_DOWN_S2 ;
public static int GBPCAD_quantity_TP4_DOWN_S2 ;
public static int GBPCAD_quantity_TP5_DOWN_S2;
public static int GBPCAD_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _GBPAUD;
///oco1 up
public static OrderTicket GBPAUD_OCO1_MO1_UP_S2;
public static OrderTicket GBPAUD_OCO1_MO2_UP_S2;
public static OrderTicket GBPAUD_OCO1_MO3_UP_S2;
public static OrderTicket GBPAUD_OCO1_MO4_UP_S2;
public static OrderTicket GBPAUD_OCO1_MO5_UP_S2;
public static OrderTicket GBPAUD_OCO1_MO6_UP_S2;
public static int GBPAUD_OCO1_EO1_UP_S2_ID ;
public static int GBPAUD_OCO1_EO2_UP_S2_ID ;
public static int GBPAUD_OCO1_EO3_UP_S2_ID ;
public static int GBPAUD_OCO1_EO4_UP_S2_ID ;
public static int GBPAUD_OCO1_EO5_UP_S2_ID ;
public static int GBPAUD_OCO1_EO6_UP_S2_ID ;
public static bool GBPAUD_OCO1_EO1_UP_S2 ;
public static bool GBPAUD_OCO1_EO2_UP_S2 ;
public static bool GBPAUD_OCO1_EO3_UP_S2 ;
public static bool GBPAUD_OCO1_EO4_UP_S2 ;
public static bool GBPAUD_OCO1_EO5_UP_S2 ;
public static bool GBPAUD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_UP_S2> GBPAUD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_UP_S2> GBPAUD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_UP_S2> GBPAUD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_UP_S2> GBPAUD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_UP_S2> GBPAUD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_UP_S2> GBPAUD_OOFE_OCO1_UP_S2_6 ;
public static GBPAUD_OCO1_UP_S2 GBPAUD_PFO_OCO1_UP_S2_1 ;
public static GBPAUD_OCO1_UP_S2 GBPAUD_PFO_OCO1_UP_S2_2 ;
public static GBPAUD_OCO1_UP_S2 GBPAUD_PFO_OCO1_UP_S2_3 ;
public static GBPAUD_OCO1_UP_S2 GBPAUD_PFO_OCO1_UP_S2_4 ;
public static GBPAUD_OCO1_UP_S2 GBPAUD_PFO_OCO1_UP_S2_5 ;
public static GBPAUD_OCO1_UP_S2 GBPAUD_PFO_OCO1_UP_S2_6 ;
public static List<GBPAUD_OCO1_UP_S2> GBPAUD_UP_S2_OCO1Sets1 = new List<GBPAUD_OCO1_UP_S2>();
public static List<GBPAUD_OCO1_UP_S2> GBPAUD_UP_S2_OCO1Sets2 = new List<GBPAUD_OCO1_UP_S2>();
public static List<GBPAUD_OCO1_UP_S2> GBPAUD_UP_S2_OCO1Sets3 = new List<GBPAUD_OCO1_UP_S2>();
public static List<GBPAUD_OCO1_UP_S2> GBPAUD_UP_S2_OCO1Sets4 = new List<GBPAUD_OCO1_UP_S2>();
public static List<GBPAUD_OCO1_UP_S2> GBPAUD_UP_S2_OCO1Sets5 = new List<GBPAUD_OCO1_UP_S2>();
public static List<GBPAUD_OCO1_UP_S2> GBPAUD_UP_S2_OCO1Sets6 = new List<GBPAUD_OCO1_UP_S2>();
public static bool GBPAUD_OCO1_UP_S2_IsReady = true;
public static bool GBPAUD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket GBPAUD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO1_MO6_DOWN_S2 ;
public static int GBPAUD_OCO1_EO1_DOWN_S2_ID ;
public static int GBPAUD_OCO1_EO2_DOWN_S2_ID ;
public static int GBPAUD_OCO1_EO3_DOWN_S2_ID ;
public static int GBPAUD_OCO1_EO4_DOWN_S2_ID ;
public static int GBPAUD_OCO1_EO5_DOWN_S2_ID ;
public static int GBPAUD_OCO1_EO6_DOWN_S2_ID ;
public static bool GBPAUD_OCO1_EO1_DOWN_S2 ;
public static bool GBPAUD_OCO1_EO2_DOWN_S2 ;
public static bool GBPAUD_OCO1_EO3_DOWN_S2 ;
public static bool GBPAUD_OCO1_EO4_DOWN_S2 ;
public static bool GBPAUD_OCO1_EO5_DOWN_S2 ;
public static bool GBPAUD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_DOWN_S2> GBPAUD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_DOWN_S2> GBPAUD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_DOWN_S2> GBPAUD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_DOWN_S2> GBPAUD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_DOWN_S2> GBPAUD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO1_DOWN_S2> GBPAUD_OOFE_OCO1_DOWN_S2_6 ;
public static GBPAUD_OCO1_DOWN_S2 GBPAUD_PFO_OCO1_DOWN_S2_1 ;
public static GBPAUD_OCO1_DOWN_S2 GBPAUD_PFO_OCO1_DOWN_S2_2 ;
public static GBPAUD_OCO1_DOWN_S2 GBPAUD_PFO_OCO1_DOWN_S2_3 ;
public static GBPAUD_OCO1_DOWN_S2 GBPAUD_PFO_OCO1_DOWN_S2_4 ;
public static GBPAUD_OCO1_DOWN_S2 GBPAUD_PFO_OCO1_DOWN_S2_5 ;
public static GBPAUD_OCO1_DOWN_S2 GBPAUD_PFO_OCO1_DOWN_S2_6 ;
public static List<GBPAUD_OCO1_DOWN_S2> GBPAUD_DOWN_S2_OCO1Sets1 = new List<GBPAUD_OCO1_DOWN_S2>();
public static List<GBPAUD_OCO1_DOWN_S2> GBPAUD_DOWN_S2_OCO1Sets2 = new List<GBPAUD_OCO1_DOWN_S2>();
public static List<GBPAUD_OCO1_DOWN_S2> GBPAUD_DOWN_S2_OCO1Sets3 = new List<GBPAUD_OCO1_DOWN_S2>();
public static List<GBPAUD_OCO1_DOWN_S2> GBPAUD_DOWN_S2_OCO1Sets4 = new List<GBPAUD_OCO1_DOWN_S2>();
public static List<GBPAUD_OCO1_DOWN_S2> GBPAUD_DOWN_S2_OCO1Sets5 = new List<GBPAUD_OCO1_DOWN_S2>();
public static List<GBPAUD_OCO1_DOWN_S2> GBPAUD_DOWN_S2_OCO1Sets6 = new List<GBPAUD_OCO1_DOWN_S2>();
public static bool GBPAUD_OCO1_DOWN_S2_IsReady = true;
public static bool GBPAUD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket GBPAUD_OCO2_MO1_UP_S2 ;
public static OrderTicket GBPAUD_OCO2_MO2_UP_S2 ;
public static OrderTicket GBPAUD_OCO2_MO3_UP_S2 ;
public static OrderTicket GBPAUD_OCO2_MO4_UP_S2 ;
public static OrderTicket GBPAUD_OCO2_MO5_UP_S2 ;
public static OrderTicket GBPAUD_OCO2_MO6_UP_S2 ;
public static int GBPAUD_OCO2_EO1_UP_S2_ID ;
public static int GBPAUD_OCO2_EO2_UP_S2_ID ;
public static int GBPAUD_OCO2_EO3_UP_S2_ID ;
public static int GBPAUD_OCO2_EO4_UP_S2_ID ;
public static int GBPAUD_OCO2_EO5_UP_S2_ID ;
public static int GBPAUD_OCO2_EO6_UP_S2_ID ;
public static bool GBPAUD_OCO2_EO1_UP_S2 ;
public static bool GBPAUD_OCO2_EO2_UP_S2 ;
public static bool GBPAUD_OCO2_EO3_UP_S2 ;
public static bool GBPAUD_OCO2_EO4_UP_S2 ;
public static bool GBPAUD_OCO2_EO5_UP_S2 ;
public static bool GBPAUD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_UP_S2> GBPAUD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_UP_S2> GBPAUD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_UP_S2> GBPAUD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_UP_S2> GBPAUD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_UP_S2> GBPAUD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_UP_S2> GBPAUD_OOFE_OCO2_UP_S2_6 ;
public static GBPAUD_OCO2_UP_S2 GBPAUD_PFO_OCO2_UP_S2_1 ;
public static GBPAUD_OCO2_UP_S2 GBPAUD_PFO_OCO2_UP_S2_2 ;
public static GBPAUD_OCO2_UP_S2 GBPAUD_PFO_OCO2_UP_S2_3 ;
public static GBPAUD_OCO2_UP_S2 GBPAUD_PFO_OCO2_UP_S2_4 ;
public static GBPAUD_OCO2_UP_S2 GBPAUD_PFO_OCO2_UP_S2_5 ;
public static GBPAUD_OCO2_UP_S2 GBPAUD_PFO_OCO2_UP_S2_6 ;
public static List<GBPAUD_OCO2_UP_S2> GBPAUD_UP_S2_OCO2Sets1 = new List<GBPAUD_OCO2_UP_S2>();
public static List<GBPAUD_OCO2_UP_S2> GBPAUD_UP_S2_OCO2Sets2 = new List<GBPAUD_OCO2_UP_S2>();
public static List<GBPAUD_OCO2_UP_S2> GBPAUD_UP_S2_OCO2Sets3 = new List<GBPAUD_OCO2_UP_S2>();
public static List<GBPAUD_OCO2_UP_S2> GBPAUD_UP_S2_OCO2Sets4 = new List<GBPAUD_OCO2_UP_S2>();
public static List<GBPAUD_OCO2_UP_S2> GBPAUD_UP_S2_OCO2Sets5 = new List<GBPAUD_OCO2_UP_S2>();
public static List<GBPAUD_OCO2_UP_S2> GBPAUD_UP_S2_OCO2Sets6 = new List<GBPAUD_OCO2_UP_S2>();
public static bool GBPAUD_OCO2_UP_S2_IsReady = true;
public static bool GBPAUD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket GBPAUD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO2_MO6_DOWN_S2 ;
public static int GBPAUD_OCO2_EO1_DOWN_S2_ID ;
public static int GBPAUD_OCO2_EO2_DOWN_S2_ID ;
public static int GBPAUD_OCO2_EO3_DOWN_S2_ID ;
public static int GBPAUD_OCO2_EO4_DOWN_S2_ID ;
public static int GBPAUD_OCO2_EO5_DOWN_S2_ID ;
public static int GBPAUD_OCO2_EO6_DOWN_S2_ID ;
public static bool GBPAUD_OCO2_EO1_DOWN_S2 ;
public static bool GBPAUD_OCO2_EO2_DOWN_S2 ;
public static bool GBPAUD_OCO2_EO3_DOWN_S2 ;
public static bool GBPAUD_OCO2_EO4_DOWN_S2 ;
public static bool GBPAUD_OCO2_EO5_DOWN_S2 ;
public static bool GBPAUD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_DOWN_S2> GBPAUD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_DOWN_S2> GBPAUD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_DOWN_S2> GBPAUD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_DOWN_S2> GBPAUD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_DOWN_S2> GBPAUD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO2_DOWN_S2> GBPAUD_OOFE_OCO2_DOWN_S2_6 ;
public static GBPAUD_OCO2_DOWN_S2 GBPAUD_PFO_OCO2_DOWN_S2_1 ;
public static GBPAUD_OCO2_DOWN_S2 GBPAUD_PFO_OCO2_DOWN_S2_2 ;
public static GBPAUD_OCO2_DOWN_S2 GBPAUD_PFO_OCO2_DOWN_S2_3 ;
public static GBPAUD_OCO2_DOWN_S2 GBPAUD_PFO_OCO2_DOWN_S2_4 ;
public static GBPAUD_OCO2_DOWN_S2 GBPAUD_PFO_OCO2_DOWN_S2_5 ;
public static GBPAUD_OCO2_DOWN_S2 GBPAUD_PFO_OCO2_DOWN_S2_6 ;
public static List<GBPAUD_OCO2_DOWN_S2> GBPAUD_DOWN_S2_OCO2Sets1 = new List<GBPAUD_OCO2_DOWN_S2>();
public static List<GBPAUD_OCO2_DOWN_S2> GBPAUD_DOWN_S2_OCO2Sets2 = new List<GBPAUD_OCO2_DOWN_S2>();
public static List<GBPAUD_OCO2_DOWN_S2> GBPAUD_DOWN_S2_OCO2Sets3 = new List<GBPAUD_OCO2_DOWN_S2>();
public static List<GBPAUD_OCO2_DOWN_S2> GBPAUD_DOWN_S2_OCO2Sets4 = new List<GBPAUD_OCO2_DOWN_S2>();
public static List<GBPAUD_OCO2_DOWN_S2> GBPAUD_DOWN_S2_OCO2Sets5 = new List<GBPAUD_OCO2_DOWN_S2>();
public static List<GBPAUD_OCO2_DOWN_S2> GBPAUD_DOWN_S2_OCO2Sets6 = new List<GBPAUD_OCO2_DOWN_S2>();
public static bool GBPAUD_OCO2_DOWN_S2_IsReady = true;
public static bool GBPAUD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket GBPAUD_OCO3_MO1_UP_S2 ;
public static OrderTicket GBPAUD_OCO3_MO2_UP_S2 ;
public static OrderTicket GBPAUD_OCO3_MO3_UP_S2 ;
public static OrderTicket GBPAUD_OCO3_MO4_UP_S2 ;
public static OrderTicket GBPAUD_OCO3_MO5_UP_S2 ;
public static OrderTicket GBPAUD_OCO3_MO6_UP_S2 ;
public static int GBPAUD_OCO3_EO1_UP_S2_ID ;
public static int GBPAUD_OCO3_EO2_UP_S2_ID ;
public static int GBPAUD_OCO3_EO3_UP_S2_ID ;
public static int GBPAUD_OCO3_EO4_UP_S2_ID ;
public static int GBPAUD_OCO3_EO5_UP_S2_ID ;
public static int GBPAUD_OCO3_EO6_UP_S2_ID ;
public static bool GBPAUD_OCO3_EO1_UP_S2 ;
public static bool GBPAUD_OCO3_EO2_UP_S2 ;
public static bool GBPAUD_OCO3_EO3_UP_S2 ;
public static bool GBPAUD_OCO3_EO4_UP_S2 ;
public static bool GBPAUD_OCO3_EO5_UP_S2 ;
public static bool GBPAUD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_UP_S2> GBPAUD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_UP_S2> GBPAUD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_UP_S2> GBPAUD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_UP_S2> GBPAUD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_UP_S2> GBPAUD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_UP_S2> GBPAUD_OOFE_OCO3_UP_S2_6 ;
public static GBPAUD_OCO3_UP_S2 GBPAUD_PFO_OCO3_UP_S2_1 ;
public static GBPAUD_OCO3_UP_S2 GBPAUD_PFO_OCO3_UP_S2_2 ;
public static GBPAUD_OCO3_UP_S2 GBPAUD_PFO_OCO3_UP_S2_3 ;
public static GBPAUD_OCO3_UP_S2 GBPAUD_PFO_OCO3_UP_S2_4 ;
public static GBPAUD_OCO3_UP_S2 GBPAUD_PFO_OCO3_UP_S2_5 ;
public static GBPAUD_OCO3_UP_S2 GBPAUD_PFO_OCO3_UP_S2_6 ;
public static List<GBPAUD_OCO3_UP_S2> GBPAUD_UP_S2_OCO3Sets1 = new List<GBPAUD_OCO3_UP_S2>();
public static List<GBPAUD_OCO3_UP_S2> GBPAUD_UP_S2_OCO3Sets2 = new List<GBPAUD_OCO3_UP_S2>();
public static List<GBPAUD_OCO3_UP_S2> GBPAUD_UP_S2_OCO3Sets3 = new List<GBPAUD_OCO3_UP_S2>();
public static List<GBPAUD_OCO3_UP_S2> GBPAUD_UP_S2_OCO3Sets4 = new List<GBPAUD_OCO3_UP_S2>();
public static List<GBPAUD_OCO3_UP_S2> GBPAUD_UP_S2_OCO3Sets5 = new List<GBPAUD_OCO3_UP_S2>();
public static List<GBPAUD_OCO3_UP_S2> GBPAUD_UP_S2_OCO3Sets6 = new List<GBPAUD_OCO3_UP_S2>();
public static bool GBPAUD_OCO3_UP_S2_IsReady = true;
public static bool GBPAUD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket GBPAUD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO3_MO6_DOWN_S2 ;
public static int GBPAUD_OCO3_EO1_DOWN_S2_ID ;
public static int GBPAUD_OCO3_EO2_DOWN_S2_ID ;
public static int GBPAUD_OCO3_EO3_DOWN_S2_ID ;
public static int GBPAUD_OCO3_EO4_DOWN_S2_ID ;
public static int GBPAUD_OCO3_EO5_DOWN_S2_ID ;
public static int GBPAUD_OCO3_EO6_DOWN_S2_ID ;
public static bool GBPAUD_OCO3_EO1_DOWN_S2 ;
public static bool GBPAUD_OCO3_EO2_DOWN_S2 ;
public static bool GBPAUD_OCO3_EO3_DOWN_S2 ;
public static bool GBPAUD_OCO3_EO4_DOWN_S2 ;
public static bool GBPAUD_OCO3_EO5_DOWN_S2 ;
public static bool GBPAUD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_DOWN_S2> GBPAUD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_DOWN_S2> GBPAUD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_DOWN_S2> GBPAUD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_DOWN_S2> GBPAUD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_DOWN_S2> GBPAUD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO3_DOWN_S2> GBPAUD_OOFE_OCO3_DOWN_S2_6 ;
public static GBPAUD_OCO3_DOWN_S2 GBPAUD_PFO_OCO3_DOWN_S2_1 ;
public static GBPAUD_OCO3_DOWN_S2 GBPAUD_PFO_OCO3_DOWN_S2_2 ;
public static GBPAUD_OCO3_DOWN_S2 GBPAUD_PFO_OCO3_DOWN_S2_3 ;
public static GBPAUD_OCO3_DOWN_S2 GBPAUD_PFO_OCO3_DOWN_S2_4 ;
public static GBPAUD_OCO3_DOWN_S2 GBPAUD_PFO_OCO3_DOWN_S2_5 ;
public static GBPAUD_OCO3_DOWN_S2 GBPAUD_PFO_OCO3_DOWN_S2_6 ;
public static List<GBPAUD_OCO3_DOWN_S2> GBPAUD_DOWN_S2_OCO3Sets1 = new List<GBPAUD_OCO3_DOWN_S2>();
public static List<GBPAUD_OCO3_DOWN_S2> GBPAUD_DOWN_S2_OCO3Sets2 = new List<GBPAUD_OCO3_DOWN_S2>();
public static List<GBPAUD_OCO3_DOWN_S2> GBPAUD_DOWN_S2_OCO3Sets3 = new List<GBPAUD_OCO3_DOWN_S2>();
public static List<GBPAUD_OCO3_DOWN_S2> GBPAUD_DOWN_S2_OCO3Sets4 = new List<GBPAUD_OCO3_DOWN_S2>();
public static List<GBPAUD_OCO3_DOWN_S2> GBPAUD_DOWN_S2_OCO3Sets5 = new List<GBPAUD_OCO3_DOWN_S2>();
public static List<GBPAUD_OCO3_DOWN_S2> GBPAUD_DOWN_S2_OCO3Sets6 = new List<GBPAUD_OCO3_DOWN_S2>();
public static bool GBPAUD_OCO3_DOWN_S2_IsReady = true;
public static bool GBPAUD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket GBPAUD_OCO4_MO1_UP_S2 ;
public static OrderTicket GBPAUD_OCO4_MO2_UP_S2 ;
public static OrderTicket GBPAUD_OCO4_MO3_UP_S2 ;
public static OrderTicket GBPAUD_OCO4_MO4_UP_S2 ;
public static OrderTicket GBPAUD_OCO4_MO5_UP_S2 ;
public static OrderTicket GBPAUD_OCO4_MO6_UP_S2 ;
public static int GBPAUD_OCO4_EO1_UP_S2_ID ;
public static int GBPAUD_OCO4_EO2_UP_S2_ID ;
public static int GBPAUD_OCO4_EO3_UP_S2_ID ;
public static int GBPAUD_OCO4_EO4_UP_S2_ID ;
public static int GBPAUD_OCO4_EO5_UP_S2_ID ;
public static int GBPAUD_OCO4_EO6_UP_S2_ID ;
public static bool GBPAUD_OCO4_EO1_UP_S2 ;
public static bool GBPAUD_OCO4_EO2_UP_S2 ;
public static bool GBPAUD_OCO4_EO3_UP_S2 ;
public static bool GBPAUD_OCO4_EO4_UP_S2 ;
public static bool GBPAUD_OCO4_EO5_UP_S2 ;
public static bool GBPAUD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_UP_S2> GBPAUD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_UP_S2> GBPAUD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_UP_S2> GBPAUD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_UP_S2> GBPAUD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_UP_S2> GBPAUD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_UP_S2> GBPAUD_OOFE_OCO4_UP_S2_6 ;
public static GBPAUD_OCO4_UP_S2 GBPAUD_PFO_OCO4_UP_S2_1 ;
public static GBPAUD_OCO4_UP_S2 GBPAUD_PFO_OCO4_UP_S2_2 ;
public static GBPAUD_OCO4_UP_S2 GBPAUD_PFO_OCO4_UP_S2_3 ;
public static GBPAUD_OCO4_UP_S2 GBPAUD_PFO_OCO4_UP_S2_4 ;
public static GBPAUD_OCO4_UP_S2 GBPAUD_PFO_OCO4_UP_S2_5 ;
public static GBPAUD_OCO4_UP_S2 GBPAUD_PFO_OCO4_UP_S2_6 ;
public static List<GBPAUD_OCO4_UP_S2> GBPAUD_UP_S2_OCO4Sets1 = new List<GBPAUD_OCO4_UP_S2>();
public static List<GBPAUD_OCO4_UP_S2> GBPAUD_UP_S2_OCO4Sets2 = new List<GBPAUD_OCO4_UP_S2>();
public static List<GBPAUD_OCO4_UP_S2> GBPAUD_UP_S2_OCO4Sets3 = new List<GBPAUD_OCO4_UP_S2>();
public static List<GBPAUD_OCO4_UP_S2> GBPAUD_UP_S2_OCO4Sets4 = new List<GBPAUD_OCO4_UP_S2>();
public static List<GBPAUD_OCO4_UP_S2> GBPAUD_UP_S2_OCO4Sets5 = new List<GBPAUD_OCO4_UP_S2>();
public static List<GBPAUD_OCO4_UP_S2> GBPAUD_UP_S2_OCO4Sets6 = new List<GBPAUD_OCO4_UP_S2>();
public static bool GBPAUD_OCO4_UP_S2_IsReady = true;
public static bool GBPAUD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket GBPAUD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket GBPAUD_OCO4_MO6_DOWN_S2 ;
public static int GBPAUD_OCO4_EO1_DOWN_S2_ID ;
public static int GBPAUD_OCO4_EO2_DOWN_S2_ID ;
public static int GBPAUD_OCO4_EO3_DOWN_S2_ID ;
public static int GBPAUD_OCO4_EO4_DOWN_S2_ID ;
public static int GBPAUD_OCO4_EO5_DOWN_S2_ID ;
public static int GBPAUD_OCO4_EO6_DOWN_S2_ID ;
public static bool GBPAUD_OCO4_EO1_DOWN_S2 ;
public static bool GBPAUD_OCO4_EO2_DOWN_S2 ;
public static bool GBPAUD_OCO4_EO3_DOWN_S2 ;
public static bool GBPAUD_OCO4_EO4_DOWN_S2 ;
public static bool GBPAUD_OCO4_EO5_DOWN_S2 ;
public static bool GBPAUD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_DOWN_S2> GBPAUD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_DOWN_S2> GBPAUD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_DOWN_S2> GBPAUD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_DOWN_S2> GBPAUD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_DOWN_S2> GBPAUD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, GBPAUD_OCO4_DOWN_S2> GBPAUD_OOFE_OCO4_DOWN_S2_6 ;
public static GBPAUD_OCO4_DOWN_S2 GBPAUD_PFO_OCO4_DOWN_S2_1 ;
public static GBPAUD_OCO4_DOWN_S2 GBPAUD_PFO_OCO4_DOWN_S2_2 ;
public static GBPAUD_OCO4_DOWN_S2 GBPAUD_PFO_OCO4_DOWN_S2_3 ;
public static GBPAUD_OCO4_DOWN_S2 GBPAUD_PFO_OCO4_DOWN_S2_4 ;
public static GBPAUD_OCO4_DOWN_S2 GBPAUD_PFO_OCO4_DOWN_S2_5 ;
public static GBPAUD_OCO4_DOWN_S2 GBPAUD_PFO_OCO4_DOWN_S2_6 ;
public static List<GBPAUD_OCO4_DOWN_S2> GBPAUD_DOWN_S2_OCO4Sets1 = new List<GBPAUD_OCO4_DOWN_S2>();
public static List<GBPAUD_OCO4_DOWN_S2> GBPAUD_DOWN_S2_OCO4Sets2 = new List<GBPAUD_OCO4_DOWN_S2>();
public static List<GBPAUD_OCO4_DOWN_S2> GBPAUD_DOWN_S2_OCO4Sets3 = new List<GBPAUD_OCO4_DOWN_S2>();
public static List<GBPAUD_OCO4_DOWN_S2> GBPAUD_DOWN_S2_OCO4Sets4 = new List<GBPAUD_OCO4_DOWN_S2>();
public static List<GBPAUD_OCO4_DOWN_S2> GBPAUD_DOWN_S2_OCO4Sets5 = new List<GBPAUD_OCO4_DOWN_S2>();
public static List<GBPAUD_OCO4_DOWN_S2> GBPAUD_DOWN_S2_OCO4Sets6 = new List<GBPAUD_OCO4_DOWN_S2>();
public static bool GBPAUD_OCO4_DOWN_S2_IsReady = true;
public static bool GBPAUD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal GBPAUD_UP_S2_SL {get; set;}
public static decimal GBPAUD_UP_S2_TP1 {get; set;}
public static decimal GBPAUD_UP_S2_TP2 {get; set;}
public static decimal GBPAUD_UP_S2_TP3 {get; set;}
public static decimal GBPAUD_UP_S2_TP4 {get; set;}
public static decimal GBPAUD_UP_S2_TP5 {get; set;}
public static decimal GBPAUD_UP_S2_TP6 {get; set;}
public static decimal GBPAUD_DOWN_S2_SL {get; set;}
public static decimal GBPAUD_DOWN_S2_TP1 {get; set;}
public static decimal GBPAUD_DOWN_S2_TP2 {get; set;}
public static decimal GBPAUD_DOWN_S2_TP3 {get; set;}
public static decimal GBPAUD_DOWN_S2_TP4 {get; set;}
public static decimal GBPAUD_DOWN_S2_TP5 {get; set;}
public static decimal GBPAUD_DOWN_S2_TP6 {get; set;}
public static bool GBPAUD_Signal_Condition_UP_1 ;
public static bool GBPAUD_Signal_Condition_UP_2 ;
public static bool GBPAUD_Signal_Condition_UP_3 ;
public static bool GBPAUD_Signal_Condition_DOWN_S2 ;
public static int GBPAUD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int GBPAUD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int GBPAUD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int GBPAUD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int GBPAUD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int GBPAUD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int GBPAUD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int GBPAUD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int GBPAUD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int GBPAUD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_GBPAUD_UP_S2 ;
public static bool DOWM_GBPAUD_UP_S2 ;
public static bool DOWT_GBPAUD_UP_S2 ;
public static bool DOWW_GBPAUD_UP_S2 ;
public static bool DOWTH_GBPAUD_UP_S2 ;
public static bool DOWR_GBPAUD_DOWN_S2 ;
public static bool DOWM_GBPAUD_DOWN_S2 ;
public static bool DOWT_GBPAUD_DOWN_S2 ;
public static bool DOWW_GBPAUD_DOWN_S2 ;
public static bool DOWTH_GBPAUD_DOWN_S2 ;
public static int GBPAUD_quantity_UP_S2 ;
public static int GBPAUD_quantity_SL_UP_S2 ;
public static int GBPAUD_quantity_TP1_UP_S2 ;
public static int GBPAUD_quantity_TP2_UP_S2 ;
public static int GBPAUD_quantity_TP3_UP_S2 ;
public static int GBPAUD_quantity_TP4_UP_S2 ;
public static int GBPAUD_quantity_TP5_UP_S2;
public static int GBPAUD_quantity_TP6_UP_S2 ;
public static int GBPAUD_quantity_DOWN_S2 ;
public static int GBPAUD_quantity_SL_DOWN_S2 ;
public static int GBPAUD_quantity_TP1_DOWN_S2 ;
public static int GBPAUD_quantity_TP2_DOWN_S2 ;
public static int GBPAUD_quantity_TP3_DOWN_S2 ;
public static int GBPAUD_quantity_TP4_DOWN_S2 ;
public static int GBPAUD_quantity_TP5_DOWN_S2;
public static int GBPAUD_quantity_TP6_DOWN_S2 ;
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct EURJPY_OCO1_DOWN_S2
{
public EURJPY_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURJPY_OCO1_UP_S2
{
public EURJPY_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURJPY_UP_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURJPY_UP_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURJPY_UP_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURJPY_UP_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURJPY_UP_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURJPY_UP_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURJPY_UP_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURJPY_UP_S2_OCO1")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURJPY_OCO2_DOWN_S2
{
public EURJPY_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURJPY_OCO2_UP_S2
{
public EURJPY_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURJPY_UP_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURJPY_UP_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURJPY_UP_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURJPY_UP_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURJPY_UP_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURJPY_UP_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURJPY_UP_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURJPY_UP_S2_OCO2")
{
orderTicket.Cancel("EURJPY OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURJPY_OCO3_DOWN_S2
{
public EURJPY_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURJPY_OCO3_UP_S2
{
public EURJPY_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURJPY_UP_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURJPY_UP_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURJPY_UP_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURJPY_UP_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURJPY_UP_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURJPY_UP_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURJPY_UP_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURJPY_UP_S2_OCO3")
{
orderTicket.Cancel("EURJPY OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURJPY_OCO4_DOWN_S2
{
public EURJPY_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURJPY_OCO4_UP_S2
{
public EURJPY_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURJPY_UP_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURJPY_UP_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURJPY_UP_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURJPY_UP_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURJPY_UP_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURJPY_UP_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURJPY_UP_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURJPY_UP_S2_OCO4")
{
orderTicket.Cancel("EURJPY OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _NZDJPY;
///oco1 up
public static OrderTicket NZDJPY_OCO1_MO1_UP_S2;
public static OrderTicket NZDJPY_OCO1_MO2_UP_S2;
public static OrderTicket NZDJPY_OCO1_MO3_UP_S2;
public static OrderTicket NZDJPY_OCO1_MO4_UP_S2;
public static OrderTicket NZDJPY_OCO1_MO5_UP_S2;
public static OrderTicket NZDJPY_OCO1_MO6_UP_S2;
public static int NZDJPY_OCO1_EO1_UP_S2_ID ;
public static int NZDJPY_OCO1_EO2_UP_S2_ID ;
public static int NZDJPY_OCO1_EO3_UP_S2_ID ;
public static int NZDJPY_OCO1_EO4_UP_S2_ID ;
public static int NZDJPY_OCO1_EO5_UP_S2_ID ;
public static int NZDJPY_OCO1_EO6_UP_S2_ID ;
public static bool NZDJPY_OCO1_EO1_UP_S2 ;
public static bool NZDJPY_OCO1_EO2_UP_S2 ;
public static bool NZDJPY_OCO1_EO3_UP_S2 ;
public static bool NZDJPY_OCO1_EO4_UP_S2 ;
public static bool NZDJPY_OCO1_EO5_UP_S2 ;
public static bool NZDJPY_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_UP_S2> NZDJPY_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_UP_S2> NZDJPY_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_UP_S2> NZDJPY_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_UP_S2> NZDJPY_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_UP_S2> NZDJPY_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_UP_S2> NZDJPY_OOFE_OCO1_UP_S2_6 ;
public static NZDJPY_OCO1_UP_S2 NZDJPY_PFO_OCO1_UP_S2_1 ;
public static NZDJPY_OCO1_UP_S2 NZDJPY_PFO_OCO1_UP_S2_2 ;
public static NZDJPY_OCO1_UP_S2 NZDJPY_PFO_OCO1_UP_S2_3 ;
public static NZDJPY_OCO1_UP_S2 NZDJPY_PFO_OCO1_UP_S2_4 ;
public static NZDJPY_OCO1_UP_S2 NZDJPY_PFO_OCO1_UP_S2_5 ;
public static NZDJPY_OCO1_UP_S2 NZDJPY_PFO_OCO1_UP_S2_6 ;
public static List<NZDJPY_OCO1_UP_S2> NZDJPY_UP_S2_OCO1Sets1 = new List<NZDJPY_OCO1_UP_S2>();
public static List<NZDJPY_OCO1_UP_S2> NZDJPY_UP_S2_OCO1Sets2 = new List<NZDJPY_OCO1_UP_S2>();
public static List<NZDJPY_OCO1_UP_S2> NZDJPY_UP_S2_OCO1Sets3 = new List<NZDJPY_OCO1_UP_S2>();
public static List<NZDJPY_OCO1_UP_S2> NZDJPY_UP_S2_OCO1Sets4 = new List<NZDJPY_OCO1_UP_S2>();
public static List<NZDJPY_OCO1_UP_S2> NZDJPY_UP_S2_OCO1Sets5 = new List<NZDJPY_OCO1_UP_S2>();
public static List<NZDJPY_OCO1_UP_S2> NZDJPY_UP_S2_OCO1Sets6 = new List<NZDJPY_OCO1_UP_S2>();
public static bool NZDJPY_OCO1_UP_S2_IsReady = true;
public static bool NZDJPY_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket NZDJPY_OCO1_MO1_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO1_MO2_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO1_MO3_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO1_MO4_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO1_MO5_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO1_MO6_DOWN_S2 ;
public static int NZDJPY_OCO1_EO1_DOWN_S2_ID ;
public static int NZDJPY_OCO1_EO2_DOWN_S2_ID ;
public static int NZDJPY_OCO1_EO3_DOWN_S2_ID ;
public static int NZDJPY_OCO1_EO4_DOWN_S2_ID ;
public static int NZDJPY_OCO1_EO5_DOWN_S2_ID ;
public static int NZDJPY_OCO1_EO6_DOWN_S2_ID ;
public static bool NZDJPY_OCO1_EO1_DOWN_S2 ;
public static bool NZDJPY_OCO1_EO2_DOWN_S2 ;
public static bool NZDJPY_OCO1_EO3_DOWN_S2 ;
public static bool NZDJPY_OCO1_EO4_DOWN_S2 ;
public static bool NZDJPY_OCO1_EO5_DOWN_S2 ;
public static bool NZDJPY_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_DOWN_S2> NZDJPY_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_DOWN_S2> NZDJPY_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_DOWN_S2> NZDJPY_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_DOWN_S2> NZDJPY_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_DOWN_S2> NZDJPY_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO1_DOWN_S2> NZDJPY_OOFE_OCO1_DOWN_S2_6 ;
public static NZDJPY_OCO1_DOWN_S2 NZDJPY_PFO_OCO1_DOWN_S2_1 ;
public static NZDJPY_OCO1_DOWN_S2 NZDJPY_PFO_OCO1_DOWN_S2_2 ;
public static NZDJPY_OCO1_DOWN_S2 NZDJPY_PFO_OCO1_DOWN_S2_3 ;
public static NZDJPY_OCO1_DOWN_S2 NZDJPY_PFO_OCO1_DOWN_S2_4 ;
public static NZDJPY_OCO1_DOWN_S2 NZDJPY_PFO_OCO1_DOWN_S2_5 ;
public static NZDJPY_OCO1_DOWN_S2 NZDJPY_PFO_OCO1_DOWN_S2_6 ;
public static List<NZDJPY_OCO1_DOWN_S2> NZDJPY_DOWN_S2_OCO1Sets1 = new List<NZDJPY_OCO1_DOWN_S2>();
public static List<NZDJPY_OCO1_DOWN_S2> NZDJPY_DOWN_S2_OCO1Sets2 = new List<NZDJPY_OCO1_DOWN_S2>();
public static List<NZDJPY_OCO1_DOWN_S2> NZDJPY_DOWN_S2_OCO1Sets3 = new List<NZDJPY_OCO1_DOWN_S2>();
public static List<NZDJPY_OCO1_DOWN_S2> NZDJPY_DOWN_S2_OCO1Sets4 = new List<NZDJPY_OCO1_DOWN_S2>();
public static List<NZDJPY_OCO1_DOWN_S2> NZDJPY_DOWN_S2_OCO1Sets5 = new List<NZDJPY_OCO1_DOWN_S2>();
public static List<NZDJPY_OCO1_DOWN_S2> NZDJPY_DOWN_S2_OCO1Sets6 = new List<NZDJPY_OCO1_DOWN_S2>();
public static bool NZDJPY_OCO1_DOWN_S2_IsReady = true;
public static bool NZDJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket NZDJPY_OCO2_MO1_UP_S2 ;
public static OrderTicket NZDJPY_OCO2_MO2_UP_S2 ;
public static OrderTicket NZDJPY_OCO2_MO3_UP_S2 ;
public static OrderTicket NZDJPY_OCO2_MO4_UP_S2 ;
public static OrderTicket NZDJPY_OCO2_MO5_UP_S2 ;
public static OrderTicket NZDJPY_OCO2_MO6_UP_S2 ;
public static int NZDJPY_OCO2_EO1_UP_S2_ID ;
public static int NZDJPY_OCO2_EO2_UP_S2_ID ;
public static int NZDJPY_OCO2_EO3_UP_S2_ID ;
public static int NZDJPY_OCO2_EO4_UP_S2_ID ;
public static int NZDJPY_OCO2_EO5_UP_S2_ID ;
public static int NZDJPY_OCO2_EO6_UP_S2_ID ;
public static bool NZDJPY_OCO2_EO1_UP_S2 ;
public static bool NZDJPY_OCO2_EO2_UP_S2 ;
public static bool NZDJPY_OCO2_EO3_UP_S2 ;
public static bool NZDJPY_OCO2_EO4_UP_S2 ;
public static bool NZDJPY_OCO2_EO5_UP_S2 ;
public static bool NZDJPY_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_UP_S2> NZDJPY_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_UP_S2> NZDJPY_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_UP_S2> NZDJPY_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_UP_S2> NZDJPY_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_UP_S2> NZDJPY_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_UP_S2> NZDJPY_OOFE_OCO2_UP_S2_6 ;
public static NZDJPY_OCO2_UP_S2 NZDJPY_PFO_OCO2_UP_S2_1 ;
public static NZDJPY_OCO2_UP_S2 NZDJPY_PFO_OCO2_UP_S2_2 ;
public static NZDJPY_OCO2_UP_S2 NZDJPY_PFO_OCO2_UP_S2_3 ;
public static NZDJPY_OCO2_UP_S2 NZDJPY_PFO_OCO2_UP_S2_4 ;
public static NZDJPY_OCO2_UP_S2 NZDJPY_PFO_OCO2_UP_S2_5 ;
public static NZDJPY_OCO2_UP_S2 NZDJPY_PFO_OCO2_UP_S2_6 ;
public static List<NZDJPY_OCO2_UP_S2> NZDJPY_UP_S2_OCO2Sets1 = new List<NZDJPY_OCO2_UP_S2>();
public static List<NZDJPY_OCO2_UP_S2> NZDJPY_UP_S2_OCO2Sets2 = new List<NZDJPY_OCO2_UP_S2>();
public static List<NZDJPY_OCO2_UP_S2> NZDJPY_UP_S2_OCO2Sets3 = new List<NZDJPY_OCO2_UP_S2>();
public static List<NZDJPY_OCO2_UP_S2> NZDJPY_UP_S2_OCO2Sets4 = new List<NZDJPY_OCO2_UP_S2>();
public static List<NZDJPY_OCO2_UP_S2> NZDJPY_UP_S2_OCO2Sets5 = new List<NZDJPY_OCO2_UP_S2>();
public static List<NZDJPY_OCO2_UP_S2> NZDJPY_UP_S2_OCO2Sets6 = new List<NZDJPY_OCO2_UP_S2>();
public static bool NZDJPY_OCO2_UP_S2_IsReady = true;
public static bool NZDJPY_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket NZDJPY_OCO2_MO1_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO2_MO2_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO2_MO3_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO2_MO4_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO2_MO5_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO2_MO6_DOWN_S2 ;
public static int NZDJPY_OCO2_EO1_DOWN_S2_ID ;
public static int NZDJPY_OCO2_EO2_DOWN_S2_ID ;
public static int NZDJPY_OCO2_EO3_DOWN_S2_ID ;
public static int NZDJPY_OCO2_EO4_DOWN_S2_ID ;
public static int NZDJPY_OCO2_EO5_DOWN_S2_ID ;
public static int NZDJPY_OCO2_EO6_DOWN_S2_ID ;
public static bool NZDJPY_OCO2_EO1_DOWN_S2 ;
public static bool NZDJPY_OCO2_EO2_DOWN_S2 ;
public static bool NZDJPY_OCO2_EO3_DOWN_S2 ;
public static bool NZDJPY_OCO2_EO4_DOWN_S2 ;
public static bool NZDJPY_OCO2_EO5_DOWN_S2 ;
public static bool NZDJPY_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_DOWN_S2> NZDJPY_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_DOWN_S2> NZDJPY_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_DOWN_S2> NZDJPY_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_DOWN_S2> NZDJPY_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_DOWN_S2> NZDJPY_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO2_DOWN_S2> NZDJPY_OOFE_OCO2_DOWN_S2_6 ;
public static NZDJPY_OCO2_DOWN_S2 NZDJPY_PFO_OCO2_DOWN_S2_1 ;
public static NZDJPY_OCO2_DOWN_S2 NZDJPY_PFO_OCO2_DOWN_S2_2 ;
public static NZDJPY_OCO2_DOWN_S2 NZDJPY_PFO_OCO2_DOWN_S2_3 ;
public static NZDJPY_OCO2_DOWN_S2 NZDJPY_PFO_OCO2_DOWN_S2_4 ;
public static NZDJPY_OCO2_DOWN_S2 NZDJPY_PFO_OCO2_DOWN_S2_5 ;
public static NZDJPY_OCO2_DOWN_S2 NZDJPY_PFO_OCO2_DOWN_S2_6 ;
public static List<NZDJPY_OCO2_DOWN_S2> NZDJPY_DOWN_S2_OCO2Sets1 = new List<NZDJPY_OCO2_DOWN_S2>();
public static List<NZDJPY_OCO2_DOWN_S2> NZDJPY_DOWN_S2_OCO2Sets2 = new List<NZDJPY_OCO2_DOWN_S2>();
public static List<NZDJPY_OCO2_DOWN_S2> NZDJPY_DOWN_S2_OCO2Sets3 = new List<NZDJPY_OCO2_DOWN_S2>();
public static List<NZDJPY_OCO2_DOWN_S2> NZDJPY_DOWN_S2_OCO2Sets4 = new List<NZDJPY_OCO2_DOWN_S2>();
public static List<NZDJPY_OCO2_DOWN_S2> NZDJPY_DOWN_S2_OCO2Sets5 = new List<NZDJPY_OCO2_DOWN_S2>();
public static List<NZDJPY_OCO2_DOWN_S2> NZDJPY_DOWN_S2_OCO2Sets6 = new List<NZDJPY_OCO2_DOWN_S2>();
public static bool NZDJPY_OCO2_DOWN_S2_IsReady = true;
public static bool NZDJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket NZDJPY_OCO3_MO1_UP_S2 ;
public static OrderTicket NZDJPY_OCO3_MO2_UP_S2 ;
public static OrderTicket NZDJPY_OCO3_MO3_UP_S2 ;
public static OrderTicket NZDJPY_OCO3_MO4_UP_S2 ;
public static OrderTicket NZDJPY_OCO3_MO5_UP_S2 ;
public static OrderTicket NZDJPY_OCO3_MO6_UP_S2 ;
public static int NZDJPY_OCO3_EO1_UP_S2_ID ;
public static int NZDJPY_OCO3_EO2_UP_S2_ID ;
public static int NZDJPY_OCO3_EO3_UP_S2_ID ;
public static int NZDJPY_OCO3_EO4_UP_S2_ID ;
public static int NZDJPY_OCO3_EO5_UP_S2_ID ;
public static int NZDJPY_OCO3_EO6_UP_S2_ID ;
public static bool NZDJPY_OCO3_EO1_UP_S2 ;
public static bool NZDJPY_OCO3_EO2_UP_S2 ;
public static bool NZDJPY_OCO3_EO3_UP_S2 ;
public static bool NZDJPY_OCO3_EO4_UP_S2 ;
public static bool NZDJPY_OCO3_EO5_UP_S2 ;
public static bool NZDJPY_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_UP_S2> NZDJPY_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_UP_S2> NZDJPY_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_UP_S2> NZDJPY_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_UP_S2> NZDJPY_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_UP_S2> NZDJPY_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_UP_S2> NZDJPY_OOFE_OCO3_UP_S2_6 ;
public static NZDJPY_OCO3_UP_S2 NZDJPY_PFO_OCO3_UP_S2_1 ;
public static NZDJPY_OCO3_UP_S2 NZDJPY_PFO_OCO3_UP_S2_2 ;
public static NZDJPY_OCO3_UP_S2 NZDJPY_PFO_OCO3_UP_S2_3 ;
public static NZDJPY_OCO3_UP_S2 NZDJPY_PFO_OCO3_UP_S2_4 ;
public static NZDJPY_OCO3_UP_S2 NZDJPY_PFO_OCO3_UP_S2_5 ;
public static NZDJPY_OCO3_UP_S2 NZDJPY_PFO_OCO3_UP_S2_6 ;
public static List<NZDJPY_OCO3_UP_S2> NZDJPY_UP_S2_OCO3Sets1 = new List<NZDJPY_OCO3_UP_S2>();
public static List<NZDJPY_OCO3_UP_S2> NZDJPY_UP_S2_OCO3Sets2 = new List<NZDJPY_OCO3_UP_S2>();
public static List<NZDJPY_OCO3_UP_S2> NZDJPY_UP_S2_OCO3Sets3 = new List<NZDJPY_OCO3_UP_S2>();
public static List<NZDJPY_OCO3_UP_S2> NZDJPY_UP_S2_OCO3Sets4 = new List<NZDJPY_OCO3_UP_S2>();
public static List<NZDJPY_OCO3_UP_S2> NZDJPY_UP_S2_OCO3Sets5 = new List<NZDJPY_OCO3_UP_S2>();
public static List<NZDJPY_OCO3_UP_S2> NZDJPY_UP_S2_OCO3Sets6 = new List<NZDJPY_OCO3_UP_S2>();
public static bool NZDJPY_OCO3_UP_S2_IsReady = true;
public static bool NZDJPY_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket NZDJPY_OCO3_MO1_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO3_MO2_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO3_MO3_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO3_MO4_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO3_MO5_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO3_MO6_DOWN_S2 ;
public static int NZDJPY_OCO3_EO1_DOWN_S2_ID ;
public static int NZDJPY_OCO3_EO2_DOWN_S2_ID ;
public static int NZDJPY_OCO3_EO3_DOWN_S2_ID ;
public static int NZDJPY_OCO3_EO4_DOWN_S2_ID ;
public static int NZDJPY_OCO3_EO5_DOWN_S2_ID ;
public static int NZDJPY_OCO3_EO6_DOWN_S2_ID ;
public static bool NZDJPY_OCO3_EO1_DOWN_S2 ;
public static bool NZDJPY_OCO3_EO2_DOWN_S2 ;
public static bool NZDJPY_OCO3_EO3_DOWN_S2 ;
public static bool NZDJPY_OCO3_EO4_DOWN_S2 ;
public static bool NZDJPY_OCO3_EO5_DOWN_S2 ;
public static bool NZDJPY_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_DOWN_S2> NZDJPY_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_DOWN_S2> NZDJPY_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_DOWN_S2> NZDJPY_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_DOWN_S2> NZDJPY_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_DOWN_S2> NZDJPY_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO3_DOWN_S2> NZDJPY_OOFE_OCO3_DOWN_S2_6 ;
public static NZDJPY_OCO3_DOWN_S2 NZDJPY_PFO_OCO3_DOWN_S2_1 ;
public static NZDJPY_OCO3_DOWN_S2 NZDJPY_PFO_OCO3_DOWN_S2_2 ;
public static NZDJPY_OCO3_DOWN_S2 NZDJPY_PFO_OCO3_DOWN_S2_3 ;
public static NZDJPY_OCO3_DOWN_S2 NZDJPY_PFO_OCO3_DOWN_S2_4 ;
public static NZDJPY_OCO3_DOWN_S2 NZDJPY_PFO_OCO3_DOWN_S2_5 ;
public static NZDJPY_OCO3_DOWN_S2 NZDJPY_PFO_OCO3_DOWN_S2_6 ;
public static List<NZDJPY_OCO3_DOWN_S2> NZDJPY_DOWN_S2_OCO3Sets1 = new List<NZDJPY_OCO3_DOWN_S2>();
public static List<NZDJPY_OCO3_DOWN_S2> NZDJPY_DOWN_S2_OCO3Sets2 = new List<NZDJPY_OCO3_DOWN_S2>();
public static List<NZDJPY_OCO3_DOWN_S2> NZDJPY_DOWN_S2_OCO3Sets3 = new List<NZDJPY_OCO3_DOWN_S2>();
public static List<NZDJPY_OCO3_DOWN_S2> NZDJPY_DOWN_S2_OCO3Sets4 = new List<NZDJPY_OCO3_DOWN_S2>();
public static List<NZDJPY_OCO3_DOWN_S2> NZDJPY_DOWN_S2_OCO3Sets5 = new List<NZDJPY_OCO3_DOWN_S2>();
public static List<NZDJPY_OCO3_DOWN_S2> NZDJPY_DOWN_S2_OCO3Sets6 = new List<NZDJPY_OCO3_DOWN_S2>();
public static bool NZDJPY_OCO3_DOWN_S2_IsReady = true;
public static bool NZDJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket NZDJPY_OCO4_MO1_UP_S2 ;
public static OrderTicket NZDJPY_OCO4_MO2_UP_S2 ;
public static OrderTicket NZDJPY_OCO4_MO3_UP_S2 ;
public static OrderTicket NZDJPY_OCO4_MO4_UP_S2 ;
public static OrderTicket NZDJPY_OCO4_MO5_UP_S2 ;
public static OrderTicket NZDJPY_OCO4_MO6_UP_S2 ;
public static int NZDJPY_OCO4_EO1_UP_S2_ID ;
public static int NZDJPY_OCO4_EO2_UP_S2_ID ;
public static int NZDJPY_OCO4_EO3_UP_S2_ID ;
public static int NZDJPY_OCO4_EO4_UP_S2_ID ;
public static int NZDJPY_OCO4_EO5_UP_S2_ID ;
public static int NZDJPY_OCO4_EO6_UP_S2_ID ;
public static bool NZDJPY_OCO4_EO1_UP_S2 ;
public static bool NZDJPY_OCO4_EO2_UP_S2 ;
public static bool NZDJPY_OCO4_EO3_UP_S2 ;
public static bool NZDJPY_OCO4_EO4_UP_S2 ;
public static bool NZDJPY_OCO4_EO5_UP_S2 ;
public static bool NZDJPY_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_UP_S2> NZDJPY_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_UP_S2> NZDJPY_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_UP_S2> NZDJPY_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_UP_S2> NZDJPY_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_UP_S2> NZDJPY_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_UP_S2> NZDJPY_OOFE_OCO4_UP_S2_6 ;
public static NZDJPY_OCO4_UP_S2 NZDJPY_PFO_OCO4_UP_S2_1 ;
public static NZDJPY_OCO4_UP_S2 NZDJPY_PFO_OCO4_UP_S2_2 ;
public static NZDJPY_OCO4_UP_S2 NZDJPY_PFO_OCO4_UP_S2_3 ;
public static NZDJPY_OCO4_UP_S2 NZDJPY_PFO_OCO4_UP_S2_4 ;
public static NZDJPY_OCO4_UP_S2 NZDJPY_PFO_OCO4_UP_S2_5 ;
public static NZDJPY_OCO4_UP_S2 NZDJPY_PFO_OCO4_UP_S2_6 ;
public static List<NZDJPY_OCO4_UP_S2> NZDJPY_UP_S2_OCO4Sets1 = new List<NZDJPY_OCO4_UP_S2>();
public static List<NZDJPY_OCO4_UP_S2> NZDJPY_UP_S2_OCO4Sets2 = new List<NZDJPY_OCO4_UP_S2>();
public static List<NZDJPY_OCO4_UP_S2> NZDJPY_UP_S2_OCO4Sets3 = new List<NZDJPY_OCO4_UP_S2>();
public static List<NZDJPY_OCO4_UP_S2> NZDJPY_UP_S2_OCO4Sets4 = new List<NZDJPY_OCO4_UP_S2>();
public static List<NZDJPY_OCO4_UP_S2> NZDJPY_UP_S2_OCO4Sets5 = new List<NZDJPY_OCO4_UP_S2>();
public static List<NZDJPY_OCO4_UP_S2> NZDJPY_UP_S2_OCO4Sets6 = new List<NZDJPY_OCO4_UP_S2>();
public static bool NZDJPY_OCO4_UP_S2_IsReady = true;
public static bool NZDJPY_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket NZDJPY_OCO4_MO1_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO4_MO2_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO4_MO3_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO4_MO4_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO4_MO5_DOWN_S2 ;
public static OrderTicket NZDJPY_OCO4_MO6_DOWN_S2 ;
public static int NZDJPY_OCO4_EO1_DOWN_S2_ID ;
public static int NZDJPY_OCO4_EO2_DOWN_S2_ID ;
public static int NZDJPY_OCO4_EO3_DOWN_S2_ID ;
public static int NZDJPY_OCO4_EO4_DOWN_S2_ID ;
public static int NZDJPY_OCO4_EO5_DOWN_S2_ID ;
public static int NZDJPY_OCO4_EO6_DOWN_S2_ID ;
public static bool NZDJPY_OCO4_EO1_DOWN_S2 ;
public static bool NZDJPY_OCO4_EO2_DOWN_S2 ;
public static bool NZDJPY_OCO4_EO3_DOWN_S2 ;
public static bool NZDJPY_OCO4_EO4_DOWN_S2 ;
public static bool NZDJPY_OCO4_EO5_DOWN_S2 ;
public static bool NZDJPY_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_DOWN_S2> NZDJPY_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_DOWN_S2> NZDJPY_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_DOWN_S2> NZDJPY_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_DOWN_S2> NZDJPY_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_DOWN_S2> NZDJPY_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDJPY_OCO4_DOWN_S2> NZDJPY_OOFE_OCO4_DOWN_S2_6 ;
public static NZDJPY_OCO4_DOWN_S2 NZDJPY_PFO_OCO4_DOWN_S2_1 ;
public static NZDJPY_OCO4_DOWN_S2 NZDJPY_PFO_OCO4_DOWN_S2_2 ;
public static NZDJPY_OCO4_DOWN_S2 NZDJPY_PFO_OCO4_DOWN_S2_3 ;
public static NZDJPY_OCO4_DOWN_S2 NZDJPY_PFO_OCO4_DOWN_S2_4 ;
public static NZDJPY_OCO4_DOWN_S2 NZDJPY_PFO_OCO4_DOWN_S2_5 ;
public static NZDJPY_OCO4_DOWN_S2 NZDJPY_PFO_OCO4_DOWN_S2_6 ;
public static List<NZDJPY_OCO4_DOWN_S2> NZDJPY_DOWN_S2_OCO4Sets1 = new List<NZDJPY_OCO4_DOWN_S2>();
public static List<NZDJPY_OCO4_DOWN_S2> NZDJPY_DOWN_S2_OCO4Sets2 = new List<NZDJPY_OCO4_DOWN_S2>();
public static List<NZDJPY_OCO4_DOWN_S2> NZDJPY_DOWN_S2_OCO4Sets3 = new List<NZDJPY_OCO4_DOWN_S2>();
public static List<NZDJPY_OCO4_DOWN_S2> NZDJPY_DOWN_S2_OCO4Sets4 = new List<NZDJPY_OCO4_DOWN_S2>();
public static List<NZDJPY_OCO4_DOWN_S2> NZDJPY_DOWN_S2_OCO4Sets5 = new List<NZDJPY_OCO4_DOWN_S2>();
public static List<NZDJPY_OCO4_DOWN_S2> NZDJPY_DOWN_S2_OCO4Sets6 = new List<NZDJPY_OCO4_DOWN_S2>();
public static bool NZDJPY_OCO4_DOWN_S2_IsReady = true;
public static bool NZDJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal NZDJPY_UP_S2_SL {get; set;}
public static decimal NZDJPY_UP_S2_TP1 {get; set;}
public static decimal NZDJPY_UP_S2_TP2 {get; set;}
public static decimal NZDJPY_UP_S2_TP3 {get; set;}
public static decimal NZDJPY_UP_S2_TP4 {get; set;}
public static decimal NZDJPY_UP_S2_TP5 {get; set;}
public static decimal NZDJPY_UP_S2_TP6 {get; set;}
public static decimal NZDJPY_DOWN_S2_SL {get; set;}
public static decimal NZDJPY_DOWN_S2_TP1 {get; set;}
public static decimal NZDJPY_DOWN_S2_TP2 {get; set;}
public static decimal NZDJPY_DOWN_S2_TP3 {get; set;}
public static decimal NZDJPY_DOWN_S2_TP4 {get; set;}
public static decimal NZDJPY_DOWN_S2_TP5 {get; set;}
public static decimal NZDJPY_DOWN_S2_TP6 {get; set;}
public static bool NZDJPY_Signal_Condition_UP_1 ;
public static bool NZDJPY_Signal_Condition_UP_2 ;
public static bool NZDJPY_Signal_Condition_UP_3 ;
public static bool NZDJPY_Signal_Condition_DOWN_S2 ;
public static int NZDJPY_UP_S2_OCO_DELAY_7DAY = 10080;
public static int NZDJPY_UP_S2_OCOM_DELAY_DAY = 4320;
public static int NZDJPY_UP_S2_OCOT_DELAY_DAY = 2880;
public static int NZDJPY_UP_S2_OCOW_DELAY_DAY = 1440;
public static int NZDJPY_UP_S2_OCOTH_DELAY_DAY = 720;
public static int NZDJPY_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int NZDJPY_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int NZDJPY_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int NZDJPY_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int NZDJPY_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_NZDJPY_UP_S2 ;
public static bool DOWM_NZDJPY_UP_S2 ;
public static bool DOWT_NZDJPY_UP_S2 ;
public static bool DOWW_NZDJPY_UP_S2 ;
public static bool DOWTH_NZDJPY_UP_S2 ;
public static bool DOWR_NZDJPY_DOWN_S2 ;
public static bool DOWM_NZDJPY_DOWN_S2 ;
public static bool DOWT_NZDJPY_DOWN_S2 ;
public static bool DOWW_NZDJPY_DOWN_S2 ;
public static bool DOWTH_NZDJPY_DOWN_S2 ;
public static int NZDJPY_quantity_UP_S2 ;
public static int NZDJPY_quantity_SL_UP_S2 ;
public static int NZDJPY_quantity_TP1_UP_S2 ;
public static int NZDJPY_quantity_TP2_UP_S2 ;
public static int NZDJPY_quantity_TP3_UP_S2 ;
public static int NZDJPY_quantity_TP4_UP_S2 ;
public static int NZDJPY_quantity_TP5_UP_S2;
public static int NZDJPY_quantity_TP6_UP_S2 ;
public static int NZDJPY_quantity_DOWN_S2 ;
public static int NZDJPY_quantity_SL_DOWN_S2 ;
public static int NZDJPY_quantity_TP1_DOWN_S2 ;
public static int NZDJPY_quantity_TP2_DOWN_S2 ;
public static int NZDJPY_quantity_TP3_DOWN_S2 ;
public static int NZDJPY_quantity_TP4_DOWN_S2 ;
public static int NZDJPY_quantity_TP5_DOWN_S2;
public static int NZDJPY_quantity_TP6_DOWN_S2 ;
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_USDCAD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_USDCAD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("USDCAD_UP_S2_OCO1")))
{
Base.USDCAD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCAD_UP_S2_OCO2")))
{
Base.USDCAD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCAD_UP_S2_OCO3")))
{
Base.USDCAD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCAD_UP_S2_OCO4")))
{
Base.USDCAD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("USDCAD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.USDCAD_OCO1_EO1_UP_S2)
Base.USDCAD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO2_UP_S2)
Base.USDCAD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO3_UP_S2)
Base.USDCAD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO4_UP_S2)
Base.USDCAD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO5_UP_S2)
Base.USDCAD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO6_UP_S2)
Base.USDCAD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCAD_UP_S2_OCO_DELAY_7DAY))
{
int USDCAD_OCO1S1_UP_S2 = 0;
for (; USDCAD_OCO1S1_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets1.Count; USDCAD_OCO1S1_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets1[USDCAD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO1Sets1[USDCAD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_1__Time out_OCO1");
Base.USDCAD_UP_S2_OCO1Sets1.Clear();
USDCAD_OCO1S1_UP_S2 = 0;
break;
}
int USDCAD_OCO1S2_UP_S2 = 0;
for (; USDCAD_OCO1S2_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets2.Count; USDCAD_OCO1S2_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets2[USDCAD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO1Sets2[USDCAD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_2__Time out_OCO1");
Base.USDCAD_UP_S2_OCO1Sets2.Clear();
USDCAD_OCO1S2_UP_S2 = 0;
break;
}
int USDCAD_OCO1S3_UP_S2 = 0;
for (; USDCAD_OCO1S3_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets3.Count; USDCAD_OCO1S3_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets3[USDCAD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO1Sets3[USDCAD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_3__Time out_OCO1");
Base.USDCAD_UP_S2_OCO1Sets3.Clear();
USDCAD_OCO1S3_UP_S2 = 0;
break;
}
int USDCAD_OCO1S4_UP_S2 = 0;
for (; USDCAD_OCO1S4_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets4.Count; USDCAD_OCO1S4_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets4[USDCAD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO1Sets4[USDCAD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_4__Time out_OCO1");
Base.USDCAD_UP_S2_OCO1Sets4.Clear();
USDCAD_OCO1S4_UP_S2 = 0;
break;
}
int USDCAD_OCO1S5_UP_S2 = 0;
for (; USDCAD_OCO1S5_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets5.Count; USDCAD_OCO1S5_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets5[USDCAD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO1Sets5[USDCAD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_5__Time out_OCO1");
Base.USDCAD_UP_S2_OCO1Sets5.Clear();
USDCAD_OCO1S5_UP_S2 = 0;
break;
}
int USDCAD_OCO1S6_UP_S2 = 0;
for (; USDCAD_OCO1S6_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets6.Count; USDCAD_OCO1S6_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets6[USDCAD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO1Sets6[USDCAD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_6__Time out_OCO1");
Base.USDCAD_UP_S2_OCO1Sets6.Clear();
USDCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO2_EO1_UP_S2)
Base.USDCAD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO2_UP_S2)
Base.USDCAD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO3_UP_S2)
Base.USDCAD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO4_UP_S2)
Base.USDCAD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO5_UP_S2)
Base.USDCAD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO6_UP_S2)
Base.USDCAD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCAD_UP_S2_OCO_DELAY_7DAY))
{
int USDCAD_OCO2S1_UP_S2 = 0;
for (; USDCAD_OCO2S1_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets1.Count; USDCAD_OCO2S1_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets1[USDCAD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO2Sets1[USDCAD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_1__Time out_OCO2");
Base.USDCAD_UP_S2_OCO2Sets1.Clear();
USDCAD_OCO2S1_UP_S2 = 0;
break;
}
int USDCAD_OCO2S2_UP_S2 = 0;
for (; USDCAD_OCO2S2_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets2.Count; USDCAD_OCO2S2_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets2[USDCAD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO2Sets2[USDCAD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_2__Time out_OCO2");
Base.USDCAD_UP_S2_OCO2Sets2.Clear();
USDCAD_OCO2S2_UP_S2 = 0;
break;
}
int USDCAD_OCO2S3_UP_S2 = 0;
for (; USDCAD_OCO2S3_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets3.Count; USDCAD_OCO2S3_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets3[USDCAD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO2Sets3[USDCAD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_3__Time out_OCO2");
Base.USDCAD_UP_S2_OCO2Sets3.Clear();
USDCAD_OCO2S3_UP_S2 = 0;
break;
}
int USDCAD_OCO2S4_UP_S2 = 0;
for (; USDCAD_OCO2S4_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets4.Count; USDCAD_OCO2S4_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets4[USDCAD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO2Sets4[USDCAD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_4__Time out_OCO2");
Base.USDCAD_UP_S2_OCO2Sets4.Clear();
USDCAD_OCO2S4_UP_S2 = 0;
break;
}
int USDCAD_OCO2S5_UP_S2 = 0;
for (; USDCAD_OCO2S5_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets5.Count; USDCAD_OCO2S5_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets5[USDCAD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO2Sets5[USDCAD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_5__Time out_OCO2");
Base.USDCAD_UP_S2_OCO2Sets5.Clear();
USDCAD_OCO2S5_UP_S2 = 0;
break;
}
int USDCAD_OCO2S6_UP_S2 = 0;
for (; USDCAD_OCO2S6_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets6.Count; USDCAD_OCO2S6_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets6[USDCAD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO2Sets6[USDCAD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_6__Time out_OCO2");
Base.USDCAD_UP_S2_OCO2Sets6.Clear();
USDCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO3_EO1_UP_S2)
Base.USDCAD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO2_UP_S2)
Base.USDCAD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO3_UP_S2)
Base.USDCAD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO4_UP_S2)
Base.USDCAD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO5_UP_S2)
Base.USDCAD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO6_UP_S2)
Base.USDCAD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCAD_UP_S2_OCO_DELAY_7DAY))
{
int USDCAD_OCO3S1_UP_S2 = 0;
for (; USDCAD_OCO3S1_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets1.Count; USDCAD_OCO3S1_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets1[USDCAD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO3Sets1[USDCAD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_1__Time out_OCO3");
Base.USDCAD_UP_S2_OCO3Sets1.Clear();
USDCAD_OCO3S1_UP_S2 = 0;
break;
}
int USDCAD_OCO3S2_UP_S2 = 0;
for (; USDCAD_OCO3S2_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets2.Count; USDCAD_OCO3S2_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets2[USDCAD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO3Sets2[USDCAD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_2__Time out_OCO3");
Base.USDCAD_UP_S2_OCO3Sets2.Clear();
USDCAD_OCO3S2_UP_S2 = 0;
break;
}
int USDCAD_OCO3S3_UP_S2 = 0;
for (; USDCAD_OCO3S3_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets3.Count; USDCAD_OCO3S3_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets3[USDCAD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO3Sets3[USDCAD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_3__Time out_OCO3");
Base.USDCAD_UP_S2_OCO3Sets3.Clear();
USDCAD_OCO3S3_UP_S2 = 0;
break;
}
int USDCAD_OCO3S4_UP_S2 = 0;
for (; USDCAD_OCO3S4_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets4.Count; USDCAD_OCO3S4_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets4[USDCAD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO3Sets4[USDCAD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_4__Time out_OCO3");
Base.USDCAD_UP_S2_OCO3Sets4.Clear();
USDCAD_OCO3S4_UP_S2 = 0;
break;
}
int USDCAD_OCO3S5_UP_S2 = 0;
for (; USDCAD_OCO3S5_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets5.Count; USDCAD_OCO3S5_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets5[USDCAD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO3Sets5[USDCAD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_5__Time out_OCO3");
Base.USDCAD_UP_S2_OCO3Sets5.Clear();
USDCAD_OCO3S5_UP_S2 = 0;
break;
}
int USDCAD_OCO3S6_UP_S2 = 0;
for (; USDCAD_OCO3S6_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets6.Count; USDCAD_OCO3S6_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets6[USDCAD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO3Sets6[USDCAD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_6__Time out_OCO3");
Base.USDCAD_UP_S2_OCO3Sets6.Clear();
USDCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO4_EO1_UP_S2)
Base.USDCAD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO2_UP_S2)
Base.USDCAD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO3_UP_S2)
Base.USDCAD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO4_UP_S2)
Base.USDCAD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO5_UP_S2)
Base.USDCAD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO6_UP_S2)
Base.USDCAD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCAD_UP_S2_OCO_DELAY_7DAY))
{
int USDCAD_OCO4S1_UP_S2 = 0;
for (; USDCAD_OCO4S1_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets1.Count; USDCAD_OCO4S1_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets1[USDCAD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO4Sets1[USDCAD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_1__Time out_OCO4");
Base.USDCAD_UP_S2_OCO4Sets1.Clear();
USDCAD_OCO4S1_UP_S2 = 0;
break;
}
int USDCAD_OCO4S2_UP_S2 = 0;
for (; USDCAD_OCO4S2_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets2.Count; USDCAD_OCO4S2_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets2[USDCAD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO4Sets2[USDCAD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_2__Time out_OCO4");
Base.USDCAD_UP_S2_OCO4Sets2.Clear();
USDCAD_OCO4S2_UP_S2 = 0;
break;
}
int USDCAD_OCO4S3_UP_S2 = 0;
for (; USDCAD_OCO4S3_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets3.Count; USDCAD_OCO4S3_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets3[USDCAD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO4Sets3[USDCAD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_3__Time out_OCO4");
Base.USDCAD_UP_S2_OCO4Sets3.Clear();
USDCAD_OCO4S3_UP_S2 = 0;
break;
}
int USDCAD_OCO4S4_UP_S2 = 0;
for (; USDCAD_OCO4S4_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets4.Count; USDCAD_OCO4S4_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets4[USDCAD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO4Sets4[USDCAD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_4__Time out_OCO4");
Base.USDCAD_UP_S2_OCO4Sets4.Clear();
USDCAD_OCO4S4_UP_S2 = 0;
break;
}
int USDCAD_OCO4S5_UP_S2 = 0;
for (; USDCAD_OCO4S5_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets5.Count; USDCAD_OCO4S5_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets5[USDCAD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO4Sets5[USDCAD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_5__Time out_OCO4");
Base.USDCAD_UP_S2_OCO4Sets5.Clear();
USDCAD_OCO4S5_UP_S2 = 0;
break;
}
int USDCAD_OCO4S6_UP_S2 = 0;
for (; USDCAD_OCO4S6_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets6.Count; USDCAD_OCO4S6_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets6[USDCAD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.USDCAD_UP_S2_OCO4Sets6[USDCAD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_UP_S2_Entry_6__Time out_OCO4");
Base.USDCAD_UP_S2_OCO4Sets6.Clear();
USDCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_USDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_USDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_USDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_USDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_USDCAD_UP_S2 = DOWM_USDCAD_UP_S2 || DOWT_USDCAD_UP_S2 || DOWW_USDCAD_UP_S2 || DOWTH_USDCAD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("USDCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.USDCAD_OCO1_UP_S2_IsReady == false ||
Base.USDCAD_OCO2_UP_S2_IsReady == false ||
Base.USDCAD_OCO3_UP_S2_IsReady == false ||
Base.USDCAD_OCO4_UP_S2_IsReady == false)
{
Base.USDCAD_OCO1_UP_S2_Monthly_IsReady = false;
Base.USDCAD_OCO2_UP_S2_Monthly_IsReady = false;
Base.USDCAD_OCO3_UP_S2_Monthly_IsReady = false;
Base.USDCAD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.USDCAD_OCO1_UP_S2_Monthly_IsReady = true;
Base.USDCAD_OCO2_UP_S2_Monthly_IsReady = true;
Base.USDCAD_OCO3_UP_S2_Monthly_IsReady = true;
Base.USDCAD_OCO4_UP_S2_Monthly_IsReady = true;
}
USDCAD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
USDCAD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
USDCAD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (USDCAD_Signal_Condition_UP_1)
{
USDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDCAD_Signal_Condition_UP_2)
{
USDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDCAD_Signal_Condition_UP_3)
{
USDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDCAD_Signal_Condition_UP_1)
{
USDCAD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (USDCAD_Signal_Condition_UP_2)
{
USDCAD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (USDCAD_Signal_Condition_UP_3)
{
USDCAD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
USDCAD_UP_S2_TP2 = USDCAD_UP_S2_SL * 0;
USDCAD_UP_S2_TP3 = USDCAD_UP_S2_SL * 0;
USDCAD_UP_S2_TP4 = USDCAD_UP_S2_SL * 0;
USDCAD_UP_S2_TP5 = USDCAD_UP_S2_SL * 0;
USDCAD_UP_S2_TP6 = USDCAD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
USDCAD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
USDCAD_quantity_SL_UP_S2 = USDCAD_quantity_UP_S2;
USDCAD_quantity_TP1_UP_S2 = (int)Math.Floor(USDCAD_quantity_UP_S2 * 1m);
USDCAD_quantity_TP2_UP_S2 = (int)Math.Floor(USDCAD_quantity_TP1_UP_S2 * 0m);
USDCAD_quantity_TP3_UP_S2 = (int)Math.Floor(USDCAD_quantity_TP2_UP_S2 * 0m);
USDCAD_quantity_TP4_UP_S2 = (int)Math.Floor(USDCAD_quantity_TP3_UP_S2 * 0m);
USDCAD_quantity_TP5_UP_S2 = (int)Math.Floor(USDCAD_quantity_TP4_UP_S2 * 0m);
USDCAD_quantity_TP6_UP_S2 = (int)Math.Floor(USDCAD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((USDCAD_Signal_Condition_UP_1 || USDCAD_Signal_Condition_UP_2 || USDCAD_Signal_Condition_UP_3) &&
DOWR_USDCAD_UP_S2 &&
Base.USDCAD_OCO1_UP_S2_IsReady == true &&
Base.USDCAD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.USDCAD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP1_UP_S2, false,"USDCAD_UP_S2_Entry_TP1_OCO1");
Base.USDCAD_OCO1_EO1_UP_S2 = false;
Base.USDCAD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP2_UP_S2, false,"USDCAD_UP_S2_Entry_TP2_OCO1");
Base.USDCAD_OCO1_EO2_UP_S2 = false;
Base.USDCAD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP3_UP_S2, false,"USDCAD_UP_S2_Entry_TP3_OCO1");
Base.USDCAD_OCO1_EO3_UP_S2 = false;
Base.USDCAD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP4_UP_S2, false,"USDCAD_UP_S2_Entry_TP4_OCO1");
Base.USDCAD_OCO1_EO4_UP_S2 = false;
Base.USDCAD_OCO1_UP_S2_IsReady = false;
if (Base.USDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((USDCAD_Signal_Condition_UP_1 || USDCAD_Signal_Condition_UP_2 || USDCAD_Signal_Condition_UP_3) &&
DOWR_USDCAD_UP_S2 &&
Base.USDCAD_OCO1_UP_S2_IsReady == false &&
Base.USDCAD_OCO2_UP_S2_IsReady == true &&
Base.USDCAD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.USDCAD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP1_UP_S2, false,"USDCAD_UP_S2_Entry_TP1_OCO2");
Base.USDCAD_OCO2_EO1_UP_S2 = false;
Base.USDCAD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP2_UP_S2, false,"USDCAD_UP_S2_Entry_TP2_OCO2");
Base.USDCAD_OCO2_EO2_UP_S2 = false;
Base.USDCAD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP3_UP_S2, false,"USDCAD_UP_S2_Entry_TP3_OCO2");
Base.USDCAD_OCO2_EO3_UP_S2 = false;
Base.USDCAD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP4_UP_S2, false,"USDCAD_UP_S2_Entry_TP4_OCO2");
Base.USDCAD_OCO2_EO4_UP_S2 = false;
Base.USDCAD_OCO2_UP_S2_IsReady = false;
if (Base.USDCAD_OCO2_UP_S2_IsReady == false && Base.USDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((USDCAD_Signal_Condition_UP_1 || USDCAD_Signal_Condition_UP_2 || USDCAD_Signal_Condition_UP_3) &&
DOWR_USDCAD_UP_S2 &&
Base.USDCAD_OCO1_UP_S2_IsReady == false &&
Base.USDCAD_OCO2_UP_S2_IsReady == false &&
Base.USDCAD_OCO3_UP_S2_IsReady == true &&
Base.USDCAD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.USDCAD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP1_UP_S2, false,"USDCAD_UP_S2_Entry_TP1_OCO3");
Base.USDCAD_OCO3_EO1_UP_S2 = false;
Base.USDCAD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP2_UP_S2, false,"USDCAD_UP_S2_Entry_TP2_OCO3");
Base.USDCAD_OCO3_EO2_UP_S2 = false;
Base.USDCAD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP3_UP_S2, false,"USDCAD_UP_S2_Entry_TP3_OCO3");
Base.USDCAD_OCO3_EO3_UP_S2 = false;
Base.USDCAD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP4_UP_S2, false,"USDCAD_UP_S2_Entry_TP4_OCO3");
Base.USDCAD_OCO3_EO4_UP_S2 = false;
Base.USDCAD_OCO3_UP_S2_IsReady = false;
if (Base.USDCAD_OCO3_UP_S2_IsReady == false && Base.USDCAD_OCO2_UP_S2_IsReady == false && Base.USDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((USDCAD_Signal_Condition_UP_1 || USDCAD_Signal_Condition_UP_2 || USDCAD_Signal_Condition_UP_3) &&
DOWR_USDCAD_UP_S2 &&
Base.USDCAD_OCO1_UP_S2_IsReady == false &&
Base.USDCAD_OCO2_UP_S2_IsReady == false &&
Base.USDCAD_OCO3_UP_S2_IsReady == false &&
Base.USDCAD_OCO4_UP_S2_IsReady == true &&
Base.USDCAD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.USDCAD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP1_UP_S2, false,"USDCAD_UP_S2_Entry_TP1_OCO4");
Base.USDCAD_OCO4_EO1_UP_S2 = false;
Base.USDCAD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP2_UP_S2, false,"USDCAD_UP_S2_Entry_TP2_OCO4");
Base.USDCAD_OCO4_EO2_UP_S2 = false;
Base.USDCAD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP3_UP_S2, false,"USDCAD_UP_S2_Entry_TP3_OCO4");
Base.USDCAD_OCO4_EO3_UP_S2 = false;
Base.USDCAD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCAD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP4_UP_S2, false,"USDCAD_UP_S2_Entry_TP4_OCO4");
Base.USDCAD_OCO4_EO4_UP_S2 = false;
Base.USDCAD_OCO4_UP_S2_IsReady = false;
if (Base.USDCAD_OCO4_UP_S2_IsReady == false && Base.USDCAD_OCO3_UP_S2_IsReady == false && Base.USDCAD_OCO2_UP_S2_IsReady == false && Base.USDCAD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDJPY_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDJPY_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDJPY_DOWN_S2_OCO1")))
{
Base.AUDJPY_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDJPY_DOWN_S2_OCO2")))
{
Base.AUDJPY_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDJPY_DOWN_S2_OCO3")))
{
Base.AUDJPY_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDJPY_DOWN_S2_OCO4")))
{
Base.AUDJPY_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDJPY_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDJPY_OCO1_EO1_DOWN_S2)
Base.AUDJPY_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO2_DOWN_S2)
Base.AUDJPY_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO3_DOWN_S2)
Base.AUDJPY_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO4_DOWN_S2)
Base.AUDJPY_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO5_DOWN_S2)
Base.AUDJPY_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO6_DOWN_S2)
Base.AUDJPY_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDJPY_OCO1S1_DOWN_S2 = 0;
for (; AUDJPY_OCO1S1_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets1.Count; AUDJPY_OCO1S1_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets1[AUDJPY_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO1Sets1[AUDJPY_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_1__Time out_OCO1");
Base.AUDJPY_DOWN_S2_OCO1Sets1.Clear();
AUDJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO1S2_DOWN_S2 = 0;
for (; AUDJPY_OCO1S2_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets2.Count; AUDJPY_OCO1S2_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets2[AUDJPY_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO1Sets2[AUDJPY_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_2__Time out_OCO1");
Base.AUDJPY_DOWN_S2_OCO1Sets2.Clear();
AUDJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO1S3_DOWN_S2 = 0;
for (; AUDJPY_OCO1S3_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets3.Count; AUDJPY_OCO1S3_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets3[AUDJPY_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO1Sets3[AUDJPY_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_3__Time out_OCO1");
Base.AUDJPY_DOWN_S2_OCO1Sets3.Clear();
AUDJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO1S4_DOWN_S2 = 0;
for (; AUDJPY_OCO1S4_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets4.Count; AUDJPY_OCO1S4_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets4[AUDJPY_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO1Sets4[AUDJPY_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_4__Time out_OCO1");
Base.AUDJPY_DOWN_S2_OCO1Sets4.Clear();
AUDJPY_OCO1S4_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO1S5_DOWN_S2 = 0;
for (; AUDJPY_OCO1S5_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets5.Count; AUDJPY_OCO1S5_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets5[AUDJPY_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO1Sets5[AUDJPY_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_5__Time out_OCO1");
Base.AUDJPY_DOWN_S2_OCO1Sets5.Clear();
AUDJPY_OCO1S5_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO1S6_DOWN_S2 = 0;
for (; AUDJPY_OCO1S6_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets6.Count; AUDJPY_OCO1S6_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets6[AUDJPY_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO1Sets6[AUDJPY_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_6__Time out_OCO1");
Base.AUDJPY_DOWN_S2_OCO1Sets6.Clear();
AUDJPY_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO2_EO1_DOWN_S2)
Base.AUDJPY_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO2_DOWN_S2)
Base.AUDJPY_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO3_DOWN_S2)
Base.AUDJPY_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO4_DOWN_S2)
Base.AUDJPY_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO5_DOWN_S2)
Base.AUDJPY_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO6_DOWN_S2)
Base.AUDJPY_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDJPY_OCO2S1_DOWN_S2 = 0;
for (; AUDJPY_OCO2S1_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets1.Count; AUDJPY_OCO2S1_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets1[AUDJPY_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO2Sets1[AUDJPY_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_1__Time out_OCO2");
Base.AUDJPY_DOWN_S2_OCO2Sets1.Clear();
AUDJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO2S2_DOWN_S2 = 0;
for (; AUDJPY_OCO2S2_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets2.Count; AUDJPY_OCO2S2_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets2[AUDJPY_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO2Sets2[AUDJPY_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_2__Time out_OCO2");
Base.AUDJPY_DOWN_S2_OCO2Sets2.Clear();
AUDJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO2S3_DOWN_S2 = 0;
for (; AUDJPY_OCO2S3_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets3.Count; AUDJPY_OCO2S3_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets3[AUDJPY_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO2Sets3[AUDJPY_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_3__Time out_OCO2");
Base.AUDJPY_DOWN_S2_OCO2Sets3.Clear();
AUDJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO2S4_DOWN_S2 = 0;
for (; AUDJPY_OCO2S4_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets4.Count; AUDJPY_OCO2S4_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets4[AUDJPY_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO2Sets4[AUDJPY_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_4__Time out_OCO2");
Base.AUDJPY_DOWN_S2_OCO2Sets4.Clear();
AUDJPY_OCO2S4_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO2S5_DOWN_S2 = 0;
for (; AUDJPY_OCO2S5_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets5.Count; AUDJPY_OCO2S5_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets5[AUDJPY_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO2Sets5[AUDJPY_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_5__Time out_OCO2");
Base.AUDJPY_DOWN_S2_OCO2Sets5.Clear();
AUDJPY_OCO2S5_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO2S6_DOWN_S2 = 0;
for (; AUDJPY_OCO2S6_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets6.Count; AUDJPY_OCO2S6_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets6[AUDJPY_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO2Sets6[AUDJPY_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_6__Time out_OCO2");
Base.AUDJPY_DOWN_S2_OCO2Sets6.Clear();
AUDJPY_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO3_EO1_DOWN_S2)
Base.AUDJPY_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO2_DOWN_S2)
Base.AUDJPY_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO3_DOWN_S2)
Base.AUDJPY_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO4_DOWN_S2)
Base.AUDJPY_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO5_DOWN_S2)
Base.AUDJPY_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO6_DOWN_S2)
Base.AUDJPY_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDJPY_OCO3S1_DOWN_S2 = 0;
for (; AUDJPY_OCO3S1_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets1.Count; AUDJPY_OCO3S1_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets1[AUDJPY_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO3Sets1[AUDJPY_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_1__Time out_OCO3");
Base.AUDJPY_DOWN_S2_OCO3Sets1.Clear();
AUDJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO3S2_DOWN_S2 = 0;
for (; AUDJPY_OCO3S2_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets2.Count; AUDJPY_OCO3S2_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets2[AUDJPY_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO3Sets2[AUDJPY_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_2__Time out_OCO3");
Base.AUDJPY_DOWN_S2_OCO3Sets2.Clear();
AUDJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO3S3_DOWN_S2 = 0;
for (; AUDJPY_OCO3S3_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets3.Count; AUDJPY_OCO3S3_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets3[AUDJPY_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO3Sets3[AUDJPY_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_3__Time out_OCO3");
Base.AUDJPY_DOWN_S2_OCO3Sets3.Clear();
AUDJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO3S4_DOWN_S2 = 0;
for (; AUDJPY_OCO3S4_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets4.Count; AUDJPY_OCO3S4_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets4[AUDJPY_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO3Sets4[AUDJPY_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_4__Time out_OCO3");
Base.AUDJPY_DOWN_S2_OCO3Sets4.Clear();
AUDJPY_OCO3S4_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO3S5_DOWN_S2 = 0;
for (; AUDJPY_OCO3S5_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets5.Count; AUDJPY_OCO3S5_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets5[AUDJPY_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO3Sets5[AUDJPY_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_5__Time out_OCO3");
Base.AUDJPY_DOWN_S2_OCO3Sets5.Clear();
AUDJPY_OCO3S5_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO3S6_DOWN_S2 = 0;
for (; AUDJPY_OCO3S6_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets6.Count; AUDJPY_OCO3S6_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets6[AUDJPY_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO3Sets6[AUDJPY_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_6__Time out_OCO3");
Base.AUDJPY_DOWN_S2_OCO3Sets6.Clear();
AUDJPY_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO4_EO1_DOWN_S2)
Base.AUDJPY_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO2_DOWN_S2)
Base.AUDJPY_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO3_DOWN_S2)
Base.AUDJPY_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO4_DOWN_S2)
Base.AUDJPY_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO5_DOWN_S2)
Base.AUDJPY_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO6_DOWN_S2)
Base.AUDJPY_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDJPY_OCO4S1_DOWN_S2 = 0;
for (; AUDJPY_OCO4S1_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets1.Count; AUDJPY_OCO4S1_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets1[AUDJPY_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO4Sets1[AUDJPY_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_1__Time out_OCO4");
Base.AUDJPY_DOWN_S2_OCO4Sets1.Clear();
AUDJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO4S2_DOWN_S2 = 0;
for (; AUDJPY_OCO4S2_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets2.Count; AUDJPY_OCO4S2_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets2[AUDJPY_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO4Sets2[AUDJPY_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_2__Time out_OCO4");
Base.AUDJPY_DOWN_S2_OCO4Sets2.Clear();
AUDJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO4S3_DOWN_S2 = 0;
for (; AUDJPY_OCO4S3_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets3.Count; AUDJPY_OCO4S3_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets3[AUDJPY_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO4Sets3[AUDJPY_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_3__Time out_OCO4");
Base.AUDJPY_DOWN_S2_OCO4Sets3.Clear();
AUDJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO4S4_DOWN_S2 = 0;
for (; AUDJPY_OCO4S4_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets4.Count; AUDJPY_OCO4S4_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets4[AUDJPY_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO4Sets4[AUDJPY_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_4__Time out_OCO4");
Base.AUDJPY_DOWN_S2_OCO4Sets4.Clear();
AUDJPY_OCO4S4_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO4S5_DOWN_S2 = 0;
for (; AUDJPY_OCO4S5_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets5.Count; AUDJPY_OCO4S5_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets5[AUDJPY_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO4Sets5[AUDJPY_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_5__Time out_OCO4");
Base.AUDJPY_DOWN_S2_OCO4Sets5.Clear();
AUDJPY_OCO4S5_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO4S6_DOWN_S2 = 0;
for (; AUDJPY_OCO4S6_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets6.Count; AUDJPY_OCO4S6_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets6[AUDJPY_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDJPY_DOWN_S2_OCO4Sets6[AUDJPY_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_DOWN_S2_Entry_6__Time out_OCO4");
Base.AUDJPY_DOWN_S2_OCO4Sets6.Clear();
AUDJPY_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDJPY_DOWN_S2 = DOWM_AUDJPY_DOWN_S2 || DOWT_AUDJPY_DOWN_S2 || DOWW_AUDJPY_DOWN_S2 || DOWTH_AUDJPY_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDJPY"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDJPY_OCO1_DOWN_S2_IsReady == false ||
Base.AUDJPY_OCO2_DOWN_S2_IsReady == false ||
Base.AUDJPY_OCO3_DOWN_S2_IsReady == false ||
Base.AUDJPY_OCO4_DOWN_S2_IsReady == false)
{
Base.AUDJPY_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.AUDJPY_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.AUDJPY_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.AUDJPY_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.AUDJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.AUDJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.AUDJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
}
AUDJPY_Signal_Condition_DOWN_S2 =
(
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//prices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[1] > prices_ASK_Close[0] * 0.02m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 && //yuhukj
//prices_BID_Open[0] - prices_ASK_Close[0] > 0 &&
//prices_BID_Close[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
pricesM_BID_Open[1] - pricesM_ASK_Close[1] > 0 &&
pricesM_BID_High[1] - pricesM_ASK_Close[1] > prices_BID_Close[0] * 0.03m &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
//prices_BID_Close[0] < pricesM_BID_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.05m
);
AUDJPY_DOWN_S2_SL = 1.5m;
AUDJPY_DOWN_S2_TP1 = 0.125m;
AUDJPY_DOWN_S2_TP2 = AUDJPY_DOWN_S2_SL * 0;
AUDJPY_DOWN_S2_TP3 = AUDJPY_DOWN_S2_SL * 0;
AUDJPY_DOWN_S2_TP4 = AUDJPY_DOWN_S2_SL * 0;
AUDJPY_DOWN_S2_TP5 = AUDJPY_DOWN_S2_SL * 0;
AUDJPY_DOWN_S2_TP6 = AUDJPY_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDJPY_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDJPY_quantity_SL_DOWN_S2 = AUDJPY_quantity_DOWN_S2;
AUDJPY_quantity_TP1_DOWN_S2 = (int)Math.Floor(AUDJPY_quantity_DOWN_S2 * 1m);
AUDJPY_quantity_TP2_DOWN_S2 = (int)Math.Floor(AUDJPY_quantity_TP1_DOWN_S2 * 0m);
AUDJPY_quantity_TP3_DOWN_S2 = (int)Math.Floor(AUDJPY_quantity_TP2_DOWN_S2 * 0m);
AUDJPY_quantity_TP4_DOWN_S2 = (int)Math.Floor(AUDJPY_quantity_TP3_DOWN_S2 * 0m);
AUDJPY_quantity_TP5_DOWN_S2 = (int)Math.Floor(AUDJPY_quantity_TP4_DOWN_S2 * 0m);
AUDJPY_quantity_TP6_DOWN_S2 = (int)Math.Floor(AUDJPY_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (AUDJPY_Signal_Condition_DOWN_S2 &&
DOWR_AUDJPY_DOWN_S2 &&
Base.AUDJPY_OCO1_DOWN_S2_IsReady == true &&
Base.AUDJPY_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDJPY_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP1_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP1_OCO1");
Base.AUDJPY_OCO1_EO1_DOWN_S2 = false;
Base.AUDJPY_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP2_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP2_OCO1");
Base.AUDJPY_OCO1_EO2_DOWN_S2 = false;
Base.AUDJPY_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP3_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP3_OCO1");
Base.AUDJPY_OCO1_EO3_DOWN_S2 = false;
Base.AUDJPY_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP4_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP4_OCO1");
Base.AUDJPY_OCO1_EO4_DOWN_S2 = false;
Base.AUDJPY_OCO1_DOWN_S2_IsReady = false;
if (Base.AUDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (AUDJPY_Signal_Condition_DOWN_S2 &&
DOWR_AUDJPY_DOWN_S2 &&
Base.AUDJPY_OCO2_DOWN_S2_IsReady == true &&
Base.AUDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.AUDJPY_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDJPY_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP1_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP1_OCO2");
Base.AUDJPY_OCO2_EO1_DOWN_S2 = false;
Base.AUDJPY_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP2_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP2_OCO2");
Base.AUDJPY_OCO2_EO2_DOWN_S2 = false;
Base.AUDJPY_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP3_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP3_OCO2");
Base.AUDJPY_OCO2_EO3_DOWN_S2 = false;
Base.AUDJPY_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP4_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP4_OCO2");
Base.AUDJPY_OCO2_EO4_DOWN_S2 = false;
Base.AUDJPY_OCO2_DOWN_S2_IsReady = false;
if (Base.AUDJPY_OCO2_DOWN_S2_IsReady == false && Base.AUDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (AUDJPY_Signal_Condition_DOWN_S2 &&
DOWR_AUDJPY_DOWN_S2 &&
Base.AUDJPY_OCO3_DOWN_S2_IsReady == true &&
Base.AUDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.AUDJPY_OCO2_DOWN_S2_IsReady == false &&
Base.AUDJPY_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDJPY_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP1_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP1_OCO3");
Base.AUDJPY_OCO3_EO1_DOWN_S2 = false;
Base.AUDJPY_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP2_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP2_OCO3");
Base.AUDJPY_OCO3_EO2_DOWN_S2 = false;
Base.AUDJPY_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP3_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP3_OCO3");
Base.AUDJPY_OCO3_EO3_DOWN_S2 = false;
Base.AUDJPY_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP4_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP4_OCO3");
Base.AUDJPY_OCO3_EO4_DOWN_S2 = false;
Base.AUDJPY_OCO3_DOWN_S2_IsReady = false;
if (Base.AUDJPY_OCO3_DOWN_S2_IsReady == false && Base.AUDJPY_OCO2_DOWN_S2_IsReady == false && Base.AUDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (AUDJPY_Signal_Condition_DOWN_S2 &&
DOWR_AUDJPY_DOWN_S2 &&
Base.AUDJPY_OCO4_DOWN_S2_IsReady == true &&
Base.AUDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.AUDJPY_OCO2_DOWN_S2_IsReady == false &&
Base.AUDJPY_OCO3_DOWN_S2_IsReady == false &&
Base.AUDJPY_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDJPY_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP1_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP1_OCO4");
Base.AUDJPY_OCO4_EO1_DOWN_S2 = false;
Base.AUDJPY_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP2_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP2_OCO4");
Base.AUDJPY_OCO4_EO2_DOWN_S2 = false;
Base.AUDJPY_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP3_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP3_OCO4");
Base.AUDJPY_OCO4_EO3_DOWN_S2 = false;
Base.AUDJPY_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDJPY_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP4_DOWN_S2, false,"AUDJPY_DOWN_S2_Entry_TP4_OCO4");
Base.AUDJPY_OCO4_EO4_DOWN_S2 = false;
Base.AUDJPY_OCO4_DOWN_S2_IsReady = false;
if (Base.AUDJPY_OCO4_DOWN_S2_IsReady == false && Base.AUDJPY_OCO3_DOWN_S2_IsReady == false && Base.AUDJPY_OCO2_DOWN_S2_IsReady == false && Base.AUDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDCHF_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDCHF_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
}
if (Base.AUDCHF_OCO1_EO1_DOWN_S2)
Base.AUDCHF_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO1_EO2_DOWN_S2)
Base.AUDCHF_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO1_EO3_DOWN_S2)
Base.AUDCHF_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO1_EO4_DOWN_S2)
Base.AUDCHF_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO1_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP1_AUDCHF_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP1,"TP1_AUDCHF_DOWN_S2_OCO1"));
};
Base.AUDCHF_DOWN_S2_OCO1Sets1.Add( Base.AUDCHF_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO2_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP2_AUDCHF_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP2,"TP2_AUDCHF_DOWN_S2_OCO1"));
};
Base.AUDCHF_DOWN_S2_OCO1Sets2.Add( Base.AUDCHF_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO3_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP3_AUDCHF_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP3,"TP3_AUDCHF_DOWN_S2_OCO1"));
};
Base.AUDCHF_DOWN_S2_OCO1Sets3.Add( Base.AUDCHF_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO4_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP4_AUDCHF_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP4,"TP4_AUDCHF_DOWN_S2_OCO1"));
};
Base.AUDCHF_DOWN_S2_OCO1Sets4.Add( Base.AUDCHF_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO4_DOWN_S2_ID = -1;
}
int AUDCHF_OCO1S1_DOWN_S2 = 0;
for (; AUDCHF_OCO1S1_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets1.Count; AUDCHF_OCO1S1_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets1[AUDCHF_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO1Sets1[AUDCHF_OCO1S1_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO1Sets1.RemoveAt(AUDCHF_OCO1S1_DOWN_S2);
AUDCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO1S2_DOWN_S2 = 0;
for (; AUDCHF_OCO1S2_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets2.Count; AUDCHF_OCO1S2_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets2[AUDCHF_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO1Sets2[AUDCHF_OCO1S2_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO1Sets2.RemoveAt(AUDCHF_OCO1S2_DOWN_S2);
AUDCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO1S3_DOWN_S2 = 0;
for (; AUDCHF_OCO1S3_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets3.Count; AUDCHF_OCO1S3_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets3[AUDCHF_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO1Sets3[AUDCHF_OCO1S3_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO1Sets3.RemoveAt(AUDCHF_OCO1S3_DOWN_S2);
AUDCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO1S4_DOWN_S2 = 0;
for (; AUDCHF_OCO1S4_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets4.Count; AUDCHF_OCO1S4_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets4[AUDCHF_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO1Sets4[AUDCHF_OCO1S4_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO1Sets4.RemoveAt(AUDCHF_OCO1S4_DOWN_S2);
AUDCHF_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO2_EO1_DOWN_S2)
Base.AUDCHF_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO2_EO2_DOWN_S2)
Base.AUDCHF_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO2_EO3_DOWN_S2)
Base.AUDCHF_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO2_EO4_DOWN_S2)
Base.AUDCHF_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO1_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP1_AUDCHF_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP1,"TP1_AUDCHF_DOWN_S2_OCO2"));
};
Base.AUDCHF_DOWN_S2_OCO2Sets1.Add( Base.AUDCHF_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO2_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP2_AUDCHF_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP2,"TP2_AUDCHF_DOWN_S2_OCO2"));
};
Base.AUDCHF_DOWN_S2_OCO2Sets2.Add( Base.AUDCHF_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO3_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP3_AUDCHF_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP3,"TP3_AUDCHF_DOWN_S2_OCO2"));
};
Base.AUDCHF_DOWN_S2_OCO2Sets3.Add( Base.AUDCHF_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO4_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP4_AUDCHF_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP4,"TP4_AUDCHF_DOWN_S2_OCO2"));
};
Base.AUDCHF_DOWN_S2_OCO2Sets4.Add( Base.AUDCHF_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO4_DOWN_S2_ID = -1;
}
int AUDCHF_OCO2S1_DOWN_S2 = 0;
for (; AUDCHF_OCO2S1_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets1.Count; AUDCHF_OCO2S1_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets1[AUDCHF_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO2Sets1[AUDCHF_OCO2S1_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO2Sets1.RemoveAt(AUDCHF_OCO2S1_DOWN_S2);
AUDCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO2S2_DOWN_S2 = 0;
for (; AUDCHF_OCO2S2_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets2.Count; AUDCHF_OCO2S2_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets2[AUDCHF_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO2Sets2[AUDCHF_OCO2S2_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO2Sets2.RemoveAt(AUDCHF_OCO2S2_DOWN_S2);
AUDCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO2S3_DOWN_S2 = 0;
for (; AUDCHF_OCO2S3_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets3.Count; AUDCHF_OCO2S3_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets3[AUDCHF_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO2Sets3[AUDCHF_OCO2S3_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO2Sets3.RemoveAt(AUDCHF_OCO2S3_DOWN_S2);
AUDCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO2S4_DOWN_S2 = 0;
for (; AUDCHF_OCO2S4_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets4.Count; AUDCHF_OCO2S4_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets4[AUDCHF_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO2Sets4[AUDCHF_OCO2S4_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO2Sets4.RemoveAt(AUDCHF_OCO2S4_DOWN_S2);
AUDCHF_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO3_EO1_DOWN_S2)
Base.AUDCHF_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO3_EO2_DOWN_S2)
Base.AUDCHF_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO3_EO3_DOWN_S2)
Base.AUDCHF_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO3_EO4_DOWN_S2)
Base.AUDCHF_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO1_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP1_AUDCHF_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP1,"TP1_AUDCHF_DOWN_S2_OCO3"));
};
Base.AUDCHF_DOWN_S2_OCO3Sets1.Add( Base.AUDCHF_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO2_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP2_AUDCHF_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP2,"TP2_AUDCHF_DOWN_S2_OCO3"));
};
Base.AUDCHF_DOWN_S2_OCO3Sets2.Add( Base.AUDCHF_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO3_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP3_AUDCHF_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP3,"TP3_AUDCHF_DOWN_S2_OCO3"));
};
Base.AUDCHF_DOWN_S2_OCO3Sets3.Add( Base.AUDCHF_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO4_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP4_AUDCHF_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP4,"TP4_AUDCHF_DOWN_S2_OCO3"));
};
Base.AUDCHF_DOWN_S2_OCO3Sets4.Add( Base.AUDCHF_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO4_DOWN_S2_ID = -1;
}
int AUDCHF_OCO3S1_DOWN_S2 = 0;
for (; AUDCHF_OCO3S1_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets1.Count; AUDCHF_OCO3S1_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets1[AUDCHF_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO3Sets1[AUDCHF_OCO3S1_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO3Sets1.RemoveAt(AUDCHF_OCO3S1_DOWN_S2);
AUDCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO3S2_DOWN_S2 = 0;
for (; AUDCHF_OCO3S2_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets2.Count; AUDCHF_OCO3S2_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets2[AUDCHF_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO3Sets2[AUDCHF_OCO3S2_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO3Sets2.RemoveAt(AUDCHF_OCO3S2_DOWN_S2);
AUDCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO3S3_DOWN_S2 = 0;
for (; AUDCHF_OCO3S3_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets3.Count; AUDCHF_OCO3S3_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets3[AUDCHF_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO3Sets3[AUDCHF_OCO3S3_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO3Sets3.RemoveAt(AUDCHF_OCO3S3_DOWN_S2);
AUDCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO3S4_DOWN_S2 = 0;
for (; AUDCHF_OCO3S4_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets4.Count; AUDCHF_OCO3S4_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets4[AUDCHF_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO3Sets4[AUDCHF_OCO3S4_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO3Sets4.RemoveAt(AUDCHF_OCO3S4_DOWN_S2);
AUDCHF_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO4_EO1_DOWN_S2)
Base.AUDCHF_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO4_EO2_DOWN_S2)
Base.AUDCHF_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO4_EO3_DOWN_S2)
Base.AUDCHF_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO4_EO4_DOWN_S2)
Base.AUDCHF_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO1_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP1_AUDCHF_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP1,"TP1_AUDCHF_DOWN_S2_OCO4"));
};
Base.AUDCHF_DOWN_S2_OCO4Sets1.Add( Base.AUDCHF_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO2_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP2_AUDCHF_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP2,"TP2_AUDCHF_DOWN_S2_OCO4"));
};
Base.AUDCHF_DOWN_S2_OCO4Sets2.Add( Base.AUDCHF_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO3_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP3_AUDCHF_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP3,"TP3_AUDCHF_DOWN_S2_OCO4"));
};
Base.AUDCHF_DOWN_S2_OCO4Sets3.Add( Base.AUDCHF_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO4_DOWN_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_DOWN_S2_SL,"SL_TP4_AUDCHF_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_DOWN_S2_TP4,"TP4_AUDCHF_DOWN_S2_OCO4"));
};
Base.AUDCHF_DOWN_S2_OCO4Sets4.Add( Base.AUDCHF_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO4_DOWN_S2_ID = -1;
}
int AUDCHF_OCO4S1_DOWN_S2 = 0;
for (; AUDCHF_OCO4S1_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets1.Count; AUDCHF_OCO4S1_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets1[AUDCHF_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO4Sets1[AUDCHF_OCO4S1_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO4Sets1.RemoveAt(AUDCHF_OCO4S1_DOWN_S2);
AUDCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO4S2_DOWN_S2 = 0;
for (; AUDCHF_OCO4S2_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets2.Count; AUDCHF_OCO4S2_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets2[AUDCHF_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO4Sets2[AUDCHF_OCO4S2_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO4Sets2.RemoveAt(AUDCHF_OCO4S2_DOWN_S2);
AUDCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO4S3_DOWN_S2 = 0;
for (; AUDCHF_OCO4S3_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets3.Count; AUDCHF_OCO4S3_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets3[AUDCHF_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO4Sets3[AUDCHF_OCO4S3_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO4Sets3.RemoveAt(AUDCHF_OCO4S3_DOWN_S2);
AUDCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO4S4_DOWN_S2 = 0;
for (; AUDCHF_OCO4S4_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets4.Count; AUDCHF_OCO4S4_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets4[AUDCHF_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_DOWN_S2_OCO4Sets4[AUDCHF_OCO4S4_DOWN_S2].Filled();
Base.AUDCHF_DOWN_S2_OCO4Sets4.RemoveAt(AUDCHF_OCO4S4_DOWN_S2);
AUDCHF_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDJPY_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDJPY_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDJPY_UP_S2_OCO1")))
{
Base.AUDJPY_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDJPY_UP_S2_OCO2")))
{
Base.AUDJPY_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDJPY_UP_S2_OCO3")))
{
Base.AUDJPY_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDJPY_UP_S2_OCO4")))
{
Base.AUDJPY_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDJPY_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDJPY_OCO1_EO1_UP_S2)
Base.AUDJPY_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO2_UP_S2)
Base.AUDJPY_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO3_UP_S2)
Base.AUDJPY_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO4_UP_S2)
Base.AUDJPY_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO5_UP_S2)
Base.AUDJPY_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO1_EO6_UP_S2)
Base.AUDJPY_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDJPY_UP_S2_OCO_DELAY_7DAY))
{
int AUDJPY_OCO1S1_UP_S2 = 0;
for (; AUDJPY_OCO1S1_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets1.Count; AUDJPY_OCO1S1_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets1[AUDJPY_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO1Sets1[AUDJPY_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_1__Time out_OCO1");
Base.AUDJPY_UP_S2_OCO1Sets1.Clear();
AUDJPY_OCO1S1_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S2_UP_S2 = 0;
for (; AUDJPY_OCO1S2_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets2.Count; AUDJPY_OCO1S2_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets2[AUDJPY_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO1Sets2[AUDJPY_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_2__Time out_OCO1");
Base.AUDJPY_UP_S2_OCO1Sets2.Clear();
AUDJPY_OCO1S2_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S3_UP_S2 = 0;
for (; AUDJPY_OCO1S3_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets3.Count; AUDJPY_OCO1S3_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets3[AUDJPY_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO1Sets3[AUDJPY_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_3__Time out_OCO1");
Base.AUDJPY_UP_S2_OCO1Sets3.Clear();
AUDJPY_OCO1S3_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S4_UP_S2 = 0;
for (; AUDJPY_OCO1S4_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets4.Count; AUDJPY_OCO1S4_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets4[AUDJPY_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO1Sets4[AUDJPY_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_4__Time out_OCO1");
Base.AUDJPY_UP_S2_OCO1Sets4.Clear();
AUDJPY_OCO1S4_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S5_UP_S2 = 0;
for (; AUDJPY_OCO1S5_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets5.Count; AUDJPY_OCO1S5_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets5[AUDJPY_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO1Sets5[AUDJPY_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_5__Time out_OCO1");
Base.AUDJPY_UP_S2_OCO1Sets5.Clear();
AUDJPY_OCO1S5_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S6_UP_S2 = 0;
for (; AUDJPY_OCO1S6_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets6.Count; AUDJPY_OCO1S6_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets6[AUDJPY_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO1Sets6[AUDJPY_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_6__Time out_OCO1");
Base.AUDJPY_UP_S2_OCO1Sets6.Clear();
AUDJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO2_EO1_UP_S2)
Base.AUDJPY_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO2_UP_S2)
Base.AUDJPY_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO3_UP_S2)
Base.AUDJPY_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO4_UP_S2)
Base.AUDJPY_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO5_UP_S2)
Base.AUDJPY_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO2_EO6_UP_S2)
Base.AUDJPY_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDJPY_UP_S2_OCO_DELAY_7DAY))
{
int AUDJPY_OCO2S1_UP_S2 = 0;
for (; AUDJPY_OCO2S1_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets1.Count; AUDJPY_OCO2S1_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets1[AUDJPY_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO2Sets1[AUDJPY_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_1__Time out_OCO2");
Base.AUDJPY_UP_S2_OCO2Sets1.Clear();
AUDJPY_OCO2S1_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S2_UP_S2 = 0;
for (; AUDJPY_OCO2S2_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets2.Count; AUDJPY_OCO2S2_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets2[AUDJPY_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO2Sets2[AUDJPY_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_2__Time out_OCO2");
Base.AUDJPY_UP_S2_OCO2Sets2.Clear();
AUDJPY_OCO2S2_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S3_UP_S2 = 0;
for (; AUDJPY_OCO2S3_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets3.Count; AUDJPY_OCO2S3_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets3[AUDJPY_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO2Sets3[AUDJPY_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_3__Time out_OCO2");
Base.AUDJPY_UP_S2_OCO2Sets3.Clear();
AUDJPY_OCO2S3_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S4_UP_S2 = 0;
for (; AUDJPY_OCO2S4_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets4.Count; AUDJPY_OCO2S4_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets4[AUDJPY_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO2Sets4[AUDJPY_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_4__Time out_OCO2");
Base.AUDJPY_UP_S2_OCO2Sets4.Clear();
AUDJPY_OCO2S4_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S5_UP_S2 = 0;
for (; AUDJPY_OCO2S5_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets5.Count; AUDJPY_OCO2S5_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets5[AUDJPY_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO2Sets5[AUDJPY_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_5__Time out_OCO2");
Base.AUDJPY_UP_S2_OCO2Sets5.Clear();
AUDJPY_OCO2S5_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S6_UP_S2 = 0;
for (; AUDJPY_OCO2S6_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets6.Count; AUDJPY_OCO2S6_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets6[AUDJPY_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO2Sets6[AUDJPY_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_6__Time out_OCO2");
Base.AUDJPY_UP_S2_OCO2Sets6.Clear();
AUDJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO3_EO1_UP_S2)
Base.AUDJPY_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO2_UP_S2)
Base.AUDJPY_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO3_UP_S2)
Base.AUDJPY_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO4_UP_S2)
Base.AUDJPY_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO5_UP_S2)
Base.AUDJPY_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO3_EO6_UP_S2)
Base.AUDJPY_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDJPY_UP_S2_OCO_DELAY_7DAY))
{
int AUDJPY_OCO3S1_UP_S2 = 0;
for (; AUDJPY_OCO3S1_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets1.Count; AUDJPY_OCO3S1_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets1[AUDJPY_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO3Sets1[AUDJPY_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_1__Time out_OCO3");
Base.AUDJPY_UP_S2_OCO3Sets1.Clear();
AUDJPY_OCO3S1_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S2_UP_S2 = 0;
for (; AUDJPY_OCO3S2_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets2.Count; AUDJPY_OCO3S2_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets2[AUDJPY_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO3Sets2[AUDJPY_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_2__Time out_OCO3");
Base.AUDJPY_UP_S2_OCO3Sets2.Clear();
AUDJPY_OCO3S2_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S3_UP_S2 = 0;
for (; AUDJPY_OCO3S3_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets3.Count; AUDJPY_OCO3S3_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets3[AUDJPY_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO3Sets3[AUDJPY_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_3__Time out_OCO3");
Base.AUDJPY_UP_S2_OCO3Sets3.Clear();
AUDJPY_OCO3S3_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S4_UP_S2 = 0;
for (; AUDJPY_OCO3S4_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets4.Count; AUDJPY_OCO3S4_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets4[AUDJPY_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO3Sets4[AUDJPY_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_4__Time out_OCO3");
Base.AUDJPY_UP_S2_OCO3Sets4.Clear();
AUDJPY_OCO3S4_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S5_UP_S2 = 0;
for (; AUDJPY_OCO3S5_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets5.Count; AUDJPY_OCO3S5_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets5[AUDJPY_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO3Sets5[AUDJPY_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_5__Time out_OCO3");
Base.AUDJPY_UP_S2_OCO3Sets5.Clear();
AUDJPY_OCO3S5_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S6_UP_S2 = 0;
for (; AUDJPY_OCO3S6_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets6.Count; AUDJPY_OCO3S6_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets6[AUDJPY_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO3Sets6[AUDJPY_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_6__Time out_OCO3");
Base.AUDJPY_UP_S2_OCO3Sets6.Clear();
AUDJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO4_EO1_UP_S2)
Base.AUDJPY_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO2_UP_S2)
Base.AUDJPY_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO3_UP_S2)
Base.AUDJPY_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO4_UP_S2)
Base.AUDJPY_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO5_UP_S2)
Base.AUDJPY_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.AUDJPY_OCO4_EO6_UP_S2)
Base.AUDJPY_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDJPY_UP_S2_OCO_DELAY_7DAY))
{
int AUDJPY_OCO4S1_UP_S2 = 0;
for (; AUDJPY_OCO4S1_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets1.Count; AUDJPY_OCO4S1_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets1[AUDJPY_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO4Sets1[AUDJPY_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_1__Time out_OCO4");
Base.AUDJPY_UP_S2_OCO4Sets1.Clear();
AUDJPY_OCO4S1_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S2_UP_S2 = 0;
for (; AUDJPY_OCO4S2_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets2.Count; AUDJPY_OCO4S2_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets2[AUDJPY_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO4Sets2[AUDJPY_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_2__Time out_OCO4");
Base.AUDJPY_UP_S2_OCO4Sets2.Clear();
AUDJPY_OCO4S2_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S3_UP_S2 = 0;
for (; AUDJPY_OCO4S3_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets3.Count; AUDJPY_OCO4S3_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets3[AUDJPY_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO4Sets3[AUDJPY_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_3__Time out_OCO4");
Base.AUDJPY_UP_S2_OCO4Sets3.Clear();
AUDJPY_OCO4S3_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S4_UP_S2 = 0;
for (; AUDJPY_OCO4S4_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets4.Count; AUDJPY_OCO4S4_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets4[AUDJPY_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO4Sets4[AUDJPY_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_4__Time out_OCO4");
Base.AUDJPY_UP_S2_OCO4Sets4.Clear();
AUDJPY_OCO4S4_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S5_UP_S2 = 0;
for (; AUDJPY_OCO4S5_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets5.Count; AUDJPY_OCO4S5_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets5[AUDJPY_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO4Sets5[AUDJPY_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_5__Time out_OCO4");
Base.AUDJPY_UP_S2_OCO4Sets5.Clear();
AUDJPY_OCO4S5_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S6_UP_S2 = 0;
for (; AUDJPY_OCO4S6_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets6.Count; AUDJPY_OCO4S6_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets6[AUDJPY_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.AUDJPY_UP_S2_OCO4Sets6[AUDJPY_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("AUDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("AUDJPY", order.Quantity, false, "AUDJPY_UP_S2_Entry_6__Time out_OCO4");
Base.AUDJPY_UP_S2_OCO4Sets6.Clear();
AUDJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDJPY_UP_S2 = DOWM_AUDJPY_UP_S2 || DOWT_AUDJPY_UP_S2 || DOWW_AUDJPY_UP_S2 || DOWTH_AUDJPY_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDJPY") && SY1D.Symbol.ID.Market == Market.FXCM)
{
if(SY1D.BQ[0].Open != 0)
{
algorithm.Debug("ID : " + SY1D.Symbol.ID.Market);
}
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDJPY_OCO1_UP_S2_IsReady == false ||
Base.AUDJPY_OCO2_UP_S2_IsReady == false ||
Base.AUDJPY_OCO3_UP_S2_IsReady == false ||
Base.AUDJPY_OCO4_UP_S2_IsReady == false)
{
Base.AUDJPY_OCO1_UP_S2_Monthly_IsReady = false;
Base.AUDJPY_OCO2_UP_S2_Monthly_IsReady = false;
Base.AUDJPY_OCO3_UP_S2_Monthly_IsReady = false;
Base.AUDJPY_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDJPY_OCO1_UP_S2_Monthly_IsReady = true;
Base.AUDJPY_OCO2_UP_S2_Monthly_IsReady = true;
Base.AUDJPY_OCO3_UP_S2_Monthly_IsReady = true;
Base.AUDJPY_OCO4_UP_S2_Monthly_IsReady = true;
}
AUDJPY_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
AUDJPY_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
AUDJPY_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.681m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.681m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (AUDJPY_Signal_Condition_UP_1)
{
AUDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDJPY_Signal_Condition_UP_2)
{
AUDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDJPY_Signal_Condition_UP_3)
{
AUDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDJPY_Signal_Condition_UP_1)
{
AUDJPY_UP_S2_TP1 = Base.Yen_TP_1 ;
}
if (AUDJPY_Signal_Condition_UP_2)
{
AUDJPY_UP_S2_TP1 = Base.Yen_TP_2 ;
}
if (AUDJPY_Signal_Condition_UP_3)
{
AUDJPY_UP_S2_TP1 = Base.Yen_TP_3 ;
}
AUDJPY_UP_S2_TP2 = AUDJPY_UP_S2_SL * 0;
AUDJPY_UP_S2_TP3 = AUDJPY_UP_S2_SL * 0;
AUDJPY_UP_S2_TP4 = AUDJPY_UP_S2_SL * 0;
AUDJPY_UP_S2_TP5 = AUDJPY_UP_S2_SL * 0;
AUDJPY_UP_S2_TP6 = AUDJPY_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDJPY_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDJPY_quantity_SL_UP_S2 = AUDJPY_quantity_UP_S2;
AUDJPY_quantity_TP1_UP_S2 = (int)Math.Floor(AUDJPY_quantity_UP_S2 * 1m);
AUDJPY_quantity_TP2_UP_S2 = (int)Math.Floor(AUDJPY_quantity_TP1_UP_S2 * 0m);
AUDJPY_quantity_TP3_UP_S2 = (int)Math.Floor(AUDJPY_quantity_TP2_UP_S2 * 0m);
AUDJPY_quantity_TP4_UP_S2 = (int)Math.Floor(AUDJPY_quantity_TP3_UP_S2 * 0m);
AUDJPY_quantity_TP5_UP_S2 = (int)Math.Floor(AUDJPY_quantity_TP4_UP_S2 * 0m);
AUDJPY_quantity_TP6_UP_S2 = (int)Math.Floor(AUDJPY_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((AUDJPY_Signal_Condition_UP_1 || AUDJPY_Signal_Condition_UP_2 || AUDJPY_Signal_Condition_UP_3) &&
DOWR_AUDJPY_UP_S2 &&
Base.AUDJPY_OCO1_UP_S2_IsReady == true &&
Base.AUDJPY_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.AUDJPY_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP1_UP_S2, false,"AUDJPY_UP_S2_Entry_TP1_OCO1");
Base.AUDJPY_OCO1_EO1_UP_S2 = false;
Base.AUDJPY_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP2_UP_S2, false,"AUDJPY_UP_S2_Entry_TP2_OCO1");
Base.AUDJPY_OCO1_EO2_UP_S2 = false;
Base.AUDJPY_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP3_UP_S2, false,"AUDJPY_UP_S2_Entry_TP3_OCO1");
Base.AUDJPY_OCO1_EO3_UP_S2 = false;
Base.AUDJPY_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP4_UP_S2, false,"AUDJPY_UP_S2_Entry_TP4_OCO1");
Base.AUDJPY_OCO1_EO4_UP_S2 = false;
Base.AUDJPY_OCO1_UP_S2_IsReady = false;
if (Base.AUDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((AUDJPY_Signal_Condition_UP_1 || AUDJPY_Signal_Condition_UP_2 || AUDJPY_Signal_Condition_UP_3) &&
DOWR_AUDJPY_UP_S2 &&
Base.AUDJPY_OCO1_UP_S2_IsReady == false &&
Base.AUDJPY_OCO2_UP_S2_IsReady == true &&
Base.AUDJPY_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.AUDJPY_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP1_UP_S2, false,"AUDJPY_UP_S2_Entry_TP1_OCO2");
Base.AUDJPY_OCO2_EO1_UP_S2 = false;
Base.AUDJPY_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP2_UP_S2, false,"AUDJPY_UP_S2_Entry_TP2_OCO2");
Base.AUDJPY_OCO2_EO2_UP_S2 = false;
Base.AUDJPY_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP3_UP_S2, false,"AUDJPY_UP_S2_Entry_TP3_OCO2");
Base.AUDJPY_OCO2_EO3_UP_S2 = false;
Base.AUDJPY_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP4_UP_S2, false,"AUDJPY_UP_S2_Entry_TP4_OCO2");
Base.AUDJPY_OCO2_EO4_UP_S2 = false;
Base.AUDJPY_OCO2_UP_S2_IsReady = false;
if (Base.AUDJPY_OCO2_UP_S2_IsReady == false && Base.AUDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((AUDJPY_Signal_Condition_UP_1 || AUDJPY_Signal_Condition_UP_2 || AUDJPY_Signal_Condition_UP_3) &&
DOWR_AUDJPY_UP_S2 &&
Base.AUDJPY_OCO1_UP_S2_IsReady == false &&
Base.AUDJPY_OCO2_UP_S2_IsReady == false &&
Base.AUDJPY_OCO3_UP_S2_IsReady == true &&
Base.AUDJPY_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.AUDJPY_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP1_UP_S2, false,"AUDJPY_UP_S2_Entry_TP1_OCO3");
Base.AUDJPY_OCO3_EO1_UP_S2 = false;
Base.AUDJPY_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP2_UP_S2, false,"AUDJPY_UP_S2_Entry_TP2_OCO3");
Base.AUDJPY_OCO3_EO2_UP_S2 = false;
Base.AUDJPY_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP3_UP_S2, false,"AUDJPY_UP_S2_Entry_TP3_OCO3");
Base.AUDJPY_OCO3_EO3_UP_S2 = false;
Base.AUDJPY_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP4_UP_S2, false,"AUDJPY_UP_S2_Entry_TP4_OCO3");
Base.AUDJPY_OCO3_EO4_UP_S2 = false;
Base.AUDJPY_OCO3_UP_S2_IsReady = false;
if (Base.AUDJPY_OCO3_UP_S2_IsReady == false && Base.AUDJPY_OCO2_UP_S2_IsReady == false && Base.AUDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((AUDJPY_Signal_Condition_UP_1 || AUDJPY_Signal_Condition_UP_2 || AUDJPY_Signal_Condition_UP_3) &&
DOWR_AUDJPY_UP_S2 &&
Base.AUDJPY_OCO1_UP_S2_IsReady == false &&
Base.AUDJPY_OCO2_UP_S2_IsReady == false &&
Base.AUDJPY_OCO3_UP_S2_IsReady == false &&
Base.AUDJPY_OCO4_UP_S2_IsReady == true &&
Base.AUDJPY_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.AUDJPY_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP1_UP_S2, false,"AUDJPY_UP_S2_Entry_TP1_OCO4");
Base.AUDJPY_OCO4_EO1_UP_S2 = false;
Base.AUDJPY_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP2_UP_S2, false,"AUDJPY_UP_S2_Entry_TP2_OCO4");
Base.AUDJPY_OCO4_EO2_UP_S2 = false;
Base.AUDJPY_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP3_UP_S2, false,"AUDJPY_UP_S2_Entry_TP3_OCO4");
Base.AUDJPY_OCO4_EO3_UP_S2 = false;
Base.AUDJPY_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDJPY_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDJPY_quantity_TP4_UP_S2, false,"AUDJPY_UP_S2_Entry_TP4_OCO4");
Base.AUDJPY_OCO4_EO4_UP_S2 = false;
Base.AUDJPY_OCO4_UP_S2_IsReady = false;
if (Base.AUDJPY_OCO4_UP_S2_IsReady == false && Base.AUDJPY_OCO3_UP_S2_IsReady == false && Base.AUDJPY_OCO2_UP_S2_IsReady == false && Base.AUDJPY_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct AUDJPY_OCO1_DOWN_S2
{
public AUDJPY_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDJPY_OCO1_UP_S2
{
public AUDJPY_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDJPY_OCO2_DOWN_S2
{
public AUDJPY_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDJPY_OCO2_UP_S2
{
public AUDJPY_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("AUDJPY OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDJPY_OCO3_DOWN_S2
{
public AUDJPY_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDJPY_OCO3_UP_S2
{
public AUDJPY_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("AUDJPY OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDJPY_OCO4_DOWN_S2
{
public AUDJPY_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDJPY_OCO4_UP_S2
{
public AUDJPY_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("AUDJPY OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDNZD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDNZD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
}
if (Base.AUDNZD_OCO1_EO1_UP_S2)
Base.AUDNZD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO1_EO2_UP_S2)
Base.AUDNZD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO1_EO3_UP_S2)
Base.AUDNZD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO1_EO4_UP_S2)
Base.AUDNZD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO1_EO5_UP_S2)
Base.AUDNZD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO1_EO6_UP_S2)
Base.AUDNZD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO1_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP1,"TP1_AUDNZD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP1_AUDNZD_UP_S2_OCO1"));
};
Base.AUDNZD_UP_S2_OCO1Sets1.Add( Base.AUDNZD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO2_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP2,"TP2_AUDNZD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP2_AUDNZD_UP_S2_OCO1"));
};
Base.AUDNZD_UP_S2_OCO1Sets2.Add( Base.AUDNZD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO3_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP3,"TP3_AUDNZD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP3_AUDNZD_UP_S2_OCO1"));
};
Base.AUDNZD_UP_S2_OCO1Sets3.Add( Base.AUDNZD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO4_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP4,"TP4_AUDNZD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP4_AUDNZD_UP_S2_OCO1"));
};
Base.AUDNZD_UP_S2_OCO1Sets4.Add( Base.AUDNZD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO5_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP5,"TP5_AUDNZD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP5_AUDNZD_UP_S2_OCO1"));
};
Base.AUDNZD_UP_S2_OCO1Sets5.Add( Base.AUDNZD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO6_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP6,"TP6_AUDNZD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP6_AUDNZD_UP_S2_OCO1"));
};
Base.AUDNZD_UP_S2_OCO1Sets6.Add( Base.AUDNZD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO6_UP_S2_ID = -1;
}
int AUDNZD_OCO1S1_UP_S2 = 0;
for (; AUDNZD_OCO1S1_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets1.Count; AUDNZD_OCO1S1_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets1[AUDNZD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO1Sets1[AUDNZD_OCO1S1_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO1Sets1.RemoveAt(AUDNZD_OCO1S1_UP_S2);
AUDNZD_OCO1S1_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S2_UP_S2 = 0;
for (; AUDNZD_OCO1S2_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets2.Count; AUDNZD_OCO1S2_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets2[AUDNZD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO1Sets2[AUDNZD_OCO1S2_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO1Sets2.RemoveAt(AUDNZD_OCO1S2_UP_S2);
AUDNZD_OCO1S2_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S3_UP_S2 = 0;
for (; AUDNZD_OCO1S3_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets3.Count; AUDNZD_OCO1S3_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets3[AUDNZD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO1Sets3[AUDNZD_OCO1S3_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO1Sets3.RemoveAt(AUDNZD_OCO1S3_UP_S2);
AUDNZD_OCO1S3_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S4_UP_S2 = 0;
for (; AUDNZD_OCO1S4_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets4.Count; AUDNZD_OCO1S4_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets4[AUDNZD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO1Sets4[AUDNZD_OCO1S4_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO1Sets4.RemoveAt(AUDNZD_OCO1S4_UP_S2);
AUDNZD_OCO1S4_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S5_UP_S2 = 0;
for (; AUDNZD_OCO1S5_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets5.Count; AUDNZD_OCO1S5_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets5[AUDNZD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO1Sets5[AUDNZD_OCO1S5_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO1Sets5.RemoveAt(AUDNZD_OCO1S5_UP_S2);
AUDNZD_OCO1S5_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S6_UP_S2 = 0;
for (; AUDNZD_OCO1S6_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets6.Count; AUDNZD_OCO1S6_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets6[AUDNZD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO1Sets6[AUDNZD_OCO1S6_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO1Sets6.RemoveAt(AUDNZD_OCO1S6_UP_S2);
AUDNZD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO2_EO1_UP_S2)
Base.AUDNZD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO2_EO2_UP_S2)
Base.AUDNZD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO2_EO3_UP_S2)
Base.AUDNZD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO2_EO4_UP_S2)
Base.AUDNZD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO2_EO5_UP_S2)
Base.AUDNZD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO2_EO6_UP_S2)
Base.AUDNZD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO1_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP1,"TP1_AUDNZD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP1_AUDNZD_UP_S2_OCO2"));
};
Base.AUDNZD_UP_S2_OCO2Sets1.Add( Base.AUDNZD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO2_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP2,"TP2_AUDNZD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP2_AUDNZD_UP_S2_OCO2"));
};
Base.AUDNZD_UP_S2_OCO2Sets2.Add( Base.AUDNZD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO3_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP3,"TP3_AUDNZD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP3_AUDNZD_UP_S2_OCO2"));
};
Base.AUDNZD_UP_S2_OCO2Sets3.Add( Base.AUDNZD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO4_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP4,"TP4_AUDNZD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP4_AUDNZD_UP_S2_OCO2"));
};
Base.AUDNZD_UP_S2_OCO2Sets4.Add( Base.AUDNZD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO5_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP5,"TP5_AUDNZD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP5_AUDNZD_UP_S2_OCO2"));
};
Base.AUDNZD_UP_S2_OCO2Sets5.Add( Base.AUDNZD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO6_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP6,"TP6_AUDNZD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP6_AUDNZD_UP_S2_OCO2"));
};
Base.AUDNZD_UP_S2_OCO2Sets6.Add( Base.AUDNZD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO6_UP_S2_ID = -1;
}
int AUDNZD_OCO2S1_UP_S2 = 0;
for (; AUDNZD_OCO2S1_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets1.Count; AUDNZD_OCO2S1_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets1[AUDNZD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO2Sets1[AUDNZD_OCO2S1_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO2Sets1.RemoveAt(AUDNZD_OCO2S1_UP_S2);
AUDNZD_OCO2S1_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S2_UP_S2 = 0;
for (; AUDNZD_OCO2S2_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets2.Count; AUDNZD_OCO2S2_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets2[AUDNZD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO2Sets2[AUDNZD_OCO2S2_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO2Sets2.RemoveAt(AUDNZD_OCO2S2_UP_S2);
AUDNZD_OCO2S2_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S3_UP_S2 = 0;
for (; AUDNZD_OCO2S3_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets3.Count; AUDNZD_OCO2S3_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets3[AUDNZD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO2Sets3[AUDNZD_OCO2S3_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO2Sets3.RemoveAt(AUDNZD_OCO2S3_UP_S2);
AUDNZD_OCO2S3_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S4_UP_S2 = 0;
for (; AUDNZD_OCO2S4_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets4.Count; AUDNZD_OCO2S4_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets4[AUDNZD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO2Sets4[AUDNZD_OCO2S4_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO2Sets4.RemoveAt(AUDNZD_OCO2S4_UP_S2);
AUDNZD_OCO2S4_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S5_UP_S2 = 0;
for (; AUDNZD_OCO2S5_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets5.Count; AUDNZD_OCO2S5_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets5[AUDNZD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO2Sets5[AUDNZD_OCO2S5_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO2Sets5.RemoveAt(AUDNZD_OCO2S5_UP_S2);
AUDNZD_OCO2S5_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S6_UP_S2 = 0;
for (; AUDNZD_OCO2S6_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets6.Count; AUDNZD_OCO2S6_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets6[AUDNZD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO2Sets6[AUDNZD_OCO2S6_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO2Sets6.RemoveAt(AUDNZD_OCO2S6_UP_S2);
AUDNZD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO3_EO1_UP_S2)
Base.AUDNZD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO3_EO2_UP_S2)
Base.AUDNZD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO3_EO3_UP_S2)
Base.AUDNZD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO3_EO4_UP_S2)
Base.AUDNZD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO3_EO5_UP_S2)
Base.AUDNZD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO3_EO6_UP_S2)
Base.AUDNZD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO1_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP1,"TP1_AUDNZD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP1_AUDNZD_UP_S2_OCO3"));
};
Base.AUDNZD_UP_S2_OCO3Sets1.Add( Base.AUDNZD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO2_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP2,"TP2_AUDNZD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP2_AUDNZD_UP_S2_OCO3"));
};
Base.AUDNZD_UP_S2_OCO3Sets2.Add( Base.AUDNZD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO3_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP3,"TP3_AUDNZD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP3_AUDNZD_UP_S2_OCO3"));
};
Base.AUDNZD_UP_S2_OCO3Sets3.Add( Base.AUDNZD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO4_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP4,"TP4_AUDNZD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP4_AUDNZD_UP_S2_OCO3"));
};
Base.AUDNZD_UP_S2_OCO3Sets4.Add( Base.AUDNZD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO5_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP5,"TP5_AUDNZD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP5_AUDNZD_UP_S2_OCO3"));
};
Base.AUDNZD_UP_S2_OCO3Sets5.Add( Base.AUDNZD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO6_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP6,"TP6_AUDNZD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP6_AUDNZD_UP_S2_OCO3"));
};
Base.AUDNZD_UP_S2_OCO3Sets6.Add( Base.AUDNZD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO6_UP_S2_ID = -1;
}
int AUDNZD_OCO3S1_UP_S2 = 0;
for (; AUDNZD_OCO3S1_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets1.Count; AUDNZD_OCO3S1_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets1[AUDNZD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO3Sets1[AUDNZD_OCO3S1_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO3Sets1.RemoveAt(AUDNZD_OCO3S1_UP_S2);
AUDNZD_OCO3S1_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S2_UP_S2 = 0;
for (; AUDNZD_OCO3S2_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets2.Count; AUDNZD_OCO3S2_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets2[AUDNZD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO3Sets2[AUDNZD_OCO3S2_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO3Sets2.RemoveAt(AUDNZD_OCO3S2_UP_S2);
AUDNZD_OCO3S2_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S3_UP_S2 = 0;
for (; AUDNZD_OCO3S3_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets3.Count; AUDNZD_OCO3S3_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets3[AUDNZD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO3Sets3[AUDNZD_OCO3S3_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO3Sets3.RemoveAt(AUDNZD_OCO3S3_UP_S2);
AUDNZD_OCO3S3_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S4_UP_S2 = 0;
for (; AUDNZD_OCO3S4_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets4.Count; AUDNZD_OCO3S4_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets4[AUDNZD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO3Sets4[AUDNZD_OCO3S4_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO3Sets4.RemoveAt(AUDNZD_OCO3S4_UP_S2);
AUDNZD_OCO3S4_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S5_UP_S2 = 0;
for (; AUDNZD_OCO3S5_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets5.Count; AUDNZD_OCO3S5_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets5[AUDNZD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO3Sets5[AUDNZD_OCO3S5_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO3Sets5.RemoveAt(AUDNZD_OCO3S5_UP_S2);
AUDNZD_OCO3S5_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S6_UP_S2 = 0;
for (; AUDNZD_OCO3S6_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets6.Count; AUDNZD_OCO3S6_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets6[AUDNZD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO3Sets6[AUDNZD_OCO3S6_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO3Sets6.RemoveAt(AUDNZD_OCO3S6_UP_S2);
AUDNZD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO4_EO1_UP_S2)
Base.AUDNZD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO4_EO2_UP_S2)
Base.AUDNZD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO4_EO3_UP_S2)
Base.AUDNZD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO4_EO4_UP_S2)
Base.AUDNZD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO4_EO5_UP_S2)
Base.AUDNZD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO4_EO6_UP_S2)
Base.AUDNZD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO1_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP1,"TP1_AUDNZD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP1_AUDNZD_UP_S2_OCO4"));
};
Base.AUDNZD_UP_S2_OCO4Sets1.Add( Base.AUDNZD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO2_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP2,"TP2_AUDNZD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP2_AUDNZD_UP_S2_OCO4"));
};
Base.AUDNZD_UP_S2_OCO4Sets2.Add( Base.AUDNZD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO3_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP3,"TP3_AUDNZD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP3_AUDNZD_UP_S2_OCO4"));
};
Base.AUDNZD_UP_S2_OCO4Sets3.Add( Base.AUDNZD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO4_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP4,"TP4_AUDNZD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP4_AUDNZD_UP_S2_OCO4"));
};
Base.AUDNZD_UP_S2_OCO4Sets4.Add( Base.AUDNZD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO5_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP5,"TP5_AUDNZD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP5_AUDNZD_UP_S2_OCO4"));
};
Base.AUDNZD_UP_S2_OCO4Sets5.Add( Base.AUDNZD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO6_UP_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_UP_S2_TP6,"TP6_AUDNZD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_UP_S2_SL,"SL_TP6_AUDNZD_UP_S2_OCO4"));
};
Base.AUDNZD_UP_S2_OCO4Sets6.Add( Base.AUDNZD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO6_UP_S2_ID = -1;
}
int AUDNZD_OCO4S1_UP_S2 = 0;
for (; AUDNZD_OCO4S1_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets1.Count; AUDNZD_OCO4S1_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets1[AUDNZD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO4Sets1[AUDNZD_OCO4S1_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO4Sets1.RemoveAt(AUDNZD_OCO4S1_UP_S2);
AUDNZD_OCO4S1_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S2_UP_S2 = 0;
for (; AUDNZD_OCO4S2_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets2.Count; AUDNZD_OCO4S2_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets2[AUDNZD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO4Sets2[AUDNZD_OCO4S2_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO4Sets2.RemoveAt(AUDNZD_OCO4S2_UP_S2);
AUDNZD_OCO4S2_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S3_UP_S2 = 0;
for (; AUDNZD_OCO4S3_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets3.Count; AUDNZD_OCO4S3_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets3[AUDNZD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO4Sets3[AUDNZD_OCO4S3_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO4Sets3.RemoveAt(AUDNZD_OCO4S3_UP_S2);
AUDNZD_OCO4S3_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S4_UP_S2 = 0;
for (; AUDNZD_OCO4S4_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets4.Count; AUDNZD_OCO4S4_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets4[AUDNZD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO4Sets4[AUDNZD_OCO4S4_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO4Sets4.RemoveAt(AUDNZD_OCO4S4_UP_S2);
AUDNZD_OCO4S4_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S5_UP_S2 = 0;
for (; AUDNZD_OCO4S5_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets5.Count; AUDNZD_OCO4S5_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets5[AUDNZD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO4Sets5[AUDNZD_OCO4S5_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO4Sets5.RemoveAt(AUDNZD_OCO4S5_UP_S2);
AUDNZD_OCO4S5_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S6_UP_S2 = 0;
for (; AUDNZD_OCO4S6_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets6.Count; AUDNZD_OCO4S6_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets6[AUDNZD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_UP_S2_OCO4Sets6[AUDNZD_OCO4S6_UP_S2].Filled();
Base.AUDNZD_UP_S2_OCO4Sets6.RemoveAt(AUDNZD_OCO4S6_UP_S2);
AUDNZD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDNZD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDNZD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
if (OrderID.Tag.StartsWith("AUDNZD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDNZD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDNZD S2");
}
}
if (Base.AUDNZD_OCO1_EO1_DOWN_S2)
Base.AUDNZD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO1_EO2_DOWN_S2)
Base.AUDNZD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO1_EO3_DOWN_S2)
Base.AUDNZD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO1_EO4_DOWN_S2)
Base.AUDNZD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO1_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP1_AUDNZD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP1,"TP1_AUDNZD_DOWN_S2_OCO1"));
};
Base.AUDNZD_DOWN_S2_OCO1Sets1.Add( Base.AUDNZD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO2_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP2_AUDNZD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP2,"TP2_AUDNZD_DOWN_S2_OCO1"));
};
Base.AUDNZD_DOWN_S2_OCO1Sets2.Add( Base.AUDNZD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO3_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP3_AUDNZD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP3,"TP3_AUDNZD_DOWN_S2_OCO1"));
};
Base.AUDNZD_DOWN_S2_OCO1Sets3.Add( Base.AUDNZD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO1_EO4_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP4_AUDNZD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP4,"TP4_AUDNZD_DOWN_S2_OCO1"));
};
Base.AUDNZD_DOWN_S2_OCO1Sets4.Add( Base.AUDNZD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO1_EO4_DOWN_S2_ID = -1;
}
int AUDNZD_OCO1S1_DOWN_S2 = 0;
for (; AUDNZD_OCO1S1_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets1.Count; AUDNZD_OCO1S1_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets1[AUDNZD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO1Sets1[AUDNZD_OCO1S1_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO1Sets1.RemoveAt(AUDNZD_OCO1S1_DOWN_S2);
AUDNZD_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO1S2_DOWN_S2 = 0;
for (; AUDNZD_OCO1S2_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets2.Count; AUDNZD_OCO1S2_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets2[AUDNZD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO1Sets2[AUDNZD_OCO1S2_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO1Sets2.RemoveAt(AUDNZD_OCO1S2_DOWN_S2);
AUDNZD_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO1S3_DOWN_S2 = 0;
for (; AUDNZD_OCO1S3_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets3.Count; AUDNZD_OCO1S3_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets3[AUDNZD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO1Sets3[AUDNZD_OCO1S3_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO1Sets3.RemoveAt(AUDNZD_OCO1S3_DOWN_S2);
AUDNZD_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO1S4_DOWN_S2 = 0;
for (; AUDNZD_OCO1S4_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets4.Count; AUDNZD_OCO1S4_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets4[AUDNZD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO1Sets4[AUDNZD_OCO1S4_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO1Sets4.RemoveAt(AUDNZD_OCO1S4_DOWN_S2);
AUDNZD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO2_EO1_DOWN_S2)
Base.AUDNZD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO2_EO2_DOWN_S2)
Base.AUDNZD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO2_EO3_DOWN_S2)
Base.AUDNZD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO2_EO4_DOWN_S2)
Base.AUDNZD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO1_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP1_AUDNZD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP1,"TP1_AUDNZD_DOWN_S2_OCO2"));
};
Base.AUDNZD_DOWN_S2_OCO2Sets1.Add( Base.AUDNZD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO2_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP2_AUDNZD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP2,"TP2_AUDNZD_DOWN_S2_OCO2"));
};
Base.AUDNZD_DOWN_S2_OCO2Sets2.Add( Base.AUDNZD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO3_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP3_AUDNZD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP3,"TP3_AUDNZD_DOWN_S2_OCO2"));
};
Base.AUDNZD_DOWN_S2_OCO2Sets3.Add( Base.AUDNZD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO2_EO4_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP4_AUDNZD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP4,"TP4_AUDNZD_DOWN_S2_OCO2"));
};
Base.AUDNZD_DOWN_S2_OCO2Sets4.Add( Base.AUDNZD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO2_EO4_DOWN_S2_ID = -1;
}
int AUDNZD_OCO2S1_DOWN_S2 = 0;
for (; AUDNZD_OCO2S1_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets1.Count; AUDNZD_OCO2S1_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets1[AUDNZD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO2Sets1[AUDNZD_OCO2S1_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO2Sets1.RemoveAt(AUDNZD_OCO2S1_DOWN_S2);
AUDNZD_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO2S2_DOWN_S2 = 0;
for (; AUDNZD_OCO2S2_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets2.Count; AUDNZD_OCO2S2_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets2[AUDNZD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO2Sets2[AUDNZD_OCO2S2_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO2Sets2.RemoveAt(AUDNZD_OCO2S2_DOWN_S2);
AUDNZD_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO2S3_DOWN_S2 = 0;
for (; AUDNZD_OCO2S3_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets3.Count; AUDNZD_OCO2S3_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets3[AUDNZD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO2Sets3[AUDNZD_OCO2S3_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO2Sets3.RemoveAt(AUDNZD_OCO2S3_DOWN_S2);
AUDNZD_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO2S4_DOWN_S2 = 0;
for (; AUDNZD_OCO2S4_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets4.Count; AUDNZD_OCO2S4_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets4[AUDNZD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO2Sets4[AUDNZD_OCO2S4_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO2Sets4.RemoveAt(AUDNZD_OCO2S4_DOWN_S2);
AUDNZD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO3_EO1_DOWN_S2)
Base.AUDNZD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO3_EO2_DOWN_S2)
Base.AUDNZD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO3_EO3_DOWN_S2)
Base.AUDNZD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO3_EO4_DOWN_S2)
Base.AUDNZD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO1_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP1_AUDNZD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP1,"TP1_AUDNZD_DOWN_S2_OCO3"));
};
Base.AUDNZD_DOWN_S2_OCO3Sets1.Add( Base.AUDNZD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO2_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP2_AUDNZD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP2,"TP2_AUDNZD_DOWN_S2_OCO3"));
};
Base.AUDNZD_DOWN_S2_OCO3Sets2.Add( Base.AUDNZD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO3_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP3_AUDNZD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP3,"TP3_AUDNZD_DOWN_S2_OCO3"));
};
Base.AUDNZD_DOWN_S2_OCO3Sets3.Add( Base.AUDNZD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO3_EO4_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP4_AUDNZD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP4,"TP4_AUDNZD_DOWN_S2_OCO3"));
};
Base.AUDNZD_DOWN_S2_OCO3Sets4.Add( Base.AUDNZD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO3_EO4_DOWN_S2_ID = -1;
}
int AUDNZD_OCO3S1_DOWN_S2 = 0;
for (; AUDNZD_OCO3S1_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets1.Count; AUDNZD_OCO3S1_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets1[AUDNZD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO3Sets1[AUDNZD_OCO3S1_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO3Sets1.RemoveAt(AUDNZD_OCO3S1_DOWN_S2);
AUDNZD_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO3S2_DOWN_S2 = 0;
for (; AUDNZD_OCO3S2_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets2.Count; AUDNZD_OCO3S2_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets2[AUDNZD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO3Sets2[AUDNZD_OCO3S2_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO3Sets2.RemoveAt(AUDNZD_OCO3S2_DOWN_S2);
AUDNZD_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO3S3_DOWN_S2 = 0;
for (; AUDNZD_OCO3S3_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets3.Count; AUDNZD_OCO3S3_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets3[AUDNZD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO3Sets3[AUDNZD_OCO3S3_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO3Sets3.RemoveAt(AUDNZD_OCO3S3_DOWN_S2);
AUDNZD_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO3S4_DOWN_S2 = 0;
for (; AUDNZD_OCO3S4_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets4.Count; AUDNZD_OCO3S4_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets4[AUDNZD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO3Sets4[AUDNZD_OCO3S4_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO3Sets4.RemoveAt(AUDNZD_OCO3S4_DOWN_S2);
AUDNZD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO4_EO1_DOWN_S2)
Base.AUDNZD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO4_EO2_DOWN_S2)
Base.AUDNZD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO4_EO3_DOWN_S2)
Base.AUDNZD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDNZD_OCO4_EO4_DOWN_S2)
Base.AUDNZD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO1_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP1_AUDNZD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP1,"TP1_AUDNZD_DOWN_S2_OCO4"));
};
Base.AUDNZD_DOWN_S2_OCO4Sets1.Add( Base.AUDNZD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO2_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP2_AUDNZD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP2,"TP2_AUDNZD_DOWN_S2_OCO4"));
};
Base.AUDNZD_DOWN_S2_OCO4Sets2.Add( Base.AUDNZD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO3_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP3_AUDNZD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP3,"TP3_AUDNZD_DOWN_S2_OCO4"));
};
Base.AUDNZD_DOWN_S2_OCO4Sets3.Add( Base.AUDNZD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDNZD_OCO4_EO4_DOWN_S2_ID)
{
Base.AUDNZD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDNZD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDNZD_DOWN_S2_SL,"SL_TP4_AUDNZD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDNZD_DOWN_S2_TP4,"TP4_AUDNZD_DOWN_S2_OCO4"));
};
Base.AUDNZD_DOWN_S2_OCO4Sets4.Add( Base.AUDNZD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDNZD_OCO4_EO4_DOWN_S2_ID = -1;
}
int AUDNZD_OCO4S1_DOWN_S2 = 0;
for (; AUDNZD_OCO4S1_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets1.Count; AUDNZD_OCO4S1_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets1[AUDNZD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO4Sets1[AUDNZD_OCO4S1_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO4Sets1.RemoveAt(AUDNZD_OCO4S1_DOWN_S2);
AUDNZD_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO4S2_DOWN_S2 = 0;
for (; AUDNZD_OCO4S2_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets2.Count; AUDNZD_OCO4S2_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets2[AUDNZD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO4Sets2[AUDNZD_OCO4S2_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO4Sets2.RemoveAt(AUDNZD_OCO4S2_DOWN_S2);
AUDNZD_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO4S3_DOWN_S2 = 0;
for (; AUDNZD_OCO4S3_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets3.Count; AUDNZD_OCO4S3_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets3[AUDNZD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO4Sets3[AUDNZD_OCO4S3_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO4Sets3.RemoveAt(AUDNZD_OCO4S3_DOWN_S2);
AUDNZD_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO4S4_DOWN_S2 = 0;
for (; AUDNZD_OCO4S4_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets4.Count; AUDNZD_OCO4S4_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets4[AUDNZD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDNZD_DOWN_S2_OCO4Sets4[AUDNZD_OCO4S4_DOWN_S2].Filled();
Base.AUDNZD_DOWN_S2_OCO4Sets4.RemoveAt(AUDNZD_OCO4S4_DOWN_S2);
AUDNZD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _AUDUSD;
///oco1 up
public static OrderTicket AUDUSD_OCO1_MO1_UP_S2;
public static OrderTicket AUDUSD_OCO1_MO2_UP_S2;
public static OrderTicket AUDUSD_OCO1_MO3_UP_S2;
public static OrderTicket AUDUSD_OCO1_MO4_UP_S2;
public static OrderTicket AUDUSD_OCO1_MO5_UP_S2;
public static OrderTicket AUDUSD_OCO1_MO6_UP_S2;
public static int AUDUSD_OCO1_EO1_UP_S2_ID ;
public static int AUDUSD_OCO1_EO2_UP_S2_ID ;
public static int AUDUSD_OCO1_EO3_UP_S2_ID ;
public static int AUDUSD_OCO1_EO4_UP_S2_ID ;
public static int AUDUSD_OCO1_EO5_UP_S2_ID ;
public static int AUDUSD_OCO1_EO6_UP_S2_ID ;
public static bool AUDUSD_OCO1_EO1_UP_S2 ;
public static bool AUDUSD_OCO1_EO2_UP_S2 ;
public static bool AUDUSD_OCO1_EO3_UP_S2 ;
public static bool AUDUSD_OCO1_EO4_UP_S2 ;
public static bool AUDUSD_OCO1_EO5_UP_S2 ;
public static bool AUDUSD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_UP_S2> AUDUSD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_UP_S2> AUDUSD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_UP_S2> AUDUSD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_UP_S2> AUDUSD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_UP_S2> AUDUSD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_UP_S2> AUDUSD_OOFE_OCO1_UP_S2_6 ;
public static AUDUSD_OCO1_UP_S2 AUDUSD_PFO_OCO1_UP_S2_1 ;
public static AUDUSD_OCO1_UP_S2 AUDUSD_PFO_OCO1_UP_S2_2 ;
public static AUDUSD_OCO1_UP_S2 AUDUSD_PFO_OCO1_UP_S2_3 ;
public static AUDUSD_OCO1_UP_S2 AUDUSD_PFO_OCO1_UP_S2_4 ;
public static AUDUSD_OCO1_UP_S2 AUDUSD_PFO_OCO1_UP_S2_5 ;
public static AUDUSD_OCO1_UP_S2 AUDUSD_PFO_OCO1_UP_S2_6 ;
public static List<AUDUSD_OCO1_UP_S2> AUDUSD_UP_S2_OCO1Sets1 = new List<AUDUSD_OCO1_UP_S2>();
public static List<AUDUSD_OCO1_UP_S2> AUDUSD_UP_S2_OCO1Sets2 = new List<AUDUSD_OCO1_UP_S2>();
public static List<AUDUSD_OCO1_UP_S2> AUDUSD_UP_S2_OCO1Sets3 = new List<AUDUSD_OCO1_UP_S2>();
public static List<AUDUSD_OCO1_UP_S2> AUDUSD_UP_S2_OCO1Sets4 = new List<AUDUSD_OCO1_UP_S2>();
public static List<AUDUSD_OCO1_UP_S2> AUDUSD_UP_S2_OCO1Sets5 = new List<AUDUSD_OCO1_UP_S2>();
public static List<AUDUSD_OCO1_UP_S2> AUDUSD_UP_S2_OCO1Sets6 = new List<AUDUSD_OCO1_UP_S2>();
public static bool AUDUSD_OCO1_UP_S2_IsReady = true;
public static bool AUDUSD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket AUDUSD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO1_MO6_DOWN_S2 ;
public static int AUDUSD_OCO1_EO1_DOWN_S2_ID ;
public static int AUDUSD_OCO1_EO2_DOWN_S2_ID ;
public static int AUDUSD_OCO1_EO3_DOWN_S2_ID ;
public static int AUDUSD_OCO1_EO4_DOWN_S2_ID ;
public static int AUDUSD_OCO1_EO5_DOWN_S2_ID ;
public static int AUDUSD_OCO1_EO6_DOWN_S2_ID ;
public static bool AUDUSD_OCO1_EO1_DOWN_S2 ;
public static bool AUDUSD_OCO1_EO2_DOWN_S2 ;
public static bool AUDUSD_OCO1_EO3_DOWN_S2 ;
public static bool AUDUSD_OCO1_EO4_DOWN_S2 ;
public static bool AUDUSD_OCO1_EO5_DOWN_S2 ;
public static bool AUDUSD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_DOWN_S2> AUDUSD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_DOWN_S2> AUDUSD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_DOWN_S2> AUDUSD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_DOWN_S2> AUDUSD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_DOWN_S2> AUDUSD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO1_DOWN_S2> AUDUSD_OOFE_OCO1_DOWN_S2_6 ;
public static AUDUSD_OCO1_DOWN_S2 AUDUSD_PFO_OCO1_DOWN_S2_1 ;
public static AUDUSD_OCO1_DOWN_S2 AUDUSD_PFO_OCO1_DOWN_S2_2 ;
public static AUDUSD_OCO1_DOWN_S2 AUDUSD_PFO_OCO1_DOWN_S2_3 ;
public static AUDUSD_OCO1_DOWN_S2 AUDUSD_PFO_OCO1_DOWN_S2_4 ;
public static AUDUSD_OCO1_DOWN_S2 AUDUSD_PFO_OCO1_DOWN_S2_5 ;
public static AUDUSD_OCO1_DOWN_S2 AUDUSD_PFO_OCO1_DOWN_S2_6 ;
public static List<AUDUSD_OCO1_DOWN_S2> AUDUSD_DOWN_S2_OCO1Sets1 = new List<AUDUSD_OCO1_DOWN_S2>();
public static List<AUDUSD_OCO1_DOWN_S2> AUDUSD_DOWN_S2_OCO1Sets2 = new List<AUDUSD_OCO1_DOWN_S2>();
public static List<AUDUSD_OCO1_DOWN_S2> AUDUSD_DOWN_S2_OCO1Sets3 = new List<AUDUSD_OCO1_DOWN_S2>();
public static List<AUDUSD_OCO1_DOWN_S2> AUDUSD_DOWN_S2_OCO1Sets4 = new List<AUDUSD_OCO1_DOWN_S2>();
public static List<AUDUSD_OCO1_DOWN_S2> AUDUSD_DOWN_S2_OCO1Sets5 = new List<AUDUSD_OCO1_DOWN_S2>();
public static List<AUDUSD_OCO1_DOWN_S2> AUDUSD_DOWN_S2_OCO1Sets6 = new List<AUDUSD_OCO1_DOWN_S2>();
public static bool AUDUSD_OCO1_DOWN_S2_IsReady = true;
public static bool AUDUSD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket AUDUSD_OCO2_MO1_UP_S2 ;
public static OrderTicket AUDUSD_OCO2_MO2_UP_S2 ;
public static OrderTicket AUDUSD_OCO2_MO3_UP_S2 ;
public static OrderTicket AUDUSD_OCO2_MO4_UP_S2 ;
public static OrderTicket AUDUSD_OCO2_MO5_UP_S2 ;
public static OrderTicket AUDUSD_OCO2_MO6_UP_S2 ;
public static int AUDUSD_OCO2_EO1_UP_S2_ID ;
public static int AUDUSD_OCO2_EO2_UP_S2_ID ;
public static int AUDUSD_OCO2_EO3_UP_S2_ID ;
public static int AUDUSD_OCO2_EO4_UP_S2_ID ;
public static int AUDUSD_OCO2_EO5_UP_S2_ID ;
public static int AUDUSD_OCO2_EO6_UP_S2_ID ;
public static bool AUDUSD_OCO2_EO1_UP_S2 ;
public static bool AUDUSD_OCO2_EO2_UP_S2 ;
public static bool AUDUSD_OCO2_EO3_UP_S2 ;
public static bool AUDUSD_OCO2_EO4_UP_S2 ;
public static bool AUDUSD_OCO2_EO5_UP_S2 ;
public static bool AUDUSD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_UP_S2> AUDUSD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_UP_S2> AUDUSD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_UP_S2> AUDUSD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_UP_S2> AUDUSD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_UP_S2> AUDUSD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_UP_S2> AUDUSD_OOFE_OCO2_UP_S2_6 ;
public static AUDUSD_OCO2_UP_S2 AUDUSD_PFO_OCO2_UP_S2_1 ;
public static AUDUSD_OCO2_UP_S2 AUDUSD_PFO_OCO2_UP_S2_2 ;
public static AUDUSD_OCO2_UP_S2 AUDUSD_PFO_OCO2_UP_S2_3 ;
public static AUDUSD_OCO2_UP_S2 AUDUSD_PFO_OCO2_UP_S2_4 ;
public static AUDUSD_OCO2_UP_S2 AUDUSD_PFO_OCO2_UP_S2_5 ;
public static AUDUSD_OCO2_UP_S2 AUDUSD_PFO_OCO2_UP_S2_6 ;
public static List<AUDUSD_OCO2_UP_S2> AUDUSD_UP_S2_OCO2Sets1 = new List<AUDUSD_OCO2_UP_S2>();
public static List<AUDUSD_OCO2_UP_S2> AUDUSD_UP_S2_OCO2Sets2 = new List<AUDUSD_OCO2_UP_S2>();
public static List<AUDUSD_OCO2_UP_S2> AUDUSD_UP_S2_OCO2Sets3 = new List<AUDUSD_OCO2_UP_S2>();
public static List<AUDUSD_OCO2_UP_S2> AUDUSD_UP_S2_OCO2Sets4 = new List<AUDUSD_OCO2_UP_S2>();
public static List<AUDUSD_OCO2_UP_S2> AUDUSD_UP_S2_OCO2Sets5 = new List<AUDUSD_OCO2_UP_S2>();
public static List<AUDUSD_OCO2_UP_S2> AUDUSD_UP_S2_OCO2Sets6 = new List<AUDUSD_OCO2_UP_S2>();
public static bool AUDUSD_OCO2_UP_S2_IsReady = true;
public static bool AUDUSD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket AUDUSD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO2_MO6_DOWN_S2 ;
public static int AUDUSD_OCO2_EO1_DOWN_S2_ID ;
public static int AUDUSD_OCO2_EO2_DOWN_S2_ID ;
public static int AUDUSD_OCO2_EO3_DOWN_S2_ID ;
public static int AUDUSD_OCO2_EO4_DOWN_S2_ID ;
public static int AUDUSD_OCO2_EO5_DOWN_S2_ID ;
public static int AUDUSD_OCO2_EO6_DOWN_S2_ID ;
public static bool AUDUSD_OCO2_EO1_DOWN_S2 ;
public static bool AUDUSD_OCO2_EO2_DOWN_S2 ;
public static bool AUDUSD_OCO2_EO3_DOWN_S2 ;
public static bool AUDUSD_OCO2_EO4_DOWN_S2 ;
public static bool AUDUSD_OCO2_EO5_DOWN_S2 ;
public static bool AUDUSD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_DOWN_S2> AUDUSD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_DOWN_S2> AUDUSD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_DOWN_S2> AUDUSD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_DOWN_S2> AUDUSD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_DOWN_S2> AUDUSD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO2_DOWN_S2> AUDUSD_OOFE_OCO2_DOWN_S2_6 ;
public static AUDUSD_OCO2_DOWN_S2 AUDUSD_PFO_OCO2_DOWN_S2_1 ;
public static AUDUSD_OCO2_DOWN_S2 AUDUSD_PFO_OCO2_DOWN_S2_2 ;
public static AUDUSD_OCO2_DOWN_S2 AUDUSD_PFO_OCO2_DOWN_S2_3 ;
public static AUDUSD_OCO2_DOWN_S2 AUDUSD_PFO_OCO2_DOWN_S2_4 ;
public static AUDUSD_OCO2_DOWN_S2 AUDUSD_PFO_OCO2_DOWN_S2_5 ;
public static AUDUSD_OCO2_DOWN_S2 AUDUSD_PFO_OCO2_DOWN_S2_6 ;
public static List<AUDUSD_OCO2_DOWN_S2> AUDUSD_DOWN_S2_OCO2Sets1 = new List<AUDUSD_OCO2_DOWN_S2>();
public static List<AUDUSD_OCO2_DOWN_S2> AUDUSD_DOWN_S2_OCO2Sets2 = new List<AUDUSD_OCO2_DOWN_S2>();
public static List<AUDUSD_OCO2_DOWN_S2> AUDUSD_DOWN_S2_OCO2Sets3 = new List<AUDUSD_OCO2_DOWN_S2>();
public static List<AUDUSD_OCO2_DOWN_S2> AUDUSD_DOWN_S2_OCO2Sets4 = new List<AUDUSD_OCO2_DOWN_S2>();
public static List<AUDUSD_OCO2_DOWN_S2> AUDUSD_DOWN_S2_OCO2Sets5 = new List<AUDUSD_OCO2_DOWN_S2>();
public static List<AUDUSD_OCO2_DOWN_S2> AUDUSD_DOWN_S2_OCO2Sets6 = new List<AUDUSD_OCO2_DOWN_S2>();
public static bool AUDUSD_OCO2_DOWN_S2_IsReady = true;
public static bool AUDUSD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket AUDUSD_OCO3_MO1_UP_S2 ;
public static OrderTicket AUDUSD_OCO3_MO2_UP_S2 ;
public static OrderTicket AUDUSD_OCO3_MO3_UP_S2 ;
public static OrderTicket AUDUSD_OCO3_MO4_UP_S2 ;
public static OrderTicket AUDUSD_OCO3_MO5_UP_S2 ;
public static OrderTicket AUDUSD_OCO3_MO6_UP_S2 ;
public static int AUDUSD_OCO3_EO1_UP_S2_ID ;
public static int AUDUSD_OCO3_EO2_UP_S2_ID ;
public static int AUDUSD_OCO3_EO3_UP_S2_ID ;
public static int AUDUSD_OCO3_EO4_UP_S2_ID ;
public static int AUDUSD_OCO3_EO5_UP_S2_ID ;
public static int AUDUSD_OCO3_EO6_UP_S2_ID ;
public static bool AUDUSD_OCO3_EO1_UP_S2 ;
public static bool AUDUSD_OCO3_EO2_UP_S2 ;
public static bool AUDUSD_OCO3_EO3_UP_S2 ;
public static bool AUDUSD_OCO3_EO4_UP_S2 ;
public static bool AUDUSD_OCO3_EO5_UP_S2 ;
public static bool AUDUSD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_UP_S2> AUDUSD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_UP_S2> AUDUSD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_UP_S2> AUDUSD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_UP_S2> AUDUSD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_UP_S2> AUDUSD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_UP_S2> AUDUSD_OOFE_OCO3_UP_S2_6 ;
public static AUDUSD_OCO3_UP_S2 AUDUSD_PFO_OCO3_UP_S2_1 ;
public static AUDUSD_OCO3_UP_S2 AUDUSD_PFO_OCO3_UP_S2_2 ;
public static AUDUSD_OCO3_UP_S2 AUDUSD_PFO_OCO3_UP_S2_3 ;
public static AUDUSD_OCO3_UP_S2 AUDUSD_PFO_OCO3_UP_S2_4 ;
public static AUDUSD_OCO3_UP_S2 AUDUSD_PFO_OCO3_UP_S2_5 ;
public static AUDUSD_OCO3_UP_S2 AUDUSD_PFO_OCO3_UP_S2_6 ;
public static List<AUDUSD_OCO3_UP_S2> AUDUSD_UP_S2_OCO3Sets1 = new List<AUDUSD_OCO3_UP_S2>();
public static List<AUDUSD_OCO3_UP_S2> AUDUSD_UP_S2_OCO3Sets2 = new List<AUDUSD_OCO3_UP_S2>();
public static List<AUDUSD_OCO3_UP_S2> AUDUSD_UP_S2_OCO3Sets3 = new List<AUDUSD_OCO3_UP_S2>();
public static List<AUDUSD_OCO3_UP_S2> AUDUSD_UP_S2_OCO3Sets4 = new List<AUDUSD_OCO3_UP_S2>();
public static List<AUDUSD_OCO3_UP_S2> AUDUSD_UP_S2_OCO3Sets5 = new List<AUDUSD_OCO3_UP_S2>();
public static List<AUDUSD_OCO3_UP_S2> AUDUSD_UP_S2_OCO3Sets6 = new List<AUDUSD_OCO3_UP_S2>();
public static bool AUDUSD_OCO3_UP_S2_IsReady = true;
public static bool AUDUSD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket AUDUSD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO3_MO6_DOWN_S2 ;
public static int AUDUSD_OCO3_EO1_DOWN_S2_ID ;
public static int AUDUSD_OCO3_EO2_DOWN_S2_ID ;
public static int AUDUSD_OCO3_EO3_DOWN_S2_ID ;
public static int AUDUSD_OCO3_EO4_DOWN_S2_ID ;
public static int AUDUSD_OCO3_EO5_DOWN_S2_ID ;
public static int AUDUSD_OCO3_EO6_DOWN_S2_ID ;
public static bool AUDUSD_OCO3_EO1_DOWN_S2 ;
public static bool AUDUSD_OCO3_EO2_DOWN_S2 ;
public static bool AUDUSD_OCO3_EO3_DOWN_S2 ;
public static bool AUDUSD_OCO3_EO4_DOWN_S2 ;
public static bool AUDUSD_OCO3_EO5_DOWN_S2 ;
public static bool AUDUSD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_DOWN_S2> AUDUSD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_DOWN_S2> AUDUSD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_DOWN_S2> AUDUSD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_DOWN_S2> AUDUSD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_DOWN_S2> AUDUSD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO3_DOWN_S2> AUDUSD_OOFE_OCO3_DOWN_S2_6 ;
public static AUDUSD_OCO3_DOWN_S2 AUDUSD_PFO_OCO3_DOWN_S2_1 ;
public static AUDUSD_OCO3_DOWN_S2 AUDUSD_PFO_OCO3_DOWN_S2_2 ;
public static AUDUSD_OCO3_DOWN_S2 AUDUSD_PFO_OCO3_DOWN_S2_3 ;
public static AUDUSD_OCO3_DOWN_S2 AUDUSD_PFO_OCO3_DOWN_S2_4 ;
public static AUDUSD_OCO3_DOWN_S2 AUDUSD_PFO_OCO3_DOWN_S2_5 ;
public static AUDUSD_OCO3_DOWN_S2 AUDUSD_PFO_OCO3_DOWN_S2_6 ;
public static List<AUDUSD_OCO3_DOWN_S2> AUDUSD_DOWN_S2_OCO3Sets1 = new List<AUDUSD_OCO3_DOWN_S2>();
public static List<AUDUSD_OCO3_DOWN_S2> AUDUSD_DOWN_S2_OCO3Sets2 = new List<AUDUSD_OCO3_DOWN_S2>();
public static List<AUDUSD_OCO3_DOWN_S2> AUDUSD_DOWN_S2_OCO3Sets3 = new List<AUDUSD_OCO3_DOWN_S2>();
public static List<AUDUSD_OCO3_DOWN_S2> AUDUSD_DOWN_S2_OCO3Sets4 = new List<AUDUSD_OCO3_DOWN_S2>();
public static List<AUDUSD_OCO3_DOWN_S2> AUDUSD_DOWN_S2_OCO3Sets5 = new List<AUDUSD_OCO3_DOWN_S2>();
public static List<AUDUSD_OCO3_DOWN_S2> AUDUSD_DOWN_S2_OCO3Sets6 = new List<AUDUSD_OCO3_DOWN_S2>();
public static bool AUDUSD_OCO3_DOWN_S2_IsReady = true;
public static bool AUDUSD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket AUDUSD_OCO4_MO1_UP_S2 ;
public static OrderTicket AUDUSD_OCO4_MO2_UP_S2 ;
public static OrderTicket AUDUSD_OCO4_MO3_UP_S2 ;
public static OrderTicket AUDUSD_OCO4_MO4_UP_S2 ;
public static OrderTicket AUDUSD_OCO4_MO5_UP_S2 ;
public static OrderTicket AUDUSD_OCO4_MO6_UP_S2 ;
public static int AUDUSD_OCO4_EO1_UP_S2_ID ;
public static int AUDUSD_OCO4_EO2_UP_S2_ID ;
public static int AUDUSD_OCO4_EO3_UP_S2_ID ;
public static int AUDUSD_OCO4_EO4_UP_S2_ID ;
public static int AUDUSD_OCO4_EO5_UP_S2_ID ;
public static int AUDUSD_OCO4_EO6_UP_S2_ID ;
public static bool AUDUSD_OCO4_EO1_UP_S2 ;
public static bool AUDUSD_OCO4_EO2_UP_S2 ;
public static bool AUDUSD_OCO4_EO3_UP_S2 ;
public static bool AUDUSD_OCO4_EO4_UP_S2 ;
public static bool AUDUSD_OCO4_EO5_UP_S2 ;
public static bool AUDUSD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_UP_S2> AUDUSD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_UP_S2> AUDUSD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_UP_S2> AUDUSD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_UP_S2> AUDUSD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_UP_S2> AUDUSD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_UP_S2> AUDUSD_OOFE_OCO4_UP_S2_6 ;
public static AUDUSD_OCO4_UP_S2 AUDUSD_PFO_OCO4_UP_S2_1 ;
public static AUDUSD_OCO4_UP_S2 AUDUSD_PFO_OCO4_UP_S2_2 ;
public static AUDUSD_OCO4_UP_S2 AUDUSD_PFO_OCO4_UP_S2_3 ;
public static AUDUSD_OCO4_UP_S2 AUDUSD_PFO_OCO4_UP_S2_4 ;
public static AUDUSD_OCO4_UP_S2 AUDUSD_PFO_OCO4_UP_S2_5 ;
public static AUDUSD_OCO4_UP_S2 AUDUSD_PFO_OCO4_UP_S2_6 ;
public static List<AUDUSD_OCO4_UP_S2> AUDUSD_UP_S2_OCO4Sets1 = new List<AUDUSD_OCO4_UP_S2>();
public static List<AUDUSD_OCO4_UP_S2> AUDUSD_UP_S2_OCO4Sets2 = new List<AUDUSD_OCO4_UP_S2>();
public static List<AUDUSD_OCO4_UP_S2> AUDUSD_UP_S2_OCO4Sets3 = new List<AUDUSD_OCO4_UP_S2>();
public static List<AUDUSD_OCO4_UP_S2> AUDUSD_UP_S2_OCO4Sets4 = new List<AUDUSD_OCO4_UP_S2>();
public static List<AUDUSD_OCO4_UP_S2> AUDUSD_UP_S2_OCO4Sets5 = new List<AUDUSD_OCO4_UP_S2>();
public static List<AUDUSD_OCO4_UP_S2> AUDUSD_UP_S2_OCO4Sets6 = new List<AUDUSD_OCO4_UP_S2>();
public static bool AUDUSD_OCO4_UP_S2_IsReady = true;
public static bool AUDUSD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket AUDUSD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket AUDUSD_OCO4_MO6_DOWN_S2 ;
public static int AUDUSD_OCO4_EO1_DOWN_S2_ID ;
public static int AUDUSD_OCO4_EO2_DOWN_S2_ID ;
public static int AUDUSD_OCO4_EO3_DOWN_S2_ID ;
public static int AUDUSD_OCO4_EO4_DOWN_S2_ID ;
public static int AUDUSD_OCO4_EO5_DOWN_S2_ID ;
public static int AUDUSD_OCO4_EO6_DOWN_S2_ID ;
public static bool AUDUSD_OCO4_EO1_DOWN_S2 ;
public static bool AUDUSD_OCO4_EO2_DOWN_S2 ;
public static bool AUDUSD_OCO4_EO3_DOWN_S2 ;
public static bool AUDUSD_OCO4_EO4_DOWN_S2 ;
public static bool AUDUSD_OCO4_EO5_DOWN_S2 ;
public static bool AUDUSD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_DOWN_S2> AUDUSD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_DOWN_S2> AUDUSD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_DOWN_S2> AUDUSD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_DOWN_S2> AUDUSD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_DOWN_S2> AUDUSD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDUSD_OCO4_DOWN_S2> AUDUSD_OOFE_OCO4_DOWN_S2_6 ;
public static AUDUSD_OCO4_DOWN_S2 AUDUSD_PFO_OCO4_DOWN_S2_1 ;
public static AUDUSD_OCO4_DOWN_S2 AUDUSD_PFO_OCO4_DOWN_S2_2 ;
public static AUDUSD_OCO4_DOWN_S2 AUDUSD_PFO_OCO4_DOWN_S2_3 ;
public static AUDUSD_OCO4_DOWN_S2 AUDUSD_PFO_OCO4_DOWN_S2_4 ;
public static AUDUSD_OCO4_DOWN_S2 AUDUSD_PFO_OCO4_DOWN_S2_5 ;
public static AUDUSD_OCO4_DOWN_S2 AUDUSD_PFO_OCO4_DOWN_S2_6 ;
public static List<AUDUSD_OCO4_DOWN_S2> AUDUSD_DOWN_S2_OCO4Sets1 = new List<AUDUSD_OCO4_DOWN_S2>();
public static List<AUDUSD_OCO4_DOWN_S2> AUDUSD_DOWN_S2_OCO4Sets2 = new List<AUDUSD_OCO4_DOWN_S2>();
public static List<AUDUSD_OCO4_DOWN_S2> AUDUSD_DOWN_S2_OCO4Sets3 = new List<AUDUSD_OCO4_DOWN_S2>();
public static List<AUDUSD_OCO4_DOWN_S2> AUDUSD_DOWN_S2_OCO4Sets4 = new List<AUDUSD_OCO4_DOWN_S2>();
public static List<AUDUSD_OCO4_DOWN_S2> AUDUSD_DOWN_S2_OCO4Sets5 = new List<AUDUSD_OCO4_DOWN_S2>();
public static List<AUDUSD_OCO4_DOWN_S2> AUDUSD_DOWN_S2_OCO4Sets6 = new List<AUDUSD_OCO4_DOWN_S2>();
public static bool AUDUSD_OCO4_DOWN_S2_IsReady = true;
public static bool AUDUSD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal AUDUSD_UP_S2_SL {get; set;}
public static decimal AUDUSD_UP_S2_TP1 {get; set;}
public static decimal AUDUSD_UP_S2_TP2 {get; set;}
public static decimal AUDUSD_UP_S2_TP3 {get; set;}
public static decimal AUDUSD_UP_S2_TP4 {get; set;}
public static decimal AUDUSD_UP_S2_TP5 {get; set;}
public static decimal AUDUSD_UP_S2_TP6 {get; set;}
public static decimal AUDUSD_DOWN_S2_SL {get; set;}
public static decimal AUDUSD_DOWN_S2_TP1 {get; set;}
public static decimal AUDUSD_DOWN_S2_TP2 {get; set;}
public static decimal AUDUSD_DOWN_S2_TP3 {get; set;}
public static decimal AUDUSD_DOWN_S2_TP4 {get; set;}
public static decimal AUDUSD_DOWN_S2_TP5 {get; set;}
public static decimal AUDUSD_DOWN_S2_TP6 {get; set;}
public static bool AUDUSD_Signal_Condition_UP_1 ;
public static bool AUDUSD_Signal_Condition_UP_2 ;
public static bool AUDUSD_Signal_Condition_UP_3 ;
public static bool AUDUSD_Signal_Condition_DOWN_S2 ;
public static int AUDUSD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int AUDUSD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int AUDUSD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int AUDUSD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int AUDUSD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int AUDUSD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int AUDUSD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int AUDUSD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int AUDUSD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int AUDUSD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_AUDUSD_UP_S2 ;
public static bool DOWM_AUDUSD_UP_S2 ;
public static bool DOWT_AUDUSD_UP_S2 ;
public static bool DOWW_AUDUSD_UP_S2 ;
public static bool DOWTH_AUDUSD_UP_S2 ;
public static bool DOWR_AUDUSD_DOWN_S2 ;
public static bool DOWM_AUDUSD_DOWN_S2 ;
public static bool DOWT_AUDUSD_DOWN_S2 ;
public static bool DOWW_AUDUSD_DOWN_S2 ;
public static bool DOWTH_AUDUSD_DOWN_S2 ;
public static int AUDUSD_quantity_UP_S2 ;
public static int AUDUSD_quantity_SL_UP_S2 ;
public static int AUDUSD_quantity_TP1_UP_S2 ;
public static int AUDUSD_quantity_TP2_UP_S2 ;
public static int AUDUSD_quantity_TP3_UP_S2 ;
public static int AUDUSD_quantity_TP4_UP_S2 ;
public static int AUDUSD_quantity_TP5_UP_S2;
public static int AUDUSD_quantity_TP6_UP_S2 ;
public static int AUDUSD_quantity_DOWN_S2 ;
public static int AUDUSD_quantity_SL_DOWN_S2 ;
public static int AUDUSD_quantity_TP1_DOWN_S2 ;
public static int AUDUSD_quantity_TP2_DOWN_S2 ;
public static int AUDUSD_quantity_TP3_DOWN_S2 ;
public static int AUDUSD_quantity_TP4_DOWN_S2 ;
public static int AUDUSD_quantity_TP5_DOWN_S2;
public static int AUDUSD_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _NZDUSD;
///oco1 up
public static OrderTicket NZDUSD_OCO1_MO1_UP_S2;
public static OrderTicket NZDUSD_OCO1_MO2_UP_S2;
public static OrderTicket NZDUSD_OCO1_MO3_UP_S2;
public static OrderTicket NZDUSD_OCO1_MO4_UP_S2;
public static OrderTicket NZDUSD_OCO1_MO5_UP_S2;
public static OrderTicket NZDUSD_OCO1_MO6_UP_S2;
public static int NZDUSD_OCO1_EO1_UP_S2_ID ;
public static int NZDUSD_OCO1_EO2_UP_S2_ID ;
public static int NZDUSD_OCO1_EO3_UP_S2_ID ;
public static int NZDUSD_OCO1_EO4_UP_S2_ID ;
public static int NZDUSD_OCO1_EO5_UP_S2_ID ;
public static int NZDUSD_OCO1_EO6_UP_S2_ID ;
public static bool NZDUSD_OCO1_EO1_UP_S2 ;
public static bool NZDUSD_OCO1_EO2_UP_S2 ;
public static bool NZDUSD_OCO1_EO3_UP_S2 ;
public static bool NZDUSD_OCO1_EO4_UP_S2 ;
public static bool NZDUSD_OCO1_EO5_UP_S2 ;
public static bool NZDUSD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_UP_S2> NZDUSD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_UP_S2> NZDUSD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_UP_S2> NZDUSD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_UP_S2> NZDUSD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_UP_S2> NZDUSD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_UP_S2> NZDUSD_OOFE_OCO1_UP_S2_6 ;
public static NZDUSD_OCO1_UP_S2 NZDUSD_PFO_OCO1_UP_S2_1 ;
public static NZDUSD_OCO1_UP_S2 NZDUSD_PFO_OCO1_UP_S2_2 ;
public static NZDUSD_OCO1_UP_S2 NZDUSD_PFO_OCO1_UP_S2_3 ;
public static NZDUSD_OCO1_UP_S2 NZDUSD_PFO_OCO1_UP_S2_4 ;
public static NZDUSD_OCO1_UP_S2 NZDUSD_PFO_OCO1_UP_S2_5 ;
public static NZDUSD_OCO1_UP_S2 NZDUSD_PFO_OCO1_UP_S2_6 ;
public static List<NZDUSD_OCO1_UP_S2> NZDUSD_UP_S2_OCO1Sets1 = new List<NZDUSD_OCO1_UP_S2>();
public static List<NZDUSD_OCO1_UP_S2> NZDUSD_UP_S2_OCO1Sets2 = new List<NZDUSD_OCO1_UP_S2>();
public static List<NZDUSD_OCO1_UP_S2> NZDUSD_UP_S2_OCO1Sets3 = new List<NZDUSD_OCO1_UP_S2>();
public static List<NZDUSD_OCO1_UP_S2> NZDUSD_UP_S2_OCO1Sets4 = new List<NZDUSD_OCO1_UP_S2>();
public static List<NZDUSD_OCO1_UP_S2> NZDUSD_UP_S2_OCO1Sets5 = new List<NZDUSD_OCO1_UP_S2>();
public static List<NZDUSD_OCO1_UP_S2> NZDUSD_UP_S2_OCO1Sets6 = new List<NZDUSD_OCO1_UP_S2>();
public static bool NZDUSD_OCO1_UP_S2_IsReady = true;
public static bool NZDUSD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket NZDUSD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO1_MO6_DOWN_S2 ;
public static int NZDUSD_OCO1_EO1_DOWN_S2_ID ;
public static int NZDUSD_OCO1_EO2_DOWN_S2_ID ;
public static int NZDUSD_OCO1_EO3_DOWN_S2_ID ;
public static int NZDUSD_OCO1_EO4_DOWN_S2_ID ;
public static int NZDUSD_OCO1_EO5_DOWN_S2_ID ;
public static int NZDUSD_OCO1_EO6_DOWN_S2_ID ;
public static bool NZDUSD_OCO1_EO1_DOWN_S2 ;
public static bool NZDUSD_OCO1_EO2_DOWN_S2 ;
public static bool NZDUSD_OCO1_EO3_DOWN_S2 ;
public static bool NZDUSD_OCO1_EO4_DOWN_S2 ;
public static bool NZDUSD_OCO1_EO5_DOWN_S2 ;
public static bool NZDUSD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_DOWN_S2> NZDUSD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_DOWN_S2> NZDUSD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_DOWN_S2> NZDUSD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_DOWN_S2> NZDUSD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_DOWN_S2> NZDUSD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO1_DOWN_S2> NZDUSD_OOFE_OCO1_DOWN_S2_6 ;
public static NZDUSD_OCO1_DOWN_S2 NZDUSD_PFO_OCO1_DOWN_S2_1 ;
public static NZDUSD_OCO1_DOWN_S2 NZDUSD_PFO_OCO1_DOWN_S2_2 ;
public static NZDUSD_OCO1_DOWN_S2 NZDUSD_PFO_OCO1_DOWN_S2_3 ;
public static NZDUSD_OCO1_DOWN_S2 NZDUSD_PFO_OCO1_DOWN_S2_4 ;
public static NZDUSD_OCO1_DOWN_S2 NZDUSD_PFO_OCO1_DOWN_S2_5 ;
public static NZDUSD_OCO1_DOWN_S2 NZDUSD_PFO_OCO1_DOWN_S2_6 ;
public static List<NZDUSD_OCO1_DOWN_S2> NZDUSD_DOWN_S2_OCO1Sets1 = new List<NZDUSD_OCO1_DOWN_S2>();
public static List<NZDUSD_OCO1_DOWN_S2> NZDUSD_DOWN_S2_OCO1Sets2 = new List<NZDUSD_OCO1_DOWN_S2>();
public static List<NZDUSD_OCO1_DOWN_S2> NZDUSD_DOWN_S2_OCO1Sets3 = new List<NZDUSD_OCO1_DOWN_S2>();
public static List<NZDUSD_OCO1_DOWN_S2> NZDUSD_DOWN_S2_OCO1Sets4 = new List<NZDUSD_OCO1_DOWN_S2>();
public static List<NZDUSD_OCO1_DOWN_S2> NZDUSD_DOWN_S2_OCO1Sets5 = new List<NZDUSD_OCO1_DOWN_S2>();
public static List<NZDUSD_OCO1_DOWN_S2> NZDUSD_DOWN_S2_OCO1Sets6 = new List<NZDUSD_OCO1_DOWN_S2>();
public static bool NZDUSD_OCO1_DOWN_S2_IsReady = true;
public static bool NZDUSD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket NZDUSD_OCO2_MO1_UP_S2 ;
public static OrderTicket NZDUSD_OCO2_MO2_UP_S2 ;
public static OrderTicket NZDUSD_OCO2_MO3_UP_S2 ;
public static OrderTicket NZDUSD_OCO2_MO4_UP_S2 ;
public static OrderTicket NZDUSD_OCO2_MO5_UP_S2 ;
public static OrderTicket NZDUSD_OCO2_MO6_UP_S2 ;
public static int NZDUSD_OCO2_EO1_UP_S2_ID ;
public static int NZDUSD_OCO2_EO2_UP_S2_ID ;
public static int NZDUSD_OCO2_EO3_UP_S2_ID ;
public static int NZDUSD_OCO2_EO4_UP_S2_ID ;
public static int NZDUSD_OCO2_EO5_UP_S2_ID ;
public static int NZDUSD_OCO2_EO6_UP_S2_ID ;
public static bool NZDUSD_OCO2_EO1_UP_S2 ;
public static bool NZDUSD_OCO2_EO2_UP_S2 ;
public static bool NZDUSD_OCO2_EO3_UP_S2 ;
public static bool NZDUSD_OCO2_EO4_UP_S2 ;
public static bool NZDUSD_OCO2_EO5_UP_S2 ;
public static bool NZDUSD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_UP_S2> NZDUSD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_UP_S2> NZDUSD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_UP_S2> NZDUSD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_UP_S2> NZDUSD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_UP_S2> NZDUSD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_UP_S2> NZDUSD_OOFE_OCO2_UP_S2_6 ;
public static NZDUSD_OCO2_UP_S2 NZDUSD_PFO_OCO2_UP_S2_1 ;
public static NZDUSD_OCO2_UP_S2 NZDUSD_PFO_OCO2_UP_S2_2 ;
public static NZDUSD_OCO2_UP_S2 NZDUSD_PFO_OCO2_UP_S2_3 ;
public static NZDUSD_OCO2_UP_S2 NZDUSD_PFO_OCO2_UP_S2_4 ;
public static NZDUSD_OCO2_UP_S2 NZDUSD_PFO_OCO2_UP_S2_5 ;
public static NZDUSD_OCO2_UP_S2 NZDUSD_PFO_OCO2_UP_S2_6 ;
public static List<NZDUSD_OCO2_UP_S2> NZDUSD_UP_S2_OCO2Sets1 = new List<NZDUSD_OCO2_UP_S2>();
public static List<NZDUSD_OCO2_UP_S2> NZDUSD_UP_S2_OCO2Sets2 = new List<NZDUSD_OCO2_UP_S2>();
public static List<NZDUSD_OCO2_UP_S2> NZDUSD_UP_S2_OCO2Sets3 = new List<NZDUSD_OCO2_UP_S2>();
public static List<NZDUSD_OCO2_UP_S2> NZDUSD_UP_S2_OCO2Sets4 = new List<NZDUSD_OCO2_UP_S2>();
public static List<NZDUSD_OCO2_UP_S2> NZDUSD_UP_S2_OCO2Sets5 = new List<NZDUSD_OCO2_UP_S2>();
public static List<NZDUSD_OCO2_UP_S2> NZDUSD_UP_S2_OCO2Sets6 = new List<NZDUSD_OCO2_UP_S2>();
public static bool NZDUSD_OCO2_UP_S2_IsReady = true;
public static bool NZDUSD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket NZDUSD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO2_MO6_DOWN_S2 ;
public static int NZDUSD_OCO2_EO1_DOWN_S2_ID ;
public static int NZDUSD_OCO2_EO2_DOWN_S2_ID ;
public static int NZDUSD_OCO2_EO3_DOWN_S2_ID ;
public static int NZDUSD_OCO2_EO4_DOWN_S2_ID ;
public static int NZDUSD_OCO2_EO5_DOWN_S2_ID ;
public static int NZDUSD_OCO2_EO6_DOWN_S2_ID ;
public static bool NZDUSD_OCO2_EO1_DOWN_S2 ;
public static bool NZDUSD_OCO2_EO2_DOWN_S2 ;
public static bool NZDUSD_OCO2_EO3_DOWN_S2 ;
public static bool NZDUSD_OCO2_EO4_DOWN_S2 ;
public static bool NZDUSD_OCO2_EO5_DOWN_S2 ;
public static bool NZDUSD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_DOWN_S2> NZDUSD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_DOWN_S2> NZDUSD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_DOWN_S2> NZDUSD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_DOWN_S2> NZDUSD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_DOWN_S2> NZDUSD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO2_DOWN_S2> NZDUSD_OOFE_OCO2_DOWN_S2_6 ;
public static NZDUSD_OCO2_DOWN_S2 NZDUSD_PFO_OCO2_DOWN_S2_1 ;
public static NZDUSD_OCO2_DOWN_S2 NZDUSD_PFO_OCO2_DOWN_S2_2 ;
public static NZDUSD_OCO2_DOWN_S2 NZDUSD_PFO_OCO2_DOWN_S2_3 ;
public static NZDUSD_OCO2_DOWN_S2 NZDUSD_PFO_OCO2_DOWN_S2_4 ;
public static NZDUSD_OCO2_DOWN_S2 NZDUSD_PFO_OCO2_DOWN_S2_5 ;
public static NZDUSD_OCO2_DOWN_S2 NZDUSD_PFO_OCO2_DOWN_S2_6 ;
public static List<NZDUSD_OCO2_DOWN_S2> NZDUSD_DOWN_S2_OCO2Sets1 = new List<NZDUSD_OCO2_DOWN_S2>();
public static List<NZDUSD_OCO2_DOWN_S2> NZDUSD_DOWN_S2_OCO2Sets2 = new List<NZDUSD_OCO2_DOWN_S2>();
public static List<NZDUSD_OCO2_DOWN_S2> NZDUSD_DOWN_S2_OCO2Sets3 = new List<NZDUSD_OCO2_DOWN_S2>();
public static List<NZDUSD_OCO2_DOWN_S2> NZDUSD_DOWN_S2_OCO2Sets4 = new List<NZDUSD_OCO2_DOWN_S2>();
public static List<NZDUSD_OCO2_DOWN_S2> NZDUSD_DOWN_S2_OCO2Sets5 = new List<NZDUSD_OCO2_DOWN_S2>();
public static List<NZDUSD_OCO2_DOWN_S2> NZDUSD_DOWN_S2_OCO2Sets6 = new List<NZDUSD_OCO2_DOWN_S2>();
public static bool NZDUSD_OCO2_DOWN_S2_IsReady = true;
public static bool NZDUSD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket NZDUSD_OCO3_MO1_UP_S2 ;
public static OrderTicket NZDUSD_OCO3_MO2_UP_S2 ;
public static OrderTicket NZDUSD_OCO3_MO3_UP_S2 ;
public static OrderTicket NZDUSD_OCO3_MO4_UP_S2 ;
public static OrderTicket NZDUSD_OCO3_MO5_UP_S2 ;
public static OrderTicket NZDUSD_OCO3_MO6_UP_S2 ;
public static int NZDUSD_OCO3_EO1_UP_S2_ID ;
public static int NZDUSD_OCO3_EO2_UP_S2_ID ;
public static int NZDUSD_OCO3_EO3_UP_S2_ID ;
public static int NZDUSD_OCO3_EO4_UP_S2_ID ;
public static int NZDUSD_OCO3_EO5_UP_S2_ID ;
public static int NZDUSD_OCO3_EO6_UP_S2_ID ;
public static bool NZDUSD_OCO3_EO1_UP_S2 ;
public static bool NZDUSD_OCO3_EO2_UP_S2 ;
public static bool NZDUSD_OCO3_EO3_UP_S2 ;
public static bool NZDUSD_OCO3_EO4_UP_S2 ;
public static bool NZDUSD_OCO3_EO5_UP_S2 ;
public static bool NZDUSD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_UP_S2> NZDUSD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_UP_S2> NZDUSD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_UP_S2> NZDUSD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_UP_S2> NZDUSD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_UP_S2> NZDUSD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_UP_S2> NZDUSD_OOFE_OCO3_UP_S2_6 ;
public static NZDUSD_OCO3_UP_S2 NZDUSD_PFO_OCO3_UP_S2_1 ;
public static NZDUSD_OCO3_UP_S2 NZDUSD_PFO_OCO3_UP_S2_2 ;
public static NZDUSD_OCO3_UP_S2 NZDUSD_PFO_OCO3_UP_S2_3 ;
public static NZDUSD_OCO3_UP_S2 NZDUSD_PFO_OCO3_UP_S2_4 ;
public static NZDUSD_OCO3_UP_S2 NZDUSD_PFO_OCO3_UP_S2_5 ;
public static NZDUSD_OCO3_UP_S2 NZDUSD_PFO_OCO3_UP_S2_6 ;
public static List<NZDUSD_OCO3_UP_S2> NZDUSD_UP_S2_OCO3Sets1 = new List<NZDUSD_OCO3_UP_S2>();
public static List<NZDUSD_OCO3_UP_S2> NZDUSD_UP_S2_OCO3Sets2 = new List<NZDUSD_OCO3_UP_S2>();
public static List<NZDUSD_OCO3_UP_S2> NZDUSD_UP_S2_OCO3Sets3 = new List<NZDUSD_OCO3_UP_S2>();
public static List<NZDUSD_OCO3_UP_S2> NZDUSD_UP_S2_OCO3Sets4 = new List<NZDUSD_OCO3_UP_S2>();
public static List<NZDUSD_OCO3_UP_S2> NZDUSD_UP_S2_OCO3Sets5 = new List<NZDUSD_OCO3_UP_S2>();
public static List<NZDUSD_OCO3_UP_S2> NZDUSD_UP_S2_OCO3Sets6 = new List<NZDUSD_OCO3_UP_S2>();
public static bool NZDUSD_OCO3_UP_S2_IsReady = true;
public static bool NZDUSD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket NZDUSD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO3_MO6_DOWN_S2 ;
public static int NZDUSD_OCO3_EO1_DOWN_S2_ID ;
public static int NZDUSD_OCO3_EO2_DOWN_S2_ID ;
public static int NZDUSD_OCO3_EO3_DOWN_S2_ID ;
public static int NZDUSD_OCO3_EO4_DOWN_S2_ID ;
public static int NZDUSD_OCO3_EO5_DOWN_S2_ID ;
public static int NZDUSD_OCO3_EO6_DOWN_S2_ID ;
public static bool NZDUSD_OCO3_EO1_DOWN_S2 ;
public static bool NZDUSD_OCO3_EO2_DOWN_S2 ;
public static bool NZDUSD_OCO3_EO3_DOWN_S2 ;
public static bool NZDUSD_OCO3_EO4_DOWN_S2 ;
public static bool NZDUSD_OCO3_EO5_DOWN_S2 ;
public static bool NZDUSD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_DOWN_S2> NZDUSD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_DOWN_S2> NZDUSD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_DOWN_S2> NZDUSD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_DOWN_S2> NZDUSD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_DOWN_S2> NZDUSD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO3_DOWN_S2> NZDUSD_OOFE_OCO3_DOWN_S2_6 ;
public static NZDUSD_OCO3_DOWN_S2 NZDUSD_PFO_OCO3_DOWN_S2_1 ;
public static NZDUSD_OCO3_DOWN_S2 NZDUSD_PFO_OCO3_DOWN_S2_2 ;
public static NZDUSD_OCO3_DOWN_S2 NZDUSD_PFO_OCO3_DOWN_S2_3 ;
public static NZDUSD_OCO3_DOWN_S2 NZDUSD_PFO_OCO3_DOWN_S2_4 ;
public static NZDUSD_OCO3_DOWN_S2 NZDUSD_PFO_OCO3_DOWN_S2_5 ;
public static NZDUSD_OCO3_DOWN_S2 NZDUSD_PFO_OCO3_DOWN_S2_6 ;
public static List<NZDUSD_OCO3_DOWN_S2> NZDUSD_DOWN_S2_OCO3Sets1 = new List<NZDUSD_OCO3_DOWN_S2>();
public static List<NZDUSD_OCO3_DOWN_S2> NZDUSD_DOWN_S2_OCO3Sets2 = new List<NZDUSD_OCO3_DOWN_S2>();
public static List<NZDUSD_OCO3_DOWN_S2> NZDUSD_DOWN_S2_OCO3Sets3 = new List<NZDUSD_OCO3_DOWN_S2>();
public static List<NZDUSD_OCO3_DOWN_S2> NZDUSD_DOWN_S2_OCO3Sets4 = new List<NZDUSD_OCO3_DOWN_S2>();
public static List<NZDUSD_OCO3_DOWN_S2> NZDUSD_DOWN_S2_OCO3Sets5 = new List<NZDUSD_OCO3_DOWN_S2>();
public static List<NZDUSD_OCO3_DOWN_S2> NZDUSD_DOWN_S2_OCO3Sets6 = new List<NZDUSD_OCO3_DOWN_S2>();
public static bool NZDUSD_OCO3_DOWN_S2_IsReady = true;
public static bool NZDUSD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket NZDUSD_OCO4_MO1_UP_S2 ;
public static OrderTicket NZDUSD_OCO4_MO2_UP_S2 ;
public static OrderTicket NZDUSD_OCO4_MO3_UP_S2 ;
public static OrderTicket NZDUSD_OCO4_MO4_UP_S2 ;
public static OrderTicket NZDUSD_OCO4_MO5_UP_S2 ;
public static OrderTicket NZDUSD_OCO4_MO6_UP_S2 ;
public static int NZDUSD_OCO4_EO1_UP_S2_ID ;
public static int NZDUSD_OCO4_EO2_UP_S2_ID ;
public static int NZDUSD_OCO4_EO3_UP_S2_ID ;
public static int NZDUSD_OCO4_EO4_UP_S2_ID ;
public static int NZDUSD_OCO4_EO5_UP_S2_ID ;
public static int NZDUSD_OCO4_EO6_UP_S2_ID ;
public static bool NZDUSD_OCO4_EO1_UP_S2 ;
public static bool NZDUSD_OCO4_EO2_UP_S2 ;
public static bool NZDUSD_OCO4_EO3_UP_S2 ;
public static bool NZDUSD_OCO4_EO4_UP_S2 ;
public static bool NZDUSD_OCO4_EO5_UP_S2 ;
public static bool NZDUSD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_UP_S2> NZDUSD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_UP_S2> NZDUSD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_UP_S2> NZDUSD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_UP_S2> NZDUSD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_UP_S2> NZDUSD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_UP_S2> NZDUSD_OOFE_OCO4_UP_S2_6 ;
public static NZDUSD_OCO4_UP_S2 NZDUSD_PFO_OCO4_UP_S2_1 ;
public static NZDUSD_OCO4_UP_S2 NZDUSD_PFO_OCO4_UP_S2_2 ;
public static NZDUSD_OCO4_UP_S2 NZDUSD_PFO_OCO4_UP_S2_3 ;
public static NZDUSD_OCO4_UP_S2 NZDUSD_PFO_OCO4_UP_S2_4 ;
public static NZDUSD_OCO4_UP_S2 NZDUSD_PFO_OCO4_UP_S2_5 ;
public static NZDUSD_OCO4_UP_S2 NZDUSD_PFO_OCO4_UP_S2_6 ;
public static List<NZDUSD_OCO4_UP_S2> NZDUSD_UP_S2_OCO4Sets1 = new List<NZDUSD_OCO4_UP_S2>();
public static List<NZDUSD_OCO4_UP_S2> NZDUSD_UP_S2_OCO4Sets2 = new List<NZDUSD_OCO4_UP_S2>();
public static List<NZDUSD_OCO4_UP_S2> NZDUSD_UP_S2_OCO4Sets3 = new List<NZDUSD_OCO4_UP_S2>();
public static List<NZDUSD_OCO4_UP_S2> NZDUSD_UP_S2_OCO4Sets4 = new List<NZDUSD_OCO4_UP_S2>();
public static List<NZDUSD_OCO4_UP_S2> NZDUSD_UP_S2_OCO4Sets5 = new List<NZDUSD_OCO4_UP_S2>();
public static List<NZDUSD_OCO4_UP_S2> NZDUSD_UP_S2_OCO4Sets6 = new List<NZDUSD_OCO4_UP_S2>();
public static bool NZDUSD_OCO4_UP_S2_IsReady = true;
public static bool NZDUSD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket NZDUSD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket NZDUSD_OCO4_MO6_DOWN_S2 ;
public static int NZDUSD_OCO4_EO1_DOWN_S2_ID ;
public static int NZDUSD_OCO4_EO2_DOWN_S2_ID ;
public static int NZDUSD_OCO4_EO3_DOWN_S2_ID ;
public static int NZDUSD_OCO4_EO4_DOWN_S2_ID ;
public static int NZDUSD_OCO4_EO5_DOWN_S2_ID ;
public static int NZDUSD_OCO4_EO6_DOWN_S2_ID ;
public static bool NZDUSD_OCO4_EO1_DOWN_S2 ;
public static bool NZDUSD_OCO4_EO2_DOWN_S2 ;
public static bool NZDUSD_OCO4_EO3_DOWN_S2 ;
public static bool NZDUSD_OCO4_EO4_DOWN_S2 ;
public static bool NZDUSD_OCO4_EO5_DOWN_S2 ;
public static bool NZDUSD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_DOWN_S2> NZDUSD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_DOWN_S2> NZDUSD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_DOWN_S2> NZDUSD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_DOWN_S2> NZDUSD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_DOWN_S2> NZDUSD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDUSD_OCO4_DOWN_S2> NZDUSD_OOFE_OCO4_DOWN_S2_6 ;
public static NZDUSD_OCO4_DOWN_S2 NZDUSD_PFO_OCO4_DOWN_S2_1 ;
public static NZDUSD_OCO4_DOWN_S2 NZDUSD_PFO_OCO4_DOWN_S2_2 ;
public static NZDUSD_OCO4_DOWN_S2 NZDUSD_PFO_OCO4_DOWN_S2_3 ;
public static NZDUSD_OCO4_DOWN_S2 NZDUSD_PFO_OCO4_DOWN_S2_4 ;
public static NZDUSD_OCO4_DOWN_S2 NZDUSD_PFO_OCO4_DOWN_S2_5 ;
public static NZDUSD_OCO4_DOWN_S2 NZDUSD_PFO_OCO4_DOWN_S2_6 ;
public static List<NZDUSD_OCO4_DOWN_S2> NZDUSD_DOWN_S2_OCO4Sets1 = new List<NZDUSD_OCO4_DOWN_S2>();
public static List<NZDUSD_OCO4_DOWN_S2> NZDUSD_DOWN_S2_OCO4Sets2 = new List<NZDUSD_OCO4_DOWN_S2>();
public static List<NZDUSD_OCO4_DOWN_S2> NZDUSD_DOWN_S2_OCO4Sets3 = new List<NZDUSD_OCO4_DOWN_S2>();
public static List<NZDUSD_OCO4_DOWN_S2> NZDUSD_DOWN_S2_OCO4Sets4 = new List<NZDUSD_OCO4_DOWN_S2>();
public static List<NZDUSD_OCO4_DOWN_S2> NZDUSD_DOWN_S2_OCO4Sets5 = new List<NZDUSD_OCO4_DOWN_S2>();
public static List<NZDUSD_OCO4_DOWN_S2> NZDUSD_DOWN_S2_OCO4Sets6 = new List<NZDUSD_OCO4_DOWN_S2>();
public static bool NZDUSD_OCO4_DOWN_S2_IsReady = true;
public static bool NZDUSD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal NZDUSD_UP_S2_SL {get; set;}
public static decimal NZDUSD_UP_S2_TP1 {get; set;}
public static decimal NZDUSD_UP_S2_TP2 {get; set;}
public static decimal NZDUSD_UP_S2_TP3 {get; set;}
public static decimal NZDUSD_UP_S2_TP4 {get; set;}
public static decimal NZDUSD_UP_S2_TP5 {get; set;}
public static decimal NZDUSD_UP_S2_TP6 {get; set;}
public static decimal NZDUSD_DOWN_S2_SL {get; set;}
public static decimal NZDUSD_DOWN_S2_TP1 {get; set;}
public static decimal NZDUSD_DOWN_S2_TP2 {get; set;}
public static decimal NZDUSD_DOWN_S2_TP3 {get; set;}
public static decimal NZDUSD_DOWN_S2_TP4 {get; set;}
public static decimal NZDUSD_DOWN_S2_TP5 {get; set;}
public static decimal NZDUSD_DOWN_S2_TP6 {get; set;}
public static bool NZDUSD_Signal_Condition_UP_1 ;
public static bool NZDUSD_Signal_Condition_UP_2 ;
public static bool NZDUSD_Signal_Condition_UP_3 ;
public static bool NZDUSD_Signal_Condition_DOWN_S2 ;
public static int NZDUSD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int NZDUSD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int NZDUSD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int NZDUSD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int NZDUSD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int NZDUSD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int NZDUSD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int NZDUSD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int NZDUSD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int NZDUSD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_NZDUSD_UP_S2 ;
public static bool DOWM_NZDUSD_UP_S2 ;
public static bool DOWT_NZDUSD_UP_S2 ;
public static bool DOWW_NZDUSD_UP_S2 ;
public static bool DOWTH_NZDUSD_UP_S2 ;
public static bool DOWR_NZDUSD_DOWN_S2 ;
public static bool DOWM_NZDUSD_DOWN_S2 ;
public static bool DOWT_NZDUSD_DOWN_S2 ;
public static bool DOWW_NZDUSD_DOWN_S2 ;
public static bool DOWTH_NZDUSD_DOWN_S2 ;
public static int NZDUSD_quantity_UP_S2 ;
public static int NZDUSD_quantity_SL_UP_S2 ;
public static int NZDUSD_quantity_TP1_UP_S2 ;
public static int NZDUSD_quantity_TP2_UP_S2 ;
public static int NZDUSD_quantity_TP3_UP_S2 ;
public static int NZDUSD_quantity_TP4_UP_S2 ;
public static int NZDUSD_quantity_TP5_UP_S2;
public static int NZDUSD_quantity_TP6_UP_S2 ;
public static int NZDUSD_quantity_DOWN_S2 ;
public static int NZDUSD_quantity_SL_DOWN_S2 ;
public static int NZDUSD_quantity_TP1_DOWN_S2 ;
public static int NZDUSD_quantity_TP2_DOWN_S2 ;
public static int NZDUSD_quantity_TP3_DOWN_S2 ;
public static int NZDUSD_quantity_TP4_DOWN_S2 ;
public static int NZDUSD_quantity_TP5_DOWN_S2;
public static int NZDUSD_quantity_TP6_DOWN_S2 ;
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct NZDJPY_OCO1_DOWN_S2
{
public NZDJPY_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDJPY_OCO1_UP_S2
{
public NZDJPY_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDJPY_OCO2_DOWN_S2
{
public NZDJPY_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDJPY_OCO2_UP_S2
{
public NZDJPY_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("NZDJPY OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDJPY_OCO3_DOWN_S2
{
public NZDJPY_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDJPY_OCO3_UP_S2
{
public NZDJPY_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("NZDJPY OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDJPY_OCO4_DOWN_S2
{
public NZDJPY_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDJPY_OCO4_UP_S2
{
public NZDJPY_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("NZDJPY OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _NZDCHF;
///oco1 up
public static OrderTicket NZDCHF_OCO1_MO1_UP_S2;
public static OrderTicket NZDCHF_OCO1_MO2_UP_S2;
public static OrderTicket NZDCHF_OCO1_MO3_UP_S2;
public static OrderTicket NZDCHF_OCO1_MO4_UP_S2;
public static OrderTicket NZDCHF_OCO1_MO5_UP_S2;
public static OrderTicket NZDCHF_OCO1_MO6_UP_S2;
public static int NZDCHF_OCO1_EO1_UP_S2_ID ;
public static int NZDCHF_OCO1_EO2_UP_S2_ID ;
public static int NZDCHF_OCO1_EO3_UP_S2_ID ;
public static int NZDCHF_OCO1_EO4_UP_S2_ID ;
public static int NZDCHF_OCO1_EO5_UP_S2_ID ;
public static int NZDCHF_OCO1_EO6_UP_S2_ID ;
public static bool NZDCHF_OCO1_EO1_UP_S2 ;
public static bool NZDCHF_OCO1_EO2_UP_S2 ;
public static bool NZDCHF_OCO1_EO3_UP_S2 ;
public static bool NZDCHF_OCO1_EO4_UP_S2 ;
public static bool NZDCHF_OCO1_EO5_UP_S2 ;
public static bool NZDCHF_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_UP_S2> NZDCHF_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_UP_S2> NZDCHF_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_UP_S2> NZDCHF_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_UP_S2> NZDCHF_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_UP_S2> NZDCHF_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_UP_S2> NZDCHF_OOFE_OCO1_UP_S2_6 ;
public static NZDCHF_OCO1_UP_S2 NZDCHF_PFO_OCO1_UP_S2_1 ;
public static NZDCHF_OCO1_UP_S2 NZDCHF_PFO_OCO1_UP_S2_2 ;
public static NZDCHF_OCO1_UP_S2 NZDCHF_PFO_OCO1_UP_S2_3 ;
public static NZDCHF_OCO1_UP_S2 NZDCHF_PFO_OCO1_UP_S2_4 ;
public static NZDCHF_OCO1_UP_S2 NZDCHF_PFO_OCO1_UP_S2_5 ;
public static NZDCHF_OCO1_UP_S2 NZDCHF_PFO_OCO1_UP_S2_6 ;
public static List<NZDCHF_OCO1_UP_S2> NZDCHF_UP_S2_OCO1Sets1 = new List<NZDCHF_OCO1_UP_S2>();
public static List<NZDCHF_OCO1_UP_S2> NZDCHF_UP_S2_OCO1Sets2 = new List<NZDCHF_OCO1_UP_S2>();
public static List<NZDCHF_OCO1_UP_S2> NZDCHF_UP_S2_OCO1Sets3 = new List<NZDCHF_OCO1_UP_S2>();
public static List<NZDCHF_OCO1_UP_S2> NZDCHF_UP_S2_OCO1Sets4 = new List<NZDCHF_OCO1_UP_S2>();
public static List<NZDCHF_OCO1_UP_S2> NZDCHF_UP_S2_OCO1Sets5 = new List<NZDCHF_OCO1_UP_S2>();
public static List<NZDCHF_OCO1_UP_S2> NZDCHF_UP_S2_OCO1Sets6 = new List<NZDCHF_OCO1_UP_S2>();
public static bool NZDCHF_OCO1_UP_S2_IsReady = true;
public static bool NZDCHF_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket NZDCHF_OCO1_MO1_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO1_MO2_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO1_MO3_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO1_MO4_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO1_MO5_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO1_MO6_DOWN_S2 ;
public static int NZDCHF_OCO1_EO1_DOWN_S2_ID ;
public static int NZDCHF_OCO1_EO2_DOWN_S2_ID ;
public static int NZDCHF_OCO1_EO3_DOWN_S2_ID ;
public static int NZDCHF_OCO1_EO4_DOWN_S2_ID ;
public static int NZDCHF_OCO1_EO5_DOWN_S2_ID ;
public static int NZDCHF_OCO1_EO6_DOWN_S2_ID ;
public static bool NZDCHF_OCO1_EO1_DOWN_S2 ;
public static bool NZDCHF_OCO1_EO2_DOWN_S2 ;
public static bool NZDCHF_OCO1_EO3_DOWN_S2 ;
public static bool NZDCHF_OCO1_EO4_DOWN_S2 ;
public static bool NZDCHF_OCO1_EO5_DOWN_S2 ;
public static bool NZDCHF_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_DOWN_S2> NZDCHF_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_DOWN_S2> NZDCHF_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_DOWN_S2> NZDCHF_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_DOWN_S2> NZDCHF_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_DOWN_S2> NZDCHF_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO1_DOWN_S2> NZDCHF_OOFE_OCO1_DOWN_S2_6 ;
public static NZDCHF_OCO1_DOWN_S2 NZDCHF_PFO_OCO1_DOWN_S2_1 ;
public static NZDCHF_OCO1_DOWN_S2 NZDCHF_PFO_OCO1_DOWN_S2_2 ;
public static NZDCHF_OCO1_DOWN_S2 NZDCHF_PFO_OCO1_DOWN_S2_3 ;
public static NZDCHF_OCO1_DOWN_S2 NZDCHF_PFO_OCO1_DOWN_S2_4 ;
public static NZDCHF_OCO1_DOWN_S2 NZDCHF_PFO_OCO1_DOWN_S2_5 ;
public static NZDCHF_OCO1_DOWN_S2 NZDCHF_PFO_OCO1_DOWN_S2_6 ;
public static List<NZDCHF_OCO1_DOWN_S2> NZDCHF_DOWN_S2_OCO1Sets1 = new List<NZDCHF_OCO1_DOWN_S2>();
public static List<NZDCHF_OCO1_DOWN_S2> NZDCHF_DOWN_S2_OCO1Sets2 = new List<NZDCHF_OCO1_DOWN_S2>();
public static List<NZDCHF_OCO1_DOWN_S2> NZDCHF_DOWN_S2_OCO1Sets3 = new List<NZDCHF_OCO1_DOWN_S2>();
public static List<NZDCHF_OCO1_DOWN_S2> NZDCHF_DOWN_S2_OCO1Sets4 = new List<NZDCHF_OCO1_DOWN_S2>();
public static List<NZDCHF_OCO1_DOWN_S2> NZDCHF_DOWN_S2_OCO1Sets5 = new List<NZDCHF_OCO1_DOWN_S2>();
public static List<NZDCHF_OCO1_DOWN_S2> NZDCHF_DOWN_S2_OCO1Sets6 = new List<NZDCHF_OCO1_DOWN_S2>();
public static bool NZDCHF_OCO1_DOWN_S2_IsReady = true;
public static bool NZDCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket NZDCHF_OCO2_MO1_UP_S2 ;
public static OrderTicket NZDCHF_OCO2_MO2_UP_S2 ;
public static OrderTicket NZDCHF_OCO2_MO3_UP_S2 ;
public static OrderTicket NZDCHF_OCO2_MO4_UP_S2 ;
public static OrderTicket NZDCHF_OCO2_MO5_UP_S2 ;
public static OrderTicket NZDCHF_OCO2_MO6_UP_S2 ;
public static int NZDCHF_OCO2_EO1_UP_S2_ID ;
public static int NZDCHF_OCO2_EO2_UP_S2_ID ;
public static int NZDCHF_OCO2_EO3_UP_S2_ID ;
public static int NZDCHF_OCO2_EO4_UP_S2_ID ;
public static int NZDCHF_OCO2_EO5_UP_S2_ID ;
public static int NZDCHF_OCO2_EO6_UP_S2_ID ;
public static bool NZDCHF_OCO2_EO1_UP_S2 ;
public static bool NZDCHF_OCO2_EO2_UP_S2 ;
public static bool NZDCHF_OCO2_EO3_UP_S2 ;
public static bool NZDCHF_OCO2_EO4_UP_S2 ;
public static bool NZDCHF_OCO2_EO5_UP_S2 ;
public static bool NZDCHF_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_UP_S2> NZDCHF_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_UP_S2> NZDCHF_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_UP_S2> NZDCHF_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_UP_S2> NZDCHF_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_UP_S2> NZDCHF_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_UP_S2> NZDCHF_OOFE_OCO2_UP_S2_6 ;
public static NZDCHF_OCO2_UP_S2 NZDCHF_PFO_OCO2_UP_S2_1 ;
public static NZDCHF_OCO2_UP_S2 NZDCHF_PFO_OCO2_UP_S2_2 ;
public static NZDCHF_OCO2_UP_S2 NZDCHF_PFO_OCO2_UP_S2_3 ;
public static NZDCHF_OCO2_UP_S2 NZDCHF_PFO_OCO2_UP_S2_4 ;
public static NZDCHF_OCO2_UP_S2 NZDCHF_PFO_OCO2_UP_S2_5 ;
public static NZDCHF_OCO2_UP_S2 NZDCHF_PFO_OCO2_UP_S2_6 ;
public static List<NZDCHF_OCO2_UP_S2> NZDCHF_UP_S2_OCO2Sets1 = new List<NZDCHF_OCO2_UP_S2>();
public static List<NZDCHF_OCO2_UP_S2> NZDCHF_UP_S2_OCO2Sets2 = new List<NZDCHF_OCO2_UP_S2>();
public static List<NZDCHF_OCO2_UP_S2> NZDCHF_UP_S2_OCO2Sets3 = new List<NZDCHF_OCO2_UP_S2>();
public static List<NZDCHF_OCO2_UP_S2> NZDCHF_UP_S2_OCO2Sets4 = new List<NZDCHF_OCO2_UP_S2>();
public static List<NZDCHF_OCO2_UP_S2> NZDCHF_UP_S2_OCO2Sets5 = new List<NZDCHF_OCO2_UP_S2>();
public static List<NZDCHF_OCO2_UP_S2> NZDCHF_UP_S2_OCO2Sets6 = new List<NZDCHF_OCO2_UP_S2>();
public static bool NZDCHF_OCO2_UP_S2_IsReady = true;
public static bool NZDCHF_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket NZDCHF_OCO2_MO1_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO2_MO2_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO2_MO3_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO2_MO4_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO2_MO5_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO2_MO6_DOWN_S2 ;
public static int NZDCHF_OCO2_EO1_DOWN_S2_ID ;
public static int NZDCHF_OCO2_EO2_DOWN_S2_ID ;
public static int NZDCHF_OCO2_EO3_DOWN_S2_ID ;
public static int NZDCHF_OCO2_EO4_DOWN_S2_ID ;
public static int NZDCHF_OCO2_EO5_DOWN_S2_ID ;
public static int NZDCHF_OCO2_EO6_DOWN_S2_ID ;
public static bool NZDCHF_OCO2_EO1_DOWN_S2 ;
public static bool NZDCHF_OCO2_EO2_DOWN_S2 ;
public static bool NZDCHF_OCO2_EO3_DOWN_S2 ;
public static bool NZDCHF_OCO2_EO4_DOWN_S2 ;
public static bool NZDCHF_OCO2_EO5_DOWN_S2 ;
public static bool NZDCHF_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_DOWN_S2> NZDCHF_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_DOWN_S2> NZDCHF_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_DOWN_S2> NZDCHF_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_DOWN_S2> NZDCHF_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_DOWN_S2> NZDCHF_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO2_DOWN_S2> NZDCHF_OOFE_OCO2_DOWN_S2_6 ;
public static NZDCHF_OCO2_DOWN_S2 NZDCHF_PFO_OCO2_DOWN_S2_1 ;
public static NZDCHF_OCO2_DOWN_S2 NZDCHF_PFO_OCO2_DOWN_S2_2 ;
public static NZDCHF_OCO2_DOWN_S2 NZDCHF_PFO_OCO2_DOWN_S2_3 ;
public static NZDCHF_OCO2_DOWN_S2 NZDCHF_PFO_OCO2_DOWN_S2_4 ;
public static NZDCHF_OCO2_DOWN_S2 NZDCHF_PFO_OCO2_DOWN_S2_5 ;
public static NZDCHF_OCO2_DOWN_S2 NZDCHF_PFO_OCO2_DOWN_S2_6 ;
public static List<NZDCHF_OCO2_DOWN_S2> NZDCHF_DOWN_S2_OCO2Sets1 = new List<NZDCHF_OCO2_DOWN_S2>();
public static List<NZDCHF_OCO2_DOWN_S2> NZDCHF_DOWN_S2_OCO2Sets2 = new List<NZDCHF_OCO2_DOWN_S2>();
public static List<NZDCHF_OCO2_DOWN_S2> NZDCHF_DOWN_S2_OCO2Sets3 = new List<NZDCHF_OCO2_DOWN_S2>();
public static List<NZDCHF_OCO2_DOWN_S2> NZDCHF_DOWN_S2_OCO2Sets4 = new List<NZDCHF_OCO2_DOWN_S2>();
public static List<NZDCHF_OCO2_DOWN_S2> NZDCHF_DOWN_S2_OCO2Sets5 = new List<NZDCHF_OCO2_DOWN_S2>();
public static List<NZDCHF_OCO2_DOWN_S2> NZDCHF_DOWN_S2_OCO2Sets6 = new List<NZDCHF_OCO2_DOWN_S2>();
public static bool NZDCHF_OCO2_DOWN_S2_IsReady = true;
public static bool NZDCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket NZDCHF_OCO3_MO1_UP_S2 ;
public static OrderTicket NZDCHF_OCO3_MO2_UP_S2 ;
public static OrderTicket NZDCHF_OCO3_MO3_UP_S2 ;
public static OrderTicket NZDCHF_OCO3_MO4_UP_S2 ;
public static OrderTicket NZDCHF_OCO3_MO5_UP_S2 ;
public static OrderTicket NZDCHF_OCO3_MO6_UP_S2 ;
public static int NZDCHF_OCO3_EO1_UP_S2_ID ;
public static int NZDCHF_OCO3_EO2_UP_S2_ID ;
public static int NZDCHF_OCO3_EO3_UP_S2_ID ;
public static int NZDCHF_OCO3_EO4_UP_S2_ID ;
public static int NZDCHF_OCO3_EO5_UP_S2_ID ;
public static int NZDCHF_OCO3_EO6_UP_S2_ID ;
public static bool NZDCHF_OCO3_EO1_UP_S2 ;
public static bool NZDCHF_OCO3_EO2_UP_S2 ;
public static bool NZDCHF_OCO3_EO3_UP_S2 ;
public static bool NZDCHF_OCO3_EO4_UP_S2 ;
public static bool NZDCHF_OCO3_EO5_UP_S2 ;
public static bool NZDCHF_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_UP_S2> NZDCHF_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_UP_S2> NZDCHF_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_UP_S2> NZDCHF_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_UP_S2> NZDCHF_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_UP_S2> NZDCHF_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_UP_S2> NZDCHF_OOFE_OCO3_UP_S2_6 ;
public static NZDCHF_OCO3_UP_S2 NZDCHF_PFO_OCO3_UP_S2_1 ;
public static NZDCHF_OCO3_UP_S2 NZDCHF_PFO_OCO3_UP_S2_2 ;
public static NZDCHF_OCO3_UP_S2 NZDCHF_PFO_OCO3_UP_S2_3 ;
public static NZDCHF_OCO3_UP_S2 NZDCHF_PFO_OCO3_UP_S2_4 ;
public static NZDCHF_OCO3_UP_S2 NZDCHF_PFO_OCO3_UP_S2_5 ;
public static NZDCHF_OCO3_UP_S2 NZDCHF_PFO_OCO3_UP_S2_6 ;
public static List<NZDCHF_OCO3_UP_S2> NZDCHF_UP_S2_OCO3Sets1 = new List<NZDCHF_OCO3_UP_S2>();
public static List<NZDCHF_OCO3_UP_S2> NZDCHF_UP_S2_OCO3Sets2 = new List<NZDCHF_OCO3_UP_S2>();
public static List<NZDCHF_OCO3_UP_S2> NZDCHF_UP_S2_OCO3Sets3 = new List<NZDCHF_OCO3_UP_S2>();
public static List<NZDCHF_OCO3_UP_S2> NZDCHF_UP_S2_OCO3Sets4 = new List<NZDCHF_OCO3_UP_S2>();
public static List<NZDCHF_OCO3_UP_S2> NZDCHF_UP_S2_OCO3Sets5 = new List<NZDCHF_OCO3_UP_S2>();
public static List<NZDCHF_OCO3_UP_S2> NZDCHF_UP_S2_OCO3Sets6 = new List<NZDCHF_OCO3_UP_S2>();
public static bool NZDCHF_OCO3_UP_S2_IsReady = true;
public static bool NZDCHF_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket NZDCHF_OCO3_MO1_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO3_MO2_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO3_MO3_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO3_MO4_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO3_MO5_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO3_MO6_DOWN_S2 ;
public static int NZDCHF_OCO3_EO1_DOWN_S2_ID ;
public static int NZDCHF_OCO3_EO2_DOWN_S2_ID ;
public static int NZDCHF_OCO3_EO3_DOWN_S2_ID ;
public static int NZDCHF_OCO3_EO4_DOWN_S2_ID ;
public static int NZDCHF_OCO3_EO5_DOWN_S2_ID ;
public static int NZDCHF_OCO3_EO6_DOWN_S2_ID ;
public static bool NZDCHF_OCO3_EO1_DOWN_S2 ;
public static bool NZDCHF_OCO3_EO2_DOWN_S2 ;
public static bool NZDCHF_OCO3_EO3_DOWN_S2 ;
public static bool NZDCHF_OCO3_EO4_DOWN_S2 ;
public static bool NZDCHF_OCO3_EO5_DOWN_S2 ;
public static bool NZDCHF_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_DOWN_S2> NZDCHF_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_DOWN_S2> NZDCHF_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_DOWN_S2> NZDCHF_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_DOWN_S2> NZDCHF_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_DOWN_S2> NZDCHF_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO3_DOWN_S2> NZDCHF_OOFE_OCO3_DOWN_S2_6 ;
public static NZDCHF_OCO3_DOWN_S2 NZDCHF_PFO_OCO3_DOWN_S2_1 ;
public static NZDCHF_OCO3_DOWN_S2 NZDCHF_PFO_OCO3_DOWN_S2_2 ;
public static NZDCHF_OCO3_DOWN_S2 NZDCHF_PFO_OCO3_DOWN_S2_3 ;
public static NZDCHF_OCO3_DOWN_S2 NZDCHF_PFO_OCO3_DOWN_S2_4 ;
public static NZDCHF_OCO3_DOWN_S2 NZDCHF_PFO_OCO3_DOWN_S2_5 ;
public static NZDCHF_OCO3_DOWN_S2 NZDCHF_PFO_OCO3_DOWN_S2_6 ;
public static List<NZDCHF_OCO3_DOWN_S2> NZDCHF_DOWN_S2_OCO3Sets1 = new List<NZDCHF_OCO3_DOWN_S2>();
public static List<NZDCHF_OCO3_DOWN_S2> NZDCHF_DOWN_S2_OCO3Sets2 = new List<NZDCHF_OCO3_DOWN_S2>();
public static List<NZDCHF_OCO3_DOWN_S2> NZDCHF_DOWN_S2_OCO3Sets3 = new List<NZDCHF_OCO3_DOWN_S2>();
public static List<NZDCHF_OCO3_DOWN_S2> NZDCHF_DOWN_S2_OCO3Sets4 = new List<NZDCHF_OCO3_DOWN_S2>();
public static List<NZDCHF_OCO3_DOWN_S2> NZDCHF_DOWN_S2_OCO3Sets5 = new List<NZDCHF_OCO3_DOWN_S2>();
public static List<NZDCHF_OCO3_DOWN_S2> NZDCHF_DOWN_S2_OCO3Sets6 = new List<NZDCHF_OCO3_DOWN_S2>();
public static bool NZDCHF_OCO3_DOWN_S2_IsReady = true;
public static bool NZDCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket NZDCHF_OCO4_MO1_UP_S2 ;
public static OrderTicket NZDCHF_OCO4_MO2_UP_S2 ;
public static OrderTicket NZDCHF_OCO4_MO3_UP_S2 ;
public static OrderTicket NZDCHF_OCO4_MO4_UP_S2 ;
public static OrderTicket NZDCHF_OCO4_MO5_UP_S2 ;
public static OrderTicket NZDCHF_OCO4_MO6_UP_S2 ;
public static int NZDCHF_OCO4_EO1_UP_S2_ID ;
public static int NZDCHF_OCO4_EO2_UP_S2_ID ;
public static int NZDCHF_OCO4_EO3_UP_S2_ID ;
public static int NZDCHF_OCO4_EO4_UP_S2_ID ;
public static int NZDCHF_OCO4_EO5_UP_S2_ID ;
public static int NZDCHF_OCO4_EO6_UP_S2_ID ;
public static bool NZDCHF_OCO4_EO1_UP_S2 ;
public static bool NZDCHF_OCO4_EO2_UP_S2 ;
public static bool NZDCHF_OCO4_EO3_UP_S2 ;
public static bool NZDCHF_OCO4_EO4_UP_S2 ;
public static bool NZDCHF_OCO4_EO5_UP_S2 ;
public static bool NZDCHF_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_UP_S2> NZDCHF_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_UP_S2> NZDCHF_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_UP_S2> NZDCHF_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_UP_S2> NZDCHF_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_UP_S2> NZDCHF_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_UP_S2> NZDCHF_OOFE_OCO4_UP_S2_6 ;
public static NZDCHF_OCO4_UP_S2 NZDCHF_PFO_OCO4_UP_S2_1 ;
public static NZDCHF_OCO4_UP_S2 NZDCHF_PFO_OCO4_UP_S2_2 ;
public static NZDCHF_OCO4_UP_S2 NZDCHF_PFO_OCO4_UP_S2_3 ;
public static NZDCHF_OCO4_UP_S2 NZDCHF_PFO_OCO4_UP_S2_4 ;
public static NZDCHF_OCO4_UP_S2 NZDCHF_PFO_OCO4_UP_S2_5 ;
public static NZDCHF_OCO4_UP_S2 NZDCHF_PFO_OCO4_UP_S2_6 ;
public static List<NZDCHF_OCO4_UP_S2> NZDCHF_UP_S2_OCO4Sets1 = new List<NZDCHF_OCO4_UP_S2>();
public static List<NZDCHF_OCO4_UP_S2> NZDCHF_UP_S2_OCO4Sets2 = new List<NZDCHF_OCO4_UP_S2>();
public static List<NZDCHF_OCO4_UP_S2> NZDCHF_UP_S2_OCO4Sets3 = new List<NZDCHF_OCO4_UP_S2>();
public static List<NZDCHF_OCO4_UP_S2> NZDCHF_UP_S2_OCO4Sets4 = new List<NZDCHF_OCO4_UP_S2>();
public static List<NZDCHF_OCO4_UP_S2> NZDCHF_UP_S2_OCO4Sets5 = new List<NZDCHF_OCO4_UP_S2>();
public static List<NZDCHF_OCO4_UP_S2> NZDCHF_UP_S2_OCO4Sets6 = new List<NZDCHF_OCO4_UP_S2>();
public static bool NZDCHF_OCO4_UP_S2_IsReady = true;
public static bool NZDCHF_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket NZDCHF_OCO4_MO1_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO4_MO2_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO4_MO3_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO4_MO4_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO4_MO5_DOWN_S2 ;
public static OrderTicket NZDCHF_OCO4_MO6_DOWN_S2 ;
public static int NZDCHF_OCO4_EO1_DOWN_S2_ID ;
public static int NZDCHF_OCO4_EO2_DOWN_S2_ID ;
public static int NZDCHF_OCO4_EO3_DOWN_S2_ID ;
public static int NZDCHF_OCO4_EO4_DOWN_S2_ID ;
public static int NZDCHF_OCO4_EO5_DOWN_S2_ID ;
public static int NZDCHF_OCO4_EO6_DOWN_S2_ID ;
public static bool NZDCHF_OCO4_EO1_DOWN_S2 ;
public static bool NZDCHF_OCO4_EO2_DOWN_S2 ;
public static bool NZDCHF_OCO4_EO3_DOWN_S2 ;
public static bool NZDCHF_OCO4_EO4_DOWN_S2 ;
public static bool NZDCHF_OCO4_EO5_DOWN_S2 ;
public static bool NZDCHF_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_DOWN_S2> NZDCHF_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_DOWN_S2> NZDCHF_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_DOWN_S2> NZDCHF_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_DOWN_S2> NZDCHF_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_DOWN_S2> NZDCHF_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCHF_OCO4_DOWN_S2> NZDCHF_OOFE_OCO4_DOWN_S2_6 ;
public static NZDCHF_OCO4_DOWN_S2 NZDCHF_PFO_OCO4_DOWN_S2_1 ;
public static NZDCHF_OCO4_DOWN_S2 NZDCHF_PFO_OCO4_DOWN_S2_2 ;
public static NZDCHF_OCO4_DOWN_S2 NZDCHF_PFO_OCO4_DOWN_S2_3 ;
public static NZDCHF_OCO4_DOWN_S2 NZDCHF_PFO_OCO4_DOWN_S2_4 ;
public static NZDCHF_OCO4_DOWN_S2 NZDCHF_PFO_OCO4_DOWN_S2_5 ;
public static NZDCHF_OCO4_DOWN_S2 NZDCHF_PFO_OCO4_DOWN_S2_6 ;
public static List<NZDCHF_OCO4_DOWN_S2> NZDCHF_DOWN_S2_OCO4Sets1 = new List<NZDCHF_OCO4_DOWN_S2>();
public static List<NZDCHF_OCO4_DOWN_S2> NZDCHF_DOWN_S2_OCO4Sets2 = new List<NZDCHF_OCO4_DOWN_S2>();
public static List<NZDCHF_OCO4_DOWN_S2> NZDCHF_DOWN_S2_OCO4Sets3 = new List<NZDCHF_OCO4_DOWN_S2>();
public static List<NZDCHF_OCO4_DOWN_S2> NZDCHF_DOWN_S2_OCO4Sets4 = new List<NZDCHF_OCO4_DOWN_S2>();
public static List<NZDCHF_OCO4_DOWN_S2> NZDCHF_DOWN_S2_OCO4Sets5 = new List<NZDCHF_OCO4_DOWN_S2>();
public static List<NZDCHF_OCO4_DOWN_S2> NZDCHF_DOWN_S2_OCO4Sets6 = new List<NZDCHF_OCO4_DOWN_S2>();
public static bool NZDCHF_OCO4_DOWN_S2_IsReady = true;
public static bool NZDCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal NZDCHF_UP_S2_SL {get; set;}
public static decimal NZDCHF_UP_S2_TP1 {get; set;}
public static decimal NZDCHF_UP_S2_TP2 {get; set;}
public static decimal NZDCHF_UP_S2_TP3 {get; set;}
public static decimal NZDCHF_UP_S2_TP4 {get; set;}
public static decimal NZDCHF_UP_S2_TP5 {get; set;}
public static decimal NZDCHF_UP_S2_TP6 {get; set;}
public static decimal NZDCHF_DOWN_S2_SL {get; set;}
public static decimal NZDCHF_DOWN_S2_TP1 {get; set;}
public static decimal NZDCHF_DOWN_S2_TP2 {get; set;}
public static decimal NZDCHF_DOWN_S2_TP3 {get; set;}
public static decimal NZDCHF_DOWN_S2_TP4 {get; set;}
public static decimal NZDCHF_DOWN_S2_TP5 {get; set;}
public static decimal NZDCHF_DOWN_S2_TP6 {get; set;}
public static bool NZDCHF_Signal_Condition_UP_1 ;
public static bool NZDCHF_Signal_Condition_UP_2 ;
public static bool NZDCHF_Signal_Condition_UP_3 ;
public static bool NZDCHF_Signal_Condition_DOWN_S2 ;
public static int NZDCHF_UP_S2_OCO_DELAY_7DAY = 10080;
public static int NZDCHF_UP_S2_OCOM_DELAY_DAY = 4320;
public static int NZDCHF_UP_S2_OCOT_DELAY_DAY = 2880;
public static int NZDCHF_UP_S2_OCOW_DELAY_DAY = 1440;
public static int NZDCHF_UP_S2_OCOTH_DELAY_DAY = 720;
public static int NZDCHF_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int NZDCHF_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int NZDCHF_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int NZDCHF_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int NZDCHF_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_NZDCHF_UP_S2 ;
public static bool DOWM_NZDCHF_UP_S2 ;
public static bool DOWT_NZDCHF_UP_S2 ;
public static bool DOWW_NZDCHF_UP_S2 ;
public static bool DOWTH_NZDCHF_UP_S2 ;
public static bool DOWR_NZDCHF_DOWN_S2 ;
public static bool DOWM_NZDCHF_DOWN_S2 ;
public static bool DOWT_NZDCHF_DOWN_S2 ;
public static bool DOWW_NZDCHF_DOWN_S2 ;
public static bool DOWTH_NZDCHF_DOWN_S2 ;
public static int NZDCHF_quantity_UP_S2 ;
public static int NZDCHF_quantity_SL_UP_S2 ;
public static int NZDCHF_quantity_TP1_UP_S2 ;
public static int NZDCHF_quantity_TP2_UP_S2 ;
public static int NZDCHF_quantity_TP3_UP_S2 ;
public static int NZDCHF_quantity_TP4_UP_S2 ;
public static int NZDCHF_quantity_TP5_UP_S2;
public static int NZDCHF_quantity_TP6_UP_S2 ;
public static int NZDCHF_quantity_DOWN_S2 ;
public static int NZDCHF_quantity_SL_DOWN_S2 ;
public static int NZDCHF_quantity_TP1_DOWN_S2 ;
public static int NZDCHF_quantity_TP2_DOWN_S2 ;
public static int NZDCHF_quantity_TP3_DOWN_S2 ;
public static int NZDCHF_quantity_TP4_DOWN_S2 ;
public static int NZDCHF_quantity_TP5_DOWN_S2;
public static int NZDCHF_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDUSD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDUSD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
}
if (Base.AUDUSD_OCO1_EO1_UP_S2)
Base.AUDUSD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO1_EO2_UP_S2)
Base.AUDUSD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO1_EO3_UP_S2)
Base.AUDUSD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO1_EO4_UP_S2)
Base.AUDUSD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO1_EO5_UP_S2)
Base.AUDUSD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO1_EO6_UP_S2)
Base.AUDUSD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO1_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP1,"TP1_AUDUSD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP1_AUDUSD_UP_S2_OCO1"));
};
Base.AUDUSD_UP_S2_OCO1Sets1.Add( Base.AUDUSD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO2_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP2,"TP2_AUDUSD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP2_AUDUSD_UP_S2_OCO1"));
};
Base.AUDUSD_UP_S2_OCO1Sets2.Add( Base.AUDUSD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO3_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP3,"TP3_AUDUSD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP3_AUDUSD_UP_S2_OCO1"));
};
Base.AUDUSD_UP_S2_OCO1Sets3.Add( Base.AUDUSD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO4_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP4,"TP4_AUDUSD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP4_AUDUSD_UP_S2_OCO1"));
};
Base.AUDUSD_UP_S2_OCO1Sets4.Add( Base.AUDUSD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO5_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP5,"TP5_AUDUSD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP5_AUDUSD_UP_S2_OCO1"));
};
Base.AUDUSD_UP_S2_OCO1Sets5.Add( Base.AUDUSD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO6_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP6,"TP6_AUDUSD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP6_AUDUSD_UP_S2_OCO1"));
};
Base.AUDUSD_UP_S2_OCO1Sets6.Add( Base.AUDUSD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO6_UP_S2_ID = -1;
}
int AUDUSD_OCO1S1_UP_S2 = 0;
for (; AUDUSD_OCO1S1_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets1.Count; AUDUSD_OCO1S1_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets1[AUDUSD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO1Sets1[AUDUSD_OCO1S1_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO1Sets1.RemoveAt(AUDUSD_OCO1S1_UP_S2);
AUDUSD_OCO1S1_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S2_UP_S2 = 0;
for (; AUDUSD_OCO1S2_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets2.Count; AUDUSD_OCO1S2_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets2[AUDUSD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO1Sets2[AUDUSD_OCO1S2_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO1Sets2.RemoveAt(AUDUSD_OCO1S2_UP_S2);
AUDUSD_OCO1S2_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S3_UP_S2 = 0;
for (; AUDUSD_OCO1S3_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets3.Count; AUDUSD_OCO1S3_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets3[AUDUSD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO1Sets3[AUDUSD_OCO1S3_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO1Sets3.RemoveAt(AUDUSD_OCO1S3_UP_S2);
AUDUSD_OCO1S3_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S4_UP_S2 = 0;
for (; AUDUSD_OCO1S4_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets4.Count; AUDUSD_OCO1S4_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets4[AUDUSD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO1Sets4[AUDUSD_OCO1S4_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO1Sets4.RemoveAt(AUDUSD_OCO1S4_UP_S2);
AUDUSD_OCO1S4_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S5_UP_S2 = 0;
for (; AUDUSD_OCO1S5_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets5.Count; AUDUSD_OCO1S5_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets5[AUDUSD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO1Sets5[AUDUSD_OCO1S5_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO1Sets5.RemoveAt(AUDUSD_OCO1S5_UP_S2);
AUDUSD_OCO1S5_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S6_UP_S2 = 0;
for (; AUDUSD_OCO1S6_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets6.Count; AUDUSD_OCO1S6_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets6[AUDUSD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO1Sets6[AUDUSD_OCO1S6_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO1Sets6.RemoveAt(AUDUSD_OCO1S6_UP_S2);
AUDUSD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO2_EO1_UP_S2)
Base.AUDUSD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO2_EO2_UP_S2)
Base.AUDUSD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO2_EO3_UP_S2)
Base.AUDUSD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO2_EO4_UP_S2)
Base.AUDUSD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO2_EO5_UP_S2)
Base.AUDUSD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO2_EO6_UP_S2)
Base.AUDUSD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO1_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP1,"TP1_AUDUSD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP1_AUDUSD_UP_S2_OCO2"));
};
Base.AUDUSD_UP_S2_OCO2Sets1.Add( Base.AUDUSD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO2_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP2,"TP2_AUDUSD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP2_AUDUSD_UP_S2_OCO2"));
};
Base.AUDUSD_UP_S2_OCO2Sets2.Add( Base.AUDUSD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO3_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP3,"TP3_AUDUSD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP3_AUDUSD_UP_S2_OCO2"));
};
Base.AUDUSD_UP_S2_OCO2Sets3.Add( Base.AUDUSD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO4_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP4,"TP4_AUDUSD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP4_AUDUSD_UP_S2_OCO2"));
};
Base.AUDUSD_UP_S2_OCO2Sets4.Add( Base.AUDUSD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO5_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP5,"TP5_AUDUSD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP5_AUDUSD_UP_S2_OCO2"));
};
Base.AUDUSD_UP_S2_OCO2Sets5.Add( Base.AUDUSD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO6_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP6,"TP6_AUDUSD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP6_AUDUSD_UP_S2_OCO2"));
};
Base.AUDUSD_UP_S2_OCO2Sets6.Add( Base.AUDUSD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO6_UP_S2_ID = -1;
}
int AUDUSD_OCO2S1_UP_S2 = 0;
for (; AUDUSD_OCO2S1_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets1.Count; AUDUSD_OCO2S1_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets1[AUDUSD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO2Sets1[AUDUSD_OCO2S1_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO2Sets1.RemoveAt(AUDUSD_OCO2S1_UP_S2);
AUDUSD_OCO2S1_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S2_UP_S2 = 0;
for (; AUDUSD_OCO2S2_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets2.Count; AUDUSD_OCO2S2_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets2[AUDUSD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO2Sets2[AUDUSD_OCO2S2_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO2Sets2.RemoveAt(AUDUSD_OCO2S2_UP_S2);
AUDUSD_OCO2S2_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S3_UP_S2 = 0;
for (; AUDUSD_OCO2S3_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets3.Count; AUDUSD_OCO2S3_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets3[AUDUSD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO2Sets3[AUDUSD_OCO2S3_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO2Sets3.RemoveAt(AUDUSD_OCO2S3_UP_S2);
AUDUSD_OCO2S3_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S4_UP_S2 = 0;
for (; AUDUSD_OCO2S4_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets4.Count; AUDUSD_OCO2S4_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets4[AUDUSD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO2Sets4[AUDUSD_OCO2S4_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO2Sets4.RemoveAt(AUDUSD_OCO2S4_UP_S2);
AUDUSD_OCO2S4_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S5_UP_S2 = 0;
for (; AUDUSD_OCO2S5_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets5.Count; AUDUSD_OCO2S5_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets5[AUDUSD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO2Sets5[AUDUSD_OCO2S5_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO2Sets5.RemoveAt(AUDUSD_OCO2S5_UP_S2);
AUDUSD_OCO2S5_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S6_UP_S2 = 0;
for (; AUDUSD_OCO2S6_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets6.Count; AUDUSD_OCO2S6_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets6[AUDUSD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO2Sets6[AUDUSD_OCO2S6_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO2Sets6.RemoveAt(AUDUSD_OCO2S6_UP_S2);
AUDUSD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO3_EO1_UP_S2)
Base.AUDUSD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO3_EO2_UP_S2)
Base.AUDUSD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO3_EO3_UP_S2)
Base.AUDUSD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO3_EO4_UP_S2)
Base.AUDUSD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO3_EO5_UP_S2)
Base.AUDUSD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO3_EO6_UP_S2)
Base.AUDUSD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO1_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP1,"TP1_AUDUSD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP1_AUDUSD_UP_S2_OCO3"));
};
Base.AUDUSD_UP_S2_OCO3Sets1.Add( Base.AUDUSD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO2_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP2,"TP2_AUDUSD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP2_AUDUSD_UP_S2_OCO3"));
};
Base.AUDUSD_UP_S2_OCO3Sets2.Add( Base.AUDUSD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO3_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP3,"TP3_AUDUSD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP3_AUDUSD_UP_S2_OCO3"));
};
Base.AUDUSD_UP_S2_OCO3Sets3.Add( Base.AUDUSD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO4_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP4,"TP4_AUDUSD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP4_AUDUSD_UP_S2_OCO3"));
};
Base.AUDUSD_UP_S2_OCO3Sets4.Add( Base.AUDUSD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO5_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP5,"TP5_AUDUSD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP5_AUDUSD_UP_S2_OCO3"));
};
Base.AUDUSD_UP_S2_OCO3Sets5.Add( Base.AUDUSD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO6_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP6,"TP6_AUDUSD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP6_AUDUSD_UP_S2_OCO3"));
};
Base.AUDUSD_UP_S2_OCO3Sets6.Add( Base.AUDUSD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO6_UP_S2_ID = -1;
}
int AUDUSD_OCO3S1_UP_S2 = 0;
for (; AUDUSD_OCO3S1_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets1.Count; AUDUSD_OCO3S1_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets1[AUDUSD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO3Sets1[AUDUSD_OCO3S1_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO3Sets1.RemoveAt(AUDUSD_OCO3S1_UP_S2);
AUDUSD_OCO3S1_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S2_UP_S2 = 0;
for (; AUDUSD_OCO3S2_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets2.Count; AUDUSD_OCO3S2_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets2[AUDUSD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO3Sets2[AUDUSD_OCO3S2_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO3Sets2.RemoveAt(AUDUSD_OCO3S2_UP_S2);
AUDUSD_OCO3S2_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S3_UP_S2 = 0;
for (; AUDUSD_OCO3S3_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets3.Count; AUDUSD_OCO3S3_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets3[AUDUSD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO3Sets3[AUDUSD_OCO3S3_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO3Sets3.RemoveAt(AUDUSD_OCO3S3_UP_S2);
AUDUSD_OCO3S3_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S4_UP_S2 = 0;
for (; AUDUSD_OCO3S4_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets4.Count; AUDUSD_OCO3S4_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets4[AUDUSD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO3Sets4[AUDUSD_OCO3S4_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO3Sets4.RemoveAt(AUDUSD_OCO3S4_UP_S2);
AUDUSD_OCO3S4_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S5_UP_S2 = 0;
for (; AUDUSD_OCO3S5_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets5.Count; AUDUSD_OCO3S5_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets5[AUDUSD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO3Sets5[AUDUSD_OCO3S5_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO3Sets5.RemoveAt(AUDUSD_OCO3S5_UP_S2);
AUDUSD_OCO3S5_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S6_UP_S2 = 0;
for (; AUDUSD_OCO3S6_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets6.Count; AUDUSD_OCO3S6_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets6[AUDUSD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO3Sets6[AUDUSD_OCO3S6_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO3Sets6.RemoveAt(AUDUSD_OCO3S6_UP_S2);
AUDUSD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO4_EO1_UP_S2)
Base.AUDUSD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO4_EO2_UP_S2)
Base.AUDUSD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO4_EO3_UP_S2)
Base.AUDUSD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO4_EO4_UP_S2)
Base.AUDUSD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO4_EO5_UP_S2)
Base.AUDUSD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO4_EO6_UP_S2)
Base.AUDUSD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO1_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP1,"TP1_AUDUSD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP1_AUDUSD_UP_S2_OCO4"));
};
Base.AUDUSD_UP_S2_OCO4Sets1.Add( Base.AUDUSD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO2_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP2,"TP2_AUDUSD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP2_AUDUSD_UP_S2_OCO4"));
};
Base.AUDUSD_UP_S2_OCO4Sets2.Add( Base.AUDUSD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO3_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP3,"TP3_AUDUSD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP3_AUDUSD_UP_S2_OCO4"));
};
Base.AUDUSD_UP_S2_OCO4Sets3.Add( Base.AUDUSD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO4_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP4,"TP4_AUDUSD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP4_AUDUSD_UP_S2_OCO4"));
};
Base.AUDUSD_UP_S2_OCO4Sets4.Add( Base.AUDUSD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO5_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP5,"TP5_AUDUSD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP5_AUDUSD_UP_S2_OCO4"));
};
Base.AUDUSD_UP_S2_OCO4Sets5.Add( Base.AUDUSD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO6_UP_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_UP_S2_TP6,"TP6_AUDUSD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_UP_S2_SL,"SL_TP6_AUDUSD_UP_S2_OCO4"));
};
Base.AUDUSD_UP_S2_OCO4Sets6.Add( Base.AUDUSD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO6_UP_S2_ID = -1;
}
int AUDUSD_OCO4S1_UP_S2 = 0;
for (; AUDUSD_OCO4S1_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets1.Count; AUDUSD_OCO4S1_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets1[AUDUSD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO4Sets1[AUDUSD_OCO4S1_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO4Sets1.RemoveAt(AUDUSD_OCO4S1_UP_S2);
AUDUSD_OCO4S1_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S2_UP_S2 = 0;
for (; AUDUSD_OCO4S2_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets2.Count; AUDUSD_OCO4S2_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets2[AUDUSD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO4Sets2[AUDUSD_OCO4S2_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO4Sets2.RemoveAt(AUDUSD_OCO4S2_UP_S2);
AUDUSD_OCO4S2_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S3_UP_S2 = 0;
for (; AUDUSD_OCO4S3_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets3.Count; AUDUSD_OCO4S3_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets3[AUDUSD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO4Sets3[AUDUSD_OCO4S3_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO4Sets3.RemoveAt(AUDUSD_OCO4S3_UP_S2);
AUDUSD_OCO4S3_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S4_UP_S2 = 0;
for (; AUDUSD_OCO4S4_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets4.Count; AUDUSD_OCO4S4_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets4[AUDUSD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO4Sets4[AUDUSD_OCO4S4_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO4Sets4.RemoveAt(AUDUSD_OCO4S4_UP_S2);
AUDUSD_OCO4S4_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S5_UP_S2 = 0;
for (; AUDUSD_OCO4S5_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets5.Count; AUDUSD_OCO4S5_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets5[AUDUSD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO4Sets5[AUDUSD_OCO4S5_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO4Sets5.RemoveAt(AUDUSD_OCO4S5_UP_S2);
AUDUSD_OCO4S5_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S6_UP_S2 = 0;
for (; AUDUSD_OCO4S6_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets6.Count; AUDUSD_OCO4S6_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets6[AUDUSD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_UP_S2_OCO4Sets6[AUDUSD_OCO4S6_UP_S2].Filled();
Base.AUDUSD_UP_S2_OCO4Sets6.RemoveAt(AUDUSD_OCO4S6_UP_S2);
AUDUSD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDUSD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDUSD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
if (OrderID.Tag.StartsWith("AUDUSD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDUSD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDUSD S2");
}
}
if (Base.AUDUSD_OCO1_EO1_DOWN_S2)
Base.AUDUSD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO1_EO2_DOWN_S2)
Base.AUDUSD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO1_EO3_DOWN_S2)
Base.AUDUSD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO1_EO4_DOWN_S2)
Base.AUDUSD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO1_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP1_AUDUSD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP1,"TP1_AUDUSD_DOWN_S2_OCO1"));
};
Base.AUDUSD_DOWN_S2_OCO1Sets1.Add( Base.AUDUSD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO2_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP2_AUDUSD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP2,"TP2_AUDUSD_DOWN_S2_OCO1"));
};
Base.AUDUSD_DOWN_S2_OCO1Sets2.Add( Base.AUDUSD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO3_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP3_AUDUSD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP3,"TP3_AUDUSD_DOWN_S2_OCO1"));
};
Base.AUDUSD_DOWN_S2_OCO1Sets3.Add( Base.AUDUSD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO1_EO4_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP4_AUDUSD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP4,"TP4_AUDUSD_DOWN_S2_OCO1"));
};
Base.AUDUSD_DOWN_S2_OCO1Sets4.Add( Base.AUDUSD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO1_EO4_DOWN_S2_ID = -1;
}
int AUDUSD_OCO1S1_DOWN_S2 = 0;
for (; AUDUSD_OCO1S1_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets1.Count; AUDUSD_OCO1S1_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets1[AUDUSD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO1Sets1[AUDUSD_OCO1S1_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO1Sets1.RemoveAt(AUDUSD_OCO1S1_DOWN_S2);
AUDUSD_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO1S2_DOWN_S2 = 0;
for (; AUDUSD_OCO1S2_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets2.Count; AUDUSD_OCO1S2_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets2[AUDUSD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO1Sets2[AUDUSD_OCO1S2_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO1Sets2.RemoveAt(AUDUSD_OCO1S2_DOWN_S2);
AUDUSD_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO1S3_DOWN_S2 = 0;
for (; AUDUSD_OCO1S3_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets3.Count; AUDUSD_OCO1S3_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets3[AUDUSD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO1Sets3[AUDUSD_OCO1S3_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO1Sets3.RemoveAt(AUDUSD_OCO1S3_DOWN_S2);
AUDUSD_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO1S4_DOWN_S2 = 0;
for (; AUDUSD_OCO1S4_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets4.Count; AUDUSD_OCO1S4_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets4[AUDUSD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO1Sets4[AUDUSD_OCO1S4_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO1Sets4.RemoveAt(AUDUSD_OCO1S4_DOWN_S2);
AUDUSD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO2_EO1_DOWN_S2)
Base.AUDUSD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO2_EO2_DOWN_S2)
Base.AUDUSD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO2_EO3_DOWN_S2)
Base.AUDUSD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO2_EO4_DOWN_S2)
Base.AUDUSD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO1_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP1_AUDUSD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP1,"TP1_AUDUSD_DOWN_S2_OCO2"));
};
Base.AUDUSD_DOWN_S2_OCO2Sets1.Add( Base.AUDUSD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO2_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP2_AUDUSD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP2,"TP2_AUDUSD_DOWN_S2_OCO2"));
};
Base.AUDUSD_DOWN_S2_OCO2Sets2.Add( Base.AUDUSD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO3_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP3_AUDUSD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP3,"TP3_AUDUSD_DOWN_S2_OCO2"));
};
Base.AUDUSD_DOWN_S2_OCO2Sets3.Add( Base.AUDUSD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO2_EO4_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP4_AUDUSD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP4,"TP4_AUDUSD_DOWN_S2_OCO2"));
};
Base.AUDUSD_DOWN_S2_OCO2Sets4.Add( Base.AUDUSD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO2_EO4_DOWN_S2_ID = -1;
}
int AUDUSD_OCO2S1_DOWN_S2 = 0;
for (; AUDUSD_OCO2S1_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets1.Count; AUDUSD_OCO2S1_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets1[AUDUSD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO2Sets1[AUDUSD_OCO2S1_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO2Sets1.RemoveAt(AUDUSD_OCO2S1_DOWN_S2);
AUDUSD_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO2S2_DOWN_S2 = 0;
for (; AUDUSD_OCO2S2_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets2.Count; AUDUSD_OCO2S2_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets2[AUDUSD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO2Sets2[AUDUSD_OCO2S2_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO2Sets2.RemoveAt(AUDUSD_OCO2S2_DOWN_S2);
AUDUSD_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO2S3_DOWN_S2 = 0;
for (; AUDUSD_OCO2S3_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets3.Count; AUDUSD_OCO2S3_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets3[AUDUSD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO2Sets3[AUDUSD_OCO2S3_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO2Sets3.RemoveAt(AUDUSD_OCO2S3_DOWN_S2);
AUDUSD_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO2S4_DOWN_S2 = 0;
for (; AUDUSD_OCO2S4_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets4.Count; AUDUSD_OCO2S4_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets4[AUDUSD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO2Sets4[AUDUSD_OCO2S4_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO2Sets4.RemoveAt(AUDUSD_OCO2S4_DOWN_S2);
AUDUSD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO3_EO1_DOWN_S2)
Base.AUDUSD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO3_EO2_DOWN_S2)
Base.AUDUSD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO3_EO3_DOWN_S2)
Base.AUDUSD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO3_EO4_DOWN_S2)
Base.AUDUSD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO1_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP1_AUDUSD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP1,"TP1_AUDUSD_DOWN_S2_OCO3"));
};
Base.AUDUSD_DOWN_S2_OCO3Sets1.Add( Base.AUDUSD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO2_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP2_AUDUSD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP2,"TP2_AUDUSD_DOWN_S2_OCO3"));
};
Base.AUDUSD_DOWN_S2_OCO3Sets2.Add( Base.AUDUSD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO3_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP3_AUDUSD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP3,"TP3_AUDUSD_DOWN_S2_OCO3"));
};
Base.AUDUSD_DOWN_S2_OCO3Sets3.Add( Base.AUDUSD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO3_EO4_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP4_AUDUSD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP4,"TP4_AUDUSD_DOWN_S2_OCO3"));
};
Base.AUDUSD_DOWN_S2_OCO3Sets4.Add( Base.AUDUSD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO3_EO4_DOWN_S2_ID = -1;
}
int AUDUSD_OCO3S1_DOWN_S2 = 0;
for (; AUDUSD_OCO3S1_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets1.Count; AUDUSD_OCO3S1_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets1[AUDUSD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO3Sets1[AUDUSD_OCO3S1_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO3Sets1.RemoveAt(AUDUSD_OCO3S1_DOWN_S2);
AUDUSD_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO3S2_DOWN_S2 = 0;
for (; AUDUSD_OCO3S2_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets2.Count; AUDUSD_OCO3S2_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets2[AUDUSD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO3Sets2[AUDUSD_OCO3S2_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO3Sets2.RemoveAt(AUDUSD_OCO3S2_DOWN_S2);
AUDUSD_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO3S3_DOWN_S2 = 0;
for (; AUDUSD_OCO3S3_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets3.Count; AUDUSD_OCO3S3_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets3[AUDUSD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO3Sets3[AUDUSD_OCO3S3_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO3Sets3.RemoveAt(AUDUSD_OCO3S3_DOWN_S2);
AUDUSD_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO3S4_DOWN_S2 = 0;
for (; AUDUSD_OCO3S4_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets4.Count; AUDUSD_OCO3S4_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets4[AUDUSD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO3Sets4[AUDUSD_OCO3S4_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO3Sets4.RemoveAt(AUDUSD_OCO3S4_DOWN_S2);
AUDUSD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO4_EO1_DOWN_S2)
Base.AUDUSD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO4_EO2_DOWN_S2)
Base.AUDUSD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO4_EO3_DOWN_S2)
Base.AUDUSD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDUSD_OCO4_EO4_DOWN_S2)
Base.AUDUSD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO1_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP1_AUDUSD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP1,"TP1_AUDUSD_DOWN_S2_OCO4"));
};
Base.AUDUSD_DOWN_S2_OCO4Sets1.Add( Base.AUDUSD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO2_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP2_AUDUSD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP2,"TP2_AUDUSD_DOWN_S2_OCO4"));
};
Base.AUDUSD_DOWN_S2_OCO4Sets2.Add( Base.AUDUSD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO3_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP3_AUDUSD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP3,"TP3_AUDUSD_DOWN_S2_OCO4"));
};
Base.AUDUSD_DOWN_S2_OCO4Sets3.Add( Base.AUDUSD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDUSD_OCO4_EO4_DOWN_S2_ID)
{
Base.AUDUSD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDUSD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDUSD_DOWN_S2_SL,"SL_TP4_AUDUSD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDUSD_DOWN_S2_TP4,"TP4_AUDUSD_DOWN_S2_OCO4"));
};
Base.AUDUSD_DOWN_S2_OCO4Sets4.Add( Base.AUDUSD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDUSD_OCO4_EO4_DOWN_S2_ID = -1;
}
int AUDUSD_OCO4S1_DOWN_S2 = 0;
for (; AUDUSD_OCO4S1_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets1.Count; AUDUSD_OCO4S1_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets1[AUDUSD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO4Sets1[AUDUSD_OCO4S1_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO4Sets1.RemoveAt(AUDUSD_OCO4S1_DOWN_S2);
AUDUSD_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO4S2_DOWN_S2 = 0;
for (; AUDUSD_OCO4S2_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets2.Count; AUDUSD_OCO4S2_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets2[AUDUSD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO4Sets2[AUDUSD_OCO4S2_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO4Sets2.RemoveAt(AUDUSD_OCO4S2_DOWN_S2);
AUDUSD_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO4S3_DOWN_S2 = 0;
for (; AUDUSD_OCO4S3_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets3.Count; AUDUSD_OCO4S3_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets3[AUDUSD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO4Sets3[AUDUSD_OCO4S3_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO4Sets3.RemoveAt(AUDUSD_OCO4S3_DOWN_S2);
AUDUSD_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO4S4_DOWN_S2 = 0;
for (; AUDUSD_OCO4S4_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets4.Count; AUDUSD_OCO4S4_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets4[AUDUSD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDUSD_DOWN_S2_OCO4Sets4[AUDUSD_OCO4S4_DOWN_S2].Filled();
Base.AUDUSD_DOWN_S2_OCO4Sets4.RemoveAt(AUDUSD_OCO4S4_DOWN_S2);
AUDUSD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _NZDCAD;
///oco1 up
public static OrderTicket NZDCAD_OCO1_MO1_UP_S2;
public static OrderTicket NZDCAD_OCO1_MO2_UP_S2;
public static OrderTicket NZDCAD_OCO1_MO3_UP_S2;
public static OrderTicket NZDCAD_OCO1_MO4_UP_S2;
public static OrderTicket NZDCAD_OCO1_MO5_UP_S2;
public static OrderTicket NZDCAD_OCO1_MO6_UP_S2;
public static int NZDCAD_OCO1_EO1_UP_S2_ID ;
public static int NZDCAD_OCO1_EO2_UP_S2_ID ;
public static int NZDCAD_OCO1_EO3_UP_S2_ID ;
public static int NZDCAD_OCO1_EO4_UP_S2_ID ;
public static int NZDCAD_OCO1_EO5_UP_S2_ID ;
public static int NZDCAD_OCO1_EO6_UP_S2_ID ;
public static bool NZDCAD_OCO1_EO1_UP_S2 ;
public static bool NZDCAD_OCO1_EO2_UP_S2 ;
public static bool NZDCAD_OCO1_EO3_UP_S2 ;
public static bool NZDCAD_OCO1_EO4_UP_S2 ;
public static bool NZDCAD_OCO1_EO5_UP_S2 ;
public static bool NZDCAD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_UP_S2> NZDCAD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_UP_S2> NZDCAD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_UP_S2> NZDCAD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_UP_S2> NZDCAD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_UP_S2> NZDCAD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_UP_S2> NZDCAD_OOFE_OCO1_UP_S2_6 ;
public static NZDCAD_OCO1_UP_S2 NZDCAD_PFO_OCO1_UP_S2_1 ;
public static NZDCAD_OCO1_UP_S2 NZDCAD_PFO_OCO1_UP_S2_2 ;
public static NZDCAD_OCO1_UP_S2 NZDCAD_PFO_OCO1_UP_S2_3 ;
public static NZDCAD_OCO1_UP_S2 NZDCAD_PFO_OCO1_UP_S2_4 ;
public static NZDCAD_OCO1_UP_S2 NZDCAD_PFO_OCO1_UP_S2_5 ;
public static NZDCAD_OCO1_UP_S2 NZDCAD_PFO_OCO1_UP_S2_6 ;
public static List<NZDCAD_OCO1_UP_S2> NZDCAD_UP_S2_OCO1Sets1 = new List<NZDCAD_OCO1_UP_S2>();
public static List<NZDCAD_OCO1_UP_S2> NZDCAD_UP_S2_OCO1Sets2 = new List<NZDCAD_OCO1_UP_S2>();
public static List<NZDCAD_OCO1_UP_S2> NZDCAD_UP_S2_OCO1Sets3 = new List<NZDCAD_OCO1_UP_S2>();
public static List<NZDCAD_OCO1_UP_S2> NZDCAD_UP_S2_OCO1Sets4 = new List<NZDCAD_OCO1_UP_S2>();
public static List<NZDCAD_OCO1_UP_S2> NZDCAD_UP_S2_OCO1Sets5 = new List<NZDCAD_OCO1_UP_S2>();
public static List<NZDCAD_OCO1_UP_S2> NZDCAD_UP_S2_OCO1Sets6 = new List<NZDCAD_OCO1_UP_S2>();
public static bool NZDCAD_OCO1_UP_S2_IsReady = true;
public static bool NZDCAD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket NZDCAD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO1_MO6_DOWN_S2 ;
public static int NZDCAD_OCO1_EO1_DOWN_S2_ID ;
public static int NZDCAD_OCO1_EO2_DOWN_S2_ID ;
public static int NZDCAD_OCO1_EO3_DOWN_S2_ID ;
public static int NZDCAD_OCO1_EO4_DOWN_S2_ID ;
public static int NZDCAD_OCO1_EO5_DOWN_S2_ID ;
public static int NZDCAD_OCO1_EO6_DOWN_S2_ID ;
public static bool NZDCAD_OCO1_EO1_DOWN_S2 ;
public static bool NZDCAD_OCO1_EO2_DOWN_S2 ;
public static bool NZDCAD_OCO1_EO3_DOWN_S2 ;
public static bool NZDCAD_OCO1_EO4_DOWN_S2 ;
public static bool NZDCAD_OCO1_EO5_DOWN_S2 ;
public static bool NZDCAD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_DOWN_S2> NZDCAD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_DOWN_S2> NZDCAD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_DOWN_S2> NZDCAD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_DOWN_S2> NZDCAD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_DOWN_S2> NZDCAD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO1_DOWN_S2> NZDCAD_OOFE_OCO1_DOWN_S2_6 ;
public static NZDCAD_OCO1_DOWN_S2 NZDCAD_PFO_OCO1_DOWN_S2_1 ;
public static NZDCAD_OCO1_DOWN_S2 NZDCAD_PFO_OCO1_DOWN_S2_2 ;
public static NZDCAD_OCO1_DOWN_S2 NZDCAD_PFO_OCO1_DOWN_S2_3 ;
public static NZDCAD_OCO1_DOWN_S2 NZDCAD_PFO_OCO1_DOWN_S2_4 ;
public static NZDCAD_OCO1_DOWN_S2 NZDCAD_PFO_OCO1_DOWN_S2_5 ;
public static NZDCAD_OCO1_DOWN_S2 NZDCAD_PFO_OCO1_DOWN_S2_6 ;
public static List<NZDCAD_OCO1_DOWN_S2> NZDCAD_DOWN_S2_OCO1Sets1 = new List<NZDCAD_OCO1_DOWN_S2>();
public static List<NZDCAD_OCO1_DOWN_S2> NZDCAD_DOWN_S2_OCO1Sets2 = new List<NZDCAD_OCO1_DOWN_S2>();
public static List<NZDCAD_OCO1_DOWN_S2> NZDCAD_DOWN_S2_OCO1Sets3 = new List<NZDCAD_OCO1_DOWN_S2>();
public static List<NZDCAD_OCO1_DOWN_S2> NZDCAD_DOWN_S2_OCO1Sets4 = new List<NZDCAD_OCO1_DOWN_S2>();
public static List<NZDCAD_OCO1_DOWN_S2> NZDCAD_DOWN_S2_OCO1Sets5 = new List<NZDCAD_OCO1_DOWN_S2>();
public static List<NZDCAD_OCO1_DOWN_S2> NZDCAD_DOWN_S2_OCO1Sets6 = new List<NZDCAD_OCO1_DOWN_S2>();
public static bool NZDCAD_OCO1_DOWN_S2_IsReady = true;
public static bool NZDCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket NZDCAD_OCO2_MO1_UP_S2 ;
public static OrderTicket NZDCAD_OCO2_MO2_UP_S2 ;
public static OrderTicket NZDCAD_OCO2_MO3_UP_S2 ;
public static OrderTicket NZDCAD_OCO2_MO4_UP_S2 ;
public static OrderTicket NZDCAD_OCO2_MO5_UP_S2 ;
public static OrderTicket NZDCAD_OCO2_MO6_UP_S2 ;
public static int NZDCAD_OCO2_EO1_UP_S2_ID ;
public static int NZDCAD_OCO2_EO2_UP_S2_ID ;
public static int NZDCAD_OCO2_EO3_UP_S2_ID ;
public static int NZDCAD_OCO2_EO4_UP_S2_ID ;
public static int NZDCAD_OCO2_EO5_UP_S2_ID ;
public static int NZDCAD_OCO2_EO6_UP_S2_ID ;
public static bool NZDCAD_OCO2_EO1_UP_S2 ;
public static bool NZDCAD_OCO2_EO2_UP_S2 ;
public static bool NZDCAD_OCO2_EO3_UP_S2 ;
public static bool NZDCAD_OCO2_EO4_UP_S2 ;
public static bool NZDCAD_OCO2_EO5_UP_S2 ;
public static bool NZDCAD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_UP_S2> NZDCAD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_UP_S2> NZDCAD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_UP_S2> NZDCAD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_UP_S2> NZDCAD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_UP_S2> NZDCAD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_UP_S2> NZDCAD_OOFE_OCO2_UP_S2_6 ;
public static NZDCAD_OCO2_UP_S2 NZDCAD_PFO_OCO2_UP_S2_1 ;
public static NZDCAD_OCO2_UP_S2 NZDCAD_PFO_OCO2_UP_S2_2 ;
public static NZDCAD_OCO2_UP_S2 NZDCAD_PFO_OCO2_UP_S2_3 ;
public static NZDCAD_OCO2_UP_S2 NZDCAD_PFO_OCO2_UP_S2_4 ;
public static NZDCAD_OCO2_UP_S2 NZDCAD_PFO_OCO2_UP_S2_5 ;
public static NZDCAD_OCO2_UP_S2 NZDCAD_PFO_OCO2_UP_S2_6 ;
public static List<NZDCAD_OCO2_UP_S2> NZDCAD_UP_S2_OCO2Sets1 = new List<NZDCAD_OCO2_UP_S2>();
public static List<NZDCAD_OCO2_UP_S2> NZDCAD_UP_S2_OCO2Sets2 = new List<NZDCAD_OCO2_UP_S2>();
public static List<NZDCAD_OCO2_UP_S2> NZDCAD_UP_S2_OCO2Sets3 = new List<NZDCAD_OCO2_UP_S2>();
public static List<NZDCAD_OCO2_UP_S2> NZDCAD_UP_S2_OCO2Sets4 = new List<NZDCAD_OCO2_UP_S2>();
public static List<NZDCAD_OCO2_UP_S2> NZDCAD_UP_S2_OCO2Sets5 = new List<NZDCAD_OCO2_UP_S2>();
public static List<NZDCAD_OCO2_UP_S2> NZDCAD_UP_S2_OCO2Sets6 = new List<NZDCAD_OCO2_UP_S2>();
public static bool NZDCAD_OCO2_UP_S2_IsReady = true;
public static bool NZDCAD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket NZDCAD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO2_MO6_DOWN_S2 ;
public static int NZDCAD_OCO2_EO1_DOWN_S2_ID ;
public static int NZDCAD_OCO2_EO2_DOWN_S2_ID ;
public static int NZDCAD_OCO2_EO3_DOWN_S2_ID ;
public static int NZDCAD_OCO2_EO4_DOWN_S2_ID ;
public static int NZDCAD_OCO2_EO5_DOWN_S2_ID ;
public static int NZDCAD_OCO2_EO6_DOWN_S2_ID ;
public static bool NZDCAD_OCO2_EO1_DOWN_S2 ;
public static bool NZDCAD_OCO2_EO2_DOWN_S2 ;
public static bool NZDCAD_OCO2_EO3_DOWN_S2 ;
public static bool NZDCAD_OCO2_EO4_DOWN_S2 ;
public static bool NZDCAD_OCO2_EO5_DOWN_S2 ;
public static bool NZDCAD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_DOWN_S2> NZDCAD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_DOWN_S2> NZDCAD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_DOWN_S2> NZDCAD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_DOWN_S2> NZDCAD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_DOWN_S2> NZDCAD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO2_DOWN_S2> NZDCAD_OOFE_OCO2_DOWN_S2_6 ;
public static NZDCAD_OCO2_DOWN_S2 NZDCAD_PFO_OCO2_DOWN_S2_1 ;
public static NZDCAD_OCO2_DOWN_S2 NZDCAD_PFO_OCO2_DOWN_S2_2 ;
public static NZDCAD_OCO2_DOWN_S2 NZDCAD_PFO_OCO2_DOWN_S2_3 ;
public static NZDCAD_OCO2_DOWN_S2 NZDCAD_PFO_OCO2_DOWN_S2_4 ;
public static NZDCAD_OCO2_DOWN_S2 NZDCAD_PFO_OCO2_DOWN_S2_5 ;
public static NZDCAD_OCO2_DOWN_S2 NZDCAD_PFO_OCO2_DOWN_S2_6 ;
public static List<NZDCAD_OCO2_DOWN_S2> NZDCAD_DOWN_S2_OCO2Sets1 = new List<NZDCAD_OCO2_DOWN_S2>();
public static List<NZDCAD_OCO2_DOWN_S2> NZDCAD_DOWN_S2_OCO2Sets2 = new List<NZDCAD_OCO2_DOWN_S2>();
public static List<NZDCAD_OCO2_DOWN_S2> NZDCAD_DOWN_S2_OCO2Sets3 = new List<NZDCAD_OCO2_DOWN_S2>();
public static List<NZDCAD_OCO2_DOWN_S2> NZDCAD_DOWN_S2_OCO2Sets4 = new List<NZDCAD_OCO2_DOWN_S2>();
public static List<NZDCAD_OCO2_DOWN_S2> NZDCAD_DOWN_S2_OCO2Sets5 = new List<NZDCAD_OCO2_DOWN_S2>();
public static List<NZDCAD_OCO2_DOWN_S2> NZDCAD_DOWN_S2_OCO2Sets6 = new List<NZDCAD_OCO2_DOWN_S2>();
public static bool NZDCAD_OCO2_DOWN_S2_IsReady = true;
public static bool NZDCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket NZDCAD_OCO3_MO1_UP_S2 ;
public static OrderTicket NZDCAD_OCO3_MO2_UP_S2 ;
public static OrderTicket NZDCAD_OCO3_MO3_UP_S2 ;
public static OrderTicket NZDCAD_OCO3_MO4_UP_S2 ;
public static OrderTicket NZDCAD_OCO3_MO5_UP_S2 ;
public static OrderTicket NZDCAD_OCO3_MO6_UP_S2 ;
public static int NZDCAD_OCO3_EO1_UP_S2_ID ;
public static int NZDCAD_OCO3_EO2_UP_S2_ID ;
public static int NZDCAD_OCO3_EO3_UP_S2_ID ;
public static int NZDCAD_OCO3_EO4_UP_S2_ID ;
public static int NZDCAD_OCO3_EO5_UP_S2_ID ;
public static int NZDCAD_OCO3_EO6_UP_S2_ID ;
public static bool NZDCAD_OCO3_EO1_UP_S2 ;
public static bool NZDCAD_OCO3_EO2_UP_S2 ;
public static bool NZDCAD_OCO3_EO3_UP_S2 ;
public static bool NZDCAD_OCO3_EO4_UP_S2 ;
public static bool NZDCAD_OCO3_EO5_UP_S2 ;
public static bool NZDCAD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_UP_S2> NZDCAD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_UP_S2> NZDCAD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_UP_S2> NZDCAD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_UP_S2> NZDCAD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_UP_S2> NZDCAD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_UP_S2> NZDCAD_OOFE_OCO3_UP_S2_6 ;
public static NZDCAD_OCO3_UP_S2 NZDCAD_PFO_OCO3_UP_S2_1 ;
public static NZDCAD_OCO3_UP_S2 NZDCAD_PFO_OCO3_UP_S2_2 ;
public static NZDCAD_OCO3_UP_S2 NZDCAD_PFO_OCO3_UP_S2_3 ;
public static NZDCAD_OCO3_UP_S2 NZDCAD_PFO_OCO3_UP_S2_4 ;
public static NZDCAD_OCO3_UP_S2 NZDCAD_PFO_OCO3_UP_S2_5 ;
public static NZDCAD_OCO3_UP_S2 NZDCAD_PFO_OCO3_UP_S2_6 ;
public static List<NZDCAD_OCO3_UP_S2> NZDCAD_UP_S2_OCO3Sets1 = new List<NZDCAD_OCO3_UP_S2>();
public static List<NZDCAD_OCO3_UP_S2> NZDCAD_UP_S2_OCO3Sets2 = new List<NZDCAD_OCO3_UP_S2>();
public static List<NZDCAD_OCO3_UP_S2> NZDCAD_UP_S2_OCO3Sets3 = new List<NZDCAD_OCO3_UP_S2>();
public static List<NZDCAD_OCO3_UP_S2> NZDCAD_UP_S2_OCO3Sets4 = new List<NZDCAD_OCO3_UP_S2>();
public static List<NZDCAD_OCO3_UP_S2> NZDCAD_UP_S2_OCO3Sets5 = new List<NZDCAD_OCO3_UP_S2>();
public static List<NZDCAD_OCO3_UP_S2> NZDCAD_UP_S2_OCO3Sets6 = new List<NZDCAD_OCO3_UP_S2>();
public static bool NZDCAD_OCO3_UP_S2_IsReady = true;
public static bool NZDCAD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket NZDCAD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO3_MO6_DOWN_S2 ;
public static int NZDCAD_OCO3_EO1_DOWN_S2_ID ;
public static int NZDCAD_OCO3_EO2_DOWN_S2_ID ;
public static int NZDCAD_OCO3_EO3_DOWN_S2_ID ;
public static int NZDCAD_OCO3_EO4_DOWN_S2_ID ;
public static int NZDCAD_OCO3_EO5_DOWN_S2_ID ;
public static int NZDCAD_OCO3_EO6_DOWN_S2_ID ;
public static bool NZDCAD_OCO3_EO1_DOWN_S2 ;
public static bool NZDCAD_OCO3_EO2_DOWN_S2 ;
public static bool NZDCAD_OCO3_EO3_DOWN_S2 ;
public static bool NZDCAD_OCO3_EO4_DOWN_S2 ;
public static bool NZDCAD_OCO3_EO5_DOWN_S2 ;
public static bool NZDCAD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_DOWN_S2> NZDCAD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_DOWN_S2> NZDCAD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_DOWN_S2> NZDCAD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_DOWN_S2> NZDCAD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_DOWN_S2> NZDCAD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO3_DOWN_S2> NZDCAD_OOFE_OCO3_DOWN_S2_6 ;
public static NZDCAD_OCO3_DOWN_S2 NZDCAD_PFO_OCO3_DOWN_S2_1 ;
public static NZDCAD_OCO3_DOWN_S2 NZDCAD_PFO_OCO3_DOWN_S2_2 ;
public static NZDCAD_OCO3_DOWN_S2 NZDCAD_PFO_OCO3_DOWN_S2_3 ;
public static NZDCAD_OCO3_DOWN_S2 NZDCAD_PFO_OCO3_DOWN_S2_4 ;
public static NZDCAD_OCO3_DOWN_S2 NZDCAD_PFO_OCO3_DOWN_S2_5 ;
public static NZDCAD_OCO3_DOWN_S2 NZDCAD_PFO_OCO3_DOWN_S2_6 ;
public static List<NZDCAD_OCO3_DOWN_S2> NZDCAD_DOWN_S2_OCO3Sets1 = new List<NZDCAD_OCO3_DOWN_S2>();
public static List<NZDCAD_OCO3_DOWN_S2> NZDCAD_DOWN_S2_OCO3Sets2 = new List<NZDCAD_OCO3_DOWN_S2>();
public static List<NZDCAD_OCO3_DOWN_S2> NZDCAD_DOWN_S2_OCO3Sets3 = new List<NZDCAD_OCO3_DOWN_S2>();
public static List<NZDCAD_OCO3_DOWN_S2> NZDCAD_DOWN_S2_OCO3Sets4 = new List<NZDCAD_OCO3_DOWN_S2>();
public static List<NZDCAD_OCO3_DOWN_S2> NZDCAD_DOWN_S2_OCO3Sets5 = new List<NZDCAD_OCO3_DOWN_S2>();
public static List<NZDCAD_OCO3_DOWN_S2> NZDCAD_DOWN_S2_OCO3Sets6 = new List<NZDCAD_OCO3_DOWN_S2>();
public static bool NZDCAD_OCO3_DOWN_S2_IsReady = true;
public static bool NZDCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket NZDCAD_OCO4_MO1_UP_S2 ;
public static OrderTicket NZDCAD_OCO4_MO2_UP_S2 ;
public static OrderTicket NZDCAD_OCO4_MO3_UP_S2 ;
public static OrderTicket NZDCAD_OCO4_MO4_UP_S2 ;
public static OrderTicket NZDCAD_OCO4_MO5_UP_S2 ;
public static OrderTicket NZDCAD_OCO4_MO6_UP_S2 ;
public static int NZDCAD_OCO4_EO1_UP_S2_ID ;
public static int NZDCAD_OCO4_EO2_UP_S2_ID ;
public static int NZDCAD_OCO4_EO3_UP_S2_ID ;
public static int NZDCAD_OCO4_EO4_UP_S2_ID ;
public static int NZDCAD_OCO4_EO5_UP_S2_ID ;
public static int NZDCAD_OCO4_EO6_UP_S2_ID ;
public static bool NZDCAD_OCO4_EO1_UP_S2 ;
public static bool NZDCAD_OCO4_EO2_UP_S2 ;
public static bool NZDCAD_OCO4_EO3_UP_S2 ;
public static bool NZDCAD_OCO4_EO4_UP_S2 ;
public static bool NZDCAD_OCO4_EO5_UP_S2 ;
public static bool NZDCAD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_UP_S2> NZDCAD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_UP_S2> NZDCAD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_UP_S2> NZDCAD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_UP_S2> NZDCAD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_UP_S2> NZDCAD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_UP_S2> NZDCAD_OOFE_OCO4_UP_S2_6 ;
public static NZDCAD_OCO4_UP_S2 NZDCAD_PFO_OCO4_UP_S2_1 ;
public static NZDCAD_OCO4_UP_S2 NZDCAD_PFO_OCO4_UP_S2_2 ;
public static NZDCAD_OCO4_UP_S2 NZDCAD_PFO_OCO4_UP_S2_3 ;
public static NZDCAD_OCO4_UP_S2 NZDCAD_PFO_OCO4_UP_S2_4 ;
public static NZDCAD_OCO4_UP_S2 NZDCAD_PFO_OCO4_UP_S2_5 ;
public static NZDCAD_OCO4_UP_S2 NZDCAD_PFO_OCO4_UP_S2_6 ;
public static List<NZDCAD_OCO4_UP_S2> NZDCAD_UP_S2_OCO4Sets1 = new List<NZDCAD_OCO4_UP_S2>();
public static List<NZDCAD_OCO4_UP_S2> NZDCAD_UP_S2_OCO4Sets2 = new List<NZDCAD_OCO4_UP_S2>();
public static List<NZDCAD_OCO4_UP_S2> NZDCAD_UP_S2_OCO4Sets3 = new List<NZDCAD_OCO4_UP_S2>();
public static List<NZDCAD_OCO4_UP_S2> NZDCAD_UP_S2_OCO4Sets4 = new List<NZDCAD_OCO4_UP_S2>();
public static List<NZDCAD_OCO4_UP_S2> NZDCAD_UP_S2_OCO4Sets5 = new List<NZDCAD_OCO4_UP_S2>();
public static List<NZDCAD_OCO4_UP_S2> NZDCAD_UP_S2_OCO4Sets6 = new List<NZDCAD_OCO4_UP_S2>();
public static bool NZDCAD_OCO4_UP_S2_IsReady = true;
public static bool NZDCAD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket NZDCAD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket NZDCAD_OCO4_MO6_DOWN_S2 ;
public static int NZDCAD_OCO4_EO1_DOWN_S2_ID ;
public static int NZDCAD_OCO4_EO2_DOWN_S2_ID ;
public static int NZDCAD_OCO4_EO3_DOWN_S2_ID ;
public static int NZDCAD_OCO4_EO4_DOWN_S2_ID ;
public static int NZDCAD_OCO4_EO5_DOWN_S2_ID ;
public static int NZDCAD_OCO4_EO6_DOWN_S2_ID ;
public static bool NZDCAD_OCO4_EO1_DOWN_S2 ;
public static bool NZDCAD_OCO4_EO2_DOWN_S2 ;
public static bool NZDCAD_OCO4_EO3_DOWN_S2 ;
public static bool NZDCAD_OCO4_EO4_DOWN_S2 ;
public static bool NZDCAD_OCO4_EO5_DOWN_S2 ;
public static bool NZDCAD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_DOWN_S2> NZDCAD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_DOWN_S2> NZDCAD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_DOWN_S2> NZDCAD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_DOWN_S2> NZDCAD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_DOWN_S2> NZDCAD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, NZDCAD_OCO4_DOWN_S2> NZDCAD_OOFE_OCO4_DOWN_S2_6 ;
public static NZDCAD_OCO4_DOWN_S2 NZDCAD_PFO_OCO4_DOWN_S2_1 ;
public static NZDCAD_OCO4_DOWN_S2 NZDCAD_PFO_OCO4_DOWN_S2_2 ;
public static NZDCAD_OCO4_DOWN_S2 NZDCAD_PFO_OCO4_DOWN_S2_3 ;
public static NZDCAD_OCO4_DOWN_S2 NZDCAD_PFO_OCO4_DOWN_S2_4 ;
public static NZDCAD_OCO4_DOWN_S2 NZDCAD_PFO_OCO4_DOWN_S2_5 ;
public static NZDCAD_OCO4_DOWN_S2 NZDCAD_PFO_OCO4_DOWN_S2_6 ;
public static List<NZDCAD_OCO4_DOWN_S2> NZDCAD_DOWN_S2_OCO4Sets1 = new List<NZDCAD_OCO4_DOWN_S2>();
public static List<NZDCAD_OCO4_DOWN_S2> NZDCAD_DOWN_S2_OCO4Sets2 = new List<NZDCAD_OCO4_DOWN_S2>();
public static List<NZDCAD_OCO4_DOWN_S2> NZDCAD_DOWN_S2_OCO4Sets3 = new List<NZDCAD_OCO4_DOWN_S2>();
public static List<NZDCAD_OCO4_DOWN_S2> NZDCAD_DOWN_S2_OCO4Sets4 = new List<NZDCAD_OCO4_DOWN_S2>();
public static List<NZDCAD_OCO4_DOWN_S2> NZDCAD_DOWN_S2_OCO4Sets5 = new List<NZDCAD_OCO4_DOWN_S2>();
public static List<NZDCAD_OCO4_DOWN_S2> NZDCAD_DOWN_S2_OCO4Sets6 = new List<NZDCAD_OCO4_DOWN_S2>();
public static bool NZDCAD_OCO4_DOWN_S2_IsReady = true;
public static bool NZDCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal NZDCAD_UP_S2_SL {get; set;}
public static decimal NZDCAD_UP_S2_TP1 {get; set;}
public static decimal NZDCAD_UP_S2_TP2 {get; set;}
public static decimal NZDCAD_UP_S2_TP3 {get; set;}
public static decimal NZDCAD_UP_S2_TP4 {get; set;}
public static decimal NZDCAD_UP_S2_TP5 {get; set;}
public static decimal NZDCAD_UP_S2_TP6 {get; set;}
public static decimal NZDCAD_DOWN_S2_SL {get; set;}
public static decimal NZDCAD_DOWN_S2_TP1 {get; set;}
public static decimal NZDCAD_DOWN_S2_TP2 {get; set;}
public static decimal NZDCAD_DOWN_S2_TP3 {get; set;}
public static decimal NZDCAD_DOWN_S2_TP4 {get; set;}
public static decimal NZDCAD_DOWN_S2_TP5 {get; set;}
public static decimal NZDCAD_DOWN_S2_TP6 {get; set;}
public static bool NZDCAD_Signal_Condition_UP_1 ;
public static bool NZDCAD_Signal_Condition_UP_2 ;
public static bool NZDCAD_Signal_Condition_UP_3 ;
public static bool NZDCAD_Signal_Condition_DOWN_S2 ;
public static int NZDCAD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int NZDCAD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int NZDCAD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int NZDCAD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int NZDCAD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int NZDCAD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int NZDCAD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int NZDCAD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int NZDCAD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int NZDCAD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_NZDCAD_UP_S2 ;
public static bool DOWM_NZDCAD_UP_S2 ;
public static bool DOWT_NZDCAD_UP_S2 ;
public static bool DOWW_NZDCAD_UP_S2 ;
public static bool DOWTH_NZDCAD_UP_S2 ;
public static bool DOWR_NZDCAD_DOWN_S2 ;
public static bool DOWM_NZDCAD_DOWN_S2 ;
public static bool DOWT_NZDCAD_DOWN_S2 ;
public static bool DOWW_NZDCAD_DOWN_S2 ;
public static bool DOWTH_NZDCAD_DOWN_S2 ;
public static int NZDCAD_quantity_UP_S2 ;
public static int NZDCAD_quantity_SL_UP_S2 ;
public static int NZDCAD_quantity_TP1_UP_S2 ;
public static int NZDCAD_quantity_TP2_UP_S2 ;
public static int NZDCAD_quantity_TP3_UP_S2 ;
public static int NZDCAD_quantity_TP4_UP_S2 ;
public static int NZDCAD_quantity_TP5_UP_S2;
public static int NZDCAD_quantity_TP6_UP_S2 ;
public static int NZDCAD_quantity_DOWN_S2 ;
public static int NZDCAD_quantity_SL_DOWN_S2 ;
public static int NZDCAD_quantity_TP1_DOWN_S2 ;
public static int NZDCAD_quantity_TP2_DOWN_S2 ;
public static int NZDCAD_quantity_TP3_DOWN_S2 ;
public static int NZDCAD_quantity_TP4_DOWN_S2 ;
public static int NZDCAD_quantity_TP5_DOWN_S2;
public static int NZDCAD_quantity_TP6_DOWN_S2 ;
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_NZDUSD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_NZDUSD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("NZDUSD_DOWN_S2_OCO1")))
{
Base.NZDUSD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDUSD_DOWN_S2_OCO2")))
{
Base.NZDUSD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDUSD_DOWN_S2_OCO3")))
{
Base.NZDUSD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDUSD_DOWN_S2_OCO4")))
{
Base.NZDUSD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("NZDUSD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.NZDUSD_OCO1_EO1_DOWN_S2)
Base.NZDUSD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO2_DOWN_S2)
Base.NZDUSD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO3_DOWN_S2)
Base.NZDUSD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO4_DOWN_S2)
Base.NZDUSD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO5_DOWN_S2)
Base.NZDUSD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO6_DOWN_S2)
Base.NZDUSD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDUSD_OCO1S1_DOWN_S2 = 0;
for (; NZDUSD_OCO1S1_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets1.Count; NZDUSD_OCO1S1_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets1[NZDUSD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO1Sets1[NZDUSD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_1__Time out_OCO1");
Base.NZDUSD_DOWN_S2_OCO1Sets1.Clear();
NZDUSD_OCO1S1_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO1S2_DOWN_S2 = 0;
for (; NZDUSD_OCO1S2_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets2.Count; NZDUSD_OCO1S2_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets2[NZDUSD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO1Sets2[NZDUSD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_2__Time out_OCO1");
Base.NZDUSD_DOWN_S2_OCO1Sets2.Clear();
NZDUSD_OCO1S2_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO1S3_DOWN_S2 = 0;
for (; NZDUSD_OCO1S3_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets3.Count; NZDUSD_OCO1S3_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets3[NZDUSD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO1Sets3[NZDUSD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_3__Time out_OCO1");
Base.NZDUSD_DOWN_S2_OCO1Sets3.Clear();
NZDUSD_OCO1S3_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO1S4_DOWN_S2 = 0;
for (; NZDUSD_OCO1S4_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets4.Count; NZDUSD_OCO1S4_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets4[NZDUSD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO1Sets4[NZDUSD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_4__Time out_OCO1");
Base.NZDUSD_DOWN_S2_OCO1Sets4.Clear();
NZDUSD_OCO1S4_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO1S5_DOWN_S2 = 0;
for (; NZDUSD_OCO1S5_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets5.Count; NZDUSD_OCO1S5_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets5[NZDUSD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO1Sets5[NZDUSD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_5__Time out_OCO1");
Base.NZDUSD_DOWN_S2_OCO1Sets5.Clear();
NZDUSD_OCO1S5_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO1S6_DOWN_S2 = 0;
for (; NZDUSD_OCO1S6_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets6.Count; NZDUSD_OCO1S6_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets6[NZDUSD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO1Sets6[NZDUSD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_6__Time out_OCO1");
Base.NZDUSD_DOWN_S2_OCO1Sets6.Clear();
NZDUSD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO2_EO1_DOWN_S2)
Base.NZDUSD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO2_DOWN_S2)
Base.NZDUSD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO3_DOWN_S2)
Base.NZDUSD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO4_DOWN_S2)
Base.NZDUSD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO5_DOWN_S2)
Base.NZDUSD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO6_DOWN_S2)
Base.NZDUSD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDUSD_OCO2S1_DOWN_S2 = 0;
for (; NZDUSD_OCO2S1_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets1.Count; NZDUSD_OCO2S1_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets1[NZDUSD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO2Sets1[NZDUSD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_1__Time out_OCO2");
Base.NZDUSD_DOWN_S2_OCO2Sets1.Clear();
NZDUSD_OCO2S1_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO2S2_DOWN_S2 = 0;
for (; NZDUSD_OCO2S2_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets2.Count; NZDUSD_OCO2S2_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets2[NZDUSD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO2Sets2[NZDUSD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_2__Time out_OCO2");
Base.NZDUSD_DOWN_S2_OCO2Sets2.Clear();
NZDUSD_OCO2S2_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO2S3_DOWN_S2 = 0;
for (; NZDUSD_OCO2S3_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets3.Count; NZDUSD_OCO2S3_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets3[NZDUSD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO2Sets3[NZDUSD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_3__Time out_OCO2");
Base.NZDUSD_DOWN_S2_OCO2Sets3.Clear();
NZDUSD_OCO2S3_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO2S4_DOWN_S2 = 0;
for (; NZDUSD_OCO2S4_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets4.Count; NZDUSD_OCO2S4_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets4[NZDUSD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO2Sets4[NZDUSD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_4__Time out_OCO2");
Base.NZDUSD_DOWN_S2_OCO2Sets4.Clear();
NZDUSD_OCO2S4_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO2S5_DOWN_S2 = 0;
for (; NZDUSD_OCO2S5_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets5.Count; NZDUSD_OCO2S5_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets5[NZDUSD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO2Sets5[NZDUSD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_5__Time out_OCO2");
Base.NZDUSD_DOWN_S2_OCO2Sets5.Clear();
NZDUSD_OCO2S5_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO2S6_DOWN_S2 = 0;
for (; NZDUSD_OCO2S6_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets6.Count; NZDUSD_OCO2S6_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets6[NZDUSD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO2Sets6[NZDUSD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_6__Time out_OCO2");
Base.NZDUSD_DOWN_S2_OCO2Sets6.Clear();
NZDUSD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO3_EO1_DOWN_S2)
Base.NZDUSD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO2_DOWN_S2)
Base.NZDUSD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO3_DOWN_S2)
Base.NZDUSD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO4_DOWN_S2)
Base.NZDUSD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO5_DOWN_S2)
Base.NZDUSD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO6_DOWN_S2)
Base.NZDUSD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDUSD_OCO3S1_DOWN_S2 = 0;
for (; NZDUSD_OCO3S1_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets1.Count; NZDUSD_OCO3S1_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets1[NZDUSD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO3Sets1[NZDUSD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_1__Time out_OCO3");
Base.NZDUSD_DOWN_S2_OCO3Sets1.Clear();
NZDUSD_OCO3S1_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO3S2_DOWN_S2 = 0;
for (; NZDUSD_OCO3S2_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets2.Count; NZDUSD_OCO3S2_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets2[NZDUSD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO3Sets2[NZDUSD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_2__Time out_OCO3");
Base.NZDUSD_DOWN_S2_OCO3Sets2.Clear();
NZDUSD_OCO3S2_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO3S3_DOWN_S2 = 0;
for (; NZDUSD_OCO3S3_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets3.Count; NZDUSD_OCO3S3_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets3[NZDUSD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO3Sets3[NZDUSD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_3__Time out_OCO3");
Base.NZDUSD_DOWN_S2_OCO3Sets3.Clear();
NZDUSD_OCO3S3_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO3S4_DOWN_S2 = 0;
for (; NZDUSD_OCO3S4_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets4.Count; NZDUSD_OCO3S4_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets4[NZDUSD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO3Sets4[NZDUSD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_4__Time out_OCO3");
Base.NZDUSD_DOWN_S2_OCO3Sets4.Clear();
NZDUSD_OCO3S4_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO3S5_DOWN_S2 = 0;
for (; NZDUSD_OCO3S5_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets5.Count; NZDUSD_OCO3S5_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets5[NZDUSD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO3Sets5[NZDUSD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_5__Time out_OCO3");
Base.NZDUSD_DOWN_S2_OCO3Sets5.Clear();
NZDUSD_OCO3S5_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO3S6_DOWN_S2 = 0;
for (; NZDUSD_OCO3S6_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets6.Count; NZDUSD_OCO3S6_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets6[NZDUSD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO3Sets6[NZDUSD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_6__Time out_OCO3");
Base.NZDUSD_DOWN_S2_OCO3Sets6.Clear();
NZDUSD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO4_EO1_DOWN_S2)
Base.NZDUSD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO2_DOWN_S2)
Base.NZDUSD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO3_DOWN_S2)
Base.NZDUSD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO4_DOWN_S2)
Base.NZDUSD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO5_DOWN_S2)
Base.NZDUSD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO6_DOWN_S2)
Base.NZDUSD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDUSD_OCO4S1_DOWN_S2 = 0;
for (; NZDUSD_OCO4S1_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets1.Count; NZDUSD_OCO4S1_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets1[NZDUSD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO4Sets1[NZDUSD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_1__Time out_OCO4");
Base.NZDUSD_DOWN_S2_OCO4Sets1.Clear();
NZDUSD_OCO4S1_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO4S2_DOWN_S2 = 0;
for (; NZDUSD_OCO4S2_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets2.Count; NZDUSD_OCO4S2_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets2[NZDUSD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO4Sets2[NZDUSD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_2__Time out_OCO4");
Base.NZDUSD_DOWN_S2_OCO4Sets2.Clear();
NZDUSD_OCO4S2_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO4S3_DOWN_S2 = 0;
for (; NZDUSD_OCO4S3_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets3.Count; NZDUSD_OCO4S3_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets3[NZDUSD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO4Sets3[NZDUSD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_3__Time out_OCO4");
Base.NZDUSD_DOWN_S2_OCO4Sets3.Clear();
NZDUSD_OCO4S3_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO4S4_DOWN_S2 = 0;
for (; NZDUSD_OCO4S4_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets4.Count; NZDUSD_OCO4S4_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets4[NZDUSD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO4Sets4[NZDUSD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_4__Time out_OCO4");
Base.NZDUSD_DOWN_S2_OCO4Sets4.Clear();
NZDUSD_OCO4S4_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO4S5_DOWN_S2 = 0;
for (; NZDUSD_OCO4S5_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets5.Count; NZDUSD_OCO4S5_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets5[NZDUSD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO4Sets5[NZDUSD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_5__Time out_OCO4");
Base.NZDUSD_DOWN_S2_OCO4Sets5.Clear();
NZDUSD_OCO4S5_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO4S6_DOWN_S2 = 0;
for (; NZDUSD_OCO4S6_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets6.Count; NZDUSD_OCO4S6_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets6[NZDUSD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDUSD_DOWN_S2_OCO4Sets6[NZDUSD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_DOWN_S2_Entry_6__Time out_OCO4");
Base.NZDUSD_DOWN_S2_OCO4Sets6.Clear();
NZDUSD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_NZDUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_NZDUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_NZDUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_NZDUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_NZDUSD_DOWN_S2 = DOWM_NZDUSD_DOWN_S2 || DOWT_NZDUSD_DOWN_S2 || DOWW_NZDUSD_DOWN_S2 || DOWTH_NZDUSD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("NZDUSD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.NZDUSD_OCO1_DOWN_S2_IsReady == false ||
Base.NZDUSD_OCO2_DOWN_S2_IsReady == false ||
Base.NZDUSD_OCO3_DOWN_S2_IsReady == false ||
Base.NZDUSD_OCO4_DOWN_S2_IsReady == false)
{
Base.NZDUSD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.NZDUSD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.NZDUSD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.NZDUSD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.NZDUSD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.NZDUSD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.NZDUSD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.NZDUSD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
NZDUSD_Signal_Condition_DOWN_S2 =
(
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.02m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//prices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.0165m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.0005m
);
NZDUSD_DOWN_S2_SL = 0.01m;
NZDUSD_DOWN_S2_TP1 = 0.1m;
NZDUSD_DOWN_S2_TP2 = NZDUSD_DOWN_S2_SL * 0;
NZDUSD_DOWN_S2_TP3 = NZDUSD_DOWN_S2_SL * 0;
NZDUSD_DOWN_S2_TP4 = NZDUSD_DOWN_S2_SL * 0;
NZDUSD_DOWN_S2_TP5 = NZDUSD_DOWN_S2_SL * 0;
NZDUSD_DOWN_S2_TP6 = NZDUSD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
NZDUSD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
NZDUSD_quantity_SL_DOWN_S2 = NZDUSD_quantity_DOWN_S2;
NZDUSD_quantity_TP1_DOWN_S2 = (int)Math.Floor(NZDUSD_quantity_DOWN_S2 * 1m);
NZDUSD_quantity_TP2_DOWN_S2 = (int)Math.Floor(NZDUSD_quantity_TP1_DOWN_S2 * 0m);
NZDUSD_quantity_TP3_DOWN_S2 = (int)Math.Floor(NZDUSD_quantity_TP2_DOWN_S2 * 0m);
NZDUSD_quantity_TP4_DOWN_S2 = (int)Math.Floor(NZDUSD_quantity_TP3_DOWN_S2 * 0m);
NZDUSD_quantity_TP5_DOWN_S2 = (int)Math.Floor(NZDUSD_quantity_TP4_DOWN_S2 * 0m);
NZDUSD_quantity_TP6_DOWN_S2 = (int)Math.Floor(NZDUSD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (NZDUSD_Signal_Condition_DOWN_S2 &&
DOWR_NZDUSD_DOWN_S2 &&
Base.NZDUSD_OCO1_DOWN_S2_IsReady == true &&
Base.NZDUSD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDUSD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP1_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP1_OCO1");
Base.NZDUSD_OCO1_EO1_DOWN_S2 = false;
Base.NZDUSD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP2_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP2_OCO1");
Base.NZDUSD_OCO1_EO2_DOWN_S2 = false;
Base.NZDUSD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP3_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP3_OCO1");
Base.NZDUSD_OCO1_EO3_DOWN_S2 = false;
Base.NZDUSD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP4_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP4_OCO1");
Base.NZDUSD_OCO1_EO4_DOWN_S2 = false;
Base.NZDUSD_OCO1_DOWN_S2_IsReady = false;
if (Base.NZDUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (NZDUSD_Signal_Condition_DOWN_S2 &&
DOWR_NZDUSD_DOWN_S2 &&
Base.NZDUSD_OCO2_DOWN_S2_IsReady == true &&
Base.NZDUSD_OCO1_DOWN_S2_IsReady == false &&
Base.NZDUSD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDUSD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP1_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP1_OCO2");
Base.NZDUSD_OCO2_EO1_DOWN_S2 = false;
Base.NZDUSD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP2_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP2_OCO2");
Base.NZDUSD_OCO2_EO2_DOWN_S2 = false;
Base.NZDUSD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP3_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP3_OCO2");
Base.NZDUSD_OCO2_EO3_DOWN_S2 = false;
Base.NZDUSD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP4_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP4_OCO2");
Base.NZDUSD_OCO2_EO4_DOWN_S2 = false;
Base.NZDUSD_OCO2_DOWN_S2_IsReady = false;
if (Base.NZDUSD_OCO2_DOWN_S2_IsReady == false && Base.NZDUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (NZDUSD_Signal_Condition_DOWN_S2 &&
DOWR_NZDUSD_DOWN_S2 &&
Base.NZDUSD_OCO3_DOWN_S2_IsReady == true &&
Base.NZDUSD_OCO1_DOWN_S2_IsReady == false &&
Base.NZDUSD_OCO2_DOWN_S2_IsReady == false &&
Base.NZDUSD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDUSD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP1_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP1_OCO3");
Base.NZDUSD_OCO3_EO1_DOWN_S2 = false;
Base.NZDUSD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP2_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP2_OCO3");
Base.NZDUSD_OCO3_EO2_DOWN_S2 = false;
Base.NZDUSD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP3_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP3_OCO3");
Base.NZDUSD_OCO3_EO3_DOWN_S2 = false;
Base.NZDUSD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP4_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP4_OCO3");
Base.NZDUSD_OCO3_EO4_DOWN_S2 = false;
Base.NZDUSD_OCO3_DOWN_S2_IsReady = false;
if (Base.NZDUSD_OCO3_DOWN_S2_IsReady == false && Base.NZDUSD_OCO2_DOWN_S2_IsReady == false && Base.NZDUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (NZDUSD_Signal_Condition_DOWN_S2 &&
DOWR_NZDUSD_DOWN_S2 &&
Base.NZDUSD_OCO4_DOWN_S2_IsReady == true &&
Base.NZDUSD_OCO1_DOWN_S2_IsReady == false &&
Base.NZDUSD_OCO2_DOWN_S2_IsReady == false &&
Base.NZDUSD_OCO3_DOWN_S2_IsReady == false &&
Base.NZDUSD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDUSD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP1_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP1_OCO4");
Base.NZDUSD_OCO4_EO1_DOWN_S2 = false;
Base.NZDUSD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP2_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP2_OCO4");
Base.NZDUSD_OCO4_EO2_DOWN_S2 = false;
Base.NZDUSD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP3_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP3_OCO4");
Base.NZDUSD_OCO4_EO3_DOWN_S2 = false;
Base.NZDUSD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDUSD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP4_DOWN_S2, false,"NZDUSD_DOWN_S2_Entry_TP4_OCO4");
Base.NZDUSD_OCO4_EO4_DOWN_S2 = false;
Base.NZDUSD_OCO4_DOWN_S2_IsReady = false;
if (Base.NZDUSD_OCO4_DOWN_S2_IsReady == false && Base.NZDUSD_OCO3_DOWN_S2_IsReady == false && Base.NZDUSD_OCO2_DOWN_S2_IsReady == false && Base.NZDUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_NZDUSD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_NZDUSD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("NZDUSD_UP_S2_OCO1")))
{
Base.NZDUSD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDUSD_UP_S2_OCO2")))
{
Base.NZDUSD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDUSD_UP_S2_OCO3")))
{
Base.NZDUSD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDUSD_UP_S2_OCO4")))
{
Base.NZDUSD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("NZDUSD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.NZDUSD_OCO1_EO1_UP_S2)
Base.NZDUSD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO2_UP_S2)
Base.NZDUSD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO3_UP_S2)
Base.NZDUSD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO4_UP_S2)
Base.NZDUSD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO5_UP_S2)
Base.NZDUSD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO1_EO6_UP_S2)
Base.NZDUSD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDUSD_UP_S2_OCO_DELAY_7DAY))
{
int NZDUSD_OCO1S1_UP_S2 = 0;
for (; NZDUSD_OCO1S1_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets1.Count; NZDUSD_OCO1S1_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets1[NZDUSD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO1Sets1[NZDUSD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_1__Time out_OCO1");
Base.NZDUSD_UP_S2_OCO1Sets1.Clear();
NZDUSD_OCO1S1_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S2_UP_S2 = 0;
for (; NZDUSD_OCO1S2_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets2.Count; NZDUSD_OCO1S2_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets2[NZDUSD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO1Sets2[NZDUSD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_2__Time out_OCO1");
Base.NZDUSD_UP_S2_OCO1Sets2.Clear();
NZDUSD_OCO1S2_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S3_UP_S2 = 0;
for (; NZDUSD_OCO1S3_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets3.Count; NZDUSD_OCO1S3_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets3[NZDUSD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO1Sets3[NZDUSD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_3__Time out_OCO1");
Base.NZDUSD_UP_S2_OCO1Sets3.Clear();
NZDUSD_OCO1S3_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S4_UP_S2 = 0;
for (; NZDUSD_OCO1S4_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets4.Count; NZDUSD_OCO1S4_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets4[NZDUSD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO1Sets4[NZDUSD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_4__Time out_OCO1");
Base.NZDUSD_UP_S2_OCO1Sets4.Clear();
NZDUSD_OCO1S4_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S5_UP_S2 = 0;
for (; NZDUSD_OCO1S5_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets5.Count; NZDUSD_OCO1S5_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets5[NZDUSD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO1Sets5[NZDUSD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_5__Time out_OCO1");
Base.NZDUSD_UP_S2_OCO1Sets5.Clear();
NZDUSD_OCO1S5_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S6_UP_S2 = 0;
for (; NZDUSD_OCO1S6_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets6.Count; NZDUSD_OCO1S6_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets6[NZDUSD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO1Sets6[NZDUSD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_6__Time out_OCO1");
Base.NZDUSD_UP_S2_OCO1Sets6.Clear();
NZDUSD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO2_EO1_UP_S2)
Base.NZDUSD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO2_UP_S2)
Base.NZDUSD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO3_UP_S2)
Base.NZDUSD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO4_UP_S2)
Base.NZDUSD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO5_UP_S2)
Base.NZDUSD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO2_EO6_UP_S2)
Base.NZDUSD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDUSD_UP_S2_OCO_DELAY_7DAY))
{
int NZDUSD_OCO2S1_UP_S2 = 0;
for (; NZDUSD_OCO2S1_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets1.Count; NZDUSD_OCO2S1_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets1[NZDUSD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO2Sets1[NZDUSD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_1__Time out_OCO2");
Base.NZDUSD_UP_S2_OCO2Sets1.Clear();
NZDUSD_OCO2S1_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S2_UP_S2 = 0;
for (; NZDUSD_OCO2S2_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets2.Count; NZDUSD_OCO2S2_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets2[NZDUSD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO2Sets2[NZDUSD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_2__Time out_OCO2");
Base.NZDUSD_UP_S2_OCO2Sets2.Clear();
NZDUSD_OCO2S2_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S3_UP_S2 = 0;
for (; NZDUSD_OCO2S3_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets3.Count; NZDUSD_OCO2S3_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets3[NZDUSD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO2Sets3[NZDUSD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_3__Time out_OCO2");
Base.NZDUSD_UP_S2_OCO2Sets3.Clear();
NZDUSD_OCO2S3_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S4_UP_S2 = 0;
for (; NZDUSD_OCO2S4_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets4.Count; NZDUSD_OCO2S4_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets4[NZDUSD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO2Sets4[NZDUSD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_4__Time out_OCO2");
Base.NZDUSD_UP_S2_OCO2Sets4.Clear();
NZDUSD_OCO2S4_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S5_UP_S2 = 0;
for (; NZDUSD_OCO2S5_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets5.Count; NZDUSD_OCO2S5_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets5[NZDUSD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO2Sets5[NZDUSD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_5__Time out_OCO2");
Base.NZDUSD_UP_S2_OCO2Sets5.Clear();
NZDUSD_OCO2S5_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S6_UP_S2 = 0;
for (; NZDUSD_OCO2S6_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets6.Count; NZDUSD_OCO2S6_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets6[NZDUSD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO2Sets6[NZDUSD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_6__Time out_OCO2");
Base.NZDUSD_UP_S2_OCO2Sets6.Clear();
NZDUSD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO3_EO1_UP_S2)
Base.NZDUSD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO2_UP_S2)
Base.NZDUSD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO3_UP_S2)
Base.NZDUSD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO4_UP_S2)
Base.NZDUSD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO5_UP_S2)
Base.NZDUSD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO3_EO6_UP_S2)
Base.NZDUSD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDUSD_UP_S2_OCO_DELAY_7DAY))
{
int NZDUSD_OCO3S1_UP_S2 = 0;
for (; NZDUSD_OCO3S1_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets1.Count; NZDUSD_OCO3S1_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets1[NZDUSD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO3Sets1[NZDUSD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_1__Time out_OCO3");
Base.NZDUSD_UP_S2_OCO3Sets1.Clear();
NZDUSD_OCO3S1_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S2_UP_S2 = 0;
for (; NZDUSD_OCO3S2_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets2.Count; NZDUSD_OCO3S2_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets2[NZDUSD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO3Sets2[NZDUSD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_2__Time out_OCO3");
Base.NZDUSD_UP_S2_OCO3Sets2.Clear();
NZDUSD_OCO3S2_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S3_UP_S2 = 0;
for (; NZDUSD_OCO3S3_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets3.Count; NZDUSD_OCO3S3_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets3[NZDUSD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO3Sets3[NZDUSD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_3__Time out_OCO3");
Base.NZDUSD_UP_S2_OCO3Sets3.Clear();
NZDUSD_OCO3S3_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S4_UP_S2 = 0;
for (; NZDUSD_OCO3S4_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets4.Count; NZDUSD_OCO3S4_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets4[NZDUSD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO3Sets4[NZDUSD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_4__Time out_OCO3");
Base.NZDUSD_UP_S2_OCO3Sets4.Clear();
NZDUSD_OCO3S4_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S5_UP_S2 = 0;
for (; NZDUSD_OCO3S5_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets5.Count; NZDUSD_OCO3S5_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets5[NZDUSD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO3Sets5[NZDUSD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_5__Time out_OCO3");
Base.NZDUSD_UP_S2_OCO3Sets5.Clear();
NZDUSD_OCO3S5_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S6_UP_S2 = 0;
for (; NZDUSD_OCO3S6_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets6.Count; NZDUSD_OCO3S6_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets6[NZDUSD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO3Sets6[NZDUSD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_6__Time out_OCO3");
Base.NZDUSD_UP_S2_OCO3Sets6.Clear();
NZDUSD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO4_EO1_UP_S2)
Base.NZDUSD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO2_UP_S2)
Base.NZDUSD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO3_UP_S2)
Base.NZDUSD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO4_UP_S2)
Base.NZDUSD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO5_UP_S2)
Base.NZDUSD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.NZDUSD_OCO4_EO6_UP_S2)
Base.NZDUSD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDUSD_UP_S2_OCO_DELAY_7DAY))
{
int NZDUSD_OCO4S1_UP_S2 = 0;
for (; NZDUSD_OCO4S1_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets1.Count; NZDUSD_OCO4S1_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets1[NZDUSD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO4Sets1[NZDUSD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_1__Time out_OCO4");
Base.NZDUSD_UP_S2_OCO4Sets1.Clear();
NZDUSD_OCO4S1_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S2_UP_S2 = 0;
for (; NZDUSD_OCO4S2_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets2.Count; NZDUSD_OCO4S2_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets2[NZDUSD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO4Sets2[NZDUSD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_2__Time out_OCO4");
Base.NZDUSD_UP_S2_OCO4Sets2.Clear();
NZDUSD_OCO4S2_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S3_UP_S2 = 0;
for (; NZDUSD_OCO4S3_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets3.Count; NZDUSD_OCO4S3_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets3[NZDUSD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO4Sets3[NZDUSD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_3__Time out_OCO4");
Base.NZDUSD_UP_S2_OCO4Sets3.Clear();
NZDUSD_OCO4S3_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S4_UP_S2 = 0;
for (; NZDUSD_OCO4S4_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets4.Count; NZDUSD_OCO4S4_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets4[NZDUSD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO4Sets4[NZDUSD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_4__Time out_OCO4");
Base.NZDUSD_UP_S2_OCO4Sets4.Clear();
NZDUSD_OCO4S4_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S5_UP_S2 = 0;
for (; NZDUSD_OCO4S5_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets5.Count; NZDUSD_OCO4S5_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets5[NZDUSD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO4Sets5[NZDUSD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_5__Time out_OCO4");
Base.NZDUSD_UP_S2_OCO4Sets5.Clear();
NZDUSD_OCO4S5_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S6_UP_S2 = 0;
for (; NZDUSD_OCO4S6_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets6.Count; NZDUSD_OCO4S6_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets6[NZDUSD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.NZDUSD_UP_S2_OCO4Sets6[NZDUSD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("NZDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDUSD", order.Quantity, false, "NZDUSD_UP_S2_Entry_6__Time out_OCO4");
Base.NZDUSD_UP_S2_OCO4Sets6.Clear();
NZDUSD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_NZDUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_NZDUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_NZDUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_NZDUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_NZDUSD_UP_S2 = DOWM_NZDUSD_UP_S2 || DOWT_NZDUSD_UP_S2 || DOWW_NZDUSD_UP_S2 || DOWTH_NZDUSD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("NZDUSD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.NZDUSD_OCO1_UP_S2_IsReady == false ||
Base.NZDUSD_OCO2_UP_S2_IsReady == false ||
Base.NZDUSD_OCO3_UP_S2_IsReady == false ||
Base.NZDUSD_OCO4_UP_S2_IsReady == false)
{
Base.NZDUSD_OCO1_UP_S2_Monthly_IsReady = false;
Base.NZDUSD_OCO2_UP_S2_Monthly_IsReady = false;
Base.NZDUSD_OCO3_UP_S2_Monthly_IsReady = false;
Base.NZDUSD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.NZDUSD_OCO1_UP_S2_Monthly_IsReady = true;
Base.NZDUSD_OCO2_UP_S2_Monthly_IsReady = true;
Base.NZDUSD_OCO3_UP_S2_Monthly_IsReady = true;
Base.NZDUSD_OCO4_UP_S2_Monthly_IsReady = true;
}
NZDUSD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
NZDUSD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
NZDUSD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (NZDUSD_Signal_Condition_UP_1)
{
NZDUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDUSD_Signal_Condition_UP_2)
{
NZDUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDUSD_Signal_Condition_UP_3)
{
NZDUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDUSD_Signal_Condition_UP_1)
{
NZDUSD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (NZDUSD_Signal_Condition_UP_2)
{
NZDUSD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (NZDUSD_Signal_Condition_UP_3)
{
NZDUSD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
NZDUSD_UP_S2_TP2 = NZDUSD_UP_S2_SL * 0;
NZDUSD_UP_S2_TP3 = NZDUSD_UP_S2_SL * 0;
NZDUSD_UP_S2_TP4 = NZDUSD_UP_S2_SL * 0;
NZDUSD_UP_S2_TP5 = NZDUSD_UP_S2_SL * 0;
NZDUSD_UP_S2_TP6 = NZDUSD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
NZDUSD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
NZDUSD_quantity_SL_UP_S2 = NZDUSD_quantity_UP_S2;
NZDUSD_quantity_TP1_UP_S2 = (int)Math.Floor(NZDUSD_quantity_UP_S2 * 1m);
NZDUSD_quantity_TP2_UP_S2 = (int)Math.Floor(NZDUSD_quantity_TP1_UP_S2 * 0m);
NZDUSD_quantity_TP3_UP_S2 = (int)Math.Floor(NZDUSD_quantity_TP2_UP_S2 * 0m);
NZDUSD_quantity_TP4_UP_S2 = (int)Math.Floor(NZDUSD_quantity_TP3_UP_S2 * 0m);
NZDUSD_quantity_TP5_UP_S2 = (int)Math.Floor(NZDUSD_quantity_TP4_UP_S2 * 0m);
NZDUSD_quantity_TP6_UP_S2 = (int)Math.Floor(NZDUSD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((NZDUSD_Signal_Condition_UP_1 || NZDUSD_Signal_Condition_UP_2 || NZDUSD_Signal_Condition_UP_3) &&
DOWR_NZDUSD_UP_S2 &&
Base.NZDUSD_OCO1_UP_S2_IsReady == true &&
Base.NZDUSD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.NZDUSD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP1_UP_S2, false,"NZDUSD_UP_S2_Entry_TP1_OCO1");
Base.NZDUSD_OCO1_EO1_UP_S2 = false;
Base.NZDUSD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP2_UP_S2, false,"NZDUSD_UP_S2_Entry_TP2_OCO1");
Base.NZDUSD_OCO1_EO2_UP_S2 = false;
Base.NZDUSD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP3_UP_S2, false,"NZDUSD_UP_S2_Entry_TP3_OCO1");
Base.NZDUSD_OCO1_EO3_UP_S2 = false;
Base.NZDUSD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP4_UP_S2, false,"NZDUSD_UP_S2_Entry_TP4_OCO1");
Base.NZDUSD_OCO1_EO4_UP_S2 = false;
Base.NZDUSD_OCO1_UP_S2_IsReady = false;
if (Base.NZDUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((NZDUSD_Signal_Condition_UP_1 || NZDUSD_Signal_Condition_UP_2 || NZDUSD_Signal_Condition_UP_3) &&
DOWR_NZDUSD_UP_S2 &&
Base.NZDUSD_OCO1_UP_S2_IsReady == false &&
Base.NZDUSD_OCO2_UP_S2_IsReady == true &&
Base.NZDUSD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.NZDUSD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP1_UP_S2, false,"NZDUSD_UP_S2_Entry_TP1_OCO2");
Base.NZDUSD_OCO2_EO1_UP_S2 = false;
Base.NZDUSD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP2_UP_S2, false,"NZDUSD_UP_S2_Entry_TP2_OCO2");
Base.NZDUSD_OCO2_EO2_UP_S2 = false;
Base.NZDUSD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP3_UP_S2, false,"NZDUSD_UP_S2_Entry_TP3_OCO2");
Base.NZDUSD_OCO2_EO3_UP_S2 = false;
Base.NZDUSD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP4_UP_S2, false,"NZDUSD_UP_S2_Entry_TP4_OCO2");
Base.NZDUSD_OCO2_EO4_UP_S2 = false;
Base.NZDUSD_OCO2_UP_S2_IsReady = false;
if (Base.NZDUSD_OCO2_UP_S2_IsReady == false && Base.NZDUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((NZDUSD_Signal_Condition_UP_1 || NZDUSD_Signal_Condition_UP_2 || NZDUSD_Signal_Condition_UP_3) &&
DOWR_NZDUSD_UP_S2 &&
Base.NZDUSD_OCO1_UP_S2_IsReady == false &&
Base.NZDUSD_OCO2_UP_S2_IsReady == false &&
Base.NZDUSD_OCO3_UP_S2_IsReady == true &&
Base.NZDUSD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.NZDUSD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP1_UP_S2, false,"NZDUSD_UP_S2_Entry_TP1_OCO3");
Base.NZDUSD_OCO3_EO1_UP_S2 = false;
Base.NZDUSD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP2_UP_S2, false,"NZDUSD_UP_S2_Entry_TP2_OCO3");
Base.NZDUSD_OCO3_EO2_UP_S2 = false;
Base.NZDUSD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP3_UP_S2, false,"NZDUSD_UP_S2_Entry_TP3_OCO3");
Base.NZDUSD_OCO3_EO3_UP_S2 = false;
Base.NZDUSD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP4_UP_S2, false,"NZDUSD_UP_S2_Entry_TP4_OCO3");
Base.NZDUSD_OCO3_EO4_UP_S2 = false;
Base.NZDUSD_OCO3_UP_S2_IsReady = false;
if (Base.NZDUSD_OCO3_UP_S2_IsReady == false && Base.NZDUSD_OCO2_UP_S2_IsReady == false && Base.NZDUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((NZDUSD_Signal_Condition_UP_1 || NZDUSD_Signal_Condition_UP_2 || NZDUSD_Signal_Condition_UP_3) &&
DOWR_NZDUSD_UP_S2 &&
Base.NZDUSD_OCO1_UP_S2_IsReady == false &&
Base.NZDUSD_OCO2_UP_S2_IsReady == false &&
Base.NZDUSD_OCO3_UP_S2_IsReady == false &&
Base.NZDUSD_OCO4_UP_S2_IsReady == true &&
Base.NZDUSD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.NZDUSD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP1_UP_S2, false,"NZDUSD_UP_S2_Entry_TP1_OCO4");
Base.NZDUSD_OCO4_EO1_UP_S2 = false;
Base.NZDUSD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP2_UP_S2, false,"NZDUSD_UP_S2_Entry_TP2_OCO4");
Base.NZDUSD_OCO4_EO2_UP_S2 = false;
Base.NZDUSD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP3_UP_S2, false,"NZDUSD_UP_S2_Entry_TP3_OCO4");
Base.NZDUSD_OCO4_EO3_UP_S2 = false;
Base.NZDUSD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDUSD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDUSD_quantity_TP4_UP_S2, false,"NZDUSD_UP_S2_Entry_TP4_OCO4");
Base.NZDUSD_OCO4_EO4_UP_S2 = false;
Base.NZDUSD_OCO4_UP_S2_IsReady = false;
if (Base.NZDUSD_OCO4_UP_S2_IsReady == false && Base.NZDUSD_OCO3_UP_S2_IsReady == false && Base.NZDUSD_OCO2_UP_S2_IsReady == false && Base.NZDUSD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURUSD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURUSD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURUSD S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURUSD S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURUSD S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURUSD S2");
}
}
if (Base.EURUSD_OCO1_EO1_DOWN_S2)
Base.EURUSD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO1_EO2_DOWN_S2)
Base.EURUSD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO1_EO3_DOWN_S2)
Base.EURUSD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO1_EO4_DOWN_S2)
Base.EURUSD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO1_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP1_EURUSD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP1,"TP1_EURUSD_DOWN_S2_OCO1"));
};
Base.EURUSD_DOWN_S2_OCO1Sets1.Add( Base.EURUSD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO2_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP2_EURUSD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP2,"TP2_EURUSD_DOWN_S2_OCO1"));
};
Base.EURUSD_DOWN_S2_OCO1Sets2.Add( Base.EURUSD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO3_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP3_EURUSD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP3,"TP3_EURUSD_DOWN_S2_OCO1"));
};
Base.EURUSD_DOWN_S2_OCO1Sets3.Add( Base.EURUSD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO4_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP4_EURUSD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP4,"TP4_EURUSD_DOWN_S2_OCO1"));
};
Base.EURUSD_DOWN_S2_OCO1Sets4.Add( Base.EURUSD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO4_DOWN_S2_ID = -1;
}
int EURUSD_OCO1S1_DOWN_S2 = 0;
for (; EURUSD_OCO1S1_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets1.Count; EURUSD_OCO1S1_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets1[EURUSD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO1Sets1[EURUSD_OCO1S1_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO1Sets1.RemoveAt(EURUSD_OCO1S1_DOWN_S2);
EURUSD_OCO1S1_DOWN_S2 = 0;
break;
}
int EURUSD_OCO1S2_DOWN_S2 = 0;
for (; EURUSD_OCO1S2_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets2.Count; EURUSD_OCO1S2_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets2[EURUSD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO1Sets2[EURUSD_OCO1S2_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO1Sets2.RemoveAt(EURUSD_OCO1S2_DOWN_S2);
EURUSD_OCO1S2_DOWN_S2 = 0;
break;
}
int EURUSD_OCO1S3_DOWN_S2 = 0;
for (; EURUSD_OCO1S3_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets3.Count; EURUSD_OCO1S3_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets3[EURUSD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO1Sets3[EURUSD_OCO1S3_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO1Sets3.RemoveAt(EURUSD_OCO1S3_DOWN_S2);
EURUSD_OCO1S3_DOWN_S2 = 0;
break;
}
int EURUSD_OCO1S4_DOWN_S2 = 0;
for (; EURUSD_OCO1S4_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets4.Count; EURUSD_OCO1S4_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets4[EURUSD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO1Sets4[EURUSD_OCO1S4_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO1Sets4.RemoveAt(EURUSD_OCO1S4_DOWN_S2);
EURUSD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO2_EO1_DOWN_S2)
Base.EURUSD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO2_EO2_DOWN_S2)
Base.EURUSD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO2_EO3_DOWN_S2)
Base.EURUSD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO2_EO4_DOWN_S2)
Base.EURUSD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO1_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP1_EURUSD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP1,"TP1_EURUSD_DOWN_S2_OCO2"));
};
Base.EURUSD_DOWN_S2_OCO2Sets1.Add( Base.EURUSD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO2_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP2_EURUSD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP2,"TP2_EURUSD_DOWN_S2_OCO2"));
};
Base.EURUSD_DOWN_S2_OCO2Sets2.Add( Base.EURUSD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO3_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP3_EURUSD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP3,"TP3_EURUSD_DOWN_S2_OCO2"));
};
Base.EURUSD_DOWN_S2_OCO2Sets3.Add( Base.EURUSD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO4_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP4_EURUSD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP4,"TP4_EURUSD_DOWN_S2_OCO2"));
};
Base.EURUSD_DOWN_S2_OCO2Sets4.Add( Base.EURUSD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO4_DOWN_S2_ID = -1;
}
int EURUSD_OCO2S1_DOWN_S2 = 0;
for (; EURUSD_OCO2S1_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets1.Count; EURUSD_OCO2S1_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets1[EURUSD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO2Sets1[EURUSD_OCO2S1_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO2Sets1.RemoveAt(EURUSD_OCO2S1_DOWN_S2);
EURUSD_OCO2S1_DOWN_S2 = 0;
break;
}
int EURUSD_OCO2S2_DOWN_S2 = 0;
for (; EURUSD_OCO2S2_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets2.Count; EURUSD_OCO2S2_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets2[EURUSD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO2Sets2[EURUSD_OCO2S2_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO2Sets2.RemoveAt(EURUSD_OCO2S2_DOWN_S2);
EURUSD_OCO2S2_DOWN_S2 = 0;
break;
}
int EURUSD_OCO2S3_DOWN_S2 = 0;
for (; EURUSD_OCO2S3_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets3.Count; EURUSD_OCO2S3_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets3[EURUSD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO2Sets3[EURUSD_OCO2S3_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO2Sets3.RemoveAt(EURUSD_OCO2S3_DOWN_S2);
EURUSD_OCO2S3_DOWN_S2 = 0;
break;
}
int EURUSD_OCO2S4_DOWN_S2 = 0;
for (; EURUSD_OCO2S4_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets4.Count; EURUSD_OCO2S4_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets4[EURUSD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO2Sets4[EURUSD_OCO2S4_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO2Sets4.RemoveAt(EURUSD_OCO2S4_DOWN_S2);
EURUSD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO3_EO1_DOWN_S2)
Base.EURUSD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO3_EO2_DOWN_S2)
Base.EURUSD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO3_EO3_DOWN_S2)
Base.EURUSD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO3_EO4_DOWN_S2)
Base.EURUSD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO1_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP1_EURUSD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP1,"TP1_EURUSD_DOWN_S2_OCO3"));
};
Base.EURUSD_DOWN_S2_OCO3Sets1.Add( Base.EURUSD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO2_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP2_EURUSD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP2,"TP2_EURUSD_DOWN_S2_OCO3"));
};
Base.EURUSD_DOWN_S2_OCO3Sets2.Add( Base.EURUSD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO3_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP3_EURUSD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP3,"TP3_EURUSD_DOWN_S2_OCO3"));
};
Base.EURUSD_DOWN_S2_OCO3Sets3.Add( Base.EURUSD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO4_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP4_EURUSD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP4,"TP4_EURUSD_DOWN_S2_OCO3"));
};
Base.EURUSD_DOWN_S2_OCO3Sets4.Add( Base.EURUSD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO4_DOWN_S2_ID = -1;
}
int EURUSD_OCO3S1_DOWN_S2 = 0;
for (; EURUSD_OCO3S1_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets1.Count; EURUSD_OCO3S1_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets1[EURUSD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO3Sets1[EURUSD_OCO3S1_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO3Sets1.RemoveAt(EURUSD_OCO3S1_DOWN_S2);
EURUSD_OCO3S1_DOWN_S2 = 0;
break;
}
int EURUSD_OCO3S2_DOWN_S2 = 0;
for (; EURUSD_OCO3S2_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets2.Count; EURUSD_OCO3S2_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets2[EURUSD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO3Sets2[EURUSD_OCO3S2_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO3Sets2.RemoveAt(EURUSD_OCO3S2_DOWN_S2);
EURUSD_OCO3S2_DOWN_S2 = 0;
break;
}
int EURUSD_OCO3S3_DOWN_S2 = 0;
for (; EURUSD_OCO3S3_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets3.Count; EURUSD_OCO3S3_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets3[EURUSD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO3Sets3[EURUSD_OCO3S3_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO3Sets3.RemoveAt(EURUSD_OCO3S3_DOWN_S2);
EURUSD_OCO3S3_DOWN_S2 = 0;
break;
}
int EURUSD_OCO3S4_DOWN_S2 = 0;
for (; EURUSD_OCO3S4_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets4.Count; EURUSD_OCO3S4_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets4[EURUSD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO3Sets4[EURUSD_OCO3S4_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO3Sets4.RemoveAt(EURUSD_OCO3S4_DOWN_S2);
EURUSD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO4_EO1_DOWN_S2)
Base.EURUSD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO4_EO2_DOWN_S2)
Base.EURUSD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO4_EO3_DOWN_S2)
Base.EURUSD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO4_EO4_DOWN_S2)
Base.EURUSD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO1_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP1_EURUSD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP1,"TP1_EURUSD_DOWN_S2_OCO4"));
};
Base.EURUSD_DOWN_S2_OCO4Sets1.Add( Base.EURUSD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO2_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP2_EURUSD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP2,"TP2_EURUSD_DOWN_S2_OCO4"));
};
Base.EURUSD_DOWN_S2_OCO4Sets2.Add( Base.EURUSD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO3_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP3_EURUSD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP3,"TP3_EURUSD_DOWN_S2_OCO4"));
};
Base.EURUSD_DOWN_S2_OCO4Sets3.Add( Base.EURUSD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO4_DOWN_S2_ID)
{
Base.EURUSD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_DOWN_S2_SL,"SL_TP4_EURUSD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_DOWN_S2_TP4,"TP4_EURUSD_DOWN_S2_OCO4"));
};
Base.EURUSD_DOWN_S2_OCO4Sets4.Add( Base.EURUSD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO4_DOWN_S2_ID = -1;
}
int EURUSD_OCO4S1_DOWN_S2 = 0;
for (; EURUSD_OCO4S1_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets1.Count; EURUSD_OCO4S1_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets1[EURUSD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO4Sets1[EURUSD_OCO4S1_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO4Sets1.RemoveAt(EURUSD_OCO4S1_DOWN_S2);
EURUSD_OCO4S1_DOWN_S2 = 0;
break;
}
int EURUSD_OCO4S2_DOWN_S2 = 0;
for (; EURUSD_OCO4S2_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets2.Count; EURUSD_OCO4S2_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets2[EURUSD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO4Sets2[EURUSD_OCO4S2_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO4Sets2.RemoveAt(EURUSD_OCO4S2_DOWN_S2);
EURUSD_OCO4S2_DOWN_S2 = 0;
break;
}
int EURUSD_OCO4S3_DOWN_S2 = 0;
for (; EURUSD_OCO4S3_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets3.Count; EURUSD_OCO4S3_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets3[EURUSD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO4Sets3[EURUSD_OCO4S3_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO4Sets3.RemoveAt(EURUSD_OCO4S3_DOWN_S2);
EURUSD_OCO4S3_DOWN_S2 = 0;
break;
}
int EURUSD_OCO4S4_DOWN_S2 = 0;
for (; EURUSD_OCO4S4_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets4.Count; EURUSD_OCO4S4_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets4[EURUSD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_DOWN_S2_OCO4Sets4[EURUSD_OCO4S4_DOWN_S2].Filled();
Base.EURUSD_DOWN_S2_OCO4Sets4.RemoveAt(EURUSD_OCO4S4_DOWN_S2);
EURUSD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_NZDCHF_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_NZDCHF_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("NZDCHF_UP_S2_OCO1")))
{
Base.NZDCHF_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCHF_UP_S2_OCO2")))
{
Base.NZDCHF_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCHF_UP_S2_OCO3")))
{
Base.NZDCHF_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCHF_UP_S2_OCO4")))
{
Base.NZDCHF_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("NZDCHF_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.NZDCHF_OCO1_EO1_UP_S2)
Base.NZDCHF_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO2_UP_S2)
Base.NZDCHF_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO3_UP_S2)
Base.NZDCHF_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO4_UP_S2)
Base.NZDCHF_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO5_UP_S2)
Base.NZDCHF_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO6_UP_S2)
Base.NZDCHF_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCHF_UP_S2_OCO_DELAY_7DAY))
{
int NZDCHF_OCO1S1_UP_S2 = 0;
for (; NZDCHF_OCO1S1_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets1.Count; NZDCHF_OCO1S1_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets1[NZDCHF_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO1Sets1[NZDCHF_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_1__Time out_OCO1");
Base.NZDCHF_UP_S2_OCO1Sets1.Clear();
NZDCHF_OCO1S1_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S2_UP_S2 = 0;
for (; NZDCHF_OCO1S2_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets2.Count; NZDCHF_OCO1S2_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets2[NZDCHF_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO1Sets2[NZDCHF_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_2__Time out_OCO1");
Base.NZDCHF_UP_S2_OCO1Sets2.Clear();
NZDCHF_OCO1S2_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S3_UP_S2 = 0;
for (; NZDCHF_OCO1S3_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets3.Count; NZDCHF_OCO1S3_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets3[NZDCHF_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO1Sets3[NZDCHF_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_3__Time out_OCO1");
Base.NZDCHF_UP_S2_OCO1Sets3.Clear();
NZDCHF_OCO1S3_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S4_UP_S2 = 0;
for (; NZDCHF_OCO1S4_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets4.Count; NZDCHF_OCO1S4_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets4[NZDCHF_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO1Sets4[NZDCHF_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_4__Time out_OCO1");
Base.NZDCHF_UP_S2_OCO1Sets4.Clear();
NZDCHF_OCO1S4_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S5_UP_S2 = 0;
for (; NZDCHF_OCO1S5_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets5.Count; NZDCHF_OCO1S5_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets5[NZDCHF_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO1Sets5[NZDCHF_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_5__Time out_OCO1");
Base.NZDCHF_UP_S2_OCO1Sets5.Clear();
NZDCHF_OCO1S5_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S6_UP_S2 = 0;
for (; NZDCHF_OCO1S6_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets6.Count; NZDCHF_OCO1S6_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets6[NZDCHF_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO1Sets6[NZDCHF_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_6__Time out_OCO1");
Base.NZDCHF_UP_S2_OCO1Sets6.Clear();
NZDCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO2_EO1_UP_S2)
Base.NZDCHF_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO2_UP_S2)
Base.NZDCHF_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO3_UP_S2)
Base.NZDCHF_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO4_UP_S2)
Base.NZDCHF_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO5_UP_S2)
Base.NZDCHF_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO6_UP_S2)
Base.NZDCHF_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCHF_UP_S2_OCO_DELAY_7DAY))
{
int NZDCHF_OCO2S1_UP_S2 = 0;
for (; NZDCHF_OCO2S1_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets1.Count; NZDCHF_OCO2S1_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets1[NZDCHF_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO2Sets1[NZDCHF_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_1__Time out_OCO2");
Base.NZDCHF_UP_S2_OCO2Sets1.Clear();
NZDCHF_OCO2S1_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S2_UP_S2 = 0;
for (; NZDCHF_OCO2S2_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets2.Count; NZDCHF_OCO2S2_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets2[NZDCHF_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO2Sets2[NZDCHF_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_2__Time out_OCO2");
Base.NZDCHF_UP_S2_OCO2Sets2.Clear();
NZDCHF_OCO2S2_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S3_UP_S2 = 0;
for (; NZDCHF_OCO2S3_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets3.Count; NZDCHF_OCO2S3_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets3[NZDCHF_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO2Sets3[NZDCHF_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_3__Time out_OCO2");
Base.NZDCHF_UP_S2_OCO2Sets3.Clear();
NZDCHF_OCO2S3_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S4_UP_S2 = 0;
for (; NZDCHF_OCO2S4_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets4.Count; NZDCHF_OCO2S4_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets4[NZDCHF_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO2Sets4[NZDCHF_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_4__Time out_OCO2");
Base.NZDCHF_UP_S2_OCO2Sets4.Clear();
NZDCHF_OCO2S4_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S5_UP_S2 = 0;
for (; NZDCHF_OCO2S5_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets5.Count; NZDCHF_OCO2S5_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets5[NZDCHF_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO2Sets5[NZDCHF_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_5__Time out_OCO2");
Base.NZDCHF_UP_S2_OCO2Sets5.Clear();
NZDCHF_OCO2S5_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S6_UP_S2 = 0;
for (; NZDCHF_OCO2S6_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets6.Count; NZDCHF_OCO2S6_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets6[NZDCHF_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO2Sets6[NZDCHF_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_6__Time out_OCO2");
Base.NZDCHF_UP_S2_OCO2Sets6.Clear();
NZDCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO3_EO1_UP_S2)
Base.NZDCHF_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO2_UP_S2)
Base.NZDCHF_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO3_UP_S2)
Base.NZDCHF_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO4_UP_S2)
Base.NZDCHF_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO5_UP_S2)
Base.NZDCHF_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO6_UP_S2)
Base.NZDCHF_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCHF_UP_S2_OCO_DELAY_7DAY))
{
int NZDCHF_OCO3S1_UP_S2 = 0;
for (; NZDCHF_OCO3S1_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets1.Count; NZDCHF_OCO3S1_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets1[NZDCHF_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO3Sets1[NZDCHF_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_1__Time out_OCO3");
Base.NZDCHF_UP_S2_OCO3Sets1.Clear();
NZDCHF_OCO3S1_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S2_UP_S2 = 0;
for (; NZDCHF_OCO3S2_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets2.Count; NZDCHF_OCO3S2_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets2[NZDCHF_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO3Sets2[NZDCHF_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_2__Time out_OCO3");
Base.NZDCHF_UP_S2_OCO3Sets2.Clear();
NZDCHF_OCO3S2_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S3_UP_S2 = 0;
for (; NZDCHF_OCO3S3_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets3.Count; NZDCHF_OCO3S3_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets3[NZDCHF_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO3Sets3[NZDCHF_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_3__Time out_OCO3");
Base.NZDCHF_UP_S2_OCO3Sets3.Clear();
NZDCHF_OCO3S3_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S4_UP_S2 = 0;
for (; NZDCHF_OCO3S4_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets4.Count; NZDCHF_OCO3S4_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets4[NZDCHF_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO3Sets4[NZDCHF_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_4__Time out_OCO3");
Base.NZDCHF_UP_S2_OCO3Sets4.Clear();
NZDCHF_OCO3S4_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S5_UP_S2 = 0;
for (; NZDCHF_OCO3S5_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets5.Count; NZDCHF_OCO3S5_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets5[NZDCHF_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO3Sets5[NZDCHF_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_5__Time out_OCO3");
Base.NZDCHF_UP_S2_OCO3Sets5.Clear();
NZDCHF_OCO3S5_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S6_UP_S2 = 0;
for (; NZDCHF_OCO3S6_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets6.Count; NZDCHF_OCO3S6_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets6[NZDCHF_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO3Sets6[NZDCHF_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_6__Time out_OCO3");
Base.NZDCHF_UP_S2_OCO3Sets6.Clear();
NZDCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO4_EO1_UP_S2)
Base.NZDCHF_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO2_UP_S2)
Base.NZDCHF_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO3_UP_S2)
Base.NZDCHF_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO4_UP_S2)
Base.NZDCHF_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO5_UP_S2)
Base.NZDCHF_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO6_UP_S2)
Base.NZDCHF_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCHF_UP_S2_OCO_DELAY_7DAY))
{
int NZDCHF_OCO4S1_UP_S2 = 0;
for (; NZDCHF_OCO4S1_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets1.Count; NZDCHF_OCO4S1_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets1[NZDCHF_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO4Sets1[NZDCHF_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_1__Time out_OCO4");
Base.NZDCHF_UP_S2_OCO4Sets1.Clear();
NZDCHF_OCO4S1_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S2_UP_S2 = 0;
for (; NZDCHF_OCO4S2_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets2.Count; NZDCHF_OCO4S2_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets2[NZDCHF_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO4Sets2[NZDCHF_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_2__Time out_OCO4");
Base.NZDCHF_UP_S2_OCO4Sets2.Clear();
NZDCHF_OCO4S2_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S3_UP_S2 = 0;
for (; NZDCHF_OCO4S3_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets3.Count; NZDCHF_OCO4S3_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets3[NZDCHF_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO4Sets3[NZDCHF_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_3__Time out_OCO4");
Base.NZDCHF_UP_S2_OCO4Sets3.Clear();
NZDCHF_OCO4S3_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S4_UP_S2 = 0;
for (; NZDCHF_OCO4S4_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets4.Count; NZDCHF_OCO4S4_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets4[NZDCHF_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO4Sets4[NZDCHF_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_4__Time out_OCO4");
Base.NZDCHF_UP_S2_OCO4Sets4.Clear();
NZDCHF_OCO4S4_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S5_UP_S2 = 0;
for (; NZDCHF_OCO4S5_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets5.Count; NZDCHF_OCO4S5_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets5[NZDCHF_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO4Sets5[NZDCHF_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_5__Time out_OCO4");
Base.NZDCHF_UP_S2_OCO4Sets5.Clear();
NZDCHF_OCO4S5_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S6_UP_S2 = 0;
for (; NZDCHF_OCO4S6_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets6.Count; NZDCHF_OCO4S6_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets6[NZDCHF_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.NZDCHF_UP_S2_OCO4Sets6[NZDCHF_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_UP_S2_Entry_6__Time out_OCO4");
Base.NZDCHF_UP_S2_OCO4Sets6.Clear();
NZDCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_NZDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_NZDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_NZDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_NZDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_NZDCHF_UP_S2 = DOWM_NZDCHF_UP_S2 || DOWT_NZDCHF_UP_S2 || DOWW_NZDCHF_UP_S2 || DOWTH_NZDCHF_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("NZDCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.NZDCHF_OCO1_UP_S2_IsReady == false ||
Base.NZDCHF_OCO2_UP_S2_IsReady == false ||
Base.NZDCHF_OCO3_UP_S2_IsReady == false ||
Base.NZDCHF_OCO4_UP_S2_IsReady == false)
{
Base.NZDCHF_OCO1_UP_S2_Monthly_IsReady = false;
Base.NZDCHF_OCO2_UP_S2_Monthly_IsReady = false;
Base.NZDCHF_OCO3_UP_S2_Monthly_IsReady = false;
Base.NZDCHF_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.NZDCHF_OCO1_UP_S2_Monthly_IsReady = true;
Base.NZDCHF_OCO2_UP_S2_Monthly_IsReady = true;
Base.NZDCHF_OCO3_UP_S2_Monthly_IsReady = true;
Base.NZDCHF_OCO4_UP_S2_Monthly_IsReady = true;
}
NZDCHF_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
NZDCHF_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
NZDCHF_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (NZDCHF_Signal_Condition_UP_1)
{
NZDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDCHF_Signal_Condition_UP_2)
{
NZDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDCHF_Signal_Condition_UP_3)
{
NZDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDCHF_Signal_Condition_UP_1)
{
NZDCHF_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (NZDCHF_Signal_Condition_UP_2)
{
NZDCHF_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (NZDCHF_Signal_Condition_UP_3)
{
NZDCHF_UP_S2_TP1 = Base.Oth_TP_3 ;
}
NZDCHF_UP_S2_TP2 = NZDCHF_UP_S2_SL * 0;
NZDCHF_UP_S2_TP3 = NZDCHF_UP_S2_SL * 0;
NZDCHF_UP_S2_TP4 = NZDCHF_UP_S2_SL * 0;
NZDCHF_UP_S2_TP5 = NZDCHF_UP_S2_SL * 0;
NZDCHF_UP_S2_TP6 = NZDCHF_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
NZDCHF_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
NZDCHF_quantity_SL_UP_S2 = NZDCHF_quantity_UP_S2;
NZDCHF_quantity_TP1_UP_S2 = (int)Math.Floor(NZDCHF_quantity_UP_S2 * 1m);
NZDCHF_quantity_TP2_UP_S2 = (int)Math.Floor(NZDCHF_quantity_TP1_UP_S2 * 0m);
NZDCHF_quantity_TP3_UP_S2 = (int)Math.Floor(NZDCHF_quantity_TP2_UP_S2 * 0m);
NZDCHF_quantity_TP4_UP_S2 = (int)Math.Floor(NZDCHF_quantity_TP3_UP_S2 * 0m);
NZDCHF_quantity_TP5_UP_S2 = (int)Math.Floor(NZDCHF_quantity_TP4_UP_S2 * 0m);
NZDCHF_quantity_TP6_UP_S2 = (int)Math.Floor(NZDCHF_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((NZDCHF_Signal_Condition_UP_1 || NZDCHF_Signal_Condition_UP_2 || NZDCHF_Signal_Condition_UP_3) &&
DOWR_NZDCHF_UP_S2 &&
Base.NZDCHF_OCO1_UP_S2_IsReady == true &&
Base.NZDCHF_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.NZDCHF_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP1_UP_S2, false,"NZDCHF_UP_S2_Entry_TP1_OCO1");
Base.NZDCHF_OCO1_EO1_UP_S2 = false;
Base.NZDCHF_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP2_UP_S2, false,"NZDCHF_UP_S2_Entry_TP2_OCO1");
Base.NZDCHF_OCO1_EO2_UP_S2 = false;
Base.NZDCHF_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP3_UP_S2, false,"NZDCHF_UP_S2_Entry_TP3_OCO1");
Base.NZDCHF_OCO1_EO3_UP_S2 = false;
Base.NZDCHF_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP4_UP_S2, false,"NZDCHF_UP_S2_Entry_TP4_OCO1");
Base.NZDCHF_OCO1_EO4_UP_S2 = false;
Base.NZDCHF_OCO1_UP_S2_IsReady = false;
if (Base.NZDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((NZDCHF_Signal_Condition_UP_1 || NZDCHF_Signal_Condition_UP_2 || NZDCHF_Signal_Condition_UP_3) &&
DOWR_NZDCHF_UP_S2 &&
Base.NZDCHF_OCO1_UP_S2_IsReady == false &&
Base.NZDCHF_OCO2_UP_S2_IsReady == true &&
Base.NZDCHF_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.NZDCHF_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP1_UP_S2, false,"NZDCHF_UP_S2_Entry_TP1_OCO2");
Base.NZDCHF_OCO2_EO1_UP_S2 = false;
Base.NZDCHF_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP2_UP_S2, false,"NZDCHF_UP_S2_Entry_TP2_OCO2");
Base.NZDCHF_OCO2_EO2_UP_S2 = false;
Base.NZDCHF_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP3_UP_S2, false,"NZDCHF_UP_S2_Entry_TP3_OCO2");
Base.NZDCHF_OCO2_EO3_UP_S2 = false;
Base.NZDCHF_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP4_UP_S2, false,"NZDCHF_UP_S2_Entry_TP4_OCO2");
Base.NZDCHF_OCO2_EO4_UP_S2 = false;
Base.NZDCHF_OCO2_UP_S2_IsReady = false;
if (Base.NZDCHF_OCO2_UP_S2_IsReady == false && Base.NZDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((NZDCHF_Signal_Condition_UP_1 || NZDCHF_Signal_Condition_UP_2 || NZDCHF_Signal_Condition_UP_3) &&
DOWR_NZDCHF_UP_S2 &&
Base.NZDCHF_OCO1_UP_S2_IsReady == false &&
Base.NZDCHF_OCO2_UP_S2_IsReady == false &&
Base.NZDCHF_OCO3_UP_S2_IsReady == true &&
Base.NZDCHF_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.NZDCHF_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP1_UP_S2, false,"NZDCHF_UP_S2_Entry_TP1_OCO3");
Base.NZDCHF_OCO3_EO1_UP_S2 = false;
Base.NZDCHF_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP2_UP_S2, false,"NZDCHF_UP_S2_Entry_TP2_OCO3");
Base.NZDCHF_OCO3_EO2_UP_S2 = false;
Base.NZDCHF_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP3_UP_S2, false,"NZDCHF_UP_S2_Entry_TP3_OCO3");
Base.NZDCHF_OCO3_EO3_UP_S2 = false;
Base.NZDCHF_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP4_UP_S2, false,"NZDCHF_UP_S2_Entry_TP4_OCO3");
Base.NZDCHF_OCO3_EO4_UP_S2 = false;
Base.NZDCHF_OCO3_UP_S2_IsReady = false;
if (Base.NZDCHF_OCO3_UP_S2_IsReady == false && Base.NZDCHF_OCO2_UP_S2_IsReady == false && Base.NZDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((NZDCHF_Signal_Condition_UP_1 || NZDCHF_Signal_Condition_UP_2 || NZDCHF_Signal_Condition_UP_3) &&
DOWR_NZDCHF_UP_S2 &&
Base.NZDCHF_OCO1_UP_S2_IsReady == false &&
Base.NZDCHF_OCO2_UP_S2_IsReady == false &&
Base.NZDCHF_OCO3_UP_S2_IsReady == false &&
Base.NZDCHF_OCO4_UP_S2_IsReady == true &&
Base.NZDCHF_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.NZDCHF_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP1_UP_S2, false,"NZDCHF_UP_S2_Entry_TP1_OCO4");
Base.NZDCHF_OCO4_EO1_UP_S2 = false;
Base.NZDCHF_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP2_UP_S2, false,"NZDCHF_UP_S2_Entry_TP2_OCO4");
Base.NZDCHF_OCO4_EO2_UP_S2 = false;
Base.NZDCHF_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP3_UP_S2, false,"NZDCHF_UP_S2_Entry_TP3_OCO4");
Base.NZDCHF_OCO4_EO3_UP_S2 = false;
Base.NZDCHF_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCHF_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP4_UP_S2, false,"NZDCHF_UP_S2_Entry_TP4_OCO4");
Base.NZDCHF_OCO4_EO4_UP_S2 = false;
Base.NZDCHF_OCO4_UP_S2_IsReady = false;
if (Base.NZDCHF_OCO4_UP_S2_IsReady == false && Base.NZDCHF_OCO3_UP_S2_IsReady == false && Base.NZDCHF_OCO2_UP_S2_IsReady == false && Base.NZDCHF_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct CHFJPY_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public CHFJPY_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
}
if (Base.CHFJPY_OCO1_EO1_UP_S2)
Base.CHFJPY_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO1_EO2_UP_S2)
Base.CHFJPY_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO1_EO3_UP_S2)
Base.CHFJPY_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO1_EO4_UP_S2)
Base.CHFJPY_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO1_EO5_UP_S2)
Base.CHFJPY_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO1_EO6_UP_S2)
Base.CHFJPY_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO1_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP1,"TP1_CHFJPY_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP1_CHFJPY_UP_S2_OCO1"));
};
Base.CHFJPY_UP_S2_OCO1Sets1.Add( Base.CHFJPY_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO2_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP2,"TP2_CHFJPY_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP2_CHFJPY_UP_S2_OCO1"));
};
Base.CHFJPY_UP_S2_OCO1Sets2.Add( Base.CHFJPY_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO3_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP3,"TP3_CHFJPY_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP3_CHFJPY_UP_S2_OCO1"));
};
Base.CHFJPY_UP_S2_OCO1Sets3.Add( Base.CHFJPY_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO4_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP4,"TP4_CHFJPY_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP4_CHFJPY_UP_S2_OCO1"));
};
Base.CHFJPY_UP_S2_OCO1Sets4.Add( Base.CHFJPY_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO5_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP5,"TP5_CHFJPY_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP5_CHFJPY_UP_S2_OCO1"));
};
Base.CHFJPY_UP_S2_OCO1Sets5.Add( Base.CHFJPY_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO6_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP6,"TP6_CHFJPY_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP6_CHFJPY_UP_S2_OCO1"));
};
Base.CHFJPY_UP_S2_OCO1Sets6.Add( Base.CHFJPY_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO6_UP_S2_ID = -1;
}
int CHFJPY_OCO1S1_UP_S2 = 0;
for (; CHFJPY_OCO1S1_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets1.Count; CHFJPY_OCO1S1_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets1[CHFJPY_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO1Sets1[CHFJPY_OCO1S1_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO1Sets1.RemoveAt(CHFJPY_OCO1S1_UP_S2);
CHFJPY_OCO1S1_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S2_UP_S2 = 0;
for (; CHFJPY_OCO1S2_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets2.Count; CHFJPY_OCO1S2_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets2[CHFJPY_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO1Sets2[CHFJPY_OCO1S2_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO1Sets2.RemoveAt(CHFJPY_OCO1S2_UP_S2);
CHFJPY_OCO1S2_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S3_UP_S2 = 0;
for (; CHFJPY_OCO1S3_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets3.Count; CHFJPY_OCO1S3_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets3[CHFJPY_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO1Sets3[CHFJPY_OCO1S3_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO1Sets3.RemoveAt(CHFJPY_OCO1S3_UP_S2);
CHFJPY_OCO1S3_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S4_UP_S2 = 0;
for (; CHFJPY_OCO1S4_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets4.Count; CHFJPY_OCO1S4_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets4[CHFJPY_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO1Sets4[CHFJPY_OCO1S4_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO1Sets4.RemoveAt(CHFJPY_OCO1S4_UP_S2);
CHFJPY_OCO1S4_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S5_UP_S2 = 0;
for (; CHFJPY_OCO1S5_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets5.Count; CHFJPY_OCO1S5_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets5[CHFJPY_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO1Sets5[CHFJPY_OCO1S5_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO1Sets5.RemoveAt(CHFJPY_OCO1S5_UP_S2);
CHFJPY_OCO1S5_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S6_UP_S2 = 0;
for (; CHFJPY_OCO1S6_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets6.Count; CHFJPY_OCO1S6_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets6[CHFJPY_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO1Sets6[CHFJPY_OCO1S6_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO1Sets6.RemoveAt(CHFJPY_OCO1S6_UP_S2);
CHFJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO2_EO1_UP_S2)
Base.CHFJPY_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO2_EO2_UP_S2)
Base.CHFJPY_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO2_EO3_UP_S2)
Base.CHFJPY_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO2_EO4_UP_S2)
Base.CHFJPY_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO2_EO5_UP_S2)
Base.CHFJPY_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO2_EO6_UP_S2)
Base.CHFJPY_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO1_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP1,"TP1_CHFJPY_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP1_CHFJPY_UP_S2_OCO2"));
};
Base.CHFJPY_UP_S2_OCO2Sets1.Add( Base.CHFJPY_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO2_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP2,"TP2_CHFJPY_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP2_CHFJPY_UP_S2_OCO2"));
};
Base.CHFJPY_UP_S2_OCO2Sets2.Add( Base.CHFJPY_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO3_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP3,"TP3_CHFJPY_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP3_CHFJPY_UP_S2_OCO2"));
};
Base.CHFJPY_UP_S2_OCO2Sets3.Add( Base.CHFJPY_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO4_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP4,"TP4_CHFJPY_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP4_CHFJPY_UP_S2_OCO2"));
};
Base.CHFJPY_UP_S2_OCO2Sets4.Add( Base.CHFJPY_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO5_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP5,"TP5_CHFJPY_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP5_CHFJPY_UP_S2_OCO2"));
};
Base.CHFJPY_UP_S2_OCO2Sets5.Add( Base.CHFJPY_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO6_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP6,"TP6_CHFJPY_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP6_CHFJPY_UP_S2_OCO2"));
};
Base.CHFJPY_UP_S2_OCO2Sets6.Add( Base.CHFJPY_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO6_UP_S2_ID = -1;
}
int CHFJPY_OCO2S1_UP_S2 = 0;
for (; CHFJPY_OCO2S1_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets1.Count; CHFJPY_OCO2S1_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets1[CHFJPY_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO2Sets1[CHFJPY_OCO2S1_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO2Sets1.RemoveAt(CHFJPY_OCO2S1_UP_S2);
CHFJPY_OCO2S1_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S2_UP_S2 = 0;
for (; CHFJPY_OCO2S2_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets2.Count; CHFJPY_OCO2S2_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets2[CHFJPY_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO2Sets2[CHFJPY_OCO2S2_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO2Sets2.RemoveAt(CHFJPY_OCO2S2_UP_S2);
CHFJPY_OCO2S2_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S3_UP_S2 = 0;
for (; CHFJPY_OCO2S3_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets3.Count; CHFJPY_OCO2S3_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets3[CHFJPY_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO2Sets3[CHFJPY_OCO2S3_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO2Sets3.RemoveAt(CHFJPY_OCO2S3_UP_S2);
CHFJPY_OCO2S3_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S4_UP_S2 = 0;
for (; CHFJPY_OCO2S4_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets4.Count; CHFJPY_OCO2S4_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets4[CHFJPY_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO2Sets4[CHFJPY_OCO2S4_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO2Sets4.RemoveAt(CHFJPY_OCO2S4_UP_S2);
CHFJPY_OCO2S4_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S5_UP_S2 = 0;
for (; CHFJPY_OCO2S5_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets5.Count; CHFJPY_OCO2S5_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets5[CHFJPY_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO2Sets5[CHFJPY_OCO2S5_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO2Sets5.RemoveAt(CHFJPY_OCO2S5_UP_S2);
CHFJPY_OCO2S5_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S6_UP_S2 = 0;
for (; CHFJPY_OCO2S6_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets6.Count; CHFJPY_OCO2S6_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets6[CHFJPY_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO2Sets6[CHFJPY_OCO2S6_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO2Sets6.RemoveAt(CHFJPY_OCO2S6_UP_S2);
CHFJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO3_EO1_UP_S2)
Base.CHFJPY_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO3_EO2_UP_S2)
Base.CHFJPY_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO3_EO3_UP_S2)
Base.CHFJPY_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO3_EO4_UP_S2)
Base.CHFJPY_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO3_EO5_UP_S2)
Base.CHFJPY_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO3_EO6_UP_S2)
Base.CHFJPY_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO1_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP1,"TP1_CHFJPY_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP1_CHFJPY_UP_S2_OCO3"));
};
Base.CHFJPY_UP_S2_OCO3Sets1.Add( Base.CHFJPY_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO2_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP2,"TP2_CHFJPY_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP2_CHFJPY_UP_S2_OCO3"));
};
Base.CHFJPY_UP_S2_OCO3Sets2.Add( Base.CHFJPY_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO3_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP3,"TP3_CHFJPY_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP3_CHFJPY_UP_S2_OCO3"));
};
Base.CHFJPY_UP_S2_OCO3Sets3.Add( Base.CHFJPY_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO4_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP4,"TP4_CHFJPY_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP4_CHFJPY_UP_S2_OCO3"));
};
Base.CHFJPY_UP_S2_OCO3Sets4.Add( Base.CHFJPY_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO5_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP5,"TP5_CHFJPY_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP5_CHFJPY_UP_S2_OCO3"));
};
Base.CHFJPY_UP_S2_OCO3Sets5.Add( Base.CHFJPY_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO6_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP6,"TP6_CHFJPY_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP6_CHFJPY_UP_S2_OCO3"));
};
Base.CHFJPY_UP_S2_OCO3Sets6.Add( Base.CHFJPY_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO6_UP_S2_ID = -1;
}
int CHFJPY_OCO3S1_UP_S2 = 0;
for (; CHFJPY_OCO3S1_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets1.Count; CHFJPY_OCO3S1_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets1[CHFJPY_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO3Sets1[CHFJPY_OCO3S1_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO3Sets1.RemoveAt(CHFJPY_OCO3S1_UP_S2);
CHFJPY_OCO3S1_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S2_UP_S2 = 0;
for (; CHFJPY_OCO3S2_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets2.Count; CHFJPY_OCO3S2_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets2[CHFJPY_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO3Sets2[CHFJPY_OCO3S2_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO3Sets2.RemoveAt(CHFJPY_OCO3S2_UP_S2);
CHFJPY_OCO3S2_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S3_UP_S2 = 0;
for (; CHFJPY_OCO3S3_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets3.Count; CHFJPY_OCO3S3_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets3[CHFJPY_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO3Sets3[CHFJPY_OCO3S3_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO3Sets3.RemoveAt(CHFJPY_OCO3S3_UP_S2);
CHFJPY_OCO3S3_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S4_UP_S2 = 0;
for (; CHFJPY_OCO3S4_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets4.Count; CHFJPY_OCO3S4_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets4[CHFJPY_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO3Sets4[CHFJPY_OCO3S4_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO3Sets4.RemoveAt(CHFJPY_OCO3S4_UP_S2);
CHFJPY_OCO3S4_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S5_UP_S2 = 0;
for (; CHFJPY_OCO3S5_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets5.Count; CHFJPY_OCO3S5_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets5[CHFJPY_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO3Sets5[CHFJPY_OCO3S5_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO3Sets5.RemoveAt(CHFJPY_OCO3S5_UP_S2);
CHFJPY_OCO3S5_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S6_UP_S2 = 0;
for (; CHFJPY_OCO3S6_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets6.Count; CHFJPY_OCO3S6_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets6[CHFJPY_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO3Sets6[CHFJPY_OCO3S6_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO3Sets6.RemoveAt(CHFJPY_OCO3S6_UP_S2);
CHFJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO4_EO1_UP_S2)
Base.CHFJPY_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO4_EO2_UP_S2)
Base.CHFJPY_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO4_EO3_UP_S2)
Base.CHFJPY_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO4_EO4_UP_S2)
Base.CHFJPY_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO4_EO5_UP_S2)
Base.CHFJPY_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO4_EO6_UP_S2)
Base.CHFJPY_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO1_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP1,"TP1_CHFJPY_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP1_CHFJPY_UP_S2_OCO4"));
};
Base.CHFJPY_UP_S2_OCO4Sets1.Add( Base.CHFJPY_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO2_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP2,"TP2_CHFJPY_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP2_CHFJPY_UP_S2_OCO4"));
};
Base.CHFJPY_UP_S2_OCO4Sets2.Add( Base.CHFJPY_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO3_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP3,"TP3_CHFJPY_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP3_CHFJPY_UP_S2_OCO4"));
};
Base.CHFJPY_UP_S2_OCO4Sets3.Add( Base.CHFJPY_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO4_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP4,"TP4_CHFJPY_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP4_CHFJPY_UP_S2_OCO4"));
};
Base.CHFJPY_UP_S2_OCO4Sets4.Add( Base.CHFJPY_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO5_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP5,"TP5_CHFJPY_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP5_CHFJPY_UP_S2_OCO4"));
};
Base.CHFJPY_UP_S2_OCO4Sets5.Add( Base.CHFJPY_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO6_UP_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_UP_S2_TP6,"TP6_CHFJPY_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_UP_S2_SL,"SL_TP6_CHFJPY_UP_S2_OCO4"));
};
Base.CHFJPY_UP_S2_OCO4Sets6.Add( Base.CHFJPY_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO6_UP_S2_ID = -1;
}
int CHFJPY_OCO4S1_UP_S2 = 0;
for (; CHFJPY_OCO4S1_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets1.Count; CHFJPY_OCO4S1_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets1[CHFJPY_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO4Sets1[CHFJPY_OCO4S1_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO4Sets1.RemoveAt(CHFJPY_OCO4S1_UP_S2);
CHFJPY_OCO4S1_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S2_UP_S2 = 0;
for (; CHFJPY_OCO4S2_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets2.Count; CHFJPY_OCO4S2_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets2[CHFJPY_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO4Sets2[CHFJPY_OCO4S2_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO4Sets2.RemoveAt(CHFJPY_OCO4S2_UP_S2);
CHFJPY_OCO4S2_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S3_UP_S2 = 0;
for (; CHFJPY_OCO4S3_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets3.Count; CHFJPY_OCO4S3_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets3[CHFJPY_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO4Sets3[CHFJPY_OCO4S3_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO4Sets3.RemoveAt(CHFJPY_OCO4S3_UP_S2);
CHFJPY_OCO4S3_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S4_UP_S2 = 0;
for (; CHFJPY_OCO4S4_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets4.Count; CHFJPY_OCO4S4_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets4[CHFJPY_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO4Sets4[CHFJPY_OCO4S4_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO4Sets4.RemoveAt(CHFJPY_OCO4S4_UP_S2);
CHFJPY_OCO4S4_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S5_UP_S2 = 0;
for (; CHFJPY_OCO4S5_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets5.Count; CHFJPY_OCO4S5_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets5[CHFJPY_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO4Sets5[CHFJPY_OCO4S5_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO4Sets5.RemoveAt(CHFJPY_OCO4S5_UP_S2);
CHFJPY_OCO4S5_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S6_UP_S2 = 0;
for (; CHFJPY_OCO4S6_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets6.Count; CHFJPY_OCO4S6_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets6[CHFJPY_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_UP_S2_OCO4Sets6[CHFJPY_OCO4S6_UP_S2].Filled();
Base.CHFJPY_UP_S2_OCO4Sets6.RemoveAt(CHFJPY_OCO4S6_UP_S2);
CHFJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_NZDJPY_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_NZDJPY_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("NZDJPY_DOWN_S2_OCO1")))
{
Base.NZDJPY_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDJPY_DOWN_S2_OCO2")))
{
Base.NZDJPY_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDJPY_DOWN_S2_OCO3")))
{
Base.NZDJPY_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDJPY_DOWN_S2_OCO4")))
{
Base.NZDJPY_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("NZDJPY_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.NZDJPY_OCO1_EO1_DOWN_S2)
Base.NZDJPY_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO2_DOWN_S2)
Base.NZDJPY_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO3_DOWN_S2)
Base.NZDJPY_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO4_DOWN_S2)
Base.NZDJPY_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO5_DOWN_S2)
Base.NZDJPY_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO6_DOWN_S2)
Base.NZDJPY_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDJPY_OCO1S1_DOWN_S2 = 0;
for (; NZDJPY_OCO1S1_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets1.Count; NZDJPY_OCO1S1_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets1[NZDJPY_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO1Sets1[NZDJPY_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_1__Time out_OCO1");
Base.NZDJPY_DOWN_S2_OCO1Sets1.Clear();
NZDJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO1S2_DOWN_S2 = 0;
for (; NZDJPY_OCO1S2_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets2.Count; NZDJPY_OCO1S2_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets2[NZDJPY_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO1Sets2[NZDJPY_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_2__Time out_OCO1");
Base.NZDJPY_DOWN_S2_OCO1Sets2.Clear();
NZDJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO1S3_DOWN_S2 = 0;
for (; NZDJPY_OCO1S3_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets3.Count; NZDJPY_OCO1S3_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets3[NZDJPY_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO1Sets3[NZDJPY_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_3__Time out_OCO1");
Base.NZDJPY_DOWN_S2_OCO1Sets3.Clear();
NZDJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO1S4_DOWN_S2 = 0;
for (; NZDJPY_OCO1S4_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets4.Count; NZDJPY_OCO1S4_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets4[NZDJPY_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO1Sets4[NZDJPY_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_4__Time out_OCO1");
Base.NZDJPY_DOWN_S2_OCO1Sets4.Clear();
NZDJPY_OCO1S4_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO1S5_DOWN_S2 = 0;
for (; NZDJPY_OCO1S5_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets5.Count; NZDJPY_OCO1S5_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets5[NZDJPY_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO1Sets5[NZDJPY_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_5__Time out_OCO1");
Base.NZDJPY_DOWN_S2_OCO1Sets5.Clear();
NZDJPY_OCO1S5_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO1S6_DOWN_S2 = 0;
for (; NZDJPY_OCO1S6_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets6.Count; NZDJPY_OCO1S6_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets6[NZDJPY_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO1Sets6[NZDJPY_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_6__Time out_OCO1");
Base.NZDJPY_DOWN_S2_OCO1Sets6.Clear();
NZDJPY_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO2_EO1_DOWN_S2)
Base.NZDJPY_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO2_DOWN_S2)
Base.NZDJPY_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO3_DOWN_S2)
Base.NZDJPY_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO4_DOWN_S2)
Base.NZDJPY_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO5_DOWN_S2)
Base.NZDJPY_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO6_DOWN_S2)
Base.NZDJPY_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDJPY_OCO2S1_DOWN_S2 = 0;
for (; NZDJPY_OCO2S1_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets1.Count; NZDJPY_OCO2S1_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets1[NZDJPY_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO2Sets1[NZDJPY_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_1__Time out_OCO2");
Base.NZDJPY_DOWN_S2_OCO2Sets1.Clear();
NZDJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO2S2_DOWN_S2 = 0;
for (; NZDJPY_OCO2S2_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets2.Count; NZDJPY_OCO2S2_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets2[NZDJPY_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO2Sets2[NZDJPY_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_2__Time out_OCO2");
Base.NZDJPY_DOWN_S2_OCO2Sets2.Clear();
NZDJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO2S3_DOWN_S2 = 0;
for (; NZDJPY_OCO2S3_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets3.Count; NZDJPY_OCO2S3_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets3[NZDJPY_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO2Sets3[NZDJPY_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_3__Time out_OCO2");
Base.NZDJPY_DOWN_S2_OCO2Sets3.Clear();
NZDJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO2S4_DOWN_S2 = 0;
for (; NZDJPY_OCO2S4_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets4.Count; NZDJPY_OCO2S4_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets4[NZDJPY_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO2Sets4[NZDJPY_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_4__Time out_OCO2");
Base.NZDJPY_DOWN_S2_OCO2Sets4.Clear();
NZDJPY_OCO2S4_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO2S5_DOWN_S2 = 0;
for (; NZDJPY_OCO2S5_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets5.Count; NZDJPY_OCO2S5_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets5[NZDJPY_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO2Sets5[NZDJPY_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_5__Time out_OCO2");
Base.NZDJPY_DOWN_S2_OCO2Sets5.Clear();
NZDJPY_OCO2S5_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO2S6_DOWN_S2 = 0;
for (; NZDJPY_OCO2S6_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets6.Count; NZDJPY_OCO2S6_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets6[NZDJPY_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO2Sets6[NZDJPY_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_6__Time out_OCO2");
Base.NZDJPY_DOWN_S2_OCO2Sets6.Clear();
NZDJPY_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO3_EO1_DOWN_S2)
Base.NZDJPY_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO2_DOWN_S2)
Base.NZDJPY_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO3_DOWN_S2)
Base.NZDJPY_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO4_DOWN_S2)
Base.NZDJPY_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO5_DOWN_S2)
Base.NZDJPY_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO6_DOWN_S2)
Base.NZDJPY_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDJPY_OCO3S1_DOWN_S2 = 0;
for (; NZDJPY_OCO3S1_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets1.Count; NZDJPY_OCO3S1_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets1[NZDJPY_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO3Sets1[NZDJPY_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_1__Time out_OCO3");
Base.NZDJPY_DOWN_S2_OCO3Sets1.Clear();
NZDJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO3S2_DOWN_S2 = 0;
for (; NZDJPY_OCO3S2_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets2.Count; NZDJPY_OCO3S2_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets2[NZDJPY_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO3Sets2[NZDJPY_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_2__Time out_OCO3");
Base.NZDJPY_DOWN_S2_OCO3Sets2.Clear();
NZDJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO3S3_DOWN_S2 = 0;
for (; NZDJPY_OCO3S3_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets3.Count; NZDJPY_OCO3S3_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets3[NZDJPY_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO3Sets3[NZDJPY_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_3__Time out_OCO3");
Base.NZDJPY_DOWN_S2_OCO3Sets3.Clear();
NZDJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO3S4_DOWN_S2 = 0;
for (; NZDJPY_OCO3S4_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets4.Count; NZDJPY_OCO3S4_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets4[NZDJPY_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO3Sets4[NZDJPY_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_4__Time out_OCO3");
Base.NZDJPY_DOWN_S2_OCO3Sets4.Clear();
NZDJPY_OCO3S4_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO3S5_DOWN_S2 = 0;
for (; NZDJPY_OCO3S5_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets5.Count; NZDJPY_OCO3S5_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets5[NZDJPY_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO3Sets5[NZDJPY_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_5__Time out_OCO3");
Base.NZDJPY_DOWN_S2_OCO3Sets5.Clear();
NZDJPY_OCO3S5_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO3S6_DOWN_S2 = 0;
for (; NZDJPY_OCO3S6_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets6.Count; NZDJPY_OCO3S6_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets6[NZDJPY_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO3Sets6[NZDJPY_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_6__Time out_OCO3");
Base.NZDJPY_DOWN_S2_OCO3Sets6.Clear();
NZDJPY_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO4_EO1_DOWN_S2)
Base.NZDJPY_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO2_DOWN_S2)
Base.NZDJPY_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO3_DOWN_S2)
Base.NZDJPY_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO4_DOWN_S2)
Base.NZDJPY_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO5_DOWN_S2)
Base.NZDJPY_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO6_DOWN_S2)
Base.NZDJPY_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDJPY_OCO4S1_DOWN_S2 = 0;
for (; NZDJPY_OCO4S1_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets1.Count; NZDJPY_OCO4S1_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets1[NZDJPY_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO4Sets1[NZDJPY_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_1__Time out_OCO4");
Base.NZDJPY_DOWN_S2_OCO4Sets1.Clear();
NZDJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO4S2_DOWN_S2 = 0;
for (; NZDJPY_OCO4S2_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets2.Count; NZDJPY_OCO4S2_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets2[NZDJPY_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO4Sets2[NZDJPY_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_2__Time out_OCO4");
Base.NZDJPY_DOWN_S2_OCO4Sets2.Clear();
NZDJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO4S3_DOWN_S2 = 0;
for (; NZDJPY_OCO4S3_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets3.Count; NZDJPY_OCO4S3_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets3[NZDJPY_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO4Sets3[NZDJPY_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_3__Time out_OCO4");
Base.NZDJPY_DOWN_S2_OCO4Sets3.Clear();
NZDJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO4S4_DOWN_S2 = 0;
for (; NZDJPY_OCO4S4_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets4.Count; NZDJPY_OCO4S4_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets4[NZDJPY_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO4Sets4[NZDJPY_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_4__Time out_OCO4");
Base.NZDJPY_DOWN_S2_OCO4Sets4.Clear();
NZDJPY_OCO4S4_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO4S5_DOWN_S2 = 0;
for (; NZDJPY_OCO4S5_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets5.Count; NZDJPY_OCO4S5_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets5[NZDJPY_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO4Sets5[NZDJPY_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_5__Time out_OCO4");
Base.NZDJPY_DOWN_S2_OCO4Sets5.Clear();
NZDJPY_OCO4S5_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO4S6_DOWN_S2 = 0;
for (; NZDJPY_OCO4S6_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets6.Count; NZDJPY_OCO4S6_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets6[NZDJPY_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDJPY_DOWN_S2_OCO4Sets6[NZDJPY_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_DOWN_S2_Entry_6__Time out_OCO4");
Base.NZDJPY_DOWN_S2_OCO4Sets6.Clear();
NZDJPY_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_NZDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_NZDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_NZDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_NZDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_NZDJPY_DOWN_S2 = DOWM_NZDJPY_DOWN_S2 || DOWT_NZDJPY_DOWN_S2 || DOWW_NZDJPY_DOWN_S2 || DOWTH_NZDJPY_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("NZDJPY"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.NZDJPY_OCO1_DOWN_S2_IsReady == false ||
Base.NZDJPY_OCO2_DOWN_S2_IsReady == false ||
Base.NZDJPY_OCO3_DOWN_S2_IsReady == false ||
Base.NZDJPY_OCO4_DOWN_S2_IsReady == false)
{
Base.NZDJPY_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.NZDJPY_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.NZDJPY_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.NZDJPY_OCO4_DOWN_S2_Monthly_IsReady = false;
}
NZDJPY_Signal_Condition_DOWN_S2 =
(
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//prices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[1] > prices_ASK_Close[0] * 0.02m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 && //yuhukj
//prices_BID_Open[0] - prices_ASK_Close[0] > 0 &&
//prices_BID_Close[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
pricesM_BID_Open[1] - pricesM_ASK_Close[1] > prices_BID_Close[0] * 0.001m &&
pricesM_BID_High[1] - pricesM_ASK_Close[1] > prices_BID_Close[0] * 0.001m &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
//prices_BID_Close[0] < pricesM_BID_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.03m
);
NZDJPY_DOWN_S2_SL = 1m;
NZDJPY_DOWN_S2_TP1 = 0.1m;
NZDJPY_DOWN_S2_TP2 = NZDJPY_DOWN_S2_SL * 0;
NZDJPY_DOWN_S2_TP3 = NZDJPY_DOWN_S2_SL * 0;
NZDJPY_DOWN_S2_TP4 = NZDJPY_DOWN_S2_SL * 0;
NZDJPY_DOWN_S2_TP5 = NZDJPY_DOWN_S2_SL * 0;
NZDJPY_DOWN_S2_TP6 = NZDJPY_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
NZDJPY_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
NZDJPY_quantity_SL_DOWN_S2 = NZDJPY_quantity_DOWN_S2;
NZDJPY_quantity_TP1_DOWN_S2 = (int)Math.Floor(NZDJPY_quantity_DOWN_S2 * 1m);
NZDJPY_quantity_TP2_DOWN_S2 = (int)Math.Floor(NZDJPY_quantity_TP1_DOWN_S2 * 0m);
NZDJPY_quantity_TP3_DOWN_S2 = (int)Math.Floor(NZDJPY_quantity_TP2_DOWN_S2 * 0m);
NZDJPY_quantity_TP4_DOWN_S2 = (int)Math.Floor(NZDJPY_quantity_TP3_DOWN_S2 * 0m);
NZDJPY_quantity_TP5_DOWN_S2 = (int)Math.Floor(NZDJPY_quantity_TP4_DOWN_S2 * 0m);
NZDJPY_quantity_TP6_DOWN_S2 = (int)Math.Floor(NZDJPY_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (NZDJPY_Signal_Condition_DOWN_S2 &&
DOWR_NZDJPY_DOWN_S2 &&
Base.NZDJPY_OCO1_DOWN_S2_IsReady == true &&
Base.NZDJPY_OCO1_DOWN_S2_Monthly_IsReady == false)
{
Base.NZDJPY_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP1_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP1_OCO1");
Base.NZDJPY_OCO1_EO1_DOWN_S2 = false;
Base.NZDJPY_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP2_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP2_OCO1");
Base.NZDJPY_OCO1_EO2_DOWN_S2 = false;
Base.NZDJPY_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP3_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP3_OCO1");
Base.NZDJPY_OCO1_EO3_DOWN_S2 = false;
Base.NZDJPY_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP4_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP4_OCO1");
Base.NZDJPY_OCO1_EO4_DOWN_S2 = false;
Base.NZDJPY_OCO1_DOWN_S2_IsReady = false;
if (Base.NZDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (NZDJPY_Signal_Condition_DOWN_S2 &&
DOWR_NZDJPY_DOWN_S2 &&
Base.NZDJPY_OCO2_DOWN_S2_IsReady == true &&
Base.NZDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.NZDJPY_OCO2_DOWN_S2_Monthly_IsReady == false)
{
Base.NZDJPY_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP1_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP1_OCO2");
Base.NZDJPY_OCO2_EO1_DOWN_S2 = false;
Base.NZDJPY_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP2_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP2_OCO2");
Base.NZDJPY_OCO2_EO2_DOWN_S2 = false;
Base.NZDJPY_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP3_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP3_OCO2");
Base.NZDJPY_OCO2_EO3_DOWN_S2 = false;
Base.NZDJPY_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP4_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP4_OCO2");
Base.NZDJPY_OCO2_EO4_DOWN_S2 = false;
Base.NZDJPY_OCO2_DOWN_S2_IsReady = false;
if (Base.NZDJPY_OCO2_DOWN_S2_IsReady == false && Base.NZDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (NZDJPY_Signal_Condition_DOWN_S2 &&
DOWR_NZDJPY_DOWN_S2 &&
Base.NZDJPY_OCO3_DOWN_S2_IsReady == true &&
Base.NZDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.NZDJPY_OCO2_DOWN_S2_IsReady == false &&
Base.NZDJPY_OCO3_DOWN_S2_Monthly_IsReady == false)
{
Base.NZDJPY_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP1_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP1_OCO3");
Base.NZDJPY_OCO3_EO1_DOWN_S2 = false;
Base.NZDJPY_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP2_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP2_OCO3");
Base.NZDJPY_OCO3_EO2_DOWN_S2 = false;
Base.NZDJPY_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP3_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP3_OCO3");
Base.NZDJPY_OCO3_EO3_DOWN_S2 = false;
Base.NZDJPY_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP4_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP4_OCO3");
Base.NZDJPY_OCO3_EO4_DOWN_S2 = false;
Base.NZDJPY_OCO3_DOWN_S2_IsReady = false;
if (Base.NZDJPY_OCO3_DOWN_S2_IsReady == false && Base.NZDJPY_OCO2_DOWN_S2_IsReady == false && Base.NZDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (NZDJPY_Signal_Condition_DOWN_S2 &&
DOWR_NZDJPY_DOWN_S2 &&
Base.NZDJPY_OCO4_DOWN_S2_IsReady == true &&
Base.NZDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.NZDJPY_OCO2_DOWN_S2_IsReady == false &&
Base.NZDJPY_OCO3_DOWN_S2_IsReady == false &&
Base.NZDJPY_OCO4_DOWN_S2_Monthly_IsReady == false)
{
Base.NZDJPY_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP1_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP1_OCO4");
Base.NZDJPY_OCO4_EO1_DOWN_S2 = false;
Base.NZDJPY_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP2_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP2_OCO4");
Base.NZDJPY_OCO4_EO2_DOWN_S2 = false;
Base.NZDJPY_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP3_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP3_OCO4");
Base.NZDJPY_OCO4_EO3_DOWN_S2 = false;
Base.NZDJPY_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDJPY_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP4_DOWN_S2, false,"NZDJPY_DOWN_S2_Entry_TP4_OCO4");
Base.NZDJPY_OCO4_EO4_DOWN_S2 = false;
Base.NZDJPY_OCO4_DOWN_S2_IsReady = false;
if (Base.NZDJPY_OCO4_DOWN_S2_IsReady == false && Base.NZDJPY_OCO3_DOWN_S2_IsReady == false && Base.NZDJPY_OCO2_DOWN_S2_IsReady == false && Base.NZDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_NZDCHF_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_NZDCHF_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("NZDCHF_DOWN_S2_OCO1")))
{
Base.NZDCHF_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCHF_DOWN_S2_OCO2")))
{
Base.NZDCHF_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCHF_DOWN_S2_OCO3")))
{
Base.NZDCHF_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCHF_DOWN_S2_OCO4")))
{
Base.NZDCHF_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("NZDCHF_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.NZDCHF_OCO1_EO1_DOWN_S2)
Base.NZDCHF_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO2_DOWN_S2)
Base.NZDCHF_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO3_DOWN_S2)
Base.NZDCHF_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO4_DOWN_S2)
Base.NZDCHF_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO5_DOWN_S2)
Base.NZDCHF_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO1_EO6_DOWN_S2)
Base.NZDCHF_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDCHF_OCO1S1_DOWN_S2 = 0;
for (; NZDCHF_OCO1S1_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets1.Count; NZDCHF_OCO1S1_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets1[NZDCHF_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO1Sets1[NZDCHF_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_1__Time out_OCO1");
Base.NZDCHF_DOWN_S2_OCO1Sets1.Clear();
NZDCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO1S2_DOWN_S2 = 0;
for (; NZDCHF_OCO1S2_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets2.Count; NZDCHF_OCO1S2_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets2[NZDCHF_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO1Sets2[NZDCHF_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_2__Time out_OCO1");
Base.NZDCHF_DOWN_S2_OCO1Sets2.Clear();
NZDCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO1S3_DOWN_S2 = 0;
for (; NZDCHF_OCO1S3_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets3.Count; NZDCHF_OCO1S3_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets3[NZDCHF_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO1Sets3[NZDCHF_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_3__Time out_OCO1");
Base.NZDCHF_DOWN_S2_OCO1Sets3.Clear();
NZDCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO1S4_DOWN_S2 = 0;
for (; NZDCHF_OCO1S4_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets4.Count; NZDCHF_OCO1S4_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets4[NZDCHF_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO1Sets4[NZDCHF_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_4__Time out_OCO1");
Base.NZDCHF_DOWN_S2_OCO1Sets4.Clear();
NZDCHF_OCO1S4_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO1S5_DOWN_S2 = 0;
for (; NZDCHF_OCO1S5_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets5.Count; NZDCHF_OCO1S5_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets5[NZDCHF_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO1Sets5[NZDCHF_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_5__Time out_OCO1");
Base.NZDCHF_DOWN_S2_OCO1Sets5.Clear();
NZDCHF_OCO1S5_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO1S6_DOWN_S2 = 0;
for (; NZDCHF_OCO1S6_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets6.Count; NZDCHF_OCO1S6_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets6[NZDCHF_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO1Sets6[NZDCHF_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_6__Time out_OCO1");
Base.NZDCHF_DOWN_S2_OCO1Sets6.Clear();
NZDCHF_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO2_EO1_DOWN_S2)
Base.NZDCHF_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO2_DOWN_S2)
Base.NZDCHF_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO3_DOWN_S2)
Base.NZDCHF_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO4_DOWN_S2)
Base.NZDCHF_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO5_DOWN_S2)
Base.NZDCHF_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO2_EO6_DOWN_S2)
Base.NZDCHF_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDCHF_OCO2S1_DOWN_S2 = 0;
for (; NZDCHF_OCO2S1_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets1.Count; NZDCHF_OCO2S1_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets1[NZDCHF_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO2Sets1[NZDCHF_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_1__Time out_OCO2");
Base.NZDCHF_DOWN_S2_OCO2Sets1.Clear();
NZDCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO2S2_DOWN_S2 = 0;
for (; NZDCHF_OCO2S2_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets2.Count; NZDCHF_OCO2S2_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets2[NZDCHF_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO2Sets2[NZDCHF_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_2__Time out_OCO2");
Base.NZDCHF_DOWN_S2_OCO2Sets2.Clear();
NZDCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO2S3_DOWN_S2 = 0;
for (; NZDCHF_OCO2S3_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets3.Count; NZDCHF_OCO2S3_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets3[NZDCHF_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO2Sets3[NZDCHF_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_3__Time out_OCO2");
Base.NZDCHF_DOWN_S2_OCO2Sets3.Clear();
NZDCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO2S4_DOWN_S2 = 0;
for (; NZDCHF_OCO2S4_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets4.Count; NZDCHF_OCO2S4_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets4[NZDCHF_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO2Sets4[NZDCHF_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_4__Time out_OCO2");
Base.NZDCHF_DOWN_S2_OCO2Sets4.Clear();
NZDCHF_OCO2S4_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO2S5_DOWN_S2 = 0;
for (; NZDCHF_OCO2S5_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets5.Count; NZDCHF_OCO2S5_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets5[NZDCHF_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO2Sets5[NZDCHF_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_5__Time out_OCO2");
Base.NZDCHF_DOWN_S2_OCO2Sets5.Clear();
NZDCHF_OCO2S5_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO2S6_DOWN_S2 = 0;
for (; NZDCHF_OCO2S6_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets6.Count; NZDCHF_OCO2S6_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets6[NZDCHF_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO2Sets6[NZDCHF_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_6__Time out_OCO2");
Base.NZDCHF_DOWN_S2_OCO2Sets6.Clear();
NZDCHF_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO3_EO1_DOWN_S2)
Base.NZDCHF_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO2_DOWN_S2)
Base.NZDCHF_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO3_DOWN_S2)
Base.NZDCHF_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO4_DOWN_S2)
Base.NZDCHF_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO5_DOWN_S2)
Base.NZDCHF_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO3_EO6_DOWN_S2)
Base.NZDCHF_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDCHF_OCO3S1_DOWN_S2 = 0;
for (; NZDCHF_OCO3S1_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets1.Count; NZDCHF_OCO3S1_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets1[NZDCHF_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO3Sets1[NZDCHF_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_1__Time out_OCO3");
Base.NZDCHF_DOWN_S2_OCO3Sets1.Clear();
NZDCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO3S2_DOWN_S2 = 0;
for (; NZDCHF_OCO3S2_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets2.Count; NZDCHF_OCO3S2_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets2[NZDCHF_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO3Sets2[NZDCHF_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_2__Time out_OCO3");
Base.NZDCHF_DOWN_S2_OCO3Sets2.Clear();
NZDCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO3S3_DOWN_S2 = 0;
for (; NZDCHF_OCO3S3_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets3.Count; NZDCHF_OCO3S3_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets3[NZDCHF_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO3Sets3[NZDCHF_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_3__Time out_OCO3");
Base.NZDCHF_DOWN_S2_OCO3Sets3.Clear();
NZDCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO3S4_DOWN_S2 = 0;
for (; NZDCHF_OCO3S4_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets4.Count; NZDCHF_OCO3S4_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets4[NZDCHF_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO3Sets4[NZDCHF_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_4__Time out_OCO3");
Base.NZDCHF_DOWN_S2_OCO3Sets4.Clear();
NZDCHF_OCO3S4_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO3S5_DOWN_S2 = 0;
for (; NZDCHF_OCO3S5_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets5.Count; NZDCHF_OCO3S5_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets5[NZDCHF_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO3Sets5[NZDCHF_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_5__Time out_OCO3");
Base.NZDCHF_DOWN_S2_OCO3Sets5.Clear();
NZDCHF_OCO3S5_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO3S6_DOWN_S2 = 0;
for (; NZDCHF_OCO3S6_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets6.Count; NZDCHF_OCO3S6_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets6[NZDCHF_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO3Sets6[NZDCHF_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_6__Time out_OCO3");
Base.NZDCHF_DOWN_S2_OCO3Sets6.Clear();
NZDCHF_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO4_EO1_DOWN_S2)
Base.NZDCHF_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO2_DOWN_S2)
Base.NZDCHF_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO3_DOWN_S2)
Base.NZDCHF_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO4_DOWN_S2)
Base.NZDCHF_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO5_DOWN_S2)
Base.NZDCHF_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDCHF_OCO4_EO6_DOWN_S2)
Base.NZDCHF_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDCHF_OCO4S1_DOWN_S2 = 0;
for (; NZDCHF_OCO4S1_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets1.Count; NZDCHF_OCO4S1_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets1[NZDCHF_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO4Sets1[NZDCHF_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_1__Time out_OCO4");
Base.NZDCHF_DOWN_S2_OCO4Sets1.Clear();
NZDCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO4S2_DOWN_S2 = 0;
for (; NZDCHF_OCO4S2_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets2.Count; NZDCHF_OCO4S2_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets2[NZDCHF_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO4Sets2[NZDCHF_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_2__Time out_OCO4");
Base.NZDCHF_DOWN_S2_OCO4Sets2.Clear();
NZDCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO4S3_DOWN_S2 = 0;
for (; NZDCHF_OCO4S3_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets3.Count; NZDCHF_OCO4S3_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets3[NZDCHF_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO4Sets3[NZDCHF_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_3__Time out_OCO4");
Base.NZDCHF_DOWN_S2_OCO4Sets3.Clear();
NZDCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO4S4_DOWN_S2 = 0;
for (; NZDCHF_OCO4S4_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets4.Count; NZDCHF_OCO4S4_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets4[NZDCHF_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO4Sets4[NZDCHF_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_4__Time out_OCO4");
Base.NZDCHF_DOWN_S2_OCO4Sets4.Clear();
NZDCHF_OCO4S4_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO4S5_DOWN_S2 = 0;
for (; NZDCHF_OCO4S5_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets5.Count; NZDCHF_OCO4S5_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets5[NZDCHF_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO4Sets5[NZDCHF_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_5__Time out_OCO4");
Base.NZDCHF_DOWN_S2_OCO4Sets5.Clear();
NZDCHF_OCO4S5_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO4S6_DOWN_S2 = 0;
for (; NZDCHF_OCO4S6_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets6.Count; NZDCHF_OCO4S6_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets6[NZDCHF_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDCHF_DOWN_S2_OCO4Sets6[NZDCHF_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCHF", order.Quantity, false, "NZDCHF_DOWN_S2_Entry_6__Time out_OCO4");
Base.NZDCHF_DOWN_S2_OCO4Sets6.Clear();
NZDCHF_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_NZDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_NZDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_NZDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_NZDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_NZDCHF_DOWN_S2 = DOWM_NZDCHF_DOWN_S2 || DOWT_NZDCHF_DOWN_S2 || DOWW_NZDCHF_DOWN_S2 || DOWTH_NZDCHF_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("NZDCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = (prices_ASK_Close[0] - prices_BID_Close[0]);
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.NZDCHF_OCO1_DOWN_S2_IsReady == false ||
Base.NZDCHF_OCO2_DOWN_S2_IsReady == false ||
Base.NZDCHF_OCO3_DOWN_S2_IsReady == false ||
Base.NZDCHF_OCO4_DOWN_S2_IsReady == false)
{
Base.NZDCHF_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.NZDCHF_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.NZDCHF_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.NZDCHF_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.NZDCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.NZDCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.NZDCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.NZDCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
}
NZDCHF_Signal_Condition_DOWN_S2 =
(
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.02m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//prices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.0165m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.0005m
);
NZDCHF_DOWN_S2_SL = 0.01m;
NZDCHF_DOWN_S2_TP1 = 0.002m;
NZDCHF_DOWN_S2_TP2 = NZDCHF_DOWN_S2_SL * 0;
NZDCHF_DOWN_S2_TP3 = NZDCHF_DOWN_S2_SL * 0;
NZDCHF_DOWN_S2_TP4 = NZDCHF_DOWN_S2_SL * 0;
NZDCHF_DOWN_S2_TP5 = NZDCHF_DOWN_S2_SL * 0;
NZDCHF_DOWN_S2_TP6 = NZDCHF_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
NZDCHF_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
NZDCHF_quantity_SL_DOWN_S2 = NZDCHF_quantity_DOWN_S2;
NZDCHF_quantity_TP1_DOWN_S2 = (int)Math.Floor(NZDCHF_quantity_DOWN_S2 * 1m);
NZDCHF_quantity_TP2_DOWN_S2 = (int)Math.Floor(NZDCHF_quantity_TP1_DOWN_S2 * 0m);
NZDCHF_quantity_TP3_DOWN_S2 = (int)Math.Floor(NZDCHF_quantity_TP2_DOWN_S2 * 0m);
NZDCHF_quantity_TP4_DOWN_S2 = (int)Math.Floor(NZDCHF_quantity_TP3_DOWN_S2 * 0m);
NZDCHF_quantity_TP5_DOWN_S2 = (int)Math.Floor(NZDCHF_quantity_TP4_DOWN_S2 * 0m);
NZDCHF_quantity_TP6_DOWN_S2 = (int)Math.Floor(NZDCHF_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (NZDCHF_Signal_Condition_DOWN_S2 &&
DOWR_NZDCHF_DOWN_S2 &&
Base.NZDCHF_OCO1_DOWN_S2_IsReady == true &&
Base.NZDCHF_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDCHF_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP1_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP1_OCO1");
Base.NZDCHF_OCO1_EO1_DOWN_S2 = false;
Base.NZDCHF_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP2_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP2_OCO1");
Base.NZDCHF_OCO1_EO2_DOWN_S2 = false;
Base.NZDCHF_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP3_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP3_OCO1");
Base.NZDCHF_OCO1_EO3_DOWN_S2 = false;
Base.NZDCHF_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP4_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP4_OCO1");
Base.NZDCHF_OCO1_EO4_DOWN_S2 = false;
Base.NZDCHF_OCO1_DOWN_S2_IsReady = false;
if (Base.NZDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (NZDCHF_Signal_Condition_DOWN_S2 &&
DOWR_NZDCHF_DOWN_S2 &&
Base.NZDCHF_OCO2_DOWN_S2_IsReady == true &&
Base.NZDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.NZDCHF_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDCHF_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP1_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP1_OCO2");
Base.NZDCHF_OCO2_EO1_DOWN_S2 = false;
Base.NZDCHF_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP2_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP2_OCO2");
Base.NZDCHF_OCO2_EO2_DOWN_S2 = false;
Base.NZDCHF_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP3_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP3_OCO2");
Base.NZDCHF_OCO2_EO3_DOWN_S2 = false;
Base.NZDCHF_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP4_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP4_OCO2");
Base.NZDCHF_OCO2_EO4_DOWN_S2 = false;
Base.NZDCHF_OCO2_DOWN_S2_IsReady = false;
if (Base.NZDCHF_OCO2_DOWN_S2_IsReady == false && Base.NZDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (NZDCHF_Signal_Condition_DOWN_S2 &&
DOWR_NZDCHF_DOWN_S2 &&
Base.NZDCHF_OCO3_DOWN_S2_IsReady == true &&
Base.NZDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.NZDCHF_OCO2_DOWN_S2_IsReady == false &&
Base.NZDCHF_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDCHF_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP1_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP1_OCO3");
Base.NZDCHF_OCO3_EO1_DOWN_S2 = false;
Base.NZDCHF_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP2_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP2_OCO3");
Base.NZDCHF_OCO3_EO2_DOWN_S2 = false;
Base.NZDCHF_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP3_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP3_OCO3");
Base.NZDCHF_OCO3_EO3_DOWN_S2 = false;
Base.NZDCHF_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP4_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP4_OCO3");
Base.NZDCHF_OCO3_EO4_DOWN_S2 = false;
Base.NZDCHF_OCO3_DOWN_S2_IsReady = false;
if (Base.NZDCHF_OCO3_DOWN_S2_IsReady == false && Base.NZDCHF_OCO2_DOWN_S2_IsReady == false && Base.NZDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (NZDCHF_Signal_Condition_DOWN_S2 &&
DOWR_NZDCHF_DOWN_S2 &&
Base.NZDCHF_OCO4_DOWN_S2_IsReady == true &&
Base.NZDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.NZDCHF_OCO2_DOWN_S2_IsReady == false &&
Base.NZDCHF_OCO3_DOWN_S2_IsReady == false &&
Base.NZDCHF_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDCHF_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP1_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP1_OCO4");
Base.NZDCHF_OCO4_EO1_DOWN_S2 = false;
Base.NZDCHF_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP2_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP2_OCO4");
Base.NZDCHF_OCO4_EO2_DOWN_S2 = false;
Base.NZDCHF_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP3_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP3_OCO4");
Base.NZDCHF_OCO4_EO3_DOWN_S2 = false;
Base.NZDCHF_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCHF_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCHF_quantity_TP4_DOWN_S2, false,"NZDCHF_DOWN_S2_Entry_TP4_OCO4");
Base.NZDCHF_OCO4_EO4_DOWN_S2 = false;
Base.NZDCHF_OCO4_DOWN_S2_IsReady = false;
if (Base.NZDCHF_OCO4_DOWN_S2_IsReady == false && Base.NZDCHF_OCO3_DOWN_S2_IsReady == false && Base.NZDCHF_OCO2_DOWN_S2_IsReady == false && Base.NZDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURUSD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURUSD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURUSD_UP_S2_OCO1")))
{
Base.EURUSD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURUSD_UP_S2_OCO2")))
{
Base.EURUSD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURUSD_UP_S2_OCO3")))
{
Base.EURUSD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURUSD_UP_S2_OCO4")))
{
Base.EURUSD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURUSD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURUSD_OCO1_EO1_UP_S2)
Base.EURUSD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO2_UP_S2)
Base.EURUSD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO3_UP_S2)
Base.EURUSD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO4_UP_S2)
Base.EURUSD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO5_UP_S2)
Base.EURUSD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO6_UP_S2)
Base.EURUSD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURUSD_UP_S2_OCO_DELAY_7DAY))
{
int EURUSD_OCO1S1_UP_S2 = 0;
for (; EURUSD_OCO1S1_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets1.Count; EURUSD_OCO1S1_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets1[EURUSD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO1Sets1[EURUSD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_1__Time out_OCO1");
Base.EURUSD_UP_S2_OCO1Sets1.Clear();
EURUSD_OCO1S1_UP_S2 = 0;
break;
}
int EURUSD_OCO1S2_UP_S2 = 0;
for (; EURUSD_OCO1S2_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets2.Count; EURUSD_OCO1S2_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets2[EURUSD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO1Sets2[EURUSD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_2__Time out_OCO1");
Base.EURUSD_UP_S2_OCO1Sets2.Clear();
EURUSD_OCO1S2_UP_S2 = 0;
break;
}
int EURUSD_OCO1S3_UP_S2 = 0;
for (; EURUSD_OCO1S3_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets3.Count; EURUSD_OCO1S3_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets3[EURUSD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO1Sets3[EURUSD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_3__Time out_OCO1");
Base.EURUSD_UP_S2_OCO1Sets3.Clear();
EURUSD_OCO1S3_UP_S2 = 0;
break;
}
int EURUSD_OCO1S4_UP_S2 = 0;
for (; EURUSD_OCO1S4_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets4.Count; EURUSD_OCO1S4_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets4[EURUSD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO1Sets4[EURUSD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_4__Time out_OCO1");
Base.EURUSD_UP_S2_OCO1Sets4.Clear();
EURUSD_OCO1S4_UP_S2 = 0;
break;
}
int EURUSD_OCO1S5_UP_S2 = 0;
for (; EURUSD_OCO1S5_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets5.Count; EURUSD_OCO1S5_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets5[EURUSD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO1Sets5[EURUSD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_5__Time out_OCO1");
Base.EURUSD_UP_S2_OCO1Sets5.Clear();
EURUSD_OCO1S5_UP_S2 = 0;
break;
}
int EURUSD_OCO1S6_UP_S2 = 0;
for (; EURUSD_OCO1S6_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets6.Count; EURUSD_OCO1S6_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets6[EURUSD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO1Sets6[EURUSD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_6__Time out_OCO1");
Base.EURUSD_UP_S2_OCO1Sets6.Clear();
EURUSD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO2_EO1_UP_S2)
Base.EURUSD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO2_UP_S2)
Base.EURUSD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO3_UP_S2)
Base.EURUSD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO4_UP_S2)
Base.EURUSD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO5_UP_S2)
Base.EURUSD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO6_UP_S2)
Base.EURUSD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURUSD_UP_S2_OCO_DELAY_7DAY))
{
int EURUSD_OCO2S1_UP_S2 = 0;
for (; EURUSD_OCO2S1_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets1.Count; EURUSD_OCO2S1_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets1[EURUSD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO2Sets1[EURUSD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_1__Time out_OCO2");
Base.EURUSD_UP_S2_OCO2Sets1.Clear();
EURUSD_OCO2S1_UP_S2 = 0;
break;
}
int EURUSD_OCO2S2_UP_S2 = 0;
for (; EURUSD_OCO2S2_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets2.Count; EURUSD_OCO2S2_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets2[EURUSD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO2Sets2[EURUSD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_2__Time out_OCO2");
Base.EURUSD_UP_S2_OCO2Sets2.Clear();
EURUSD_OCO2S2_UP_S2 = 0;
break;
}
int EURUSD_OCO2S3_UP_S2 = 0;
for (; EURUSD_OCO2S3_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets3.Count; EURUSD_OCO2S3_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets3[EURUSD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO2Sets3[EURUSD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_3__Time out_OCO2");
Base.EURUSD_UP_S2_OCO2Sets3.Clear();
EURUSD_OCO2S3_UP_S2 = 0;
break;
}
int EURUSD_OCO2S4_UP_S2 = 0;
for (; EURUSD_OCO2S4_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets4.Count; EURUSD_OCO2S4_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets4[EURUSD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO2Sets4[EURUSD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_4__Time out_OCO2");
Base.EURUSD_UP_S2_OCO2Sets4.Clear();
EURUSD_OCO2S4_UP_S2 = 0;
break;
}
int EURUSD_OCO2S5_UP_S2 = 0;
for (; EURUSD_OCO2S5_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets5.Count; EURUSD_OCO2S5_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets5[EURUSD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO2Sets5[EURUSD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_5__Time out_OCO2");
Base.EURUSD_UP_S2_OCO2Sets5.Clear();
EURUSD_OCO2S5_UP_S2 = 0;
break;
}
int EURUSD_OCO2S6_UP_S2 = 0;
for (; EURUSD_OCO2S6_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets6.Count; EURUSD_OCO2S6_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets6[EURUSD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO2Sets6[EURUSD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_6__Time out_OCO2");
Base.EURUSD_UP_S2_OCO2Sets6.Clear();
EURUSD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO3_EO1_UP_S2)
Base.EURUSD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO2_UP_S2)
Base.EURUSD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO3_UP_S2)
Base.EURUSD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO4_UP_S2)
Base.EURUSD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO5_UP_S2)
Base.EURUSD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO6_UP_S2)
Base.EURUSD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURUSD_UP_S2_OCO_DELAY_7DAY))
{
int EURUSD_OCO3S1_UP_S2 = 0;
for (; EURUSD_OCO3S1_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets1.Count; EURUSD_OCO3S1_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets1[EURUSD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO3Sets1[EURUSD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_1__Time out_OCO3");
Base.EURUSD_UP_S2_OCO3Sets1.Clear();
EURUSD_OCO3S1_UP_S2 = 0;
break;
}
int EURUSD_OCO3S2_UP_S2 = 0;
for (; EURUSD_OCO3S2_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets2.Count; EURUSD_OCO3S2_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets2[EURUSD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO3Sets2[EURUSD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_2__Time out_OCO3");
Base.EURUSD_UP_S2_OCO3Sets2.Clear();
EURUSD_OCO3S2_UP_S2 = 0;
break;
}
int EURUSD_OCO3S3_UP_S2 = 0;
for (; EURUSD_OCO3S3_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets3.Count; EURUSD_OCO3S3_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets3[EURUSD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO3Sets3[EURUSD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_3__Time out_OCO3");
Base.EURUSD_UP_S2_OCO3Sets3.Clear();
EURUSD_OCO3S3_UP_S2 = 0;
break;
}
int EURUSD_OCO3S4_UP_S2 = 0;
for (; EURUSD_OCO3S4_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets4.Count; EURUSD_OCO3S4_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets4[EURUSD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO3Sets4[EURUSD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_4__Time out_OCO3");
Base.EURUSD_UP_S2_OCO3Sets4.Clear();
EURUSD_OCO3S4_UP_S2 = 0;
break;
}
int EURUSD_OCO3S5_UP_S2 = 0;
for (; EURUSD_OCO3S5_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets5.Count; EURUSD_OCO3S5_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets5[EURUSD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO3Sets5[EURUSD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_5__Time out_OCO3");
Base.EURUSD_UP_S2_OCO3Sets5.Clear();
EURUSD_OCO3S5_UP_S2 = 0;
break;
}
int EURUSD_OCO3S6_UP_S2 = 0;
for (; EURUSD_OCO3S6_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets6.Count; EURUSD_OCO3S6_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets6[EURUSD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO3Sets6[EURUSD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_6__Time out_OCO3");
Base.EURUSD_UP_S2_OCO3Sets6.Clear();
EURUSD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO4_EO1_UP_S2)
Base.EURUSD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO2_UP_S2)
Base.EURUSD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO3_UP_S2)
Base.EURUSD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO4_UP_S2)
Base.EURUSD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO5_UP_S2)
Base.EURUSD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO6_UP_S2)
Base.EURUSD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURUSD_UP_S2_OCO_DELAY_7DAY))
{
int EURUSD_OCO4S1_UP_S2 = 0;
for (; EURUSD_OCO4S1_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets1.Count; EURUSD_OCO4S1_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets1[EURUSD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO4Sets1[EURUSD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_1__Time out_OCO4");
Base.EURUSD_UP_S2_OCO4Sets1.Clear();
EURUSD_OCO4S1_UP_S2 = 0;
break;
}
int EURUSD_OCO4S2_UP_S2 = 0;
for (; EURUSD_OCO4S2_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets2.Count; EURUSD_OCO4S2_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets2[EURUSD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO4Sets2[EURUSD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_2__Time out_OCO4");
Base.EURUSD_UP_S2_OCO4Sets2.Clear();
EURUSD_OCO4S2_UP_S2 = 0;
break;
}
int EURUSD_OCO4S3_UP_S2 = 0;
for (; EURUSD_OCO4S3_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets3.Count; EURUSD_OCO4S3_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets3[EURUSD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO4Sets3[EURUSD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_3__Time out_OCO4");
Base.EURUSD_UP_S2_OCO4Sets3.Clear();
EURUSD_OCO4S3_UP_S2 = 0;
break;
}
int EURUSD_OCO4S4_UP_S2 = 0;
for (; EURUSD_OCO4S4_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets4.Count; EURUSD_OCO4S4_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets4[EURUSD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO4Sets4[EURUSD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_4__Time out_OCO4");
Base.EURUSD_UP_S2_OCO4Sets4.Clear();
EURUSD_OCO4S4_UP_S2 = 0;
break;
}
int EURUSD_OCO4S5_UP_S2 = 0;
for (; EURUSD_OCO4S5_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets5.Count; EURUSD_OCO4S5_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets5[EURUSD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO4Sets5[EURUSD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_5__Time out_OCO4");
Base.EURUSD_UP_S2_OCO4Sets5.Clear();
EURUSD_OCO4S5_UP_S2 = 0;
break;
}
int EURUSD_OCO4S6_UP_S2 = 0;
for (; EURUSD_OCO4S6_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets6.Count; EURUSD_OCO4S6_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets6[EURUSD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.EURUSD_UP_S2_OCO4Sets6[EURUSD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_UP_S2_Entry_6__Time out_OCO4");
Base.EURUSD_UP_S2_OCO4Sets6.Clear();
EURUSD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURUSD_UP_S2 = DOWM_EURUSD_UP_S2 || DOWT_EURUSD_UP_S2 || DOWW_EURUSD_UP_S2 || DOWTH_EURUSD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURUSD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURUSD_OCO1_UP_S2_IsReady == false ||
Base.EURUSD_OCO2_UP_S2_IsReady == false ||
Base.EURUSD_OCO3_UP_S2_IsReady == false ||
Base.EURUSD_OCO4_UP_S2_IsReady == false)
{
Base.EURUSD_OCO1_UP_S2_Monthly_IsReady = false;
Base.EURUSD_OCO2_UP_S2_Monthly_IsReady = false;
Base.EURUSD_OCO3_UP_S2_Monthly_IsReady = false;
Base.EURUSD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURUSD_OCO1_UP_S2_Monthly_IsReady = true;
Base.EURUSD_OCO2_UP_S2_Monthly_IsReady = true;
Base.EURUSD_OCO3_UP_S2_Monthly_IsReady = true;
Base.EURUSD_OCO4_UP_S2_Monthly_IsReady = true;
}
EURUSD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*3
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURUSD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*3
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURUSD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*3
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (EURUSD_Signal_Condition_UP_1)
{
EURUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURUSD_Signal_Condition_UP_2)
{
EURUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURUSD_Signal_Condition_UP_3)
{
EURUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURUSD_Signal_Condition_UP_1)
{
EURUSD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (EURUSD_Signal_Condition_UP_2)
{
EURUSD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (EURUSD_Signal_Condition_UP_3)
{
EURUSD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
EURUSD_UP_S2_TP2 = EURUSD_UP_S2_SL * 0;
EURUSD_UP_S2_TP3 = EURUSD_UP_S2_SL * 0;
EURUSD_UP_S2_TP4 = EURUSD_UP_S2_SL * 0;
EURUSD_UP_S2_TP5 = EURUSD_UP_S2_SL * 0;
EURUSD_UP_S2_TP6 = EURUSD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
EURUSD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURUSD_quantity_SL_UP_S2 = EURUSD_quantity_UP_S2;
EURUSD_quantity_TP1_UP_S2 = (int)Math.Floor(EURUSD_quantity_UP_S2 * 1m);
EURUSD_quantity_TP2_UP_S2 = (int)Math.Floor(EURUSD_quantity_TP1_UP_S2 * 0m);
EURUSD_quantity_TP3_UP_S2 = (int)Math.Floor(EURUSD_quantity_TP2_UP_S2 * 0m);
EURUSD_quantity_TP4_UP_S2 = (int)Math.Floor(EURUSD_quantity_TP3_UP_S2 * 0m);
EURUSD_quantity_TP5_UP_S2 = (int)Math.Floor(EURUSD_quantity_TP4_UP_S2 * 0m);
EURUSD_quantity_TP6_UP_S2 = (int)Math.Floor(EURUSD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((EURUSD_Signal_Condition_UP_1 || EURUSD_Signal_Condition_UP_2 || EURUSD_Signal_Condition_UP_3) &&
DOWR_EURUSD_UP_S2 &&
Base.EURUSD_OCO1_UP_S2_IsReady == true &&
Base.EURUSD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.EURUSD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP1_UP_S2, false,"EURUSD_UP_S2_Entry_TP1_OCO1");
Base.EURUSD_OCO1_EO1_UP_S2 = false;
Base.EURUSD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP2_UP_S2, false,"EURUSD_UP_S2_Entry_TP2_OCO1");
Base.EURUSD_OCO1_EO2_UP_S2 = false;
Base.EURUSD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP3_UP_S2, false,"EURUSD_UP_S2_Entry_TP3_OCO1");
Base.EURUSD_OCO1_EO3_UP_S2 = false;
Base.EURUSD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP4_UP_S2, false,"EURUSD_UP_S2_Entry_TP4_OCO1");
Base.EURUSD_OCO1_EO4_UP_S2 = false;
Base.EURUSD_OCO1_UP_S2_IsReady = false;
if (Base.EURUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((EURUSD_Signal_Condition_UP_1 || EURUSD_Signal_Condition_UP_2 || EURUSD_Signal_Condition_UP_3) &&
DOWR_EURUSD_UP_S2 &&
Base.EURUSD_OCO1_UP_S2_IsReady == false &&
Base.EURUSD_OCO2_UP_S2_IsReady == true &&
Base.EURUSD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.EURUSD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP1_UP_S2, false,"EURUSD_UP_S2_Entry_TP1_OCO2");
Base.EURUSD_OCO2_EO1_UP_S2 = false;
Base.EURUSD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP2_UP_S2, false,"EURUSD_UP_S2_Entry_TP2_OCO2");
Base.EURUSD_OCO2_EO2_UP_S2 = false;
Base.EURUSD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP3_UP_S2, false,"EURUSD_UP_S2_Entry_TP3_OCO2");
Base.EURUSD_OCO2_EO3_UP_S2 = false;
Base.EURUSD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP4_UP_S2, false,"EURUSD_UP_S2_Entry_TP4_OCO2");
Base.EURUSD_OCO2_EO4_UP_S2 = false;
Base.EURUSD_OCO2_UP_S2_IsReady = false;
if (Base.EURUSD_OCO2_UP_S2_IsReady == false && Base.EURUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((EURUSD_Signal_Condition_UP_1 || EURUSD_Signal_Condition_UP_2 || EURUSD_Signal_Condition_UP_3) &&
DOWR_EURUSD_UP_S2 &&
Base.EURUSD_OCO1_UP_S2_IsReady == false &&
Base.EURUSD_OCO2_UP_S2_IsReady == false &&
Base.EURUSD_OCO3_UP_S2_IsReady == true &&
Base.EURUSD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.EURUSD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP1_UP_S2, false,"EURUSD_UP_S2_Entry_TP1_OCO3");
Base.EURUSD_OCO3_EO1_UP_S2 = false;
Base.EURUSD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP2_UP_S2, false,"EURUSD_UP_S2_Entry_TP2_OCO3");
Base.EURUSD_OCO3_EO2_UP_S2 = false;
Base.EURUSD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP3_UP_S2, false,"EURUSD_UP_S2_Entry_TP3_OCO3");
Base.EURUSD_OCO3_EO3_UP_S2 = false;
Base.EURUSD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP4_UP_S2, false,"EURUSD_UP_S2_Entry_TP4_OCO3");
Base.EURUSD_OCO3_EO4_UP_S2 = false;
Base.EURUSD_OCO3_UP_S2_IsReady = false;
if (Base.EURUSD_OCO3_UP_S2_IsReady == false && Base.EURUSD_OCO2_UP_S2_IsReady == false && Base.EURUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((EURUSD_Signal_Condition_UP_1 || EURUSD_Signal_Condition_UP_2 || EURUSD_Signal_Condition_UP_3) &&
DOWR_EURUSD_UP_S2 &&
Base.EURUSD_OCO1_UP_S2_IsReady == false &&
Base.EURUSD_OCO2_UP_S2_IsReady == false &&
Base.EURUSD_OCO3_UP_S2_IsReady == false &&
Base.EURUSD_OCO4_UP_S2_IsReady == true &&
Base.EURUSD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.EURUSD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP1_UP_S2, false,"EURUSD_UP_S2_Entry_TP1_OCO4");
Base.EURUSD_OCO4_EO1_UP_S2 = false;
Base.EURUSD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP2_UP_S2, false,"EURUSD_UP_S2_Entry_TP2_OCO4");
Base.EURUSD_OCO4_EO2_UP_S2 = false;
Base.EURUSD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP3_UP_S2, false,"EURUSD_UP_S2_Entry_TP3_OCO4");
Base.EURUSD_OCO4_EO3_UP_S2 = false;
Base.EURUSD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURUSD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP4_UP_S2, false,"EURUSD_UP_S2_Entry_TP4_OCO4");
Base.EURUSD_OCO4_EO4_UP_S2 = false;
Base.EURUSD_OCO4_UP_S2_IsReady = false;
if (Base.EURUSD_OCO4_UP_S2_IsReady == false && Base.EURUSD_OCO3_UP_S2_IsReady == false && Base.EURUSD_OCO2_UP_S2_IsReady == false && Base.EURUSD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_NZDJPY_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_NZDJPY_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("NZDJPY_UP_S2_OCO1")))
{
Base.NZDJPY_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDJPY_UP_S2_OCO2")))
{
Base.NZDJPY_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDJPY_UP_S2_OCO3")))
{
Base.NZDJPY_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDJPY_UP_S2_OCO4")))
{
Base.NZDJPY_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("NZDJPY_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.NZDJPY_OCO1_EO1_UP_S2)
Base.NZDJPY_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO2_UP_S2)
Base.NZDJPY_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO3_UP_S2)
Base.NZDJPY_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO4_UP_S2)
Base.NZDJPY_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO5_UP_S2)
Base.NZDJPY_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO1_EO6_UP_S2)
Base.NZDJPY_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDJPY_UP_S2_OCO_DELAY_7DAY))
{
int NZDJPY_OCO1S1_UP_S2 = 0;
for (; NZDJPY_OCO1S1_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets1.Count; NZDJPY_OCO1S1_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets1[NZDJPY_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO1Sets1[NZDJPY_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_1__Time out_OCO1");
Base.NZDJPY_UP_S2_OCO1Sets1.Clear();
NZDJPY_OCO1S1_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S2_UP_S2 = 0;
for (; NZDJPY_OCO1S2_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets2.Count; NZDJPY_OCO1S2_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets2[NZDJPY_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO1Sets2[NZDJPY_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_2__Time out_OCO1");
Base.NZDJPY_UP_S2_OCO1Sets2.Clear();
NZDJPY_OCO1S2_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S3_UP_S2 = 0;
for (; NZDJPY_OCO1S3_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets3.Count; NZDJPY_OCO1S3_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets3[NZDJPY_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO1Sets3[NZDJPY_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_3__Time out_OCO1");
Base.NZDJPY_UP_S2_OCO1Sets3.Clear();
NZDJPY_OCO1S3_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S4_UP_S2 = 0;
for (; NZDJPY_OCO1S4_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets4.Count; NZDJPY_OCO1S4_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets4[NZDJPY_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO1Sets4[NZDJPY_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_4__Time out_OCO1");
Base.NZDJPY_UP_S2_OCO1Sets4.Clear();
NZDJPY_OCO1S4_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S5_UP_S2 = 0;
for (; NZDJPY_OCO1S5_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets5.Count; NZDJPY_OCO1S5_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets5[NZDJPY_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO1Sets5[NZDJPY_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_5__Time out_OCO1");
Base.NZDJPY_UP_S2_OCO1Sets5.Clear();
NZDJPY_OCO1S5_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S6_UP_S2 = 0;
for (; NZDJPY_OCO1S6_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets6.Count; NZDJPY_OCO1S6_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets6[NZDJPY_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO1Sets6[NZDJPY_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_6__Time out_OCO1");
Base.NZDJPY_UP_S2_OCO1Sets6.Clear();
NZDJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO2_EO1_UP_S2)
Base.NZDJPY_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO2_UP_S2)
Base.NZDJPY_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO3_UP_S2)
Base.NZDJPY_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO4_UP_S2)
Base.NZDJPY_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO5_UP_S2)
Base.NZDJPY_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO2_EO6_UP_S2)
Base.NZDJPY_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDJPY_UP_S2_OCO_DELAY_7DAY))
{
int NZDJPY_OCO2S1_UP_S2 = 0;
for (; NZDJPY_OCO2S1_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets1.Count; NZDJPY_OCO2S1_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets1[NZDJPY_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO2Sets1[NZDJPY_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_1__Time out_OCO2");
Base.NZDJPY_UP_S2_OCO2Sets1.Clear();
NZDJPY_OCO2S1_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S2_UP_S2 = 0;
for (; NZDJPY_OCO2S2_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets2.Count; NZDJPY_OCO2S2_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets2[NZDJPY_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO2Sets2[NZDJPY_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_2__Time out_OCO2");
Base.NZDJPY_UP_S2_OCO2Sets2.Clear();
NZDJPY_OCO2S2_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S3_UP_S2 = 0;
for (; NZDJPY_OCO2S3_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets3.Count; NZDJPY_OCO2S3_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets3[NZDJPY_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO2Sets3[NZDJPY_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_3__Time out_OCO2");
Base.NZDJPY_UP_S2_OCO2Sets3.Clear();
NZDJPY_OCO2S3_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S4_UP_S2 = 0;
for (; NZDJPY_OCO2S4_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets4.Count; NZDJPY_OCO2S4_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets4[NZDJPY_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO2Sets4[NZDJPY_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_4__Time out_OCO2");
Base.NZDJPY_UP_S2_OCO2Sets4.Clear();
NZDJPY_OCO2S4_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S5_UP_S2 = 0;
for (; NZDJPY_OCO2S5_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets5.Count; NZDJPY_OCO2S5_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets5[NZDJPY_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO2Sets5[NZDJPY_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_5__Time out_OCO2");
Base.NZDJPY_UP_S2_OCO2Sets5.Clear();
NZDJPY_OCO2S5_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S6_UP_S2 = 0;
for (; NZDJPY_OCO2S6_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets6.Count; NZDJPY_OCO2S6_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets6[NZDJPY_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO2Sets6[NZDJPY_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_6__Time out_OCO2");
Base.NZDJPY_UP_S2_OCO2Sets6.Clear();
NZDJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO3_EO1_UP_S2)
Base.NZDJPY_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO2_UP_S2)
Base.NZDJPY_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO3_UP_S2)
Base.NZDJPY_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO4_UP_S2)
Base.NZDJPY_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO5_UP_S2)
Base.NZDJPY_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO3_EO6_UP_S2)
Base.NZDJPY_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDJPY_UP_S2_OCO_DELAY_7DAY))
{
int NZDJPY_OCO3S1_UP_S2 = 0;
for (; NZDJPY_OCO3S1_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets1.Count; NZDJPY_OCO3S1_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets1[NZDJPY_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO3Sets1[NZDJPY_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_1__Time out_OCO3");
Base.NZDJPY_UP_S2_OCO3Sets1.Clear();
NZDJPY_OCO3S1_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S2_UP_S2 = 0;
for (; NZDJPY_OCO3S2_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets2.Count; NZDJPY_OCO3S2_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets2[NZDJPY_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO3Sets2[NZDJPY_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_2__Time out_OCO3");
Base.NZDJPY_UP_S2_OCO3Sets2.Clear();
NZDJPY_OCO3S2_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S3_UP_S2 = 0;
for (; NZDJPY_OCO3S3_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets3.Count; NZDJPY_OCO3S3_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets3[NZDJPY_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO3Sets3[NZDJPY_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_3__Time out_OCO3");
Base.NZDJPY_UP_S2_OCO3Sets3.Clear();
NZDJPY_OCO3S3_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S4_UP_S2 = 0;
for (; NZDJPY_OCO3S4_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets4.Count; NZDJPY_OCO3S4_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets4[NZDJPY_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO3Sets4[NZDJPY_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_4__Time out_OCO3");
Base.NZDJPY_UP_S2_OCO3Sets4.Clear();
NZDJPY_OCO3S4_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S5_UP_S2 = 0;
for (; NZDJPY_OCO3S5_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets5.Count; NZDJPY_OCO3S5_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets5[NZDJPY_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO3Sets5[NZDJPY_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_5__Time out_OCO3");
Base.NZDJPY_UP_S2_OCO3Sets5.Clear();
NZDJPY_OCO3S5_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S6_UP_S2 = 0;
for (; NZDJPY_OCO3S6_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets6.Count; NZDJPY_OCO3S6_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets6[NZDJPY_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO3Sets6[NZDJPY_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_6__Time out_OCO3");
Base.NZDJPY_UP_S2_OCO3Sets6.Clear();
NZDJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO4_EO1_UP_S2)
Base.NZDJPY_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO2_UP_S2)
Base.NZDJPY_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO3_UP_S2)
Base.NZDJPY_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO4_UP_S2)
Base.NZDJPY_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO5_UP_S2)
Base.NZDJPY_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.NZDJPY_OCO4_EO6_UP_S2)
Base.NZDJPY_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDJPY_UP_S2_OCO_DELAY_7DAY))
{
int NZDJPY_OCO4S1_UP_S2 = 0;
for (; NZDJPY_OCO4S1_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets1.Count; NZDJPY_OCO4S1_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets1[NZDJPY_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO4Sets1[NZDJPY_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_1__Time out_OCO4");
Base.NZDJPY_UP_S2_OCO4Sets1.Clear();
NZDJPY_OCO4S1_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S2_UP_S2 = 0;
for (; NZDJPY_OCO4S2_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets2.Count; NZDJPY_OCO4S2_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets2[NZDJPY_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO4Sets2[NZDJPY_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_2__Time out_OCO4");
Base.NZDJPY_UP_S2_OCO4Sets2.Clear();
NZDJPY_OCO4S2_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S3_UP_S2 = 0;
for (; NZDJPY_OCO4S3_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets3.Count; NZDJPY_OCO4S3_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets3[NZDJPY_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO4Sets3[NZDJPY_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_3__Time out_OCO4");
Base.NZDJPY_UP_S2_OCO4Sets3.Clear();
NZDJPY_OCO4S3_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S4_UP_S2 = 0;
for (; NZDJPY_OCO4S4_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets4.Count; NZDJPY_OCO4S4_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets4[NZDJPY_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO4Sets4[NZDJPY_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_4__Time out_OCO4");
Base.NZDJPY_UP_S2_OCO4Sets4.Clear();
NZDJPY_OCO4S4_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S5_UP_S2 = 0;
for (; NZDJPY_OCO4S5_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets5.Count; NZDJPY_OCO4S5_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets5[NZDJPY_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO4Sets5[NZDJPY_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_5__Time out_OCO4");
Base.NZDJPY_UP_S2_OCO4Sets5.Clear();
NZDJPY_OCO4S5_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S6_UP_S2 = 0;
for (; NZDJPY_OCO4S6_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets6.Count; NZDJPY_OCO4S6_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets6[NZDJPY_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.NZDJPY_UP_S2_OCO4Sets6[NZDJPY_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("NZDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("NZDJPY", order.Quantity, false, "NZDJPY_UP_S2_Entry_6__Time out_OCO4");
Base.NZDJPY_UP_S2_OCO4Sets6.Clear();
NZDJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_NZDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_NZDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_NZDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_NZDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_NZDJPY_UP_S2 = DOWM_NZDJPY_UP_S2 || DOWT_NZDJPY_UP_S2 || DOWW_NZDJPY_UP_S2 || DOWTH_NZDJPY_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("NZDJPY") && SY1D.Symbol.ID.Market == Market.FXCM)
{
if(SY1D.BQ[0].Open != 0)
{
algorithm.Debug("ID : " + SY1D.Symbol.ID.Market);
}
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.NZDJPY_OCO1_UP_S2_IsReady == false ||
Base.NZDJPY_OCO2_UP_S2_IsReady == false ||
Base.NZDJPY_OCO3_UP_S2_IsReady == false ||
Base.NZDJPY_OCO4_UP_S2_IsReady == false)
{
Base.NZDJPY_OCO1_UP_S2_Monthly_IsReady = false;
Base.NZDJPY_OCO2_UP_S2_Monthly_IsReady = false;
Base.NZDJPY_OCO3_UP_S2_Monthly_IsReady = false;
Base.NZDJPY_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.NZDJPY_OCO1_UP_S2_Monthly_IsReady = true;
Base.NZDJPY_OCO2_UP_S2_Monthly_IsReady = true;
Base.NZDJPY_OCO3_UP_S2_Monthly_IsReady = true;
Base.NZDJPY_OCO4_UP_S2_Monthly_IsReady = true;
}
NZDJPY_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
NZDJPY_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
NZDJPY_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (NZDJPY_Signal_Condition_UP_1)
{
NZDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDJPY_Signal_Condition_UP_2)
{
NZDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDJPY_Signal_Condition_UP_3)
{
NZDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDJPY_Signal_Condition_UP_1)
{
NZDJPY_UP_S2_TP1 = Base.Yen_TP_1 ;
}
if (NZDJPY_Signal_Condition_UP_2)
{
NZDJPY_UP_S2_TP1 = Base.Yen_TP_2 ;
}
if (NZDJPY_Signal_Condition_UP_3)
{
NZDJPY_UP_S2_TP1 = Base.Yen_TP_3 ;
}
NZDJPY_UP_S2_TP2 = NZDJPY_UP_S2_SL * 0;
NZDJPY_UP_S2_TP3 = NZDJPY_UP_S2_SL * 0;
NZDJPY_UP_S2_TP4 = NZDJPY_UP_S2_SL * 0;
NZDJPY_UP_S2_TP5 = NZDJPY_UP_S2_SL * 0;
NZDJPY_UP_S2_TP6 = NZDJPY_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
NZDJPY_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
NZDJPY_quantity_SL_UP_S2 = NZDJPY_quantity_UP_S2;
NZDJPY_quantity_TP1_UP_S2 = (int)Math.Floor(NZDJPY_quantity_UP_S2 * 1m);
NZDJPY_quantity_TP2_UP_S2 = (int)Math.Floor(NZDJPY_quantity_TP1_UP_S2 * 0m);
NZDJPY_quantity_TP3_UP_S2 = (int)Math.Floor(NZDJPY_quantity_TP2_UP_S2 * 0m);
NZDJPY_quantity_TP4_UP_S2 = (int)Math.Floor(NZDJPY_quantity_TP3_UP_S2 * 0m);
NZDJPY_quantity_TP5_UP_S2 = (int)Math.Floor(NZDJPY_quantity_TP4_UP_S2 * 0m);
NZDJPY_quantity_TP6_UP_S2 = (int)Math.Floor(NZDJPY_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((NZDJPY_Signal_Condition_UP_1 || NZDJPY_Signal_Condition_UP_2 || NZDJPY_Signal_Condition_UP_3) &&
DOWR_NZDJPY_UP_S2 &&
Base.NZDJPY_OCO1_UP_S2_IsReady == true &&
Base.NZDJPY_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.NZDJPY_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP1_UP_S2, false,"NZDJPY_UP_S2_Entry_TP1_OCO1");
Base.NZDJPY_OCO1_EO1_UP_S2 = false;
Base.NZDJPY_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP2_UP_S2, false,"NZDJPY_UP_S2_Entry_TP2_OCO1");
Base.NZDJPY_OCO1_EO2_UP_S2 = false;
Base.NZDJPY_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP3_UP_S2, false,"NZDJPY_UP_S2_Entry_TP3_OCO1");
Base.NZDJPY_OCO1_EO3_UP_S2 = false;
Base.NZDJPY_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP4_UP_S2, false,"NZDJPY_UP_S2_Entry_TP4_OCO1");
Base.NZDJPY_OCO1_EO4_UP_S2 = false;
Base.NZDJPY_OCO1_UP_S2_IsReady = false;
if (Base.NZDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((NZDJPY_Signal_Condition_UP_1 || NZDJPY_Signal_Condition_UP_2 || NZDJPY_Signal_Condition_UP_3) &&
DOWR_NZDJPY_UP_S2 &&
Base.NZDJPY_OCO1_UP_S2_IsReady == false &&
Base.NZDJPY_OCO2_UP_S2_IsReady == true &&
Base.NZDJPY_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.NZDJPY_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP1_UP_S2, false,"NZDJPY_UP_S2_Entry_TP1_OCO2");
Base.NZDJPY_OCO2_EO1_UP_S2 = false;
Base.NZDJPY_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP2_UP_S2, false,"NZDJPY_UP_S2_Entry_TP2_OCO2");
Base.NZDJPY_OCO2_EO2_UP_S2 = false;
Base.NZDJPY_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP3_UP_S2, false,"NZDJPY_UP_S2_Entry_TP3_OCO2");
Base.NZDJPY_OCO2_EO3_UP_S2 = false;
Base.NZDJPY_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP4_UP_S2, false,"NZDJPY_UP_S2_Entry_TP4_OCO2");
Base.NZDJPY_OCO2_EO4_UP_S2 = false;
Base.NZDJPY_OCO2_UP_S2_IsReady = false;
if (Base.NZDJPY_OCO2_UP_S2_IsReady == false && Base.NZDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((NZDJPY_Signal_Condition_UP_1 || NZDJPY_Signal_Condition_UP_2 || NZDJPY_Signal_Condition_UP_3) &&
DOWR_NZDJPY_UP_S2 &&
Base.NZDJPY_OCO1_UP_S2_IsReady == false &&
Base.NZDJPY_OCO2_UP_S2_IsReady == false &&
Base.NZDJPY_OCO3_UP_S2_IsReady == true &&
Base.NZDJPY_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.NZDJPY_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP1_UP_S2, false,"NZDJPY_UP_S2_Entry_TP1_OCO3");
Base.NZDJPY_OCO3_EO1_UP_S2 = false;
Base.NZDJPY_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP2_UP_S2, false,"NZDJPY_UP_S2_Entry_TP2_OCO3");
Base.NZDJPY_OCO3_EO2_UP_S2 = false;
Base.NZDJPY_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP3_UP_S2, false,"NZDJPY_UP_S2_Entry_TP3_OCO3");
Base.NZDJPY_OCO3_EO3_UP_S2 = false;
Base.NZDJPY_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP4_UP_S2, false,"NZDJPY_UP_S2_Entry_TP4_OCO3");
Base.NZDJPY_OCO3_EO4_UP_S2 = false;
Base.NZDJPY_OCO3_UP_S2_IsReady = false;
if (Base.NZDJPY_OCO3_UP_S2_IsReady == false && Base.NZDJPY_OCO2_UP_S2_IsReady == false && Base.NZDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((NZDJPY_Signal_Condition_UP_1 || NZDJPY_Signal_Condition_UP_2 || NZDJPY_Signal_Condition_UP_3) &&
DOWR_NZDJPY_UP_S2 &&
Base.NZDJPY_OCO1_UP_S2_IsReady == false &&
Base.NZDJPY_OCO2_UP_S2_IsReady == false &&
Base.NZDJPY_OCO3_UP_S2_IsReady == false &&
Base.NZDJPY_OCO4_UP_S2_IsReady == true &&
Base.NZDJPY_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.NZDJPY_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP1_UP_S2, false,"NZDJPY_UP_S2_Entry_TP1_OCO4");
Base.NZDJPY_OCO4_EO1_UP_S2 = false;
Base.NZDJPY_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP2_UP_S2, false,"NZDJPY_UP_S2_Entry_TP2_OCO4");
Base.NZDJPY_OCO4_EO2_UP_S2 = false;
Base.NZDJPY_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP3_UP_S2, false,"NZDJPY_UP_S2_Entry_TP3_OCO4");
Base.NZDJPY_OCO4_EO3_UP_S2 = false;
Base.NZDJPY_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDJPY_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDJPY_quantity_TP4_UP_S2, false,"NZDJPY_UP_S2_Entry_TP4_OCO4");
Base.NZDJPY_OCO4_EO4_UP_S2 = false;
Base.NZDJPY_OCO4_UP_S2_IsReady = false;
if (Base.NZDJPY_OCO4_UP_S2_IsReady == false && Base.NZDJPY_OCO3_UP_S2_IsReady == false && Base.NZDJPY_OCO2_UP_S2_IsReady == false && Base.NZDJPY_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_NZDCAD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_NZDCAD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("NZDCAD_DOWN_S2_OCO1")))
{
Base.NZDCAD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCAD_DOWN_S2_OCO2")))
{
Base.NZDCAD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCAD_DOWN_S2_OCO3")))
{
Base.NZDCAD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCAD_DOWN_S2_OCO4")))
{
Base.NZDCAD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("NZDCAD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.NZDCAD_OCO1_EO1_DOWN_S2)
Base.NZDCAD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO2_DOWN_S2)
Base.NZDCAD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO3_DOWN_S2)
Base.NZDCAD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO4_DOWN_S2)
Base.NZDCAD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO5_DOWN_S2)
Base.NZDCAD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO6_DOWN_S2)
Base.NZDCAD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDCAD_OCO1S1_DOWN_S2 = 0;
for (; NZDCAD_OCO1S1_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets1.Count; NZDCAD_OCO1S1_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets1[NZDCAD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO1Sets1[NZDCAD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_1__Time out_OCO1");
Base.NZDCAD_DOWN_S2_OCO1Sets1.Clear();
NZDCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO1S2_DOWN_S2 = 0;
for (; NZDCAD_OCO1S2_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets2.Count; NZDCAD_OCO1S2_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets2[NZDCAD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO1Sets2[NZDCAD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_2__Time out_OCO1");
Base.NZDCAD_DOWN_S2_OCO1Sets2.Clear();
NZDCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO1S3_DOWN_S2 = 0;
for (; NZDCAD_OCO1S3_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets3.Count; NZDCAD_OCO1S3_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets3[NZDCAD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO1Sets3[NZDCAD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_3__Time out_OCO1");
Base.NZDCAD_DOWN_S2_OCO1Sets3.Clear();
NZDCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO1S4_DOWN_S2 = 0;
for (; NZDCAD_OCO1S4_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets4.Count; NZDCAD_OCO1S4_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets4[NZDCAD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO1Sets4[NZDCAD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_4__Time out_OCO1");
Base.NZDCAD_DOWN_S2_OCO1Sets4.Clear();
NZDCAD_OCO1S4_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO1S5_DOWN_S2 = 0;
for (; NZDCAD_OCO1S5_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets5.Count; NZDCAD_OCO1S5_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets5[NZDCAD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO1Sets5[NZDCAD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_5__Time out_OCO1");
Base.NZDCAD_DOWN_S2_OCO1Sets5.Clear();
NZDCAD_OCO1S5_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO1S6_DOWN_S2 = 0;
for (; NZDCAD_OCO1S6_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets6.Count; NZDCAD_OCO1S6_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets6[NZDCAD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO1Sets6[NZDCAD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_6__Time out_OCO1");
Base.NZDCAD_DOWN_S2_OCO1Sets6.Clear();
NZDCAD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO2_EO1_DOWN_S2)
Base.NZDCAD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO2_DOWN_S2)
Base.NZDCAD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO3_DOWN_S2)
Base.NZDCAD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO4_DOWN_S2)
Base.NZDCAD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO5_DOWN_S2)
Base.NZDCAD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO6_DOWN_S2)
Base.NZDCAD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDCAD_OCO2S1_DOWN_S2 = 0;
for (; NZDCAD_OCO2S1_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets1.Count; NZDCAD_OCO2S1_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets1[NZDCAD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO2Sets1[NZDCAD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_1__Time out_OCO2");
Base.NZDCAD_DOWN_S2_OCO2Sets1.Clear();
NZDCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO2S2_DOWN_S2 = 0;
for (; NZDCAD_OCO2S2_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets2.Count; NZDCAD_OCO2S2_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets2[NZDCAD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO2Sets2[NZDCAD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_2__Time out_OCO2");
Base.NZDCAD_DOWN_S2_OCO2Sets2.Clear();
NZDCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO2S3_DOWN_S2 = 0;
for (; NZDCAD_OCO2S3_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets3.Count; NZDCAD_OCO2S3_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets3[NZDCAD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO2Sets3[NZDCAD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_3__Time out_OCO2");
Base.NZDCAD_DOWN_S2_OCO2Sets3.Clear();
NZDCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO2S4_DOWN_S2 = 0;
for (; NZDCAD_OCO2S4_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets4.Count; NZDCAD_OCO2S4_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets4[NZDCAD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO2Sets4[NZDCAD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_4__Time out_OCO2");
Base.NZDCAD_DOWN_S2_OCO2Sets4.Clear();
NZDCAD_OCO2S4_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO2S5_DOWN_S2 = 0;
for (; NZDCAD_OCO2S5_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets5.Count; NZDCAD_OCO2S5_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets5[NZDCAD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO2Sets5[NZDCAD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_5__Time out_OCO2");
Base.NZDCAD_DOWN_S2_OCO2Sets5.Clear();
NZDCAD_OCO2S5_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO2S6_DOWN_S2 = 0;
for (; NZDCAD_OCO2S6_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets6.Count; NZDCAD_OCO2S6_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets6[NZDCAD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO2Sets6[NZDCAD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_6__Time out_OCO2");
Base.NZDCAD_DOWN_S2_OCO2Sets6.Clear();
NZDCAD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO3_EO1_DOWN_S2)
Base.NZDCAD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO2_DOWN_S2)
Base.NZDCAD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO3_DOWN_S2)
Base.NZDCAD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO4_DOWN_S2)
Base.NZDCAD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO5_DOWN_S2)
Base.NZDCAD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO6_DOWN_S2)
Base.NZDCAD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDCAD_OCO3S1_DOWN_S2 = 0;
for (; NZDCAD_OCO3S1_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets1.Count; NZDCAD_OCO3S1_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets1[NZDCAD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO3Sets1[NZDCAD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_1__Time out_OCO3");
Base.NZDCAD_DOWN_S2_OCO3Sets1.Clear();
NZDCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO3S2_DOWN_S2 = 0;
for (; NZDCAD_OCO3S2_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets2.Count; NZDCAD_OCO3S2_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets2[NZDCAD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO3Sets2[NZDCAD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_2__Time out_OCO3");
Base.NZDCAD_DOWN_S2_OCO3Sets2.Clear();
NZDCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO3S3_DOWN_S2 = 0;
for (; NZDCAD_OCO3S3_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets3.Count; NZDCAD_OCO3S3_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets3[NZDCAD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO3Sets3[NZDCAD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_3__Time out_OCO3");
Base.NZDCAD_DOWN_S2_OCO3Sets3.Clear();
NZDCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO3S4_DOWN_S2 = 0;
for (; NZDCAD_OCO3S4_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets4.Count; NZDCAD_OCO3S4_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets4[NZDCAD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO3Sets4[NZDCAD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_4__Time out_OCO3");
Base.NZDCAD_DOWN_S2_OCO3Sets4.Clear();
NZDCAD_OCO3S4_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO3S5_DOWN_S2 = 0;
for (; NZDCAD_OCO3S5_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets5.Count; NZDCAD_OCO3S5_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets5[NZDCAD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO3Sets5[NZDCAD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_5__Time out_OCO3");
Base.NZDCAD_DOWN_S2_OCO3Sets5.Clear();
NZDCAD_OCO3S5_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO3S6_DOWN_S2 = 0;
for (; NZDCAD_OCO3S6_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets6.Count; NZDCAD_OCO3S6_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets6[NZDCAD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO3Sets6[NZDCAD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_6__Time out_OCO3");
Base.NZDCAD_DOWN_S2_OCO3Sets6.Clear();
NZDCAD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO4_EO1_DOWN_S2)
Base.NZDCAD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO2_DOWN_S2)
Base.NZDCAD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO3_DOWN_S2)
Base.NZDCAD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO4_DOWN_S2)
Base.NZDCAD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO5_DOWN_S2)
Base.NZDCAD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO6_DOWN_S2)
Base.NZDCAD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int NZDCAD_OCO4S1_DOWN_S2 = 0;
for (; NZDCAD_OCO4S1_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets1.Count; NZDCAD_OCO4S1_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets1[NZDCAD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO4Sets1[NZDCAD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_1__Time out_OCO4");
Base.NZDCAD_DOWN_S2_OCO4Sets1.Clear();
NZDCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO4S2_DOWN_S2 = 0;
for (; NZDCAD_OCO4S2_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets2.Count; NZDCAD_OCO4S2_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets2[NZDCAD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO4Sets2[NZDCAD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_2__Time out_OCO4");
Base.NZDCAD_DOWN_S2_OCO4Sets2.Clear();
NZDCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO4S3_DOWN_S2 = 0;
for (; NZDCAD_OCO4S3_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets3.Count; NZDCAD_OCO4S3_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets3[NZDCAD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO4Sets3[NZDCAD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_3__Time out_OCO4");
Base.NZDCAD_DOWN_S2_OCO4Sets3.Clear();
NZDCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO4S4_DOWN_S2 = 0;
for (; NZDCAD_OCO4S4_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets4.Count; NZDCAD_OCO4S4_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets4[NZDCAD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO4Sets4[NZDCAD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_4__Time out_OCO4");
Base.NZDCAD_DOWN_S2_OCO4Sets4.Clear();
NZDCAD_OCO4S4_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO4S5_DOWN_S2 = 0;
for (; NZDCAD_OCO4S5_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets5.Count; NZDCAD_OCO4S5_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets5[NZDCAD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO4Sets5[NZDCAD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_5__Time out_OCO4");
Base.NZDCAD_DOWN_S2_OCO4Sets5.Clear();
NZDCAD_OCO4S5_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO4S6_DOWN_S2 = 0;
for (; NZDCAD_OCO4S6_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets6.Count; NZDCAD_OCO4S6_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets6[NZDCAD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.NZDCAD_DOWN_S2_OCO4Sets6[NZDCAD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_DOWN_S2_Entry_6__Time out_OCO4");
Base.NZDCAD_DOWN_S2_OCO4Sets6.Clear();
NZDCAD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_NZDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_NZDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_NZDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_NZDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_NZDCAD_DOWN_S2 = DOWM_NZDCAD_DOWN_S2 || DOWT_NZDCAD_DOWN_S2 || DOWW_NZDCAD_DOWN_S2 || DOWTH_NZDCAD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("NZDCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.NZDCAD_OCO1_DOWN_S2_IsReady == false ||
Base.NZDCAD_OCO2_DOWN_S2_IsReady == false ||
Base.NZDCAD_OCO3_DOWN_S2_IsReady == false ||
Base.NZDCAD_OCO4_DOWN_S2_IsReady == false)
{
Base.NZDCAD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.NZDCAD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.NZDCAD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.NZDCAD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.NZDCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.NZDCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.NZDCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.NZDCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
NZDCAD_Signal_Condition_DOWN_S2 =
(
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//prices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[1] > prices_ASK_Close[0] * 0.02m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 && //yuhukj
//prices_BID_Open[0] - prices_ASK_Close[0] > 0 &&
//prices_BID_Close[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
pricesM_BID_Open[1] - pricesM_ASK_Close[1] > 0 &&
pricesM_BID_High[1] - pricesM_ASK_Close[1] > prices_BID_Close[0] * 0.03m &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
//prices_BID_Close[0] < pricesM_BID_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.001m
);
NZDCAD_DOWN_S2_SL = 0.02m;
NZDCAD_DOWN_S2_TP1 = 0.0015m;
NZDCAD_DOWN_S2_TP2 = NZDCAD_DOWN_S2_SL * 0;
NZDCAD_DOWN_S2_TP3 = NZDCAD_DOWN_S2_SL * 0;
NZDCAD_DOWN_S2_TP4 = NZDCAD_DOWN_S2_SL * 0;
NZDCAD_DOWN_S2_TP5 = NZDCAD_DOWN_S2_SL * 0;
NZDCAD_DOWN_S2_TP6 = NZDCAD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
NZDCAD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
NZDCAD_quantity_SL_DOWN_S2 = NZDCAD_quantity_DOWN_S2;
NZDCAD_quantity_TP1_DOWN_S2 = (int)Math.Floor(NZDCAD_quantity_DOWN_S2 * 1m);
NZDCAD_quantity_TP2_DOWN_S2 = (int)Math.Floor(NZDCAD_quantity_TP1_DOWN_S2 * 0m);
NZDCAD_quantity_TP3_DOWN_S2 = (int)Math.Floor(NZDCAD_quantity_TP2_DOWN_S2 * 0m);
NZDCAD_quantity_TP4_DOWN_S2 = (int)Math.Floor(NZDCAD_quantity_TP3_DOWN_S2 * 0m);
NZDCAD_quantity_TP5_DOWN_S2 = (int)Math.Floor(NZDCAD_quantity_TP4_DOWN_S2 * 0m);
NZDCAD_quantity_TP6_DOWN_S2 = (int)Math.Floor(NZDCAD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (NZDCAD_Signal_Condition_DOWN_S2 &&
DOWR_NZDCAD_DOWN_S2 &&
Base.NZDCAD_OCO1_DOWN_S2_IsReady == true &&
Base.NZDCAD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDCAD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP1_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP1_OCO1");
Base.NZDCAD_OCO1_EO1_DOWN_S2 = false;
Base.NZDCAD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP2_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP2_OCO1");
Base.NZDCAD_OCO1_EO2_DOWN_S2 = false;
Base.NZDCAD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP3_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP3_OCO1");
Base.NZDCAD_OCO1_EO3_DOWN_S2 = false;
Base.NZDCAD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP4_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP4_OCO1");
Base.NZDCAD_OCO1_EO4_DOWN_S2 = false;
Base.NZDCAD_OCO1_DOWN_S2_IsReady = false;
if (Base.NZDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (NZDCAD_Signal_Condition_DOWN_S2 &&
DOWR_NZDCAD_DOWN_S2 &&
Base.NZDCAD_OCO2_DOWN_S2_IsReady == true &&
Base.NZDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.NZDCAD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDCAD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP1_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP1_OCO2");
Base.NZDCAD_OCO2_EO1_DOWN_S2 = false;
Base.NZDCAD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP2_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP2_OCO2");
Base.NZDCAD_OCO2_EO2_DOWN_S2 = false;
Base.NZDCAD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP3_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP3_OCO2");
Base.NZDCAD_OCO2_EO3_DOWN_S2 = false;
Base.NZDCAD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP4_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP4_OCO2");
Base.NZDCAD_OCO2_EO4_DOWN_S2 = false;
Base.NZDCAD_OCO2_DOWN_S2_IsReady = false;
if (Base.NZDCAD_OCO2_DOWN_S2_IsReady == false && Base.NZDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (NZDCAD_Signal_Condition_DOWN_S2 &&
DOWR_NZDCAD_DOWN_S2 &&
Base.NZDCAD_OCO3_DOWN_S2_IsReady == true &&
Base.NZDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.NZDCAD_OCO2_DOWN_S2_IsReady == false &&
Base.NZDCAD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDCAD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP1_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP1_OCO3");
Base.NZDCAD_OCO3_EO1_DOWN_S2 = false;
Base.NZDCAD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP2_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP2_OCO3");
Base.NZDCAD_OCO3_EO2_DOWN_S2 = false;
Base.NZDCAD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP3_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP3_OCO3");
Base.NZDCAD_OCO3_EO3_DOWN_S2 = false;
Base.NZDCAD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP4_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP4_OCO3");
Base.NZDCAD_OCO3_EO4_DOWN_S2 = false;
Base.NZDCAD_OCO3_DOWN_S2_IsReady = false;
if (Base.NZDCAD_OCO3_DOWN_S2_IsReady == false && Base.NZDCAD_OCO2_DOWN_S2_IsReady == false && Base.NZDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (NZDCAD_Signal_Condition_DOWN_S2 &&
DOWR_NZDCAD_DOWN_S2 &&
Base.NZDCAD_OCO4_DOWN_S2_IsReady == true &&
Base.NZDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.NZDCAD_OCO2_DOWN_S2_IsReady == false &&
Base.NZDCAD_OCO3_DOWN_S2_IsReady == false &&
Base.NZDCAD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.NZDCAD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP1_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP1_OCO4");
Base.NZDCAD_OCO4_EO1_DOWN_S2 = false;
Base.NZDCAD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP2_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP2_OCO4");
Base.NZDCAD_OCO4_EO2_DOWN_S2 = false;
Base.NZDCAD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP3_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP3_OCO4");
Base.NZDCAD_OCO4_EO3_DOWN_S2 = false;
Base.NZDCAD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
NZDCAD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP4_DOWN_S2, false,"NZDCAD_DOWN_S2_Entry_TP4_OCO4");
Base.NZDCAD_OCO4_EO4_DOWN_S2 = false;
Base.NZDCAD_OCO4_DOWN_S2_IsReady = false;
if (Base.NZDCAD_OCO4_DOWN_S2_IsReady == false && Base.NZDCAD_OCO3_DOWN_S2_IsReady == false && Base.NZDCAD_OCO2_DOWN_S2_IsReady == false && Base.NZDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDUSD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDUSD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDUSD_DOWN_S2_OCO1")))
{
Base.AUDUSD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDUSD_DOWN_S2_OCO2")))
{
Base.AUDUSD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDUSD_DOWN_S2_OCO3")))
{
Base.AUDUSD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDUSD_DOWN_S2_OCO4")))
{
Base.AUDUSD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDUSD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDUSD_OCO1_EO1_DOWN_S2)
Base.AUDUSD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO2_DOWN_S2)
Base.AUDUSD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO3_DOWN_S2)
Base.AUDUSD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO4_DOWN_S2)
Base.AUDUSD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO5_DOWN_S2)
Base.AUDUSD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO6_DOWN_S2)
Base.AUDUSD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDUSD_OCO1S1_DOWN_S2 = 0;
for (; AUDUSD_OCO1S1_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets1.Count; AUDUSD_OCO1S1_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets1[AUDUSD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO1Sets1[AUDUSD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_1__Time out_OCO1");
Base.AUDUSD_DOWN_S2_OCO1Sets1.Clear();
AUDUSD_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO1S2_DOWN_S2 = 0;
for (; AUDUSD_OCO1S2_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets2.Count; AUDUSD_OCO1S2_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets2[AUDUSD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO1Sets2[AUDUSD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_2__Time out_OCO1");
Base.AUDUSD_DOWN_S2_OCO1Sets2.Clear();
AUDUSD_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO1S3_DOWN_S2 = 0;
for (; AUDUSD_OCO1S3_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets3.Count; AUDUSD_OCO1S3_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets3[AUDUSD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO1Sets3[AUDUSD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_3__Time out_OCO1");
Base.AUDUSD_DOWN_S2_OCO1Sets3.Clear();
AUDUSD_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO1S4_DOWN_S2 = 0;
for (; AUDUSD_OCO1S4_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets4.Count; AUDUSD_OCO1S4_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets4[AUDUSD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO1Sets4[AUDUSD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_4__Time out_OCO1");
Base.AUDUSD_DOWN_S2_OCO1Sets4.Clear();
AUDUSD_OCO1S4_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO1S5_DOWN_S2 = 0;
for (; AUDUSD_OCO1S5_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets5.Count; AUDUSD_OCO1S5_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets5[AUDUSD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO1Sets5[AUDUSD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_5__Time out_OCO1");
Base.AUDUSD_DOWN_S2_OCO1Sets5.Clear();
AUDUSD_OCO1S5_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO1S6_DOWN_S2 = 0;
for (; AUDUSD_OCO1S6_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO1Sets6.Count; AUDUSD_OCO1S6_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO1Sets6[AUDUSD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO1Sets6[AUDUSD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_6__Time out_OCO1");
Base.AUDUSD_DOWN_S2_OCO1Sets6.Clear();
AUDUSD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO2_EO1_DOWN_S2)
Base.AUDUSD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO2_DOWN_S2)
Base.AUDUSD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO3_DOWN_S2)
Base.AUDUSD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO4_DOWN_S2)
Base.AUDUSD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO5_DOWN_S2)
Base.AUDUSD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO6_DOWN_S2)
Base.AUDUSD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDUSD_OCO2S1_DOWN_S2 = 0;
for (; AUDUSD_OCO2S1_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets1.Count; AUDUSD_OCO2S1_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets1[AUDUSD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO2Sets1[AUDUSD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_1__Time out_OCO2");
Base.AUDUSD_DOWN_S2_OCO2Sets1.Clear();
AUDUSD_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO2S2_DOWN_S2 = 0;
for (; AUDUSD_OCO2S2_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets2.Count; AUDUSD_OCO2S2_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets2[AUDUSD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO2Sets2[AUDUSD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_2__Time out_OCO2");
Base.AUDUSD_DOWN_S2_OCO2Sets2.Clear();
AUDUSD_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO2S3_DOWN_S2 = 0;
for (; AUDUSD_OCO2S3_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets3.Count; AUDUSD_OCO2S3_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets3[AUDUSD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO2Sets3[AUDUSD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_3__Time out_OCO2");
Base.AUDUSD_DOWN_S2_OCO2Sets3.Clear();
AUDUSD_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO2S4_DOWN_S2 = 0;
for (; AUDUSD_OCO2S4_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets4.Count; AUDUSD_OCO2S4_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets4[AUDUSD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO2Sets4[AUDUSD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_4__Time out_OCO2");
Base.AUDUSD_DOWN_S2_OCO2Sets4.Clear();
AUDUSD_OCO2S4_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO2S5_DOWN_S2 = 0;
for (; AUDUSD_OCO2S5_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets5.Count; AUDUSD_OCO2S5_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets5[AUDUSD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO2Sets5[AUDUSD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_5__Time out_OCO2");
Base.AUDUSD_DOWN_S2_OCO2Sets5.Clear();
AUDUSD_OCO2S5_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO2S6_DOWN_S2 = 0;
for (; AUDUSD_OCO2S6_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO2Sets6.Count; AUDUSD_OCO2S6_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO2Sets6[AUDUSD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO2Sets6[AUDUSD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_6__Time out_OCO2");
Base.AUDUSD_DOWN_S2_OCO2Sets6.Clear();
AUDUSD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO3_EO1_DOWN_S2)
Base.AUDUSD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO2_DOWN_S2)
Base.AUDUSD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO3_DOWN_S2)
Base.AUDUSD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO4_DOWN_S2)
Base.AUDUSD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO5_DOWN_S2)
Base.AUDUSD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO6_DOWN_S2)
Base.AUDUSD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDUSD_OCO3S1_DOWN_S2 = 0;
for (; AUDUSD_OCO3S1_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets1.Count; AUDUSD_OCO3S1_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets1[AUDUSD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO3Sets1[AUDUSD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_1__Time out_OCO3");
Base.AUDUSD_DOWN_S2_OCO3Sets1.Clear();
AUDUSD_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO3S2_DOWN_S2 = 0;
for (; AUDUSD_OCO3S2_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets2.Count; AUDUSD_OCO3S2_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets2[AUDUSD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO3Sets2[AUDUSD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_2__Time out_OCO3");
Base.AUDUSD_DOWN_S2_OCO3Sets2.Clear();
AUDUSD_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO3S3_DOWN_S2 = 0;
for (; AUDUSD_OCO3S3_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets3.Count; AUDUSD_OCO3S3_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets3[AUDUSD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO3Sets3[AUDUSD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_3__Time out_OCO3");
Base.AUDUSD_DOWN_S2_OCO3Sets3.Clear();
AUDUSD_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO3S4_DOWN_S2 = 0;
for (; AUDUSD_OCO3S4_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets4.Count; AUDUSD_OCO3S4_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets4[AUDUSD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO3Sets4[AUDUSD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_4__Time out_OCO3");
Base.AUDUSD_DOWN_S2_OCO3Sets4.Clear();
AUDUSD_OCO3S4_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO3S5_DOWN_S2 = 0;
for (; AUDUSD_OCO3S5_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets5.Count; AUDUSD_OCO3S5_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets5[AUDUSD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO3Sets5[AUDUSD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_5__Time out_OCO3");
Base.AUDUSD_DOWN_S2_OCO3Sets5.Clear();
AUDUSD_OCO3S5_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO3S6_DOWN_S2 = 0;
for (; AUDUSD_OCO3S6_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO3Sets6.Count; AUDUSD_OCO3S6_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO3Sets6[AUDUSD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO3Sets6[AUDUSD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_6__Time out_OCO3");
Base.AUDUSD_DOWN_S2_OCO3Sets6.Clear();
AUDUSD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO4_EO1_DOWN_S2)
Base.AUDUSD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO2_DOWN_S2)
Base.AUDUSD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO3_DOWN_S2)
Base.AUDUSD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO4_DOWN_S2)
Base.AUDUSD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO5_DOWN_S2)
Base.AUDUSD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO6_DOWN_S2)
Base.AUDUSD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDUSD_OCO4S1_DOWN_S2 = 0;
for (; AUDUSD_OCO4S1_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets1.Count; AUDUSD_OCO4S1_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets1[AUDUSD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO4Sets1[AUDUSD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_1__Time out_OCO4");
Base.AUDUSD_DOWN_S2_OCO4Sets1.Clear();
AUDUSD_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO4S2_DOWN_S2 = 0;
for (; AUDUSD_OCO4S2_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets2.Count; AUDUSD_OCO4S2_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets2[AUDUSD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO4Sets2[AUDUSD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_2__Time out_OCO4");
Base.AUDUSD_DOWN_S2_OCO4Sets2.Clear();
AUDUSD_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO4S3_DOWN_S2 = 0;
for (; AUDUSD_OCO4S3_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets3.Count; AUDUSD_OCO4S3_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets3[AUDUSD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO4Sets3[AUDUSD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_3__Time out_OCO4");
Base.AUDUSD_DOWN_S2_OCO4Sets3.Clear();
AUDUSD_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO4S4_DOWN_S2 = 0;
for (; AUDUSD_OCO4S4_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets4.Count; AUDUSD_OCO4S4_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets4[AUDUSD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO4Sets4[AUDUSD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_4__Time out_OCO4");
Base.AUDUSD_DOWN_S2_OCO4Sets4.Clear();
AUDUSD_OCO4S4_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO4S5_DOWN_S2 = 0;
for (; AUDUSD_OCO4S5_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets5.Count; AUDUSD_OCO4S5_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets5[AUDUSD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO4Sets5[AUDUSD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_5__Time out_OCO4");
Base.AUDUSD_DOWN_S2_OCO4Sets5.Clear();
AUDUSD_OCO4S5_DOWN_S2 = 0;
break;
}
int AUDUSD_OCO4S6_DOWN_S2 = 0;
for (; AUDUSD_OCO4S6_DOWN_S2 < Base.AUDUSD_DOWN_S2_OCO4Sets6.Count; AUDUSD_OCO4S6_DOWN_S2++)
if (Base.AUDUSD_DOWN_S2_OCO4Sets6[AUDUSD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDUSD_DOWN_S2_OCO4Sets6[AUDUSD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_DOWN_S2_Entry_6__Time out_OCO4");
Base.AUDUSD_DOWN_S2_OCO4Sets6.Clear();
AUDUSD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDUSD_DOWN_S2 = DOWM_AUDUSD_DOWN_S2 || DOWT_AUDUSD_DOWN_S2 || DOWW_AUDUSD_DOWN_S2 || DOWTH_AUDUSD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDUSD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDUSD_OCO1_DOWN_S2_IsReady == false ||
Base.AUDUSD_OCO2_DOWN_S2_IsReady == false ||
Base.AUDUSD_OCO3_DOWN_S2_IsReady == false ||
Base.AUDUSD_OCO4_DOWN_S2_IsReady == false)
{
Base.AUDUSD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.AUDUSD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.AUDUSD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.AUDUSD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDUSD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.AUDUSD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.AUDUSD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.AUDUSD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
AUDUSD_Signal_Condition_DOWN_S2 =
(
pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.05m &&
prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
prices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.025m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
//prices_ASK_Close[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.01m
);
AUDUSD_DOWN_S2_SL = 0.01m;
AUDUSD_DOWN_S2_TP1 = 0.001m;
AUDUSD_DOWN_S2_TP2 = AUDUSD_DOWN_S2_SL * 0;
AUDUSD_DOWN_S2_TP3 = AUDUSD_DOWN_S2_SL * 0;
AUDUSD_DOWN_S2_TP4 = AUDUSD_DOWN_S2_SL * 0;
AUDUSD_DOWN_S2_TP5 = AUDUSD_DOWN_S2_SL * 0;
AUDUSD_DOWN_S2_TP6 = AUDUSD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDUSD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDUSD_quantity_SL_DOWN_S2 = AUDUSD_quantity_DOWN_S2;
AUDUSD_quantity_TP1_DOWN_S2 = (int)Math.Floor(AUDUSD_quantity_DOWN_S2 * 1m);
AUDUSD_quantity_TP2_DOWN_S2 = (int)Math.Floor(AUDUSD_quantity_TP1_DOWN_S2 * 0m);
AUDUSD_quantity_TP3_DOWN_S2 = (int)Math.Floor(AUDUSD_quantity_TP2_DOWN_S2 * 0m);
AUDUSD_quantity_TP4_DOWN_S2 = (int)Math.Floor(AUDUSD_quantity_TP3_DOWN_S2 * 0m);
AUDUSD_quantity_TP5_DOWN_S2 = (int)Math.Floor(AUDUSD_quantity_TP4_DOWN_S2 * 0m);
AUDUSD_quantity_TP6_DOWN_S2 = (int)Math.Floor(AUDUSD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (AUDUSD_Signal_Condition_DOWN_S2 &&
DOWR_AUDUSD_DOWN_S2 &&
Base.AUDUSD_OCO1_DOWN_S2_IsReady == true &&
Base.AUDUSD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDUSD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP1_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP1_OCO1");
Base.AUDUSD_OCO1_EO1_DOWN_S2 = false;
Base.AUDUSD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP2_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP2_OCO1");
Base.AUDUSD_OCO1_EO2_DOWN_S2 = false;
Base.AUDUSD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP3_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP3_OCO1");
Base.AUDUSD_OCO1_EO3_DOWN_S2 = false;
Base.AUDUSD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP4_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP4_OCO1");
Base.AUDUSD_OCO1_EO4_DOWN_S2 = false;
Base.AUDUSD_OCO1_DOWN_S2_IsReady = false;
if (Base.AUDUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (AUDUSD_Signal_Condition_DOWN_S2 &&
DOWR_AUDUSD_DOWN_S2 &&
Base.AUDUSD_OCO2_DOWN_S2_IsReady == true &&
Base.AUDUSD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDUSD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDUSD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP1_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP1_OCO2");
Base.AUDUSD_OCO2_EO1_DOWN_S2 = false;
Base.AUDUSD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP2_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP2_OCO2");
Base.AUDUSD_OCO2_EO2_DOWN_S2 = false;
Base.AUDUSD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP3_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP3_OCO2");
Base.AUDUSD_OCO2_EO3_DOWN_S2 = false;
Base.AUDUSD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP4_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP4_OCO2");
Base.AUDUSD_OCO2_EO4_DOWN_S2 = false;
Base.AUDUSD_OCO2_DOWN_S2_IsReady = false;
if (Base.AUDUSD_OCO2_DOWN_S2_IsReady == false && Base.AUDUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (AUDUSD_Signal_Condition_DOWN_S2 &&
DOWR_AUDUSD_DOWN_S2 &&
Base.AUDUSD_OCO3_DOWN_S2_IsReady == true &&
Base.AUDUSD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDUSD_OCO2_DOWN_S2_IsReady == false &&
Base.AUDUSD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDUSD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP1_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP1_OCO3");
Base.AUDUSD_OCO3_EO1_DOWN_S2 = false;
Base.AUDUSD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP2_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP2_OCO3");
Base.AUDUSD_OCO3_EO2_DOWN_S2 = false;
Base.AUDUSD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP3_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP3_OCO3");
Base.AUDUSD_OCO3_EO3_DOWN_S2 = false;
Base.AUDUSD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP4_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP4_OCO3");
Base.AUDUSD_OCO3_EO4_DOWN_S2 = false;
Base.AUDUSD_OCO3_DOWN_S2_IsReady = false;
if (Base.AUDUSD_OCO3_DOWN_S2_IsReady == false && Base.AUDUSD_OCO2_DOWN_S2_IsReady == false && Base.AUDUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (AUDUSD_Signal_Condition_DOWN_S2 &&
DOWR_AUDUSD_DOWN_S2 &&
Base.AUDUSD_OCO4_DOWN_S2_IsReady == true &&
Base.AUDUSD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDUSD_OCO2_DOWN_S2_IsReady == false &&
Base.AUDUSD_OCO3_DOWN_S2_IsReady == false &&
Base.AUDUSD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDUSD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP1_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP1_OCO4");
Base.AUDUSD_OCO4_EO1_DOWN_S2 = false;
Base.AUDUSD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP2_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP2_OCO4");
Base.AUDUSD_OCO4_EO2_DOWN_S2 = false;
Base.AUDUSD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP3_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP3_OCO4");
Base.AUDUSD_OCO4_EO3_DOWN_S2 = false;
Base.AUDUSD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDUSD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP4_DOWN_S2, false,"AUDUSD_DOWN_S2_Entry_TP4_OCO4");
Base.AUDUSD_OCO4_EO4_DOWN_S2 = false;
Base.AUDUSD_OCO4_DOWN_S2_IsReady = false;
if (Base.AUDUSD_OCO4_DOWN_S2_IsReady == false && Base.AUDUSD_OCO3_DOWN_S2_IsReady == false && Base.AUDUSD_OCO2_DOWN_S2_IsReady == false && Base.AUDUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDUSD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDUSD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDUSD_UP_S2_OCO1")))
{
Base.AUDUSD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDUSD_UP_S2_OCO2")))
{
Base.AUDUSD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDUSD_UP_S2_OCO3")))
{
Base.AUDUSD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDUSD_UP_S2_OCO4")))
{
Base.AUDUSD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDUSD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDUSD_OCO1_EO1_UP_S2)
Base.AUDUSD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO2_UP_S2)
Base.AUDUSD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO3_UP_S2)
Base.AUDUSD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO4_UP_S2)
Base.AUDUSD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO5_UP_S2)
Base.AUDUSD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO1_EO6_UP_S2)
Base.AUDUSD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDUSD_UP_S2_OCO_DELAY_7DAY))
{
int AUDUSD_OCO1S1_UP_S2 = 0;
for (; AUDUSD_OCO1S1_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets1.Count; AUDUSD_OCO1S1_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets1[AUDUSD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO1Sets1[AUDUSD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_1__Time out_OCO1");
Base.AUDUSD_UP_S2_OCO1Sets1.Clear();
AUDUSD_OCO1S1_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S2_UP_S2 = 0;
for (; AUDUSD_OCO1S2_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets2.Count; AUDUSD_OCO1S2_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets2[AUDUSD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO1Sets2[AUDUSD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_2__Time out_OCO1");
Base.AUDUSD_UP_S2_OCO1Sets2.Clear();
AUDUSD_OCO1S2_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S3_UP_S2 = 0;
for (; AUDUSD_OCO1S3_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets3.Count; AUDUSD_OCO1S3_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets3[AUDUSD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO1Sets3[AUDUSD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_3__Time out_OCO1");
Base.AUDUSD_UP_S2_OCO1Sets3.Clear();
AUDUSD_OCO1S3_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S4_UP_S2 = 0;
for (; AUDUSD_OCO1S4_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets4.Count; AUDUSD_OCO1S4_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets4[AUDUSD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO1Sets4[AUDUSD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_4__Time out_OCO1");
Base.AUDUSD_UP_S2_OCO1Sets4.Clear();
AUDUSD_OCO1S4_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S5_UP_S2 = 0;
for (; AUDUSD_OCO1S5_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets5.Count; AUDUSD_OCO1S5_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets5[AUDUSD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO1Sets5[AUDUSD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_5__Time out_OCO1");
Base.AUDUSD_UP_S2_OCO1Sets5.Clear();
AUDUSD_OCO1S5_UP_S2 = 0;
break;
}
int AUDUSD_OCO1S6_UP_S2 = 0;
for (; AUDUSD_OCO1S6_UP_S2 < Base.AUDUSD_UP_S2_OCO1Sets6.Count; AUDUSD_OCO1S6_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO1Sets6[AUDUSD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO1Sets6[AUDUSD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_6__Time out_OCO1");
Base.AUDUSD_UP_S2_OCO1Sets6.Clear();
AUDUSD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO2_EO1_UP_S2)
Base.AUDUSD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO2_UP_S2)
Base.AUDUSD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO3_UP_S2)
Base.AUDUSD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO4_UP_S2)
Base.AUDUSD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO5_UP_S2)
Base.AUDUSD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO2_EO6_UP_S2)
Base.AUDUSD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDUSD_UP_S2_OCO_DELAY_7DAY))
{
int AUDUSD_OCO2S1_UP_S2 = 0;
for (; AUDUSD_OCO2S1_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets1.Count; AUDUSD_OCO2S1_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets1[AUDUSD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO2Sets1[AUDUSD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_1__Time out_OCO2");
Base.AUDUSD_UP_S2_OCO2Sets1.Clear();
AUDUSD_OCO2S1_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S2_UP_S2 = 0;
for (; AUDUSD_OCO2S2_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets2.Count; AUDUSD_OCO2S2_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets2[AUDUSD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO2Sets2[AUDUSD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_2__Time out_OCO2");
Base.AUDUSD_UP_S2_OCO2Sets2.Clear();
AUDUSD_OCO2S2_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S3_UP_S2 = 0;
for (; AUDUSD_OCO2S3_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets3.Count; AUDUSD_OCO2S3_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets3[AUDUSD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO2Sets3[AUDUSD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_3__Time out_OCO2");
Base.AUDUSD_UP_S2_OCO2Sets3.Clear();
AUDUSD_OCO2S3_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S4_UP_S2 = 0;
for (; AUDUSD_OCO2S4_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets4.Count; AUDUSD_OCO2S4_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets4[AUDUSD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO2Sets4[AUDUSD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_4__Time out_OCO2");
Base.AUDUSD_UP_S2_OCO2Sets4.Clear();
AUDUSD_OCO2S4_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S5_UP_S2 = 0;
for (; AUDUSD_OCO2S5_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets5.Count; AUDUSD_OCO2S5_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets5[AUDUSD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO2Sets5[AUDUSD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_5__Time out_OCO2");
Base.AUDUSD_UP_S2_OCO2Sets5.Clear();
AUDUSD_OCO2S5_UP_S2 = 0;
break;
}
int AUDUSD_OCO2S6_UP_S2 = 0;
for (; AUDUSD_OCO2S6_UP_S2 < Base.AUDUSD_UP_S2_OCO2Sets6.Count; AUDUSD_OCO2S6_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO2Sets6[AUDUSD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO2Sets6[AUDUSD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_6__Time out_OCO2");
Base.AUDUSD_UP_S2_OCO2Sets6.Clear();
AUDUSD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO3_EO1_UP_S2)
Base.AUDUSD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO2_UP_S2)
Base.AUDUSD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO3_UP_S2)
Base.AUDUSD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO4_UP_S2)
Base.AUDUSD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO5_UP_S2)
Base.AUDUSD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO3_EO6_UP_S2)
Base.AUDUSD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDUSD_UP_S2_OCO_DELAY_7DAY))
{
int AUDUSD_OCO3S1_UP_S2 = 0;
for (; AUDUSD_OCO3S1_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets1.Count; AUDUSD_OCO3S1_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets1[AUDUSD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO3Sets1[AUDUSD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_1__Time out_OCO3");
Base.AUDUSD_UP_S2_OCO3Sets1.Clear();
AUDUSD_OCO3S1_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S2_UP_S2 = 0;
for (; AUDUSD_OCO3S2_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets2.Count; AUDUSD_OCO3S2_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets2[AUDUSD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO3Sets2[AUDUSD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_2__Time out_OCO3");
Base.AUDUSD_UP_S2_OCO3Sets2.Clear();
AUDUSD_OCO3S2_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S3_UP_S2 = 0;
for (; AUDUSD_OCO3S3_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets3.Count; AUDUSD_OCO3S3_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets3[AUDUSD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO3Sets3[AUDUSD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_3__Time out_OCO3");
Base.AUDUSD_UP_S2_OCO3Sets3.Clear();
AUDUSD_OCO3S3_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S4_UP_S2 = 0;
for (; AUDUSD_OCO3S4_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets4.Count; AUDUSD_OCO3S4_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets4[AUDUSD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO3Sets4[AUDUSD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_4__Time out_OCO3");
Base.AUDUSD_UP_S2_OCO3Sets4.Clear();
AUDUSD_OCO3S4_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S5_UP_S2 = 0;
for (; AUDUSD_OCO3S5_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets5.Count; AUDUSD_OCO3S5_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets5[AUDUSD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO3Sets5[AUDUSD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_5__Time out_OCO3");
Base.AUDUSD_UP_S2_OCO3Sets5.Clear();
AUDUSD_OCO3S5_UP_S2 = 0;
break;
}
int AUDUSD_OCO3S6_UP_S2 = 0;
for (; AUDUSD_OCO3S6_UP_S2 < Base.AUDUSD_UP_S2_OCO3Sets6.Count; AUDUSD_OCO3S6_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO3Sets6[AUDUSD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO3Sets6[AUDUSD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_6__Time out_OCO3");
Base.AUDUSD_UP_S2_OCO3Sets6.Clear();
AUDUSD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDUSD_OCO4_EO1_UP_S2)
Base.AUDUSD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO2_UP_S2)
Base.AUDUSD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO3_UP_S2)
Base.AUDUSD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO4_UP_S2)
Base.AUDUSD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO5_UP_S2)
Base.AUDUSD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.AUDUSD_OCO4_EO6_UP_S2)
Base.AUDUSD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDUSD_UP_S2_OCO_DELAY_7DAY))
{
int AUDUSD_OCO4S1_UP_S2 = 0;
for (; AUDUSD_OCO4S1_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets1.Count; AUDUSD_OCO4S1_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets1[AUDUSD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO4Sets1[AUDUSD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_1__Time out_OCO4");
Base.AUDUSD_UP_S2_OCO4Sets1.Clear();
AUDUSD_OCO4S1_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S2_UP_S2 = 0;
for (; AUDUSD_OCO4S2_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets2.Count; AUDUSD_OCO4S2_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets2[AUDUSD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO4Sets2[AUDUSD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_2__Time out_OCO4");
Base.AUDUSD_UP_S2_OCO4Sets2.Clear();
AUDUSD_OCO4S2_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S3_UP_S2 = 0;
for (; AUDUSD_OCO4S3_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets3.Count; AUDUSD_OCO4S3_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets3[AUDUSD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO4Sets3[AUDUSD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_3__Time out_OCO4");
Base.AUDUSD_UP_S2_OCO4Sets3.Clear();
AUDUSD_OCO4S3_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S4_UP_S2 = 0;
for (; AUDUSD_OCO4S4_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets4.Count; AUDUSD_OCO4S4_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets4[AUDUSD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO4Sets4[AUDUSD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_4__Time out_OCO4");
Base.AUDUSD_UP_S2_OCO4Sets4.Clear();
AUDUSD_OCO4S4_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S5_UP_S2 = 0;
for (; AUDUSD_OCO4S5_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets5.Count; AUDUSD_OCO4S5_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets5[AUDUSD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO4Sets5[AUDUSD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_5__Time out_OCO4");
Base.AUDUSD_UP_S2_OCO4Sets5.Clear();
AUDUSD_OCO4S5_UP_S2 = 0;
break;
}
int AUDUSD_OCO4S6_UP_S2 = 0;
for (; AUDUSD_OCO4S6_UP_S2 < Base.AUDUSD_UP_S2_OCO4Sets6.Count; AUDUSD_OCO4S6_UP_S2++)
if (Base.AUDUSD_UP_S2_OCO4Sets6[AUDUSD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.AUDUSD_UP_S2_OCO4Sets6[AUDUSD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("AUDUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDUSD", order.Quantity, false, "AUDUSD_UP_S2_Entry_6__Time out_OCO4");
Base.AUDUSD_UP_S2_OCO4Sets6.Clear();
AUDUSD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDUSD_UP_S2 = DOWM_AUDUSD_UP_S2 || DOWT_AUDUSD_UP_S2 || DOWW_AUDUSD_UP_S2 || DOWTH_AUDUSD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDUSD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDUSD_OCO1_UP_S2_IsReady == false ||
Base.AUDUSD_OCO2_UP_S2_IsReady == false ||
Base.AUDUSD_OCO3_UP_S2_IsReady == false ||
Base.AUDUSD_OCO4_UP_S2_IsReady == false)
{
Base.AUDUSD_OCO1_UP_S2_Monthly_IsReady = false;
Base.AUDUSD_OCO2_UP_S2_Monthly_IsReady = false;
Base.AUDUSD_OCO3_UP_S2_Monthly_IsReady = false;
Base.AUDUSD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDUSD_OCO1_UP_S2_Monthly_IsReady = true;
Base.AUDUSD_OCO2_UP_S2_Monthly_IsReady = true;
Base.AUDUSD_OCO3_UP_S2_Monthly_IsReady = true;
Base.AUDUSD_OCO4_UP_S2_Monthly_IsReady = true;
}
AUDUSD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
AUDUSD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
AUDUSD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (AUDUSD_Signal_Condition_UP_1)
{
AUDUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDUSD_Signal_Condition_UP_2)
{
AUDUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDUSD_Signal_Condition_UP_3)
{
AUDUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDUSD_Signal_Condition_UP_1)
{
AUDUSD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (AUDUSD_Signal_Condition_UP_2)
{
AUDUSD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (AUDUSD_Signal_Condition_UP_3)
{
AUDUSD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
AUDUSD_UP_S2_TP2 = AUDUSD_UP_S2_SL * 0;
AUDUSD_UP_S2_TP3 = AUDUSD_UP_S2_SL * 0;
AUDUSD_UP_S2_TP4 = AUDUSD_UP_S2_SL * 0;
AUDUSD_UP_S2_TP5 = AUDUSD_UP_S2_SL * 0;
AUDUSD_UP_S2_TP6 = AUDUSD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDUSD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDUSD_quantity_SL_UP_S2 = AUDUSD_quantity_UP_S2;
AUDUSD_quantity_TP1_UP_S2 = (int)Math.Floor(AUDUSD_quantity_UP_S2 * 1m);
AUDUSD_quantity_TP2_UP_S2 = (int)Math.Floor(AUDUSD_quantity_TP1_UP_S2 * 0m);
AUDUSD_quantity_TP3_UP_S2 = (int)Math.Floor(AUDUSD_quantity_TP2_UP_S2 * 0m);
AUDUSD_quantity_TP4_UP_S2 = (int)Math.Floor(AUDUSD_quantity_TP3_UP_S2 * 0m);
AUDUSD_quantity_TP5_UP_S2 = (int)Math.Floor(AUDUSD_quantity_TP4_UP_S2 * 0m);
AUDUSD_quantity_TP6_UP_S2 = (int)Math.Floor(AUDUSD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((AUDUSD_Signal_Condition_UP_1 || AUDUSD_Signal_Condition_UP_2 || AUDUSD_Signal_Condition_UP_3) &&
DOWR_AUDUSD_UP_S2 &&
Base.AUDUSD_OCO1_UP_S2_IsReady == true &&
Base.AUDUSD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.AUDUSD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP1_UP_S2, false,"AUDUSD_UP_S2_Entry_TP1_OCO1");
Base.AUDUSD_OCO1_EO1_UP_S2 = false;
Base.AUDUSD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP2_UP_S2, false,"AUDUSD_UP_S2_Entry_TP2_OCO1");
Base.AUDUSD_OCO1_EO2_UP_S2 = false;
Base.AUDUSD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP3_UP_S2, false,"AUDUSD_UP_S2_Entry_TP3_OCO1");
Base.AUDUSD_OCO1_EO3_UP_S2 = false;
Base.AUDUSD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP4_UP_S2, false,"AUDUSD_UP_S2_Entry_TP4_OCO1");
Base.AUDUSD_OCO1_EO4_UP_S2 = false;
Base.AUDUSD_OCO1_UP_S2_IsReady = false;
if (Base.AUDUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((AUDUSD_Signal_Condition_UP_1 || AUDUSD_Signal_Condition_UP_2 || AUDUSD_Signal_Condition_UP_3) &&
DOWR_AUDUSD_UP_S2 &&
Base.AUDUSD_OCO1_UP_S2_IsReady == false &&
Base.AUDUSD_OCO2_UP_S2_IsReady == true &&
Base.AUDUSD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.AUDUSD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP1_UP_S2, false,"AUDUSD_UP_S2_Entry_TP1_OCO2");
Base.AUDUSD_OCO2_EO1_UP_S2 = false;
Base.AUDUSD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP2_UP_S2, false,"AUDUSD_UP_S2_Entry_TP2_OCO2");
Base.AUDUSD_OCO2_EO2_UP_S2 = false;
Base.AUDUSD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP3_UP_S2, false,"AUDUSD_UP_S2_Entry_TP3_OCO2");
Base.AUDUSD_OCO2_EO3_UP_S2 = false;
Base.AUDUSD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP4_UP_S2, false,"AUDUSD_UP_S2_Entry_TP4_OCO2");
Base.AUDUSD_OCO2_EO4_UP_S2 = false;
Base.AUDUSD_OCO2_UP_S2_IsReady = false;
if (Base.AUDUSD_OCO2_UP_S2_IsReady == false && Base.AUDUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((AUDUSD_Signal_Condition_UP_1 || AUDUSD_Signal_Condition_UP_2 || AUDUSD_Signal_Condition_UP_3) &&
DOWR_AUDUSD_UP_S2 &&
Base.AUDUSD_OCO1_UP_S2_IsReady == false &&
Base.AUDUSD_OCO2_UP_S2_IsReady == false &&
Base.AUDUSD_OCO3_UP_S2_IsReady == true &&
Base.AUDUSD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.AUDUSD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP1_UP_S2, false,"AUDUSD_UP_S2_Entry_TP1_OCO3");
Base.AUDUSD_OCO3_EO1_UP_S2 = false;
Base.AUDUSD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP2_UP_S2, false,"AUDUSD_UP_S2_Entry_TP2_OCO3");
Base.AUDUSD_OCO3_EO2_UP_S2 = false;
Base.AUDUSD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP3_UP_S2, false,"AUDUSD_UP_S2_Entry_TP3_OCO3");
Base.AUDUSD_OCO3_EO3_UP_S2 = false;
Base.AUDUSD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP4_UP_S2, false,"AUDUSD_UP_S2_Entry_TP4_OCO3");
Base.AUDUSD_OCO3_EO4_UP_S2 = false;
Base.AUDUSD_OCO3_UP_S2_IsReady = false;
if (Base.AUDUSD_OCO3_UP_S2_IsReady == false && Base.AUDUSD_OCO2_UP_S2_IsReady == false && Base.AUDUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((AUDUSD_Signal_Condition_UP_1 || AUDUSD_Signal_Condition_UP_2 || AUDUSD_Signal_Condition_UP_3) &&
DOWR_AUDUSD_UP_S2 &&
Base.AUDUSD_OCO1_UP_S2_IsReady == false &&
Base.AUDUSD_OCO2_UP_S2_IsReady == false &&
Base.AUDUSD_OCO3_UP_S2_IsReady == false &&
Base.AUDUSD_OCO4_UP_S2_IsReady == true &&
Base.AUDUSD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.AUDUSD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP1_UP_S2, false,"AUDUSD_UP_S2_Entry_TP1_OCO4");
Base.AUDUSD_OCO4_EO1_UP_S2 = false;
Base.AUDUSD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP2_UP_S2, false,"AUDUSD_UP_S2_Entry_TP2_OCO4");
Base.AUDUSD_OCO4_EO2_UP_S2 = false;
Base.AUDUSD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP3_UP_S2, false,"AUDUSD_UP_S2_Entry_TP3_OCO4");
Base.AUDUSD_OCO4_EO3_UP_S2 = false;
Base.AUDUSD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDUSD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDUSD_quantity_TP4_UP_S2, false,"AUDUSD_UP_S2_Entry_TP4_OCO4");
Base.AUDUSD_OCO4_EO4_UP_S2 = false;
Base.AUDUSD_OCO4_UP_S2_IsReady = false;
if (Base.AUDUSD_OCO4_UP_S2_IsReady == false && Base.AUDUSD_OCO3_UP_S2_IsReady == false && Base.AUDUSD_OCO2_UP_S2_IsReady == false && Base.AUDUSD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _CHFJPY;
///oco1 up
public static OrderTicket CHFJPY_OCO1_MO1_UP_S2;
public static OrderTicket CHFJPY_OCO1_MO2_UP_S2;
public static OrderTicket CHFJPY_OCO1_MO3_UP_S2;
public static OrderTicket CHFJPY_OCO1_MO4_UP_S2;
public static OrderTicket CHFJPY_OCO1_MO5_UP_S2;
public static OrderTicket CHFJPY_OCO1_MO6_UP_S2;
public static int CHFJPY_OCO1_EO1_UP_S2_ID ;
public static int CHFJPY_OCO1_EO2_UP_S2_ID ;
public static int CHFJPY_OCO1_EO3_UP_S2_ID ;
public static int CHFJPY_OCO1_EO4_UP_S2_ID ;
public static int CHFJPY_OCO1_EO5_UP_S2_ID ;
public static int CHFJPY_OCO1_EO6_UP_S2_ID ;
public static bool CHFJPY_OCO1_EO1_UP_S2 ;
public static bool CHFJPY_OCO1_EO2_UP_S2 ;
public static bool CHFJPY_OCO1_EO3_UP_S2 ;
public static bool CHFJPY_OCO1_EO4_UP_S2 ;
public static bool CHFJPY_OCO1_EO5_UP_S2 ;
public static bool CHFJPY_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_UP_S2> CHFJPY_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_UP_S2> CHFJPY_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_UP_S2> CHFJPY_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_UP_S2> CHFJPY_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_UP_S2> CHFJPY_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_UP_S2> CHFJPY_OOFE_OCO1_UP_S2_6 ;
public static CHFJPY_OCO1_UP_S2 CHFJPY_PFO_OCO1_UP_S2_1 ;
public static CHFJPY_OCO1_UP_S2 CHFJPY_PFO_OCO1_UP_S2_2 ;
public static CHFJPY_OCO1_UP_S2 CHFJPY_PFO_OCO1_UP_S2_3 ;
public static CHFJPY_OCO1_UP_S2 CHFJPY_PFO_OCO1_UP_S2_4 ;
public static CHFJPY_OCO1_UP_S2 CHFJPY_PFO_OCO1_UP_S2_5 ;
public static CHFJPY_OCO1_UP_S2 CHFJPY_PFO_OCO1_UP_S2_6 ;
public static List<CHFJPY_OCO1_UP_S2> CHFJPY_UP_S2_OCO1Sets1 = new List<CHFJPY_OCO1_UP_S2>();
public static List<CHFJPY_OCO1_UP_S2> CHFJPY_UP_S2_OCO1Sets2 = new List<CHFJPY_OCO1_UP_S2>();
public static List<CHFJPY_OCO1_UP_S2> CHFJPY_UP_S2_OCO1Sets3 = new List<CHFJPY_OCO1_UP_S2>();
public static List<CHFJPY_OCO1_UP_S2> CHFJPY_UP_S2_OCO1Sets4 = new List<CHFJPY_OCO1_UP_S2>();
public static List<CHFJPY_OCO1_UP_S2> CHFJPY_UP_S2_OCO1Sets5 = new List<CHFJPY_OCO1_UP_S2>();
public static List<CHFJPY_OCO1_UP_S2> CHFJPY_UP_S2_OCO1Sets6 = new List<CHFJPY_OCO1_UP_S2>();
public static bool CHFJPY_OCO1_UP_S2_IsReady = true;
public static bool CHFJPY_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket CHFJPY_OCO1_MO1_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO1_MO2_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO1_MO3_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO1_MO4_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO1_MO5_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO1_MO6_DOWN_S2 ;
public static int CHFJPY_OCO1_EO1_DOWN_S2_ID ;
public static int CHFJPY_OCO1_EO2_DOWN_S2_ID ;
public static int CHFJPY_OCO1_EO3_DOWN_S2_ID ;
public static int CHFJPY_OCO1_EO4_DOWN_S2_ID ;
public static int CHFJPY_OCO1_EO5_DOWN_S2_ID ;
public static int CHFJPY_OCO1_EO6_DOWN_S2_ID ;
public static bool CHFJPY_OCO1_EO1_DOWN_S2 ;
public static bool CHFJPY_OCO1_EO2_DOWN_S2 ;
public static bool CHFJPY_OCO1_EO3_DOWN_S2 ;
public static bool CHFJPY_OCO1_EO4_DOWN_S2 ;
public static bool CHFJPY_OCO1_EO5_DOWN_S2 ;
public static bool CHFJPY_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_DOWN_S2> CHFJPY_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_DOWN_S2> CHFJPY_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_DOWN_S2> CHFJPY_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_DOWN_S2> CHFJPY_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_DOWN_S2> CHFJPY_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO1_DOWN_S2> CHFJPY_OOFE_OCO1_DOWN_S2_6 ;
public static CHFJPY_OCO1_DOWN_S2 CHFJPY_PFO_OCO1_DOWN_S2_1 ;
public static CHFJPY_OCO1_DOWN_S2 CHFJPY_PFO_OCO1_DOWN_S2_2 ;
public static CHFJPY_OCO1_DOWN_S2 CHFJPY_PFO_OCO1_DOWN_S2_3 ;
public static CHFJPY_OCO1_DOWN_S2 CHFJPY_PFO_OCO1_DOWN_S2_4 ;
public static CHFJPY_OCO1_DOWN_S2 CHFJPY_PFO_OCO1_DOWN_S2_5 ;
public static CHFJPY_OCO1_DOWN_S2 CHFJPY_PFO_OCO1_DOWN_S2_6 ;
public static List<CHFJPY_OCO1_DOWN_S2> CHFJPY_DOWN_S2_OCO1Sets1 = new List<CHFJPY_OCO1_DOWN_S2>();
public static List<CHFJPY_OCO1_DOWN_S2> CHFJPY_DOWN_S2_OCO1Sets2 = new List<CHFJPY_OCO1_DOWN_S2>();
public static List<CHFJPY_OCO1_DOWN_S2> CHFJPY_DOWN_S2_OCO1Sets3 = new List<CHFJPY_OCO1_DOWN_S2>();
public static List<CHFJPY_OCO1_DOWN_S2> CHFJPY_DOWN_S2_OCO1Sets4 = new List<CHFJPY_OCO1_DOWN_S2>();
public static List<CHFJPY_OCO1_DOWN_S2> CHFJPY_DOWN_S2_OCO1Sets5 = new List<CHFJPY_OCO1_DOWN_S2>();
public static List<CHFJPY_OCO1_DOWN_S2> CHFJPY_DOWN_S2_OCO1Sets6 = new List<CHFJPY_OCO1_DOWN_S2>();
public static bool CHFJPY_OCO1_DOWN_S2_IsReady = true;
public static bool CHFJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket CHFJPY_OCO2_MO1_UP_S2 ;
public static OrderTicket CHFJPY_OCO2_MO2_UP_S2 ;
public static OrderTicket CHFJPY_OCO2_MO3_UP_S2 ;
public static OrderTicket CHFJPY_OCO2_MO4_UP_S2 ;
public static OrderTicket CHFJPY_OCO2_MO5_UP_S2 ;
public static OrderTicket CHFJPY_OCO2_MO6_UP_S2 ;
public static int CHFJPY_OCO2_EO1_UP_S2_ID ;
public static int CHFJPY_OCO2_EO2_UP_S2_ID ;
public static int CHFJPY_OCO2_EO3_UP_S2_ID ;
public static int CHFJPY_OCO2_EO4_UP_S2_ID ;
public static int CHFJPY_OCO2_EO5_UP_S2_ID ;
public static int CHFJPY_OCO2_EO6_UP_S2_ID ;
public static bool CHFJPY_OCO2_EO1_UP_S2 ;
public static bool CHFJPY_OCO2_EO2_UP_S2 ;
public static bool CHFJPY_OCO2_EO3_UP_S2 ;
public static bool CHFJPY_OCO2_EO4_UP_S2 ;
public static bool CHFJPY_OCO2_EO5_UP_S2 ;
public static bool CHFJPY_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_UP_S2> CHFJPY_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_UP_S2> CHFJPY_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_UP_S2> CHFJPY_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_UP_S2> CHFJPY_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_UP_S2> CHFJPY_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_UP_S2> CHFJPY_OOFE_OCO2_UP_S2_6 ;
public static CHFJPY_OCO2_UP_S2 CHFJPY_PFO_OCO2_UP_S2_1 ;
public static CHFJPY_OCO2_UP_S2 CHFJPY_PFO_OCO2_UP_S2_2 ;
public static CHFJPY_OCO2_UP_S2 CHFJPY_PFO_OCO2_UP_S2_3 ;
public static CHFJPY_OCO2_UP_S2 CHFJPY_PFO_OCO2_UP_S2_4 ;
public static CHFJPY_OCO2_UP_S2 CHFJPY_PFO_OCO2_UP_S2_5 ;
public static CHFJPY_OCO2_UP_S2 CHFJPY_PFO_OCO2_UP_S2_6 ;
public static List<CHFJPY_OCO2_UP_S2> CHFJPY_UP_S2_OCO2Sets1 = new List<CHFJPY_OCO2_UP_S2>();
public static List<CHFJPY_OCO2_UP_S2> CHFJPY_UP_S2_OCO2Sets2 = new List<CHFJPY_OCO2_UP_S2>();
public static List<CHFJPY_OCO2_UP_S2> CHFJPY_UP_S2_OCO2Sets3 = new List<CHFJPY_OCO2_UP_S2>();
public static List<CHFJPY_OCO2_UP_S2> CHFJPY_UP_S2_OCO2Sets4 = new List<CHFJPY_OCO2_UP_S2>();
public static List<CHFJPY_OCO2_UP_S2> CHFJPY_UP_S2_OCO2Sets5 = new List<CHFJPY_OCO2_UP_S2>();
public static List<CHFJPY_OCO2_UP_S2> CHFJPY_UP_S2_OCO2Sets6 = new List<CHFJPY_OCO2_UP_S2>();
public static bool CHFJPY_OCO2_UP_S2_IsReady = true;
public static bool CHFJPY_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket CHFJPY_OCO2_MO1_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO2_MO2_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO2_MO3_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO2_MO4_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO2_MO5_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO2_MO6_DOWN_S2 ;
public static int CHFJPY_OCO2_EO1_DOWN_S2_ID ;
public static int CHFJPY_OCO2_EO2_DOWN_S2_ID ;
public static int CHFJPY_OCO2_EO3_DOWN_S2_ID ;
public static int CHFJPY_OCO2_EO4_DOWN_S2_ID ;
public static int CHFJPY_OCO2_EO5_DOWN_S2_ID ;
public static int CHFJPY_OCO2_EO6_DOWN_S2_ID ;
public static bool CHFJPY_OCO2_EO1_DOWN_S2 ;
public static bool CHFJPY_OCO2_EO2_DOWN_S2 ;
public static bool CHFJPY_OCO2_EO3_DOWN_S2 ;
public static bool CHFJPY_OCO2_EO4_DOWN_S2 ;
public static bool CHFJPY_OCO2_EO5_DOWN_S2 ;
public static bool CHFJPY_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_DOWN_S2> CHFJPY_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_DOWN_S2> CHFJPY_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_DOWN_S2> CHFJPY_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_DOWN_S2> CHFJPY_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_DOWN_S2> CHFJPY_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO2_DOWN_S2> CHFJPY_OOFE_OCO2_DOWN_S2_6 ;
public static CHFJPY_OCO2_DOWN_S2 CHFJPY_PFO_OCO2_DOWN_S2_1 ;
public static CHFJPY_OCO2_DOWN_S2 CHFJPY_PFO_OCO2_DOWN_S2_2 ;
public static CHFJPY_OCO2_DOWN_S2 CHFJPY_PFO_OCO2_DOWN_S2_3 ;
public static CHFJPY_OCO2_DOWN_S2 CHFJPY_PFO_OCO2_DOWN_S2_4 ;
public static CHFJPY_OCO2_DOWN_S2 CHFJPY_PFO_OCO2_DOWN_S2_5 ;
public static CHFJPY_OCO2_DOWN_S2 CHFJPY_PFO_OCO2_DOWN_S2_6 ;
public static List<CHFJPY_OCO2_DOWN_S2> CHFJPY_DOWN_S2_OCO2Sets1 = new List<CHFJPY_OCO2_DOWN_S2>();
public static List<CHFJPY_OCO2_DOWN_S2> CHFJPY_DOWN_S2_OCO2Sets2 = new List<CHFJPY_OCO2_DOWN_S2>();
public static List<CHFJPY_OCO2_DOWN_S2> CHFJPY_DOWN_S2_OCO2Sets3 = new List<CHFJPY_OCO2_DOWN_S2>();
public static List<CHFJPY_OCO2_DOWN_S2> CHFJPY_DOWN_S2_OCO2Sets4 = new List<CHFJPY_OCO2_DOWN_S2>();
public static List<CHFJPY_OCO2_DOWN_S2> CHFJPY_DOWN_S2_OCO2Sets5 = new List<CHFJPY_OCO2_DOWN_S2>();
public static List<CHFJPY_OCO2_DOWN_S2> CHFJPY_DOWN_S2_OCO2Sets6 = new List<CHFJPY_OCO2_DOWN_S2>();
public static bool CHFJPY_OCO2_DOWN_S2_IsReady = true;
public static bool CHFJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket CHFJPY_OCO3_MO1_UP_S2 ;
public static OrderTicket CHFJPY_OCO3_MO2_UP_S2 ;
public static OrderTicket CHFJPY_OCO3_MO3_UP_S2 ;
public static OrderTicket CHFJPY_OCO3_MO4_UP_S2 ;
public static OrderTicket CHFJPY_OCO3_MO5_UP_S2 ;
public static OrderTicket CHFJPY_OCO3_MO6_UP_S2 ;
public static int CHFJPY_OCO3_EO1_UP_S2_ID ;
public static int CHFJPY_OCO3_EO2_UP_S2_ID ;
public static int CHFJPY_OCO3_EO3_UP_S2_ID ;
public static int CHFJPY_OCO3_EO4_UP_S2_ID ;
public static int CHFJPY_OCO3_EO5_UP_S2_ID ;
public static int CHFJPY_OCO3_EO6_UP_S2_ID ;
public static bool CHFJPY_OCO3_EO1_UP_S2 ;
public static bool CHFJPY_OCO3_EO2_UP_S2 ;
public static bool CHFJPY_OCO3_EO3_UP_S2 ;
public static bool CHFJPY_OCO3_EO4_UP_S2 ;
public static bool CHFJPY_OCO3_EO5_UP_S2 ;
public static bool CHFJPY_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_UP_S2> CHFJPY_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_UP_S2> CHFJPY_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_UP_S2> CHFJPY_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_UP_S2> CHFJPY_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_UP_S2> CHFJPY_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_UP_S2> CHFJPY_OOFE_OCO3_UP_S2_6 ;
public static CHFJPY_OCO3_UP_S2 CHFJPY_PFO_OCO3_UP_S2_1 ;
public static CHFJPY_OCO3_UP_S2 CHFJPY_PFO_OCO3_UP_S2_2 ;
public static CHFJPY_OCO3_UP_S2 CHFJPY_PFO_OCO3_UP_S2_3 ;
public static CHFJPY_OCO3_UP_S2 CHFJPY_PFO_OCO3_UP_S2_4 ;
public static CHFJPY_OCO3_UP_S2 CHFJPY_PFO_OCO3_UP_S2_5 ;
public static CHFJPY_OCO3_UP_S2 CHFJPY_PFO_OCO3_UP_S2_6 ;
public static List<CHFJPY_OCO3_UP_S2> CHFJPY_UP_S2_OCO3Sets1 = new List<CHFJPY_OCO3_UP_S2>();
public static List<CHFJPY_OCO3_UP_S2> CHFJPY_UP_S2_OCO3Sets2 = new List<CHFJPY_OCO3_UP_S2>();
public static List<CHFJPY_OCO3_UP_S2> CHFJPY_UP_S2_OCO3Sets3 = new List<CHFJPY_OCO3_UP_S2>();
public static List<CHFJPY_OCO3_UP_S2> CHFJPY_UP_S2_OCO3Sets4 = new List<CHFJPY_OCO3_UP_S2>();
public static List<CHFJPY_OCO3_UP_S2> CHFJPY_UP_S2_OCO3Sets5 = new List<CHFJPY_OCO3_UP_S2>();
public static List<CHFJPY_OCO3_UP_S2> CHFJPY_UP_S2_OCO3Sets6 = new List<CHFJPY_OCO3_UP_S2>();
public static bool CHFJPY_OCO3_UP_S2_IsReady = true;
public static bool CHFJPY_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket CHFJPY_OCO3_MO1_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO3_MO2_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO3_MO3_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO3_MO4_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO3_MO5_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO3_MO6_DOWN_S2 ;
public static int CHFJPY_OCO3_EO1_DOWN_S2_ID ;
public static int CHFJPY_OCO3_EO2_DOWN_S2_ID ;
public static int CHFJPY_OCO3_EO3_DOWN_S2_ID ;
public static int CHFJPY_OCO3_EO4_DOWN_S2_ID ;
public static int CHFJPY_OCO3_EO5_DOWN_S2_ID ;
public static int CHFJPY_OCO3_EO6_DOWN_S2_ID ;
public static bool CHFJPY_OCO3_EO1_DOWN_S2 ;
public static bool CHFJPY_OCO3_EO2_DOWN_S2 ;
public static bool CHFJPY_OCO3_EO3_DOWN_S2 ;
public static bool CHFJPY_OCO3_EO4_DOWN_S2 ;
public static bool CHFJPY_OCO3_EO5_DOWN_S2 ;
public static bool CHFJPY_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_DOWN_S2> CHFJPY_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_DOWN_S2> CHFJPY_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_DOWN_S2> CHFJPY_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_DOWN_S2> CHFJPY_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_DOWN_S2> CHFJPY_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO3_DOWN_S2> CHFJPY_OOFE_OCO3_DOWN_S2_6 ;
public static CHFJPY_OCO3_DOWN_S2 CHFJPY_PFO_OCO3_DOWN_S2_1 ;
public static CHFJPY_OCO3_DOWN_S2 CHFJPY_PFO_OCO3_DOWN_S2_2 ;
public static CHFJPY_OCO3_DOWN_S2 CHFJPY_PFO_OCO3_DOWN_S2_3 ;
public static CHFJPY_OCO3_DOWN_S2 CHFJPY_PFO_OCO3_DOWN_S2_4 ;
public static CHFJPY_OCO3_DOWN_S2 CHFJPY_PFO_OCO3_DOWN_S2_5 ;
public static CHFJPY_OCO3_DOWN_S2 CHFJPY_PFO_OCO3_DOWN_S2_6 ;
public static List<CHFJPY_OCO3_DOWN_S2> CHFJPY_DOWN_S2_OCO3Sets1 = new List<CHFJPY_OCO3_DOWN_S2>();
public static List<CHFJPY_OCO3_DOWN_S2> CHFJPY_DOWN_S2_OCO3Sets2 = new List<CHFJPY_OCO3_DOWN_S2>();
public static List<CHFJPY_OCO3_DOWN_S2> CHFJPY_DOWN_S2_OCO3Sets3 = new List<CHFJPY_OCO3_DOWN_S2>();
public static List<CHFJPY_OCO3_DOWN_S2> CHFJPY_DOWN_S2_OCO3Sets4 = new List<CHFJPY_OCO3_DOWN_S2>();
public static List<CHFJPY_OCO3_DOWN_S2> CHFJPY_DOWN_S2_OCO3Sets5 = new List<CHFJPY_OCO3_DOWN_S2>();
public static List<CHFJPY_OCO3_DOWN_S2> CHFJPY_DOWN_S2_OCO3Sets6 = new List<CHFJPY_OCO3_DOWN_S2>();
public static bool CHFJPY_OCO3_DOWN_S2_IsReady = true;
public static bool CHFJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket CHFJPY_OCO4_MO1_UP_S2 ;
public static OrderTicket CHFJPY_OCO4_MO2_UP_S2 ;
public static OrderTicket CHFJPY_OCO4_MO3_UP_S2 ;
public static OrderTicket CHFJPY_OCO4_MO4_UP_S2 ;
public static OrderTicket CHFJPY_OCO4_MO5_UP_S2 ;
public static OrderTicket CHFJPY_OCO4_MO6_UP_S2 ;
public static int CHFJPY_OCO4_EO1_UP_S2_ID ;
public static int CHFJPY_OCO4_EO2_UP_S2_ID ;
public static int CHFJPY_OCO4_EO3_UP_S2_ID ;
public static int CHFJPY_OCO4_EO4_UP_S2_ID ;
public static int CHFJPY_OCO4_EO5_UP_S2_ID ;
public static int CHFJPY_OCO4_EO6_UP_S2_ID ;
public static bool CHFJPY_OCO4_EO1_UP_S2 ;
public static bool CHFJPY_OCO4_EO2_UP_S2 ;
public static bool CHFJPY_OCO4_EO3_UP_S2 ;
public static bool CHFJPY_OCO4_EO4_UP_S2 ;
public static bool CHFJPY_OCO4_EO5_UP_S2 ;
public static bool CHFJPY_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_UP_S2> CHFJPY_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_UP_S2> CHFJPY_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_UP_S2> CHFJPY_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_UP_S2> CHFJPY_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_UP_S2> CHFJPY_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_UP_S2> CHFJPY_OOFE_OCO4_UP_S2_6 ;
public static CHFJPY_OCO4_UP_S2 CHFJPY_PFO_OCO4_UP_S2_1 ;
public static CHFJPY_OCO4_UP_S2 CHFJPY_PFO_OCO4_UP_S2_2 ;
public static CHFJPY_OCO4_UP_S2 CHFJPY_PFO_OCO4_UP_S2_3 ;
public static CHFJPY_OCO4_UP_S2 CHFJPY_PFO_OCO4_UP_S2_4 ;
public static CHFJPY_OCO4_UP_S2 CHFJPY_PFO_OCO4_UP_S2_5 ;
public static CHFJPY_OCO4_UP_S2 CHFJPY_PFO_OCO4_UP_S2_6 ;
public static List<CHFJPY_OCO4_UP_S2> CHFJPY_UP_S2_OCO4Sets1 = new List<CHFJPY_OCO4_UP_S2>();
public static List<CHFJPY_OCO4_UP_S2> CHFJPY_UP_S2_OCO4Sets2 = new List<CHFJPY_OCO4_UP_S2>();
public static List<CHFJPY_OCO4_UP_S2> CHFJPY_UP_S2_OCO4Sets3 = new List<CHFJPY_OCO4_UP_S2>();
public static List<CHFJPY_OCO4_UP_S2> CHFJPY_UP_S2_OCO4Sets4 = new List<CHFJPY_OCO4_UP_S2>();
public static List<CHFJPY_OCO4_UP_S2> CHFJPY_UP_S2_OCO4Sets5 = new List<CHFJPY_OCO4_UP_S2>();
public static List<CHFJPY_OCO4_UP_S2> CHFJPY_UP_S2_OCO4Sets6 = new List<CHFJPY_OCO4_UP_S2>();
public static bool CHFJPY_OCO4_UP_S2_IsReady = true;
public static bool CHFJPY_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket CHFJPY_OCO4_MO1_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO4_MO2_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO4_MO3_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO4_MO4_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO4_MO5_DOWN_S2 ;
public static OrderTicket CHFJPY_OCO4_MO6_DOWN_S2 ;
public static int CHFJPY_OCO4_EO1_DOWN_S2_ID ;
public static int CHFJPY_OCO4_EO2_DOWN_S2_ID ;
public static int CHFJPY_OCO4_EO3_DOWN_S2_ID ;
public static int CHFJPY_OCO4_EO4_DOWN_S2_ID ;
public static int CHFJPY_OCO4_EO5_DOWN_S2_ID ;
public static int CHFJPY_OCO4_EO6_DOWN_S2_ID ;
public static bool CHFJPY_OCO4_EO1_DOWN_S2 ;
public static bool CHFJPY_OCO4_EO2_DOWN_S2 ;
public static bool CHFJPY_OCO4_EO3_DOWN_S2 ;
public static bool CHFJPY_OCO4_EO4_DOWN_S2 ;
public static bool CHFJPY_OCO4_EO5_DOWN_S2 ;
public static bool CHFJPY_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_DOWN_S2> CHFJPY_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_DOWN_S2> CHFJPY_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_DOWN_S2> CHFJPY_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_DOWN_S2> CHFJPY_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_DOWN_S2> CHFJPY_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CHFJPY_OCO4_DOWN_S2> CHFJPY_OOFE_OCO4_DOWN_S2_6 ;
public static CHFJPY_OCO4_DOWN_S2 CHFJPY_PFO_OCO4_DOWN_S2_1 ;
public static CHFJPY_OCO4_DOWN_S2 CHFJPY_PFO_OCO4_DOWN_S2_2 ;
public static CHFJPY_OCO4_DOWN_S2 CHFJPY_PFO_OCO4_DOWN_S2_3 ;
public static CHFJPY_OCO4_DOWN_S2 CHFJPY_PFO_OCO4_DOWN_S2_4 ;
public static CHFJPY_OCO4_DOWN_S2 CHFJPY_PFO_OCO4_DOWN_S2_5 ;
public static CHFJPY_OCO4_DOWN_S2 CHFJPY_PFO_OCO4_DOWN_S2_6 ;
public static List<CHFJPY_OCO4_DOWN_S2> CHFJPY_DOWN_S2_OCO4Sets1 = new List<CHFJPY_OCO4_DOWN_S2>();
public static List<CHFJPY_OCO4_DOWN_S2> CHFJPY_DOWN_S2_OCO4Sets2 = new List<CHFJPY_OCO4_DOWN_S2>();
public static List<CHFJPY_OCO4_DOWN_S2> CHFJPY_DOWN_S2_OCO4Sets3 = new List<CHFJPY_OCO4_DOWN_S2>();
public static List<CHFJPY_OCO4_DOWN_S2> CHFJPY_DOWN_S2_OCO4Sets4 = new List<CHFJPY_OCO4_DOWN_S2>();
public static List<CHFJPY_OCO4_DOWN_S2> CHFJPY_DOWN_S2_OCO4Sets5 = new List<CHFJPY_OCO4_DOWN_S2>();
public static List<CHFJPY_OCO4_DOWN_S2> CHFJPY_DOWN_S2_OCO4Sets6 = new List<CHFJPY_OCO4_DOWN_S2>();
public static bool CHFJPY_OCO4_DOWN_S2_IsReady = true;
public static bool CHFJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal CHFJPY_UP_S2_SL {get; set;}
public static decimal CHFJPY_UP_S2_TP1 {get; set;}
public static decimal CHFJPY_UP_S2_TP2 {get; set;}
public static decimal CHFJPY_UP_S2_TP3 {get; set;}
public static decimal CHFJPY_UP_S2_TP4 {get; set;}
public static decimal CHFJPY_UP_S2_TP5 {get; set;}
public static decimal CHFJPY_UP_S2_TP6 {get; set;}
public static decimal CHFJPY_DOWN_S2_SL {get; set;}
public static decimal CHFJPY_DOWN_S2_TP1 {get; set;}
public static decimal CHFJPY_DOWN_S2_TP2 {get; set;}
public static decimal CHFJPY_DOWN_S2_TP3 {get; set;}
public static decimal CHFJPY_DOWN_S2_TP4 {get; set;}
public static decimal CHFJPY_DOWN_S2_TP5 {get; set;}
public static decimal CHFJPY_DOWN_S2_TP6 {get; set;}
public static bool CHFJPY_Signal_Condition_UP_1 ;
public static bool CHFJPY_Signal_Condition_UP_2 ;
public static bool CHFJPY_Signal_Condition_UP_3 ;
public static bool CHFJPY_Signal_Condition_DOWN_1 ;
public static bool CHFJPY_Signal_Condition_DOWN_2 ;
public static bool CHFJPY_Signal_Condition_DOWN_3 ;
public static int CHFJPY_UP_S2_OCO_DELAY_7DAY = 10080;
public static int CHFJPY_UP_S2_OCOM_DELAY_DAY = 4320;
public static int CHFJPY_UP_S2_OCOT_DELAY_DAY = 2880;
public static int CHFJPY_UP_S2_OCOW_DELAY_DAY = 1440;
public static int CHFJPY_UP_S2_OCOTH_DELAY_DAY = 720;
public static int CHFJPY_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int CHFJPY_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int CHFJPY_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int CHFJPY_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int CHFJPY_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_CHFJPY_UP_S2 ;
public static bool DOWM_CHFJPY_UP_S2 ;
public static bool DOWT_CHFJPY_UP_S2 ;
public static bool DOWW_CHFJPY_UP_S2 ;
public static bool DOWTH_CHFJPY_UP_S2 ;
public static bool DOWR_CHFJPY_DOWN_S2 ;
public static bool DOWM_CHFJPY_DOWN_S2 ;
public static bool DOWT_CHFJPY_DOWN_S2 ;
public static bool DOWW_CHFJPY_DOWN_S2 ;
public static bool DOWTH_CHFJPY_DOWN_S2 ;
public static int CHFJPY_quantity_UP_S2 ;
public static int CHFJPY_quantity_SL_UP_S2 ;
public static int CHFJPY_quantity_TP1_UP_S2 ;
public static int CHFJPY_quantity_TP2_UP_S2 ;
public static int CHFJPY_quantity_TP3_UP_S2 ;
public static int CHFJPY_quantity_TP4_UP_S2 ;
public static int CHFJPY_quantity_TP5_UP_S2;
public static int CHFJPY_quantity_TP6_UP_S2 ;
public static int CHFJPY_quantity_DOWN_S2 ;
public static int CHFJPY_quantity_SL_DOWN_S2 ;
public static int CHFJPY_quantity_TP1_DOWN_S2 ;
public static int CHFJPY_quantity_TP2_DOWN_S2 ;
public static int CHFJPY_quantity_TP3_DOWN_S2 ;
public static int CHFJPY_quantity_TP4_DOWN_S2 ;
public static int CHFJPY_quantity_TP5_DOWN_S2;
public static int CHFJPY_quantity_TP6_DOWN_S2 ;
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_NZDCAD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_NZDCAD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("NZDCAD_UP_S2_OCO1")))
{
Base.NZDCAD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCAD_UP_S2_OCO2")))
{
Base.NZDCAD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCAD_UP_S2_OCO3")))
{
Base.NZDCAD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("NZDCAD_UP_S2_OCO4")))
{
Base.NZDCAD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("NZDCAD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.NZDCAD_OCO1_EO1_UP_S2)
Base.NZDCAD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO2_UP_S2)
Base.NZDCAD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO3_UP_S2)
Base.NZDCAD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO4_UP_S2)
Base.NZDCAD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO5_UP_S2)
Base.NZDCAD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO1_EO6_UP_S2)
Base.NZDCAD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCAD_UP_S2_OCO_DELAY_7DAY))
{
int NZDCAD_OCO1S1_UP_S2 = 0;
for (; NZDCAD_OCO1S1_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets1.Count; NZDCAD_OCO1S1_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets1[NZDCAD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO1Sets1[NZDCAD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_1__Time out_OCO1");
Base.NZDCAD_UP_S2_OCO1Sets1.Clear();
NZDCAD_OCO1S1_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S2_UP_S2 = 0;
for (; NZDCAD_OCO1S2_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets2.Count; NZDCAD_OCO1S2_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets2[NZDCAD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO1Sets2[NZDCAD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_2__Time out_OCO1");
Base.NZDCAD_UP_S2_OCO1Sets2.Clear();
NZDCAD_OCO1S2_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S3_UP_S2 = 0;
for (; NZDCAD_OCO1S3_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets3.Count; NZDCAD_OCO1S3_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets3[NZDCAD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO1Sets3[NZDCAD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_3__Time out_OCO1");
Base.NZDCAD_UP_S2_OCO1Sets3.Clear();
NZDCAD_OCO1S3_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S4_UP_S2 = 0;
for (; NZDCAD_OCO1S4_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets4.Count; NZDCAD_OCO1S4_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets4[NZDCAD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO1Sets4[NZDCAD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_4__Time out_OCO1");
Base.NZDCAD_UP_S2_OCO1Sets4.Clear();
NZDCAD_OCO1S4_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S5_UP_S2 = 0;
for (; NZDCAD_OCO1S5_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets5.Count; NZDCAD_OCO1S5_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets5[NZDCAD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO1Sets5[NZDCAD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_5__Time out_OCO1");
Base.NZDCAD_UP_S2_OCO1Sets5.Clear();
NZDCAD_OCO1S5_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S6_UP_S2 = 0;
for (; NZDCAD_OCO1S6_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets6.Count; NZDCAD_OCO1S6_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets6[NZDCAD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO1Sets6[NZDCAD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_6__Time out_OCO1");
Base.NZDCAD_UP_S2_OCO1Sets6.Clear();
NZDCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO2_EO1_UP_S2)
Base.NZDCAD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO2_UP_S2)
Base.NZDCAD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO3_UP_S2)
Base.NZDCAD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO4_UP_S2)
Base.NZDCAD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO5_UP_S2)
Base.NZDCAD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO2_EO6_UP_S2)
Base.NZDCAD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCAD_UP_S2_OCO_DELAY_7DAY))
{
int NZDCAD_OCO2S1_UP_S2 = 0;
for (; NZDCAD_OCO2S1_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets1.Count; NZDCAD_OCO2S1_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets1[NZDCAD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO2Sets1[NZDCAD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_1__Time out_OCO2");
Base.NZDCAD_UP_S2_OCO2Sets1.Clear();
NZDCAD_OCO2S1_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S2_UP_S2 = 0;
for (; NZDCAD_OCO2S2_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets2.Count; NZDCAD_OCO2S2_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets2[NZDCAD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO2Sets2[NZDCAD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_2__Time out_OCO2");
Base.NZDCAD_UP_S2_OCO2Sets2.Clear();
NZDCAD_OCO2S2_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S3_UP_S2 = 0;
for (; NZDCAD_OCO2S3_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets3.Count; NZDCAD_OCO2S3_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets3[NZDCAD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO2Sets3[NZDCAD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_3__Time out_OCO2");
Base.NZDCAD_UP_S2_OCO2Sets3.Clear();
NZDCAD_OCO2S3_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S4_UP_S2 = 0;
for (; NZDCAD_OCO2S4_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets4.Count; NZDCAD_OCO2S4_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets4[NZDCAD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO2Sets4[NZDCAD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_4__Time out_OCO2");
Base.NZDCAD_UP_S2_OCO2Sets4.Clear();
NZDCAD_OCO2S4_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S5_UP_S2 = 0;
for (; NZDCAD_OCO2S5_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets5.Count; NZDCAD_OCO2S5_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets5[NZDCAD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO2Sets5[NZDCAD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_5__Time out_OCO2");
Base.NZDCAD_UP_S2_OCO2Sets5.Clear();
NZDCAD_OCO2S5_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S6_UP_S2 = 0;
for (; NZDCAD_OCO2S6_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets6.Count; NZDCAD_OCO2S6_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets6[NZDCAD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO2Sets6[NZDCAD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_6__Time out_OCO2");
Base.NZDCAD_UP_S2_OCO2Sets6.Clear();
NZDCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO3_EO1_UP_S2)
Base.NZDCAD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO2_UP_S2)
Base.NZDCAD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO3_UP_S2)
Base.NZDCAD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO4_UP_S2)
Base.NZDCAD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO5_UP_S2)
Base.NZDCAD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO3_EO6_UP_S2)
Base.NZDCAD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCAD_UP_S2_OCO_DELAY_7DAY))
{
int NZDCAD_OCO3S1_UP_S2 = 0;
for (; NZDCAD_OCO3S1_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets1.Count; NZDCAD_OCO3S1_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets1[NZDCAD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO3Sets1[NZDCAD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_1__Time out_OCO3");
Base.NZDCAD_UP_S2_OCO3Sets1.Clear();
NZDCAD_OCO3S1_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S2_UP_S2 = 0;
for (; NZDCAD_OCO3S2_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets2.Count; NZDCAD_OCO3S2_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets2[NZDCAD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO3Sets2[NZDCAD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_2__Time out_OCO3");
Base.NZDCAD_UP_S2_OCO3Sets2.Clear();
NZDCAD_OCO3S2_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S3_UP_S2 = 0;
for (; NZDCAD_OCO3S3_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets3.Count; NZDCAD_OCO3S3_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets3[NZDCAD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO3Sets3[NZDCAD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_3__Time out_OCO3");
Base.NZDCAD_UP_S2_OCO3Sets3.Clear();
NZDCAD_OCO3S3_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S4_UP_S2 = 0;
for (; NZDCAD_OCO3S4_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets4.Count; NZDCAD_OCO3S4_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets4[NZDCAD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO3Sets4[NZDCAD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_4__Time out_OCO3");
Base.NZDCAD_UP_S2_OCO3Sets4.Clear();
NZDCAD_OCO3S4_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S5_UP_S2 = 0;
for (; NZDCAD_OCO3S5_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets5.Count; NZDCAD_OCO3S5_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets5[NZDCAD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO3Sets5[NZDCAD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_5__Time out_OCO3");
Base.NZDCAD_UP_S2_OCO3Sets5.Clear();
NZDCAD_OCO3S5_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S6_UP_S2 = 0;
for (; NZDCAD_OCO3S6_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets6.Count; NZDCAD_OCO3S6_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets6[NZDCAD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO3Sets6[NZDCAD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_6__Time out_OCO3");
Base.NZDCAD_UP_S2_OCO3Sets6.Clear();
NZDCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO4_EO1_UP_S2)
Base.NZDCAD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO2_UP_S2)
Base.NZDCAD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO3_UP_S2)
Base.NZDCAD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO4_UP_S2)
Base.NZDCAD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO5_UP_S2)
Base.NZDCAD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.NZDCAD_OCO4_EO6_UP_S2)
Base.NZDCAD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.NZDCAD_UP_S2_OCO_DELAY_7DAY))
{
int NZDCAD_OCO4S1_UP_S2 = 0;
for (; NZDCAD_OCO4S1_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets1.Count; NZDCAD_OCO4S1_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets1[NZDCAD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO4Sets1[NZDCAD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_1__Time out_OCO4");
Base.NZDCAD_UP_S2_OCO4Sets1.Clear();
NZDCAD_OCO4S1_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S2_UP_S2 = 0;
for (; NZDCAD_OCO4S2_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets2.Count; NZDCAD_OCO4S2_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets2[NZDCAD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO4Sets2[NZDCAD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_2__Time out_OCO4");
Base.NZDCAD_UP_S2_OCO4Sets2.Clear();
NZDCAD_OCO4S2_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S3_UP_S2 = 0;
for (; NZDCAD_OCO4S3_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets3.Count; NZDCAD_OCO4S3_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets3[NZDCAD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO4Sets3[NZDCAD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_3__Time out_OCO4");
Base.NZDCAD_UP_S2_OCO4Sets3.Clear();
NZDCAD_OCO4S3_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S4_UP_S2 = 0;
for (; NZDCAD_OCO4S4_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets4.Count; NZDCAD_OCO4S4_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets4[NZDCAD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO4Sets4[NZDCAD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_4__Time out_OCO4");
Base.NZDCAD_UP_S2_OCO4Sets4.Clear();
NZDCAD_OCO4S4_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S5_UP_S2 = 0;
for (; NZDCAD_OCO4S5_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets5.Count; NZDCAD_OCO4S5_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets5[NZDCAD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO4Sets5[NZDCAD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_5__Time out_OCO4");
Base.NZDCAD_UP_S2_OCO4Sets5.Clear();
NZDCAD_OCO4S5_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S6_UP_S2 = 0;
for (; NZDCAD_OCO4S6_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets6.Count; NZDCAD_OCO4S6_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets6[NZDCAD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.NZDCAD_UP_S2_OCO4Sets6[NZDCAD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("NZDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("NZDCAD", order.Quantity, false, "NZDCAD_UP_S2_Entry_6__Time out_OCO4");
Base.NZDCAD_UP_S2_OCO4Sets6.Clear();
NZDCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_NZDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_NZDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_NZDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_NZDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_NZDCAD_UP_S2 = DOWM_NZDCAD_UP_S2 || DOWT_NZDCAD_UP_S2 || DOWW_NZDCAD_UP_S2 || DOWTH_NZDCAD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("NZDCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.NZDCAD_OCO1_UP_S2_IsReady == false ||
Base.NZDCAD_OCO2_UP_S2_IsReady == false ||
Base.NZDCAD_OCO3_UP_S2_IsReady == false ||
Base.NZDCAD_OCO4_UP_S2_IsReady == false)
{
Base.NZDCAD_OCO1_UP_S2_Monthly_IsReady = false;
Base.NZDCAD_OCO2_UP_S2_Monthly_IsReady = false;
Base.NZDCAD_OCO3_UP_S2_Monthly_IsReady = false;
Base.NZDCAD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.NZDCAD_OCO1_UP_S2_Monthly_IsReady = true;
Base.NZDCAD_OCO2_UP_S2_Monthly_IsReady = true;
Base.NZDCAD_OCO3_UP_S2_Monthly_IsReady = true;
Base.NZDCAD_OCO4_UP_S2_Monthly_IsReady = true;
}
NZDCAD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
NZDCAD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
NZDCAD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (NZDCAD_Signal_Condition_UP_1)
{
NZDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDCAD_Signal_Condition_UP_2)
{
NZDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDCAD_Signal_Condition_UP_3)
{
NZDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (NZDCAD_Signal_Condition_UP_1)
{
NZDCAD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (NZDCAD_Signal_Condition_UP_2)
{
NZDCAD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (NZDCAD_Signal_Condition_UP_3)
{
NZDCAD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
NZDCAD_UP_S2_TP2 = NZDCAD_UP_S2_SL * 0;
NZDCAD_UP_S2_TP3 = NZDCAD_UP_S2_SL * 0;
NZDCAD_UP_S2_TP4 = NZDCAD_UP_S2_SL * 0;
NZDCAD_UP_S2_TP5 = NZDCAD_UP_S2_SL * 0;
NZDCAD_UP_S2_TP6 = NZDCAD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
NZDCAD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
NZDCAD_quantity_SL_UP_S2 = NZDCAD_quantity_UP_S2;
NZDCAD_quantity_TP1_UP_S2 = (int)Math.Floor(NZDCAD_quantity_UP_S2 * 1m);
NZDCAD_quantity_TP2_UP_S2 = (int)Math.Floor(NZDCAD_quantity_TP1_UP_S2 * 0m);
NZDCAD_quantity_TP3_UP_S2 = (int)Math.Floor(NZDCAD_quantity_TP2_UP_S2 * 0m);
NZDCAD_quantity_TP4_UP_S2 = (int)Math.Floor(NZDCAD_quantity_TP3_UP_S2 * 0m);
NZDCAD_quantity_TP5_UP_S2 = (int)Math.Floor(NZDCAD_quantity_TP4_UP_S2 * 0m);
NZDCAD_quantity_TP6_UP_S2 = (int)Math.Floor(NZDCAD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((NZDCAD_Signal_Condition_UP_1 || NZDCAD_Signal_Condition_UP_2 || NZDCAD_Signal_Condition_UP_3) &&
DOWR_NZDCAD_UP_S2 &&
Base.NZDCAD_OCO1_UP_S2_IsReady == true &&
Base.NZDCAD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.NZDCAD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP1_UP_S2, false,"NZDCAD_UP_S2_Entry_TP1_OCO1");
Base.NZDCAD_OCO1_EO1_UP_S2 = false;
Base.NZDCAD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP2_UP_S2, false,"NZDCAD_UP_S2_Entry_TP2_OCO1");
Base.NZDCAD_OCO1_EO2_UP_S2 = false;
Base.NZDCAD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP3_UP_S2, false,"NZDCAD_UP_S2_Entry_TP3_OCO1");
Base.NZDCAD_OCO1_EO3_UP_S2 = false;
Base.NZDCAD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP4_UP_S2, false,"NZDCAD_UP_S2_Entry_TP4_OCO1");
Base.NZDCAD_OCO1_EO4_UP_S2 = false;
Base.NZDCAD_OCO1_UP_S2_IsReady = false;
if (Base.NZDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((NZDCAD_Signal_Condition_UP_1 || NZDCAD_Signal_Condition_UP_2 || NZDCAD_Signal_Condition_UP_3) &&
DOWR_NZDCAD_UP_S2 &&
Base.NZDCAD_OCO1_UP_S2_IsReady == false &&
Base.NZDCAD_OCO2_UP_S2_IsReady == true &&
Base.NZDCAD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.NZDCAD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP1_UP_S2, false,"NZDCAD_UP_S2_Entry_TP1_OCO2");
Base.NZDCAD_OCO2_EO1_UP_S2 = false;
Base.NZDCAD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP2_UP_S2, false,"NZDCAD_UP_S2_Entry_TP2_OCO2");
Base.NZDCAD_OCO2_EO2_UP_S2 = false;
Base.NZDCAD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP3_UP_S2, false,"NZDCAD_UP_S2_Entry_TP3_OCO2");
Base.NZDCAD_OCO2_EO3_UP_S2 = false;
Base.NZDCAD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP4_UP_S2, false,"NZDCAD_UP_S2_Entry_TP4_OCO2");
Base.NZDCAD_OCO2_EO4_UP_S2 = false;
Base.NZDCAD_OCO2_UP_S2_IsReady = false;
if (Base.NZDCAD_OCO2_UP_S2_IsReady == false && Base.NZDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((NZDCAD_Signal_Condition_UP_1 || NZDCAD_Signal_Condition_UP_2 || NZDCAD_Signal_Condition_UP_3) &&
DOWR_NZDCAD_UP_S2 &&
Base.NZDCAD_OCO1_UP_S2_IsReady == false &&
Base.NZDCAD_OCO2_UP_S2_IsReady == false &&
Base.NZDCAD_OCO3_UP_S2_IsReady == true &&
Base.NZDCAD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.NZDCAD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP1_UP_S2, false,"NZDCAD_UP_S2_Entry_TP1_OCO3");
Base.NZDCAD_OCO3_EO1_UP_S2 = false;
Base.NZDCAD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP2_UP_S2, false,"NZDCAD_UP_S2_Entry_TP2_OCO3");
Base.NZDCAD_OCO3_EO2_UP_S2 = false;
Base.NZDCAD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP3_UP_S2, false,"NZDCAD_UP_S2_Entry_TP3_OCO3");
Base.NZDCAD_OCO3_EO3_UP_S2 = false;
Base.NZDCAD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP4_UP_S2, false,"NZDCAD_UP_S2_Entry_TP4_OCO3");
Base.NZDCAD_OCO3_EO4_UP_S2 = false;
Base.NZDCAD_OCO3_UP_S2_IsReady = false;
if (Base.NZDCAD_OCO3_UP_S2_IsReady == false && Base.NZDCAD_OCO2_UP_S2_IsReady == false && Base.NZDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((NZDCAD_Signal_Condition_UP_1 || NZDCAD_Signal_Condition_UP_2 || NZDCAD_Signal_Condition_UP_3) &&
DOWR_NZDCAD_UP_S2 &&
Base.NZDCAD_OCO1_UP_S2_IsReady == false &&
Base.NZDCAD_OCO2_UP_S2_IsReady == false &&
Base.NZDCAD_OCO3_UP_S2_IsReady == false &&
Base.NZDCAD_OCO4_UP_S2_IsReady == true &&
Base.NZDCAD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.NZDCAD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP1_UP_S2, false,"NZDCAD_UP_S2_Entry_TP1_OCO4");
Base.NZDCAD_OCO4_EO1_UP_S2 = false;
Base.NZDCAD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP2_UP_S2, false,"NZDCAD_UP_S2_Entry_TP2_OCO4");
Base.NZDCAD_OCO4_EO2_UP_S2 = false;
Base.NZDCAD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP3_UP_S2, false,"NZDCAD_UP_S2_Entry_TP3_OCO4");
Base.NZDCAD_OCO4_EO3_UP_S2 = false;
Base.NZDCAD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
NZDCAD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, NZDCAD_quantity_TP4_UP_S2, false,"NZDCAD_UP_S2_Entry_TP4_OCO4");
Base.NZDCAD_OCO4_EO4_UP_S2 = false;
Base.NZDCAD_OCO4_UP_S2_IsReady = false;
if (Base.NZDCAD_OCO4_UP_S2_IsReady == false && Base.NZDCAD_OCO3_UP_S2_IsReady == false && Base.NZDCAD_OCO2_UP_S2_IsReady == false && Base.NZDCAD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDNZD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDNZD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDNZD_DOWN_S2_OCO1")))
{
Base.AUDNZD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDNZD_DOWN_S2_OCO2")))
{
Base.AUDNZD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDNZD_DOWN_S2_OCO3")))
{
Base.AUDNZD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDNZD_DOWN_S2_OCO4")))
{
Base.AUDNZD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDNZD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDNZD_OCO1_EO1_DOWN_S2)
Base.AUDNZD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO2_DOWN_S2)
Base.AUDNZD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO3_DOWN_S2)
Base.AUDNZD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO4_DOWN_S2)
Base.AUDNZD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO5_DOWN_S2)
Base.AUDNZD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO6_DOWN_S2)
Base.AUDNZD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDNZD_OCO1S1_DOWN_S2 = 0;
for (; AUDNZD_OCO1S1_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets1.Count; AUDNZD_OCO1S1_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets1[AUDNZD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO1Sets1[AUDNZD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_1__Time out_OCO1");
Base.AUDNZD_DOWN_S2_OCO1Sets1.Clear();
AUDNZD_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO1S2_DOWN_S2 = 0;
for (; AUDNZD_OCO1S2_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets2.Count; AUDNZD_OCO1S2_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets2[AUDNZD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO1Sets2[AUDNZD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_2__Time out_OCO1");
Base.AUDNZD_DOWN_S2_OCO1Sets2.Clear();
AUDNZD_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO1S3_DOWN_S2 = 0;
for (; AUDNZD_OCO1S3_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets3.Count; AUDNZD_OCO1S3_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets3[AUDNZD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO1Sets3[AUDNZD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_3__Time out_OCO1");
Base.AUDNZD_DOWN_S2_OCO1Sets3.Clear();
AUDNZD_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO1S4_DOWN_S2 = 0;
for (; AUDNZD_OCO1S4_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets4.Count; AUDNZD_OCO1S4_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets4[AUDNZD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO1Sets4[AUDNZD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_4__Time out_OCO1");
Base.AUDNZD_DOWN_S2_OCO1Sets4.Clear();
AUDNZD_OCO1S4_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO1S5_DOWN_S2 = 0;
for (; AUDNZD_OCO1S5_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets5.Count; AUDNZD_OCO1S5_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets5[AUDNZD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO1Sets5[AUDNZD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_5__Time out_OCO1");
Base.AUDNZD_DOWN_S2_OCO1Sets5.Clear();
AUDNZD_OCO1S5_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO1S6_DOWN_S2 = 0;
for (; AUDNZD_OCO1S6_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO1Sets6.Count; AUDNZD_OCO1S6_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO1Sets6[AUDNZD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO1Sets6[AUDNZD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_6__Time out_OCO1");
Base.AUDNZD_DOWN_S2_OCO1Sets6.Clear();
AUDNZD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO2_EO1_DOWN_S2)
Base.AUDNZD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO2_DOWN_S2)
Base.AUDNZD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO3_DOWN_S2)
Base.AUDNZD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO4_DOWN_S2)
Base.AUDNZD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO5_DOWN_S2)
Base.AUDNZD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO6_DOWN_S2)
Base.AUDNZD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDNZD_OCO2S1_DOWN_S2 = 0;
for (; AUDNZD_OCO2S1_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets1.Count; AUDNZD_OCO2S1_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets1[AUDNZD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO2Sets1[AUDNZD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_1__Time out_OCO2");
Base.AUDNZD_DOWN_S2_OCO2Sets1.Clear();
AUDNZD_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO2S2_DOWN_S2 = 0;
for (; AUDNZD_OCO2S2_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets2.Count; AUDNZD_OCO2S2_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets2[AUDNZD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO2Sets2[AUDNZD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_2__Time out_OCO2");
Base.AUDNZD_DOWN_S2_OCO2Sets2.Clear();
AUDNZD_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO2S3_DOWN_S2 = 0;
for (; AUDNZD_OCO2S3_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets3.Count; AUDNZD_OCO2S3_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets3[AUDNZD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO2Sets3[AUDNZD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_3__Time out_OCO2");
Base.AUDNZD_DOWN_S2_OCO2Sets3.Clear();
AUDNZD_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO2S4_DOWN_S2 = 0;
for (; AUDNZD_OCO2S4_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets4.Count; AUDNZD_OCO2S4_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets4[AUDNZD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO2Sets4[AUDNZD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_4__Time out_OCO2");
Base.AUDNZD_DOWN_S2_OCO2Sets4.Clear();
AUDNZD_OCO2S4_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO2S5_DOWN_S2 = 0;
for (; AUDNZD_OCO2S5_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets5.Count; AUDNZD_OCO2S5_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets5[AUDNZD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO2Sets5[AUDNZD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_5__Time out_OCO2");
Base.AUDNZD_DOWN_S2_OCO2Sets5.Clear();
AUDNZD_OCO2S5_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO2S6_DOWN_S2 = 0;
for (; AUDNZD_OCO2S6_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO2Sets6.Count; AUDNZD_OCO2S6_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO2Sets6[AUDNZD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO2Sets6[AUDNZD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_6__Time out_OCO2");
Base.AUDNZD_DOWN_S2_OCO2Sets6.Clear();
AUDNZD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO3_EO1_DOWN_S2)
Base.AUDNZD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO2_DOWN_S2)
Base.AUDNZD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO3_DOWN_S2)
Base.AUDNZD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO4_DOWN_S2)
Base.AUDNZD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO5_DOWN_S2)
Base.AUDNZD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO6_DOWN_S2)
Base.AUDNZD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDNZD_OCO3S1_DOWN_S2 = 0;
for (; AUDNZD_OCO3S1_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets1.Count; AUDNZD_OCO3S1_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets1[AUDNZD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO3Sets1[AUDNZD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_1__Time out_OCO3");
Base.AUDNZD_DOWN_S2_OCO3Sets1.Clear();
AUDNZD_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO3S2_DOWN_S2 = 0;
for (; AUDNZD_OCO3S2_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets2.Count; AUDNZD_OCO3S2_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets2[AUDNZD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO3Sets2[AUDNZD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_2__Time out_OCO3");
Base.AUDNZD_DOWN_S2_OCO3Sets2.Clear();
AUDNZD_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO3S3_DOWN_S2 = 0;
for (; AUDNZD_OCO3S3_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets3.Count; AUDNZD_OCO3S3_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets3[AUDNZD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO3Sets3[AUDNZD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_3__Time out_OCO3");
Base.AUDNZD_DOWN_S2_OCO3Sets3.Clear();
AUDNZD_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO3S4_DOWN_S2 = 0;
for (; AUDNZD_OCO3S4_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets4.Count; AUDNZD_OCO3S4_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets4[AUDNZD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO3Sets4[AUDNZD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_4__Time out_OCO3");
Base.AUDNZD_DOWN_S2_OCO3Sets4.Clear();
AUDNZD_OCO3S4_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO3S5_DOWN_S2 = 0;
for (; AUDNZD_OCO3S5_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets5.Count; AUDNZD_OCO3S5_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets5[AUDNZD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO3Sets5[AUDNZD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_5__Time out_OCO3");
Base.AUDNZD_DOWN_S2_OCO3Sets5.Clear();
AUDNZD_OCO3S5_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO3S6_DOWN_S2 = 0;
for (; AUDNZD_OCO3S6_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO3Sets6.Count; AUDNZD_OCO3S6_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO3Sets6[AUDNZD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO3Sets6[AUDNZD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_6__Time out_OCO3");
Base.AUDNZD_DOWN_S2_OCO3Sets6.Clear();
AUDNZD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO4_EO1_DOWN_S2)
Base.AUDNZD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO2_DOWN_S2)
Base.AUDNZD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO3_DOWN_S2)
Base.AUDNZD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO4_DOWN_S2)
Base.AUDNZD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO5_DOWN_S2)
Base.AUDNZD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO6_DOWN_S2)
Base.AUDNZD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDNZD_OCO4S1_DOWN_S2 = 0;
for (; AUDNZD_OCO4S1_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets1.Count; AUDNZD_OCO4S1_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets1[AUDNZD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO4Sets1[AUDNZD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_1__Time out_OCO4");
Base.AUDNZD_DOWN_S2_OCO4Sets1.Clear();
AUDNZD_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO4S2_DOWN_S2 = 0;
for (; AUDNZD_OCO4S2_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets2.Count; AUDNZD_OCO4S2_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets2[AUDNZD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO4Sets2[AUDNZD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_2__Time out_OCO4");
Base.AUDNZD_DOWN_S2_OCO4Sets2.Clear();
AUDNZD_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO4S3_DOWN_S2 = 0;
for (; AUDNZD_OCO4S3_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets3.Count; AUDNZD_OCO4S3_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets3[AUDNZD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO4Sets3[AUDNZD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_3__Time out_OCO4");
Base.AUDNZD_DOWN_S2_OCO4Sets3.Clear();
AUDNZD_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO4S4_DOWN_S2 = 0;
for (; AUDNZD_OCO4S4_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets4.Count; AUDNZD_OCO4S4_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets4[AUDNZD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO4Sets4[AUDNZD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_4__Time out_OCO4");
Base.AUDNZD_DOWN_S2_OCO4Sets4.Clear();
AUDNZD_OCO4S4_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO4S5_DOWN_S2 = 0;
for (; AUDNZD_OCO4S5_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets5.Count; AUDNZD_OCO4S5_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets5[AUDNZD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO4Sets5[AUDNZD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_5__Time out_OCO4");
Base.AUDNZD_DOWN_S2_OCO4Sets5.Clear();
AUDNZD_OCO4S5_DOWN_S2 = 0;
break;
}
int AUDNZD_OCO4S6_DOWN_S2 = 0;
for (; AUDNZD_OCO4S6_DOWN_S2 < Base.AUDNZD_DOWN_S2_OCO4Sets6.Count; AUDNZD_OCO4S6_DOWN_S2++)
if (Base.AUDNZD_DOWN_S2_OCO4Sets6[AUDNZD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDNZD_DOWN_S2_OCO4Sets6[AUDNZD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_DOWN_S2_Entry_6__Time out_OCO4");
Base.AUDNZD_DOWN_S2_OCO4Sets6.Clear();
AUDNZD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDNZD_DOWN_S2 = DOWM_AUDNZD_DOWN_S2 || DOWT_AUDNZD_DOWN_S2 || DOWW_AUDNZD_DOWN_S2 || DOWTH_AUDNZD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDNZD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDNZD_OCO1_DOWN_S2_IsReady == false ||
Base.AUDNZD_OCO2_DOWN_S2_IsReady == false ||
Base.AUDNZD_OCO3_DOWN_S2_IsReady == false ||
Base.AUDNZD_OCO4_DOWN_S2_IsReady == false)
{
Base.AUDNZD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.AUDNZD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.AUDNZD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.AUDNZD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDNZD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.AUDNZD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.AUDNZD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.AUDNZD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
AUDNZD_Signal_Condition_DOWN_S2 =
(
//pricesM_BID_High[0] - pricesM_BID_Open[0] > prices_BID_Close[0] * 0.001m &&
//pricesM_BID_High[1] - pricesM_BID_Open[1] > prices_BID_Close[0] * 0.00001m &&
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > prices_BID_Close[0] * 0.02m &&
//pricesM_ASK_Open[1] - pricesM_BID_Close[1] > prices_BID_Close[0] * 0.00001m &&
prices_ASK_High[0] > (pricesM_ASK_High[0] - pricesM_BID_Low[0])/2 &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.0005m
);
AUDNZD_DOWN_S2_SL = 0.01m;
AUDNZD_DOWN_S2_TP1 = 0.005m;
AUDNZD_DOWN_S2_TP2 = AUDNZD_DOWN_S2_SL * 0;
AUDNZD_DOWN_S2_TP3 = AUDNZD_DOWN_S2_SL * 0;
AUDNZD_DOWN_S2_TP4 = AUDNZD_DOWN_S2_SL * 0;
AUDNZD_DOWN_S2_TP5 = AUDNZD_DOWN_S2_SL * 0;
AUDNZD_DOWN_S2_TP6 = AUDNZD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDNZD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDNZD_quantity_SL_DOWN_S2 = AUDNZD_quantity_DOWN_S2;
AUDNZD_quantity_TP1_DOWN_S2 = (int)Math.Floor(AUDNZD_quantity_DOWN_S2 * 1m);
AUDNZD_quantity_TP2_DOWN_S2 = (int)Math.Floor(AUDNZD_quantity_TP1_DOWN_S2 * 0m);
AUDNZD_quantity_TP3_DOWN_S2 = (int)Math.Floor(AUDNZD_quantity_TP2_DOWN_S2 * 0m);
AUDNZD_quantity_TP4_DOWN_S2 = (int)Math.Floor(AUDNZD_quantity_TP3_DOWN_S2 * 0m);
AUDNZD_quantity_TP5_DOWN_S2 = (int)Math.Floor(AUDNZD_quantity_TP4_DOWN_S2 * 0m);
AUDNZD_quantity_TP6_DOWN_S2 = (int)Math.Floor(AUDNZD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (AUDNZD_Signal_Condition_DOWN_S2 &&
DOWR_AUDNZD_DOWN_S2 &&
Base.AUDNZD_OCO1_DOWN_S2_IsReady == true &&
Base.AUDNZD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDNZD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP1_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP1_OCO1");
Base.AUDNZD_OCO1_EO1_DOWN_S2 = false;
Base.AUDNZD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP2_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP2_OCO1");
Base.AUDNZD_OCO1_EO2_DOWN_S2 = false;
Base.AUDNZD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP3_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP3_OCO1");
Base.AUDNZD_OCO1_EO3_DOWN_S2 = false;
Base.AUDNZD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP4_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP4_OCO1");
Base.AUDNZD_OCO1_EO4_DOWN_S2 = false;
Base.AUDNZD_OCO1_DOWN_S2_IsReady = false;
if (Base.AUDNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (AUDNZD_Signal_Condition_DOWN_S2 &&
DOWR_AUDNZD_DOWN_S2 &&
Base.AUDNZD_OCO2_DOWN_S2_IsReady == true &&
Base.AUDNZD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDNZD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDNZD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP1_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP1_OCO2");
Base.AUDNZD_OCO2_EO1_DOWN_S2 = false;
Base.AUDNZD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP2_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP2_OCO2");
Base.AUDNZD_OCO2_EO2_DOWN_S2 = false;
Base.AUDNZD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP3_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP3_OCO2");
Base.AUDNZD_OCO2_EO3_DOWN_S2 = false;
Base.AUDNZD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP4_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP4_OCO2");
Base.AUDNZD_OCO2_EO4_DOWN_S2 = false;
Base.AUDNZD_OCO2_DOWN_S2_IsReady = false;
if (Base.AUDNZD_OCO2_DOWN_S2_IsReady == false && Base.AUDNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (AUDNZD_Signal_Condition_DOWN_S2 &&
DOWR_AUDNZD_DOWN_S2 &&
Base.AUDNZD_OCO3_DOWN_S2_IsReady == true &&
Base.AUDNZD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDNZD_OCO2_DOWN_S2_IsReady == false &&
Base.AUDNZD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDNZD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP1_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP1_OCO3");
Base.AUDNZD_OCO3_EO1_DOWN_S2 = false;
Base.AUDNZD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP2_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP2_OCO3");
Base.AUDNZD_OCO3_EO2_DOWN_S2 = false;
Base.AUDNZD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP3_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP3_OCO3");
Base.AUDNZD_OCO3_EO3_DOWN_S2 = false;
Base.AUDNZD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP4_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP4_OCO3");
Base.AUDNZD_OCO3_EO4_DOWN_S2 = false;
Base.AUDNZD_OCO3_DOWN_S2_IsReady = false;
if (Base.AUDNZD_OCO3_DOWN_S2_IsReady == false && Base.AUDNZD_OCO2_DOWN_S2_IsReady == false && Base.AUDNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (AUDNZD_Signal_Condition_DOWN_S2 &&
DOWR_AUDNZD_DOWN_S2 &&
Base.AUDNZD_OCO4_DOWN_S2_IsReady == true &&
Base.AUDNZD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDNZD_OCO2_DOWN_S2_IsReady == false &&
Base.AUDNZD_OCO3_DOWN_S2_IsReady == false &&
Base.AUDNZD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDNZD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP1_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP1_OCO4");
Base.AUDNZD_OCO4_EO1_DOWN_S2 = false;
Base.AUDNZD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP2_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP2_OCO4");
Base.AUDNZD_OCO4_EO2_DOWN_S2 = false;
Base.AUDNZD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP3_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP3_OCO4");
Base.AUDNZD_OCO4_EO3_DOWN_S2 = false;
Base.AUDNZD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDNZD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP4_DOWN_S2, false,"AUDNZD_DOWN_S2_Entry_TP4_OCO4");
Base.AUDNZD_OCO4_EO4_DOWN_S2 = false;
Base.AUDNZD_OCO4_DOWN_S2_IsReady = false;
if (Base.AUDNZD_OCO4_DOWN_S2_IsReady == false && Base.AUDNZD_OCO3_DOWN_S2_IsReady == false && Base.AUDNZD_OCO2_DOWN_S2_IsReady == false && Base.AUDNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDNZD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDNZD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDNZD_UP_S2_OCO1")))
{
Base.AUDNZD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDNZD_UP_S2_OCO2")))
{
Base.AUDNZD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDNZD_UP_S2_OCO3")))
{
Base.AUDNZD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDNZD_UP_S2_OCO4")))
{
Base.AUDNZD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDNZD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDNZD_OCO1_EO1_UP_S2)
Base.AUDNZD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO2_UP_S2)
Base.AUDNZD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO3_UP_S2)
Base.AUDNZD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO4_UP_S2)
Base.AUDNZD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO5_UP_S2)
Base.AUDNZD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO1_EO6_UP_S2)
Base.AUDNZD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDNZD_UP_S2_OCO_DELAY_7DAY))
{
int AUDNZD_OCO1S1_UP_S2 = 0;
for (; AUDNZD_OCO1S1_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets1.Count; AUDNZD_OCO1S1_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets1[AUDNZD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO1Sets1[AUDNZD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_1__Time out_OCO1");
Base.AUDNZD_UP_S2_OCO1Sets1.Clear();
AUDNZD_OCO1S1_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S2_UP_S2 = 0;
for (; AUDNZD_OCO1S2_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets2.Count; AUDNZD_OCO1S2_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets2[AUDNZD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO1Sets2[AUDNZD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_2__Time out_OCO1");
Base.AUDNZD_UP_S2_OCO1Sets2.Clear();
AUDNZD_OCO1S2_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S3_UP_S2 = 0;
for (; AUDNZD_OCO1S3_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets3.Count; AUDNZD_OCO1S3_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets3[AUDNZD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO1Sets3[AUDNZD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_3__Time out_OCO1");
Base.AUDNZD_UP_S2_OCO1Sets3.Clear();
AUDNZD_OCO1S3_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S4_UP_S2 = 0;
for (; AUDNZD_OCO1S4_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets4.Count; AUDNZD_OCO1S4_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets4[AUDNZD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO1Sets4[AUDNZD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_4__Time out_OCO1");
Base.AUDNZD_UP_S2_OCO1Sets4.Clear();
AUDNZD_OCO1S4_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S5_UP_S2 = 0;
for (; AUDNZD_OCO1S5_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets5.Count; AUDNZD_OCO1S5_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets5[AUDNZD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO1Sets5[AUDNZD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_5__Time out_OCO1");
Base.AUDNZD_UP_S2_OCO1Sets5.Clear();
AUDNZD_OCO1S5_UP_S2 = 0;
break;
}
int AUDNZD_OCO1S6_UP_S2 = 0;
for (; AUDNZD_OCO1S6_UP_S2 < Base.AUDNZD_UP_S2_OCO1Sets6.Count; AUDNZD_OCO1S6_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO1Sets6[AUDNZD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO1Sets6[AUDNZD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_6__Time out_OCO1");
Base.AUDNZD_UP_S2_OCO1Sets6.Clear();
AUDNZD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO2_EO1_UP_S2)
Base.AUDNZD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO2_UP_S2)
Base.AUDNZD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO3_UP_S2)
Base.AUDNZD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO4_UP_S2)
Base.AUDNZD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO5_UP_S2)
Base.AUDNZD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO2_EO6_UP_S2)
Base.AUDNZD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDNZD_UP_S2_OCO_DELAY_7DAY))
{
int AUDNZD_OCO2S1_UP_S2 = 0;
for (; AUDNZD_OCO2S1_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets1.Count; AUDNZD_OCO2S1_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets1[AUDNZD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO2Sets1[AUDNZD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_1__Time out_OCO2");
Base.AUDNZD_UP_S2_OCO2Sets1.Clear();
AUDNZD_OCO2S1_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S2_UP_S2 = 0;
for (; AUDNZD_OCO2S2_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets2.Count; AUDNZD_OCO2S2_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets2[AUDNZD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO2Sets2[AUDNZD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_2__Time out_OCO2");
Base.AUDNZD_UP_S2_OCO2Sets2.Clear();
AUDNZD_OCO2S2_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S3_UP_S2 = 0;
for (; AUDNZD_OCO2S3_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets3.Count; AUDNZD_OCO2S3_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets3[AUDNZD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO2Sets3[AUDNZD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_3__Time out_OCO2");
Base.AUDNZD_UP_S2_OCO2Sets3.Clear();
AUDNZD_OCO2S3_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S4_UP_S2 = 0;
for (; AUDNZD_OCO2S4_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets4.Count; AUDNZD_OCO2S4_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets4[AUDNZD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO2Sets4[AUDNZD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_4__Time out_OCO2");
Base.AUDNZD_UP_S2_OCO2Sets4.Clear();
AUDNZD_OCO2S4_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S5_UP_S2 = 0;
for (; AUDNZD_OCO2S5_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets5.Count; AUDNZD_OCO2S5_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets5[AUDNZD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO2Sets5[AUDNZD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_5__Time out_OCO2");
Base.AUDNZD_UP_S2_OCO2Sets5.Clear();
AUDNZD_OCO2S5_UP_S2 = 0;
break;
}
int AUDNZD_OCO2S6_UP_S2 = 0;
for (; AUDNZD_OCO2S6_UP_S2 < Base.AUDNZD_UP_S2_OCO2Sets6.Count; AUDNZD_OCO2S6_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO2Sets6[AUDNZD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO2Sets6[AUDNZD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_6__Time out_OCO2");
Base.AUDNZD_UP_S2_OCO2Sets6.Clear();
AUDNZD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO3_EO1_UP_S2)
Base.AUDNZD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO2_UP_S2)
Base.AUDNZD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO3_UP_S2)
Base.AUDNZD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO4_UP_S2)
Base.AUDNZD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO5_UP_S2)
Base.AUDNZD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO3_EO6_UP_S2)
Base.AUDNZD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDNZD_UP_S2_OCO_DELAY_7DAY))
{
int AUDNZD_OCO3S1_UP_S2 = 0;
for (; AUDNZD_OCO3S1_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets1.Count; AUDNZD_OCO3S1_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets1[AUDNZD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO3Sets1[AUDNZD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_1__Time out_OCO3");
Base.AUDNZD_UP_S2_OCO3Sets1.Clear();
AUDNZD_OCO3S1_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S2_UP_S2 = 0;
for (; AUDNZD_OCO3S2_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets2.Count; AUDNZD_OCO3S2_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets2[AUDNZD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO3Sets2[AUDNZD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_2__Time out_OCO3");
Base.AUDNZD_UP_S2_OCO3Sets2.Clear();
AUDNZD_OCO3S2_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S3_UP_S2 = 0;
for (; AUDNZD_OCO3S3_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets3.Count; AUDNZD_OCO3S3_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets3[AUDNZD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO3Sets3[AUDNZD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_3__Time out_OCO3");
Base.AUDNZD_UP_S2_OCO3Sets3.Clear();
AUDNZD_OCO3S3_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S4_UP_S2 = 0;
for (; AUDNZD_OCO3S4_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets4.Count; AUDNZD_OCO3S4_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets4[AUDNZD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO3Sets4[AUDNZD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_4__Time out_OCO3");
Base.AUDNZD_UP_S2_OCO3Sets4.Clear();
AUDNZD_OCO3S4_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S5_UP_S2 = 0;
for (; AUDNZD_OCO3S5_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets5.Count; AUDNZD_OCO3S5_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets5[AUDNZD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO3Sets5[AUDNZD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_5__Time out_OCO3");
Base.AUDNZD_UP_S2_OCO3Sets5.Clear();
AUDNZD_OCO3S5_UP_S2 = 0;
break;
}
int AUDNZD_OCO3S6_UP_S2 = 0;
for (; AUDNZD_OCO3S6_UP_S2 < Base.AUDNZD_UP_S2_OCO3Sets6.Count; AUDNZD_OCO3S6_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO3Sets6[AUDNZD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO3Sets6[AUDNZD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_6__Time out_OCO3");
Base.AUDNZD_UP_S2_OCO3Sets6.Clear();
AUDNZD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDNZD_OCO4_EO1_UP_S2)
Base.AUDNZD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO2_UP_S2)
Base.AUDNZD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO3_UP_S2)
Base.AUDNZD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO4_UP_S2)
Base.AUDNZD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO5_UP_S2)
Base.AUDNZD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.AUDNZD_OCO4_EO6_UP_S2)
Base.AUDNZD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDNZD_UP_S2_OCO_DELAY_7DAY))
{
int AUDNZD_OCO4S1_UP_S2 = 0;
for (; AUDNZD_OCO4S1_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets1.Count; AUDNZD_OCO4S1_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets1[AUDNZD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO4Sets1[AUDNZD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_1__Time out_OCO4");
Base.AUDNZD_UP_S2_OCO4Sets1.Clear();
AUDNZD_OCO4S1_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S2_UP_S2 = 0;
for (; AUDNZD_OCO4S2_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets2.Count; AUDNZD_OCO4S2_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets2[AUDNZD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO4Sets2[AUDNZD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_2__Time out_OCO4");
Base.AUDNZD_UP_S2_OCO4Sets2.Clear();
AUDNZD_OCO4S2_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S3_UP_S2 = 0;
for (; AUDNZD_OCO4S3_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets3.Count; AUDNZD_OCO4S3_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets3[AUDNZD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO4Sets3[AUDNZD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_3__Time out_OCO4");
Base.AUDNZD_UP_S2_OCO4Sets3.Clear();
AUDNZD_OCO4S3_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S4_UP_S2 = 0;
for (; AUDNZD_OCO4S4_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets4.Count; AUDNZD_OCO4S4_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets4[AUDNZD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO4Sets4[AUDNZD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_4__Time out_OCO4");
Base.AUDNZD_UP_S2_OCO4Sets4.Clear();
AUDNZD_OCO4S4_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S5_UP_S2 = 0;
for (; AUDNZD_OCO4S5_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets5.Count; AUDNZD_OCO4S5_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets5[AUDNZD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO4Sets5[AUDNZD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_5__Time out_OCO4");
Base.AUDNZD_UP_S2_OCO4Sets5.Clear();
AUDNZD_OCO4S5_UP_S2 = 0;
break;
}
int AUDNZD_OCO4S6_UP_S2 = 0;
for (; AUDNZD_OCO4S6_UP_S2 < Base.AUDNZD_UP_S2_OCO4Sets6.Count; AUDNZD_OCO4S6_UP_S2++)
if (Base.AUDNZD_UP_S2_OCO4Sets6[AUDNZD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.AUDNZD_UP_S2_OCO4Sets6[AUDNZD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("AUDNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDNZD", order.Quantity, false, "AUDNZD_UP_S2_Entry_6__Time out_OCO4");
Base.AUDNZD_UP_S2_OCO4Sets6.Clear();
AUDNZD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDNZD_UP_S2 = DOWM_AUDNZD_UP_S2 || DOWT_AUDNZD_UP_S2 || DOWW_AUDNZD_UP_S2 || DOWTH_AUDNZD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDNZD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDNZD_OCO1_UP_S2_IsReady == false ||
Base.AUDNZD_OCO2_UP_S2_IsReady == false ||
Base.AUDNZD_OCO3_UP_S2_IsReady == false ||
Base.AUDNZD_OCO4_UP_S2_IsReady == false)
{
Base.AUDNZD_OCO1_UP_S2_Monthly_IsReady = false;
Base.AUDNZD_OCO2_UP_S2_Monthly_IsReady = false;
Base.AUDNZD_OCO3_UP_S2_Monthly_IsReady = false;
Base.AUDNZD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDNZD_OCO1_UP_S2_Monthly_IsReady = true;
Base.AUDNZD_OCO2_UP_S2_Monthly_IsReady = true;
Base.AUDNZD_OCO3_UP_S2_Monthly_IsReady = true;
Base.AUDNZD_OCO4_UP_S2_Monthly_IsReady = true;
}
AUDNZD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
AUDNZD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
AUDNZD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (AUDNZD_Signal_Condition_UP_1)
{
AUDNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDNZD_Signal_Condition_UP_2)
{
AUDNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDNZD_Signal_Condition_UP_3)
{
AUDNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDNZD_Signal_Condition_UP_1)
{
AUDNZD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (AUDNZD_Signal_Condition_UP_2)
{
AUDNZD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (AUDNZD_Signal_Condition_UP_3)
{
AUDNZD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
AUDNZD_UP_S2_TP2 = AUDNZD_UP_S2_SL * 0;
AUDNZD_UP_S2_TP3 = AUDNZD_UP_S2_SL * 0;
AUDNZD_UP_S2_TP4 = AUDNZD_UP_S2_SL * 0;
AUDNZD_UP_S2_TP5 = AUDNZD_UP_S2_SL * 0;
AUDNZD_UP_S2_TP6 = AUDNZD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDNZD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDNZD_quantity_SL_UP_S2 = AUDNZD_quantity_UP_S2;
AUDNZD_quantity_TP1_UP_S2 = (int)Math.Floor(AUDNZD_quantity_UP_S2 * 1m);
AUDNZD_quantity_TP2_UP_S2 = (int)Math.Floor(AUDNZD_quantity_TP1_UP_S2 * 0m);
AUDNZD_quantity_TP3_UP_S2 = (int)Math.Floor(AUDNZD_quantity_TP2_UP_S2 * 0m);
AUDNZD_quantity_TP4_UP_S2 = (int)Math.Floor(AUDNZD_quantity_TP3_UP_S2 * 0m);
AUDNZD_quantity_TP5_UP_S2 = (int)Math.Floor(AUDNZD_quantity_TP4_UP_S2 * 0m);
AUDNZD_quantity_TP6_UP_S2 = (int)Math.Floor(AUDNZD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((AUDNZD_Signal_Condition_UP_1 || AUDNZD_Signal_Condition_UP_2 || AUDNZD_Signal_Condition_UP_3) &&
DOWR_AUDNZD_UP_S2 &&
Base.AUDNZD_OCO1_UP_S2_IsReady == true &&
Base.AUDNZD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.AUDNZD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP1_UP_S2, false,"AUDNZD_UP_S2_Entry_TP1_OCO1");
Base.AUDNZD_OCO1_EO1_UP_S2 = false;
Base.AUDNZD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP2_UP_S2, false,"AUDNZD_UP_S2_Entry_TP2_OCO1");
Base.AUDNZD_OCO1_EO2_UP_S2 = false;
Base.AUDNZD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP3_UP_S2, false,"AUDNZD_UP_S2_Entry_TP3_OCO1");
Base.AUDNZD_OCO1_EO3_UP_S2 = false;
Base.AUDNZD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP4_UP_S2, false,"AUDNZD_UP_S2_Entry_TP4_OCO1");
Base.AUDNZD_OCO1_EO4_UP_S2 = false;
Base.AUDNZD_OCO1_UP_S2_IsReady = false;
if (Base.AUDNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((AUDNZD_Signal_Condition_UP_1 || AUDNZD_Signal_Condition_UP_2 || AUDNZD_Signal_Condition_UP_3) &&
DOWR_AUDNZD_UP_S2 &&
Base.AUDNZD_OCO1_UP_S2_IsReady == false &&
Base.AUDNZD_OCO2_UP_S2_IsReady == true &&
Base.AUDNZD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.AUDNZD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP1_UP_S2, false,"AUDNZD_UP_S2_Entry_TP1_OCO2");
Base.AUDNZD_OCO2_EO1_UP_S2 = false;
Base.AUDNZD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP2_UP_S2, false,"AUDNZD_UP_S2_Entry_TP2_OCO2");
Base.AUDNZD_OCO2_EO2_UP_S2 = false;
Base.AUDNZD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP3_UP_S2, false,"AUDNZD_UP_S2_Entry_TP3_OCO2");
Base.AUDNZD_OCO2_EO3_UP_S2 = false;
Base.AUDNZD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP4_UP_S2, false,"AUDNZD_UP_S2_Entry_TP4_OCO2");
Base.AUDNZD_OCO2_EO4_UP_S2 = false;
Base.AUDNZD_OCO2_UP_S2_IsReady = false;
if (Base.AUDNZD_OCO2_UP_S2_IsReady == false && Base.AUDNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((AUDNZD_Signal_Condition_UP_1 || AUDNZD_Signal_Condition_UP_2 || AUDNZD_Signal_Condition_UP_3) &&
DOWR_AUDNZD_UP_S2 &&
Base.AUDNZD_OCO1_UP_S2_IsReady == false &&
Base.AUDNZD_OCO2_UP_S2_IsReady == false &&
Base.AUDNZD_OCO3_UP_S2_IsReady == true &&
Base.AUDNZD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.AUDNZD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP1_UP_S2, false,"AUDNZD_UP_S2_Entry_TP1_OCO3");
Base.AUDNZD_OCO3_EO1_UP_S2 = false;
Base.AUDNZD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP2_UP_S2, false,"AUDNZD_UP_S2_Entry_TP2_OCO3");
Base.AUDNZD_OCO3_EO2_UP_S2 = false;
Base.AUDNZD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP3_UP_S2, false,"AUDNZD_UP_S2_Entry_TP3_OCO3");
Base.AUDNZD_OCO3_EO3_UP_S2 = false;
Base.AUDNZD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP4_UP_S2, false,"AUDNZD_UP_S2_Entry_TP4_OCO3");
Base.AUDNZD_OCO3_EO4_UP_S2 = false;
Base.AUDNZD_OCO3_UP_S2_IsReady = false;
if (Base.AUDNZD_OCO3_UP_S2_IsReady == false && Base.AUDNZD_OCO2_UP_S2_IsReady == false && Base.AUDNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((AUDNZD_Signal_Condition_UP_1 || AUDNZD_Signal_Condition_UP_2 || AUDNZD_Signal_Condition_UP_3) &&
DOWR_AUDNZD_UP_S2 &&
Base.AUDNZD_OCO1_UP_S2_IsReady == false &&
Base.AUDNZD_OCO2_UP_S2_IsReady == false &&
Base.AUDNZD_OCO3_UP_S2_IsReady == false &&
Base.AUDNZD_OCO4_UP_S2_IsReady == true &&
Base.AUDNZD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.AUDNZD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP1_UP_S2, false,"AUDNZD_UP_S2_Entry_TP1_OCO4");
Base.AUDNZD_OCO4_EO1_UP_S2 = false;
Base.AUDNZD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP2_UP_S2, false,"AUDNZD_UP_S2_Entry_TP2_OCO4");
Base.AUDNZD_OCO4_EO2_UP_S2 = false;
Base.AUDNZD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP3_UP_S2, false,"AUDNZD_UP_S2_Entry_TP3_OCO4");
Base.AUDNZD_OCO4_EO3_UP_S2 = false;
Base.AUDNZD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDNZD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDNZD_quantity_TP4_UP_S2, false,"AUDNZD_UP_S2_Entry_TP4_OCO4");
Base.AUDNZD_OCO4_EO4_UP_S2 = false;
Base.AUDNZD_OCO4_UP_S2_IsReady = false;
if (Base.AUDNZD_OCO4_UP_S2_IsReady == false && Base.AUDNZD_OCO3_UP_S2_IsReady == false && Base.AUDNZD_OCO2_UP_S2_IsReady == false && Base.AUDNZD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDCHF_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDCHF_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDCHF_DOWN_S2_OCO1")))
{
Base.AUDCHF_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCHF_DOWN_S2_OCO2")))
{
Base.AUDCHF_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCHF_DOWN_S2_OCO3")))
{
Base.AUDCHF_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCHF_DOWN_S2_OCO4")))
{
Base.AUDCHF_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDCHF_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDCHF_OCO1_EO1_DOWN_S2)
Base.AUDCHF_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO2_DOWN_S2)
Base.AUDCHF_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO3_DOWN_S2)
Base.AUDCHF_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO4_DOWN_S2)
Base.AUDCHF_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO5_DOWN_S2)
Base.AUDCHF_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO6_DOWN_S2)
Base.AUDCHF_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDCHF_OCO1S1_DOWN_S2 = 0;
for (; AUDCHF_OCO1S1_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets1.Count; AUDCHF_OCO1S1_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets1[AUDCHF_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO1Sets1[AUDCHF_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_1__Time out_OCO1");
Base.AUDCHF_DOWN_S2_OCO1Sets1.Clear();
AUDCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO1S2_DOWN_S2 = 0;
for (; AUDCHF_OCO1S2_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets2.Count; AUDCHF_OCO1S2_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets2[AUDCHF_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO1Sets2[AUDCHF_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_2__Time out_OCO1");
Base.AUDCHF_DOWN_S2_OCO1Sets2.Clear();
AUDCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO1S3_DOWN_S2 = 0;
for (; AUDCHF_OCO1S3_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets3.Count; AUDCHF_OCO1S3_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets3[AUDCHF_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO1Sets3[AUDCHF_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_3__Time out_OCO1");
Base.AUDCHF_DOWN_S2_OCO1Sets3.Clear();
AUDCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO1S4_DOWN_S2 = 0;
for (; AUDCHF_OCO1S4_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets4.Count; AUDCHF_OCO1S4_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets4[AUDCHF_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO1Sets4[AUDCHF_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_4__Time out_OCO1");
Base.AUDCHF_DOWN_S2_OCO1Sets4.Clear();
AUDCHF_OCO1S4_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO1S5_DOWN_S2 = 0;
for (; AUDCHF_OCO1S5_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets5.Count; AUDCHF_OCO1S5_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets5[AUDCHF_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO1Sets5[AUDCHF_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_5__Time out_OCO1");
Base.AUDCHF_DOWN_S2_OCO1Sets5.Clear();
AUDCHF_OCO1S5_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO1S6_DOWN_S2 = 0;
for (; AUDCHF_OCO1S6_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO1Sets6.Count; AUDCHF_OCO1S6_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO1Sets6[AUDCHF_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO1Sets6[AUDCHF_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_6__Time out_OCO1");
Base.AUDCHF_DOWN_S2_OCO1Sets6.Clear();
AUDCHF_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO2_EO1_DOWN_S2)
Base.AUDCHF_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO2_DOWN_S2)
Base.AUDCHF_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO3_DOWN_S2)
Base.AUDCHF_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO4_DOWN_S2)
Base.AUDCHF_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO5_DOWN_S2)
Base.AUDCHF_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO6_DOWN_S2)
Base.AUDCHF_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDCHF_OCO2S1_DOWN_S2 = 0;
for (; AUDCHF_OCO2S1_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets1.Count; AUDCHF_OCO2S1_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets1[AUDCHF_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO2Sets1[AUDCHF_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_1__Time out_OCO2");
Base.AUDCHF_DOWN_S2_OCO2Sets1.Clear();
AUDCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO2S2_DOWN_S2 = 0;
for (; AUDCHF_OCO2S2_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets2.Count; AUDCHF_OCO2S2_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets2[AUDCHF_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO2Sets2[AUDCHF_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_2__Time out_OCO2");
Base.AUDCHF_DOWN_S2_OCO2Sets2.Clear();
AUDCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO2S3_DOWN_S2 = 0;
for (; AUDCHF_OCO2S3_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets3.Count; AUDCHF_OCO2S3_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets3[AUDCHF_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO2Sets3[AUDCHF_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_3__Time out_OCO2");
Base.AUDCHF_DOWN_S2_OCO2Sets3.Clear();
AUDCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO2S4_DOWN_S2 = 0;
for (; AUDCHF_OCO2S4_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets4.Count; AUDCHF_OCO2S4_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets4[AUDCHF_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO2Sets4[AUDCHF_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_4__Time out_OCO2");
Base.AUDCHF_DOWN_S2_OCO2Sets4.Clear();
AUDCHF_OCO2S4_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO2S5_DOWN_S2 = 0;
for (; AUDCHF_OCO2S5_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets5.Count; AUDCHF_OCO2S5_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets5[AUDCHF_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO2Sets5[AUDCHF_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_5__Time out_OCO2");
Base.AUDCHF_DOWN_S2_OCO2Sets5.Clear();
AUDCHF_OCO2S5_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO2S6_DOWN_S2 = 0;
for (; AUDCHF_OCO2S6_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO2Sets6.Count; AUDCHF_OCO2S6_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO2Sets6[AUDCHF_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO2Sets6[AUDCHF_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_6__Time out_OCO2");
Base.AUDCHF_DOWN_S2_OCO2Sets6.Clear();
AUDCHF_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO3_EO1_DOWN_S2)
Base.AUDCHF_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO2_DOWN_S2)
Base.AUDCHF_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO3_DOWN_S2)
Base.AUDCHF_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO4_DOWN_S2)
Base.AUDCHF_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO5_DOWN_S2)
Base.AUDCHF_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO6_DOWN_S2)
Base.AUDCHF_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDCHF_OCO3S1_DOWN_S2 = 0;
for (; AUDCHF_OCO3S1_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets1.Count; AUDCHF_OCO3S1_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets1[AUDCHF_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO3Sets1[AUDCHF_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_1__Time out_OCO3");
Base.AUDCHF_DOWN_S2_OCO3Sets1.Clear();
AUDCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO3S2_DOWN_S2 = 0;
for (; AUDCHF_OCO3S2_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets2.Count; AUDCHF_OCO3S2_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets2[AUDCHF_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO3Sets2[AUDCHF_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_2__Time out_OCO3");
Base.AUDCHF_DOWN_S2_OCO3Sets2.Clear();
AUDCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO3S3_DOWN_S2 = 0;
for (; AUDCHF_OCO3S3_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets3.Count; AUDCHF_OCO3S3_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets3[AUDCHF_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO3Sets3[AUDCHF_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_3__Time out_OCO3");
Base.AUDCHF_DOWN_S2_OCO3Sets3.Clear();
AUDCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO3S4_DOWN_S2 = 0;
for (; AUDCHF_OCO3S4_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets4.Count; AUDCHF_OCO3S4_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets4[AUDCHF_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO3Sets4[AUDCHF_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_4__Time out_OCO3");
Base.AUDCHF_DOWN_S2_OCO3Sets4.Clear();
AUDCHF_OCO3S4_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO3S5_DOWN_S2 = 0;
for (; AUDCHF_OCO3S5_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets5.Count; AUDCHF_OCO3S5_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets5[AUDCHF_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO3Sets5[AUDCHF_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_5__Time out_OCO3");
Base.AUDCHF_DOWN_S2_OCO3Sets5.Clear();
AUDCHF_OCO3S5_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO3S6_DOWN_S2 = 0;
for (; AUDCHF_OCO3S6_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO3Sets6.Count; AUDCHF_OCO3S6_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO3Sets6[AUDCHF_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO3Sets6[AUDCHF_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_6__Time out_OCO3");
Base.AUDCHF_DOWN_S2_OCO3Sets6.Clear();
AUDCHF_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO4_EO1_DOWN_S2)
Base.AUDCHF_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO2_DOWN_S2)
Base.AUDCHF_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO3_DOWN_S2)
Base.AUDCHF_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO4_DOWN_S2)
Base.AUDCHF_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO5_DOWN_S2)
Base.AUDCHF_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO6_DOWN_S2)
Base.AUDCHF_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDCHF_OCO4S1_DOWN_S2 = 0;
for (; AUDCHF_OCO4S1_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets1.Count; AUDCHF_OCO4S1_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets1[AUDCHF_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO4Sets1[AUDCHF_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_1__Time out_OCO4");
Base.AUDCHF_DOWN_S2_OCO4Sets1.Clear();
AUDCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO4S2_DOWN_S2 = 0;
for (; AUDCHF_OCO4S2_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets2.Count; AUDCHF_OCO4S2_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets2[AUDCHF_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO4Sets2[AUDCHF_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_2__Time out_OCO4");
Base.AUDCHF_DOWN_S2_OCO4Sets2.Clear();
AUDCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO4S3_DOWN_S2 = 0;
for (; AUDCHF_OCO4S3_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets3.Count; AUDCHF_OCO4S3_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets3[AUDCHF_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO4Sets3[AUDCHF_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_3__Time out_OCO4");
Base.AUDCHF_DOWN_S2_OCO4Sets3.Clear();
AUDCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO4S4_DOWN_S2 = 0;
for (; AUDCHF_OCO4S4_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets4.Count; AUDCHF_OCO4S4_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets4[AUDCHF_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO4Sets4[AUDCHF_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_4__Time out_OCO4");
Base.AUDCHF_DOWN_S2_OCO4Sets4.Clear();
AUDCHF_OCO4S4_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO4S5_DOWN_S2 = 0;
for (; AUDCHF_OCO4S5_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets5.Count; AUDCHF_OCO4S5_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets5[AUDCHF_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO4Sets5[AUDCHF_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_5__Time out_OCO4");
Base.AUDCHF_DOWN_S2_OCO4Sets5.Clear();
AUDCHF_OCO4S5_DOWN_S2 = 0;
break;
}
int AUDCHF_OCO4S6_DOWN_S2 = 0;
for (; AUDCHF_OCO4S6_DOWN_S2 < Base.AUDCHF_DOWN_S2_OCO4Sets6.Count; AUDCHF_OCO4S6_DOWN_S2++)
if (Base.AUDCHF_DOWN_S2_OCO4Sets6[AUDCHF_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDCHF_DOWN_S2_OCO4Sets6[AUDCHF_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_DOWN_S2_Entry_6__Time out_OCO4");
Base.AUDCHF_DOWN_S2_OCO4Sets6.Clear();
AUDCHF_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDCHF_DOWN_S2 = DOWM_AUDCHF_DOWN_S2 || DOWT_AUDCHF_DOWN_S2 || DOWW_AUDCHF_DOWN_S2 || DOWTH_AUDCHF_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDCHF_OCO1_DOWN_S2_IsReady == false ||
Base.AUDCHF_OCO2_DOWN_S2_IsReady == false ||
Base.AUDCHF_OCO3_DOWN_S2_IsReady == false ||
Base.AUDCHF_OCO4_DOWN_S2_IsReady == false)
{
Base.AUDCHF_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.AUDCHF_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.AUDCHF_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.AUDCHF_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.AUDCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.AUDCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.AUDCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
}
AUDCHF_Signal_Condition_DOWN_S2 =
(
pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.01m &&
prices_ASK_Close[0] > pricesM_ASK_Close[0] &&
prices_ASK_Close[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.000001m &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.02m
);
AUDCHF_DOWN_S2_SL = 0.01m;
AUDCHF_DOWN_S2_TP1 = 0.0005m;
AUDCHF_DOWN_S2_TP2 = AUDCHF_DOWN_S2_SL * 0;
AUDCHF_DOWN_S2_TP3 = AUDCHF_DOWN_S2_SL * 0;
AUDCHF_DOWN_S2_TP4 = AUDCHF_DOWN_S2_SL * 0;
AUDCHF_DOWN_S2_TP5 = AUDCHF_DOWN_S2_SL * 0;
AUDCHF_DOWN_S2_TP6 = AUDCHF_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDCHF_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDCHF_quantity_SL_DOWN_S2 = AUDCHF_quantity_DOWN_S2;
AUDCHF_quantity_TP1_DOWN_S2 = (int)Math.Floor(AUDCHF_quantity_DOWN_S2 * 1m);
AUDCHF_quantity_TP2_DOWN_S2 = (int)Math.Floor(AUDCHF_quantity_TP1_DOWN_S2 * 0m);
AUDCHF_quantity_TP3_DOWN_S2 = (int)Math.Floor(AUDCHF_quantity_TP2_DOWN_S2 * 0m);
AUDCHF_quantity_TP4_DOWN_S2 = (int)Math.Floor(AUDCHF_quantity_TP3_DOWN_S2 * 0m);
AUDCHF_quantity_TP5_DOWN_S2 = (int)Math.Floor(AUDCHF_quantity_TP4_DOWN_S2 * 0m);
AUDCHF_quantity_TP6_DOWN_S2 = (int)Math.Floor(AUDCHF_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (AUDCHF_Signal_Condition_DOWN_S2 &&
DOWR_AUDCHF_DOWN_S2 &&
Base.AUDCHF_OCO1_DOWN_S2_IsReady == true &&
Base.AUDCHF_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDCHF_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP1_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP1_OCO1");
Base.AUDCHF_OCO1_EO1_DOWN_S2 = false;
Base.AUDCHF_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP2_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP2_OCO1");
Base.AUDCHF_OCO1_EO2_DOWN_S2 = false;
Base.AUDCHF_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP3_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP3_OCO1");
Base.AUDCHF_OCO1_EO3_DOWN_S2 = false;
Base.AUDCHF_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP4_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP4_OCO1");
Base.AUDCHF_OCO1_EO4_DOWN_S2 = false;
Base.AUDCHF_OCO1_DOWN_S2_IsReady = false;
if (Base.AUDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (AUDCHF_Signal_Condition_DOWN_S2 &&
DOWR_AUDCHF_DOWN_S2 &&
Base.AUDCHF_OCO2_DOWN_S2_IsReady == true &&
Base.AUDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.AUDCHF_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDCHF_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP1_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP1_OCO2");
Base.AUDCHF_OCO2_EO1_DOWN_S2 = false;
Base.AUDCHF_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP2_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP2_OCO2");
Base.AUDCHF_OCO2_EO2_DOWN_S2 = false;
Base.AUDCHF_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP3_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP3_OCO2");
Base.AUDCHF_OCO2_EO3_DOWN_S2 = false;
Base.AUDCHF_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP4_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP4_OCO2");
Base.AUDCHF_OCO2_EO4_DOWN_S2 = false;
Base.AUDCHF_OCO2_DOWN_S2_IsReady = false;
if (Base.AUDCHF_OCO2_DOWN_S2_IsReady == false && Base.AUDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (AUDCHF_Signal_Condition_DOWN_S2 &&
DOWR_AUDCHF_DOWN_S2 &&
Base.AUDCHF_OCO3_DOWN_S2_IsReady == true &&
Base.AUDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.AUDCHF_OCO2_DOWN_S2_IsReady == false &&
Base.AUDCHF_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDCHF_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP1_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP1_OCO3");
Base.AUDCHF_OCO3_EO1_DOWN_S2 = false;
Base.AUDCHF_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP2_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP2_OCO3");
Base.AUDCHF_OCO3_EO2_DOWN_S2 = false;
Base.AUDCHF_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP3_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP3_OCO3");
Base.AUDCHF_OCO3_EO3_DOWN_S2 = false;
Base.AUDCHF_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP4_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP4_OCO3");
Base.AUDCHF_OCO3_EO4_DOWN_S2 = false;
Base.AUDCHF_OCO3_DOWN_S2_IsReady = false;
if (Base.AUDCHF_OCO3_DOWN_S2_IsReady == false && Base.AUDCHF_OCO2_DOWN_S2_IsReady == false && Base.AUDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (AUDCHF_Signal_Condition_DOWN_S2 &&
DOWR_AUDCHF_DOWN_S2 &&
Base.AUDCHF_OCO4_DOWN_S2_IsReady == true &&
Base.AUDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.AUDCHF_OCO2_DOWN_S2_IsReady == false &&
Base.AUDCHF_OCO3_DOWN_S2_IsReady == false &&
Base.AUDCHF_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDCHF_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP1_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP1_OCO4");
Base.AUDCHF_OCO4_EO1_DOWN_S2 = false;
Base.AUDCHF_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP2_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP2_OCO4");
Base.AUDCHF_OCO4_EO2_DOWN_S2 = false;
Base.AUDCHF_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP3_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP3_OCO4");
Base.AUDCHF_OCO4_EO3_DOWN_S2 = false;
Base.AUDCHF_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCHF_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP4_DOWN_S2, false,"AUDCHF_DOWN_S2_Entry_TP4_OCO4");
Base.AUDCHF_OCO4_EO4_DOWN_S2 = false;
Base.AUDCHF_OCO4_DOWN_S2_IsReady = false;
if (Base.AUDCHF_OCO4_DOWN_S2_IsReady == false && Base.AUDCHF_OCO3_DOWN_S2_IsReady == false && Base.AUDCHF_OCO2_DOWN_S2_IsReady == false && Base.AUDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDCHF_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDCHF_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDCHF_UP_S2_OCO1")))
{
Base.AUDCHF_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCHF_UP_S2_OCO2")))
{
Base.AUDCHF_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCHF_UP_S2_OCO3")))
{
Base.AUDCHF_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCHF_UP_S2_OCO4")))
{
Base.AUDCHF_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDCHF_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDCHF_OCO1_EO1_UP_S2)
Base.AUDCHF_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO2_UP_S2)
Base.AUDCHF_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO3_UP_S2)
Base.AUDCHF_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO4_UP_S2)
Base.AUDCHF_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO5_UP_S2)
Base.AUDCHF_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO1_EO6_UP_S2)
Base.AUDCHF_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCHF_UP_S2_OCO_DELAY_7DAY))
{
int AUDCHF_OCO1S1_UP_S2 = 0;
for (; AUDCHF_OCO1S1_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets1.Count; AUDCHF_OCO1S1_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets1[AUDCHF_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO1Sets1[AUDCHF_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_1__Time out_OCO1");
Base.AUDCHF_UP_S2_OCO1Sets1.Clear();
AUDCHF_OCO1S1_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S2_UP_S2 = 0;
for (; AUDCHF_OCO1S2_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets2.Count; AUDCHF_OCO1S2_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets2[AUDCHF_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO1Sets2[AUDCHF_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_2__Time out_OCO1");
Base.AUDCHF_UP_S2_OCO1Sets2.Clear();
AUDCHF_OCO1S2_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S3_UP_S2 = 0;
for (; AUDCHF_OCO1S3_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets3.Count; AUDCHF_OCO1S3_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets3[AUDCHF_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO1Sets3[AUDCHF_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_3__Time out_OCO1");
Base.AUDCHF_UP_S2_OCO1Sets3.Clear();
AUDCHF_OCO1S3_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S4_UP_S2 = 0;
for (; AUDCHF_OCO1S4_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets4.Count; AUDCHF_OCO1S4_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets4[AUDCHF_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO1Sets4[AUDCHF_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_4__Time out_OCO1");
Base.AUDCHF_UP_S2_OCO1Sets4.Clear();
AUDCHF_OCO1S4_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S5_UP_S2 = 0;
for (; AUDCHF_OCO1S5_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets5.Count; AUDCHF_OCO1S5_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets5[AUDCHF_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO1Sets5[AUDCHF_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_5__Time out_OCO1");
Base.AUDCHF_UP_S2_OCO1Sets5.Clear();
AUDCHF_OCO1S5_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S6_UP_S2 = 0;
for (; AUDCHF_OCO1S6_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets6.Count; AUDCHF_OCO1S6_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets6[AUDCHF_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO1Sets6[AUDCHF_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_6__Time out_OCO1");
Base.AUDCHF_UP_S2_OCO1Sets6.Clear();
AUDCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO2_EO1_UP_S2)
Base.AUDCHF_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO2_UP_S2)
Base.AUDCHF_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO3_UP_S2)
Base.AUDCHF_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO4_UP_S2)
Base.AUDCHF_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO5_UP_S2)
Base.AUDCHF_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO2_EO6_UP_S2)
Base.AUDCHF_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCHF_UP_S2_OCO_DELAY_7DAY))
{
int AUDCHF_OCO2S1_UP_S2 = 0;
for (; AUDCHF_OCO2S1_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets1.Count; AUDCHF_OCO2S1_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets1[AUDCHF_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO2Sets1[AUDCHF_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_1__Time out_OCO2");
Base.AUDCHF_UP_S2_OCO2Sets1.Clear();
AUDCHF_OCO2S1_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S2_UP_S2 = 0;
for (; AUDCHF_OCO2S2_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets2.Count; AUDCHF_OCO2S2_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets2[AUDCHF_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO2Sets2[AUDCHF_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_2__Time out_OCO2");
Base.AUDCHF_UP_S2_OCO2Sets2.Clear();
AUDCHF_OCO2S2_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S3_UP_S2 = 0;
for (; AUDCHF_OCO2S3_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets3.Count; AUDCHF_OCO2S3_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets3[AUDCHF_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO2Sets3[AUDCHF_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_3__Time out_OCO2");
Base.AUDCHF_UP_S2_OCO2Sets3.Clear();
AUDCHF_OCO2S3_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S4_UP_S2 = 0;
for (; AUDCHF_OCO2S4_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets4.Count; AUDCHF_OCO2S4_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets4[AUDCHF_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO2Sets4[AUDCHF_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_4__Time out_OCO2");
Base.AUDCHF_UP_S2_OCO2Sets4.Clear();
AUDCHF_OCO2S4_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S5_UP_S2 = 0;
for (; AUDCHF_OCO2S5_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets5.Count; AUDCHF_OCO2S5_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets5[AUDCHF_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO2Sets5[AUDCHF_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_5__Time out_OCO2");
Base.AUDCHF_UP_S2_OCO2Sets5.Clear();
AUDCHF_OCO2S5_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S6_UP_S2 = 0;
for (; AUDCHF_OCO2S6_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets6.Count; AUDCHF_OCO2S6_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets6[AUDCHF_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO2Sets6[AUDCHF_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_6__Time out_OCO2");
Base.AUDCHF_UP_S2_OCO2Sets6.Clear();
AUDCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO3_EO1_UP_S2)
Base.AUDCHF_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO2_UP_S2)
Base.AUDCHF_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO3_UP_S2)
Base.AUDCHF_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO4_UP_S2)
Base.AUDCHF_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO5_UP_S2)
Base.AUDCHF_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO3_EO6_UP_S2)
Base.AUDCHF_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCHF_UP_S2_OCO_DELAY_7DAY))
{
int AUDCHF_OCO3S1_UP_S2 = 0;
for (; AUDCHF_OCO3S1_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets1.Count; AUDCHF_OCO3S1_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets1[AUDCHF_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO3Sets1[AUDCHF_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_1__Time out_OCO3");
Base.AUDCHF_UP_S2_OCO3Sets1.Clear();
AUDCHF_OCO3S1_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S2_UP_S2 = 0;
for (; AUDCHF_OCO3S2_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets2.Count; AUDCHF_OCO3S2_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets2[AUDCHF_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO3Sets2[AUDCHF_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_2__Time out_OCO3");
Base.AUDCHF_UP_S2_OCO3Sets2.Clear();
AUDCHF_OCO3S2_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S3_UP_S2 = 0;
for (; AUDCHF_OCO3S3_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets3.Count; AUDCHF_OCO3S3_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets3[AUDCHF_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO3Sets3[AUDCHF_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_3__Time out_OCO3");
Base.AUDCHF_UP_S2_OCO3Sets3.Clear();
AUDCHF_OCO3S3_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S4_UP_S2 = 0;
for (; AUDCHF_OCO3S4_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets4.Count; AUDCHF_OCO3S4_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets4[AUDCHF_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO3Sets4[AUDCHF_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_4__Time out_OCO3");
Base.AUDCHF_UP_S2_OCO3Sets4.Clear();
AUDCHF_OCO3S4_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S5_UP_S2 = 0;
for (; AUDCHF_OCO3S5_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets5.Count; AUDCHF_OCO3S5_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets5[AUDCHF_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO3Sets5[AUDCHF_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_5__Time out_OCO3");
Base.AUDCHF_UP_S2_OCO3Sets5.Clear();
AUDCHF_OCO3S5_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S6_UP_S2 = 0;
for (; AUDCHF_OCO3S6_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets6.Count; AUDCHF_OCO3S6_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets6[AUDCHF_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO3Sets6[AUDCHF_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_6__Time out_OCO3");
Base.AUDCHF_UP_S2_OCO3Sets6.Clear();
AUDCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO4_EO1_UP_S2)
Base.AUDCHF_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO2_UP_S2)
Base.AUDCHF_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO3_UP_S2)
Base.AUDCHF_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO4_UP_S2)
Base.AUDCHF_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO5_UP_S2)
Base.AUDCHF_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.AUDCHF_OCO4_EO6_UP_S2)
Base.AUDCHF_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCHF_UP_S2_OCO_DELAY_7DAY))
{
int AUDCHF_OCO4S1_UP_S2 = 0;
for (; AUDCHF_OCO4S1_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets1.Count; AUDCHF_OCO4S1_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets1[AUDCHF_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO4Sets1[AUDCHF_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_1__Time out_OCO4");
Base.AUDCHF_UP_S2_OCO4Sets1.Clear();
AUDCHF_OCO4S1_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S2_UP_S2 = 0;
for (; AUDCHF_OCO4S2_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets2.Count; AUDCHF_OCO4S2_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets2[AUDCHF_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO4Sets2[AUDCHF_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_2__Time out_OCO4");
Base.AUDCHF_UP_S2_OCO4Sets2.Clear();
AUDCHF_OCO4S2_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S3_UP_S2 = 0;
for (; AUDCHF_OCO4S3_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets3.Count; AUDCHF_OCO4S3_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets3[AUDCHF_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO4Sets3[AUDCHF_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_3__Time out_OCO4");
Base.AUDCHF_UP_S2_OCO4Sets3.Clear();
AUDCHF_OCO4S3_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S4_UP_S2 = 0;
for (; AUDCHF_OCO4S4_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets4.Count; AUDCHF_OCO4S4_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets4[AUDCHF_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO4Sets4[AUDCHF_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_4__Time out_OCO4");
Base.AUDCHF_UP_S2_OCO4Sets4.Clear();
AUDCHF_OCO4S4_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S5_UP_S2 = 0;
for (; AUDCHF_OCO4S5_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets5.Count; AUDCHF_OCO4S5_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets5[AUDCHF_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO4Sets5[AUDCHF_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_5__Time out_OCO4");
Base.AUDCHF_UP_S2_OCO4Sets5.Clear();
AUDCHF_OCO4S5_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S6_UP_S2 = 0;
for (; AUDCHF_OCO4S6_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets6.Count; AUDCHF_OCO4S6_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets6[AUDCHF_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.AUDCHF_UP_S2_OCO4Sets6[AUDCHF_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("AUDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCHF", order.Quantity, false, "AUDCHF_UP_S2_Entry_6__Time out_OCO4");
Base.AUDCHF_UP_S2_OCO4Sets6.Clear();
AUDCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDCHF_UP_S2 = DOWM_AUDCHF_UP_S2 || DOWT_AUDCHF_UP_S2 || DOWW_AUDCHF_UP_S2 || DOWTH_AUDCHF_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDCHF_OCO1_UP_S2_IsReady == false ||
Base.AUDCHF_OCO2_UP_S2_IsReady == false ||
Base.AUDCHF_OCO3_UP_S2_IsReady == false ||
Base.AUDCHF_OCO4_UP_S2_IsReady == false)
{
Base.AUDCHF_OCO1_UP_S2_Monthly_IsReady = false;
Base.AUDCHF_OCO2_UP_S2_Monthly_IsReady = false;
Base.AUDCHF_OCO3_UP_S2_Monthly_IsReady = false;
Base.AUDCHF_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDCHF_OCO1_UP_S2_Monthly_IsReady = true;
Base.AUDCHF_OCO2_UP_S2_Monthly_IsReady = true;
Base.AUDCHF_OCO3_UP_S2_Monthly_IsReady = true;
Base.AUDCHF_OCO4_UP_S2_Monthly_IsReady = true;
}
AUDCHF_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
AUDCHF_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
AUDCHF_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (AUDCHF_Signal_Condition_UP_1)
{
AUDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDCHF_Signal_Condition_UP_2)
{
AUDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDCHF_Signal_Condition_UP_3)
{
AUDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDCHF_Signal_Condition_UP_1)
{
AUDCHF_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (AUDCHF_Signal_Condition_UP_2)
{
AUDCHF_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (AUDCHF_Signal_Condition_UP_3)
{
AUDCHF_UP_S2_TP1 = Base.Oth_TP_3 ;
}
AUDCHF_UP_S2_TP2 = AUDCHF_UP_S2_SL * 0;
AUDCHF_UP_S2_TP3 = AUDCHF_UP_S2_SL * 0;
AUDCHF_UP_S2_TP4 = AUDCHF_UP_S2_SL * 0;
AUDCHF_UP_S2_TP5 = AUDCHF_UP_S2_SL * 0;
AUDCHF_UP_S2_TP6 = AUDCHF_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDCHF_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDCHF_quantity_SL_UP_S2 = AUDCHF_quantity_UP_S2;
AUDCHF_quantity_TP1_UP_S2 = (int)Math.Floor(AUDCHF_quantity_UP_S2 * 1m);
AUDCHF_quantity_TP2_UP_S2 = (int)Math.Floor(AUDCHF_quantity_TP1_UP_S2 * 0m);
AUDCHF_quantity_TP3_UP_S2 = (int)Math.Floor(AUDCHF_quantity_TP2_UP_S2 * 0m);
AUDCHF_quantity_TP4_UP_S2 = (int)Math.Floor(AUDCHF_quantity_TP3_UP_S2 * 0m);
AUDCHF_quantity_TP5_UP_S2 = (int)Math.Floor(AUDCHF_quantity_TP4_UP_S2 * 0m);
AUDCHF_quantity_TP6_UP_S2 = (int)Math.Floor(AUDCHF_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((AUDCHF_Signal_Condition_UP_1 || AUDCHF_Signal_Condition_UP_2 || AUDCHF_Signal_Condition_UP_3) &&
DOWR_AUDCHF_UP_S2 &&
Base.AUDCHF_OCO1_UP_S2_IsReady == true &&
Base.AUDCHF_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.AUDCHF_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP1_UP_S2, false,"AUDCHF_UP_S2_Entry_TP1_OCO1");
Base.AUDCHF_OCO1_EO1_UP_S2 = false;
Base.AUDCHF_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP2_UP_S2, false,"AUDCHF_UP_S2_Entry_TP2_OCO1");
Base.AUDCHF_OCO1_EO2_UP_S2 = false;
Base.AUDCHF_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP3_UP_S2, false,"AUDCHF_UP_S2_Entry_TP3_OCO1");
Base.AUDCHF_OCO1_EO3_UP_S2 = false;
Base.AUDCHF_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP4_UP_S2, false,"AUDCHF_UP_S2_Entry_TP4_OCO1");
Base.AUDCHF_OCO1_EO4_UP_S2 = false;
Base.AUDCHF_OCO1_UP_S2_IsReady = false;
if (Base.AUDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((AUDCHF_Signal_Condition_UP_1 || AUDCHF_Signal_Condition_UP_2 || AUDCHF_Signal_Condition_UP_3) &&
DOWR_AUDCHF_UP_S2 &&
Base.AUDCHF_OCO1_UP_S2_IsReady == false &&
Base.AUDCHF_OCO2_UP_S2_IsReady == true &&
Base.AUDCHF_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.AUDCHF_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP1_UP_S2, false,"AUDCHF_UP_S2_Entry_TP1_OCO2");
Base.AUDCHF_OCO2_EO1_UP_S2 = false;
Base.AUDCHF_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP2_UP_S2, false,"AUDCHF_UP_S2_Entry_TP2_OCO2");
Base.AUDCHF_OCO2_EO2_UP_S2 = false;
Base.AUDCHF_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP3_UP_S2, false,"AUDCHF_UP_S2_Entry_TP3_OCO2");
Base.AUDCHF_OCO2_EO3_UP_S2 = false;
Base.AUDCHF_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP4_UP_S2, false,"AUDCHF_UP_S2_Entry_TP4_OCO2");
Base.AUDCHF_OCO2_EO4_UP_S2 = false;
Base.AUDCHF_OCO2_UP_S2_IsReady = false;
if (Base.AUDCHF_OCO2_UP_S2_IsReady == false && Base.AUDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((AUDCHF_Signal_Condition_UP_1 || AUDCHF_Signal_Condition_UP_2 || AUDCHF_Signal_Condition_UP_3) &&
DOWR_AUDCHF_UP_S2 &&
Base.AUDCHF_OCO1_UP_S2_IsReady == false &&
Base.AUDCHF_OCO2_UP_S2_IsReady == false &&
Base.AUDCHF_OCO3_UP_S2_IsReady == true &&
Base.AUDCHF_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.AUDCHF_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP1_UP_S2, false,"AUDCHF_UP_S2_Entry_TP1_OCO3");
Base.AUDCHF_OCO3_EO1_UP_S2 = false;
Base.AUDCHF_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP2_UP_S2, false,"AUDCHF_UP_S2_Entry_TP2_OCO3");
Base.AUDCHF_OCO3_EO2_UP_S2 = false;
Base.AUDCHF_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP3_UP_S2, false,"AUDCHF_UP_S2_Entry_TP3_OCO3");
Base.AUDCHF_OCO3_EO3_UP_S2 = false;
Base.AUDCHF_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP4_UP_S2, false,"AUDCHF_UP_S2_Entry_TP4_OCO3");
Base.AUDCHF_OCO3_EO4_UP_S2 = false;
Base.AUDCHF_OCO3_UP_S2_IsReady = false;
if (Base.AUDCHF_OCO3_UP_S2_IsReady == false && Base.AUDCHF_OCO2_UP_S2_IsReady == false && Base.AUDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((AUDCHF_Signal_Condition_UP_1 || AUDCHF_Signal_Condition_UP_2 || AUDCHF_Signal_Condition_UP_3) &&
DOWR_AUDCHF_UP_S2 &&
Base.AUDCHF_OCO1_UP_S2_IsReady == false &&
Base.AUDCHF_OCO2_UP_S2_IsReady == false &&
Base.AUDCHF_OCO3_UP_S2_IsReady == false &&
Base.AUDCHF_OCO4_UP_S2_IsReady == true &&
Base.AUDCHF_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.AUDCHF_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP1_UP_S2, false,"AUDCHF_UP_S2_Entry_TP1_OCO4");
Base.AUDCHF_OCO4_EO1_UP_S2 = false;
Base.AUDCHF_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP2_UP_S2, false,"AUDCHF_UP_S2_Entry_TP2_OCO4");
Base.AUDCHF_OCO4_EO2_UP_S2 = false;
Base.AUDCHF_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP3_UP_S2, false,"AUDCHF_UP_S2_Entry_TP3_OCO4");
Base.AUDCHF_OCO4_EO3_UP_S2 = false;
Base.AUDCHF_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCHF_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCHF_quantity_TP4_UP_S2, false,"AUDCHF_UP_S2_Entry_TP4_OCO4");
Base.AUDCHF_OCO4_EO4_UP_S2 = false;
Base.AUDCHF_OCO4_UP_S2_IsReady = false;
if (Base.AUDCHF_OCO4_UP_S2_IsReady == false && Base.AUDCHF_OCO3_UP_S2_IsReady == false && Base.AUDCHF_OCO2_UP_S2_IsReady == false && Base.AUDCHF_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDJPY_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDJPY_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
}
if (Base.AUDJPY_OCO1_EO1_UP_S2)
Base.AUDJPY_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO1_EO2_UP_S2)
Base.AUDJPY_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO1_EO3_UP_S2)
Base.AUDJPY_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO1_EO4_UP_S2)
Base.AUDJPY_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO1_EO5_UP_S2)
Base.AUDJPY_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO1_EO6_UP_S2)
Base.AUDJPY_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO1_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP1,"TP1_AUDJPY_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP1_AUDJPY_UP_S2_OCO1"));
};
Base.AUDJPY_UP_S2_OCO1Sets1.Add( Base.AUDJPY_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO2_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP2,"TP2_AUDJPY_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP2_AUDJPY_UP_S2_OCO1"));
};
Base.AUDJPY_UP_S2_OCO1Sets2.Add( Base.AUDJPY_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO3_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP3,"TP3_AUDJPY_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP3_AUDJPY_UP_S2_OCO1"));
};
Base.AUDJPY_UP_S2_OCO1Sets3.Add( Base.AUDJPY_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO4_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP4,"TP4_AUDJPY_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP4_AUDJPY_UP_S2_OCO1"));
};
Base.AUDJPY_UP_S2_OCO1Sets4.Add( Base.AUDJPY_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO5_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP5,"TP5_AUDJPY_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP5_AUDJPY_UP_S2_OCO1"));
};
Base.AUDJPY_UP_S2_OCO1Sets5.Add( Base.AUDJPY_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO6_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP6,"TP6_AUDJPY_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP6_AUDJPY_UP_S2_OCO1"));
};
Base.AUDJPY_UP_S2_OCO1Sets6.Add( Base.AUDJPY_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO6_UP_S2_ID = -1;
}
int AUDJPY_OCO1S1_UP_S2 = 0;
for (; AUDJPY_OCO1S1_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets1.Count; AUDJPY_OCO1S1_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets1[AUDJPY_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO1Sets1[AUDJPY_OCO1S1_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO1Sets1.RemoveAt(AUDJPY_OCO1S1_UP_S2);
AUDJPY_OCO1S1_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S2_UP_S2 = 0;
for (; AUDJPY_OCO1S2_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets2.Count; AUDJPY_OCO1S2_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets2[AUDJPY_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO1Sets2[AUDJPY_OCO1S2_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO1Sets2.RemoveAt(AUDJPY_OCO1S2_UP_S2);
AUDJPY_OCO1S2_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S3_UP_S2 = 0;
for (; AUDJPY_OCO1S3_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets3.Count; AUDJPY_OCO1S3_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets3[AUDJPY_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO1Sets3[AUDJPY_OCO1S3_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO1Sets3.RemoveAt(AUDJPY_OCO1S3_UP_S2);
AUDJPY_OCO1S3_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S4_UP_S2 = 0;
for (; AUDJPY_OCO1S4_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets4.Count; AUDJPY_OCO1S4_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets4[AUDJPY_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO1Sets4[AUDJPY_OCO1S4_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO1Sets4.RemoveAt(AUDJPY_OCO1S4_UP_S2);
AUDJPY_OCO1S4_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S5_UP_S2 = 0;
for (; AUDJPY_OCO1S5_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets5.Count; AUDJPY_OCO1S5_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets5[AUDJPY_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO1Sets5[AUDJPY_OCO1S5_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO1Sets5.RemoveAt(AUDJPY_OCO1S5_UP_S2);
AUDJPY_OCO1S5_UP_S2 = 0;
break;
}
int AUDJPY_OCO1S6_UP_S2 = 0;
for (; AUDJPY_OCO1S6_UP_S2 < Base.AUDJPY_UP_S2_OCO1Sets6.Count; AUDJPY_OCO1S6_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO1Sets6[AUDJPY_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO1Sets6[AUDJPY_OCO1S6_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO1Sets6.RemoveAt(AUDJPY_OCO1S6_UP_S2);
AUDJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO2_EO1_UP_S2)
Base.AUDJPY_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO2_EO2_UP_S2)
Base.AUDJPY_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO2_EO3_UP_S2)
Base.AUDJPY_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO2_EO4_UP_S2)
Base.AUDJPY_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO2_EO5_UP_S2)
Base.AUDJPY_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO2_EO6_UP_S2)
Base.AUDJPY_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO1_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP1,"TP1_AUDJPY_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP1_AUDJPY_UP_S2_OCO2"));
};
Base.AUDJPY_UP_S2_OCO2Sets1.Add( Base.AUDJPY_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO2_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP2,"TP2_AUDJPY_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP2_AUDJPY_UP_S2_OCO2"));
};
Base.AUDJPY_UP_S2_OCO2Sets2.Add( Base.AUDJPY_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO3_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP3,"TP3_AUDJPY_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP3_AUDJPY_UP_S2_OCO2"));
};
Base.AUDJPY_UP_S2_OCO2Sets3.Add( Base.AUDJPY_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO4_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP4,"TP4_AUDJPY_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP4_AUDJPY_UP_S2_OCO2"));
};
Base.AUDJPY_UP_S2_OCO2Sets4.Add( Base.AUDJPY_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO5_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP5,"TP5_AUDJPY_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP5_AUDJPY_UP_S2_OCO2"));
};
Base.AUDJPY_UP_S2_OCO2Sets5.Add( Base.AUDJPY_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO6_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP6,"TP6_AUDJPY_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP6_AUDJPY_UP_S2_OCO2"));
};
Base.AUDJPY_UP_S2_OCO2Sets6.Add( Base.AUDJPY_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO6_UP_S2_ID = -1;
}
int AUDJPY_OCO2S1_UP_S2 = 0;
for (; AUDJPY_OCO2S1_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets1.Count; AUDJPY_OCO2S1_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets1[AUDJPY_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO2Sets1[AUDJPY_OCO2S1_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO2Sets1.RemoveAt(AUDJPY_OCO2S1_UP_S2);
AUDJPY_OCO2S1_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S2_UP_S2 = 0;
for (; AUDJPY_OCO2S2_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets2.Count; AUDJPY_OCO2S2_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets2[AUDJPY_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO2Sets2[AUDJPY_OCO2S2_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO2Sets2.RemoveAt(AUDJPY_OCO2S2_UP_S2);
AUDJPY_OCO2S2_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S3_UP_S2 = 0;
for (; AUDJPY_OCO2S3_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets3.Count; AUDJPY_OCO2S3_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets3[AUDJPY_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO2Sets3[AUDJPY_OCO2S3_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO2Sets3.RemoveAt(AUDJPY_OCO2S3_UP_S2);
AUDJPY_OCO2S3_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S4_UP_S2 = 0;
for (; AUDJPY_OCO2S4_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets4.Count; AUDJPY_OCO2S4_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets4[AUDJPY_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO2Sets4[AUDJPY_OCO2S4_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO2Sets4.RemoveAt(AUDJPY_OCO2S4_UP_S2);
AUDJPY_OCO2S4_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S5_UP_S2 = 0;
for (; AUDJPY_OCO2S5_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets5.Count; AUDJPY_OCO2S5_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets5[AUDJPY_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO2Sets5[AUDJPY_OCO2S5_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO2Sets5.RemoveAt(AUDJPY_OCO2S5_UP_S2);
AUDJPY_OCO2S5_UP_S2 = 0;
break;
}
int AUDJPY_OCO2S6_UP_S2 = 0;
for (; AUDJPY_OCO2S6_UP_S2 < Base.AUDJPY_UP_S2_OCO2Sets6.Count; AUDJPY_OCO2S6_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO2Sets6[AUDJPY_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO2Sets6[AUDJPY_OCO2S6_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO2Sets6.RemoveAt(AUDJPY_OCO2S6_UP_S2);
AUDJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO3_EO1_UP_S2)
Base.AUDJPY_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO3_EO2_UP_S2)
Base.AUDJPY_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO3_EO3_UP_S2)
Base.AUDJPY_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO3_EO4_UP_S2)
Base.AUDJPY_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO3_EO5_UP_S2)
Base.AUDJPY_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO3_EO6_UP_S2)
Base.AUDJPY_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO1_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP1,"TP1_AUDJPY_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP1_AUDJPY_UP_S2_OCO3"));
};
Base.AUDJPY_UP_S2_OCO3Sets1.Add( Base.AUDJPY_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO2_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP2,"TP2_AUDJPY_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP2_AUDJPY_UP_S2_OCO3"));
};
Base.AUDJPY_UP_S2_OCO3Sets2.Add( Base.AUDJPY_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO3_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP3,"TP3_AUDJPY_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP3_AUDJPY_UP_S2_OCO3"));
};
Base.AUDJPY_UP_S2_OCO3Sets3.Add( Base.AUDJPY_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO4_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP4,"TP4_AUDJPY_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP4_AUDJPY_UP_S2_OCO3"));
};
Base.AUDJPY_UP_S2_OCO3Sets4.Add( Base.AUDJPY_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO5_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP5,"TP5_AUDJPY_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP5_AUDJPY_UP_S2_OCO3"));
};
Base.AUDJPY_UP_S2_OCO3Sets5.Add( Base.AUDJPY_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO6_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP6,"TP6_AUDJPY_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP6_AUDJPY_UP_S2_OCO3"));
};
Base.AUDJPY_UP_S2_OCO3Sets6.Add( Base.AUDJPY_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO6_UP_S2_ID = -1;
}
int AUDJPY_OCO3S1_UP_S2 = 0;
for (; AUDJPY_OCO3S1_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets1.Count; AUDJPY_OCO3S1_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets1[AUDJPY_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO3Sets1[AUDJPY_OCO3S1_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO3Sets1.RemoveAt(AUDJPY_OCO3S1_UP_S2);
AUDJPY_OCO3S1_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S2_UP_S2 = 0;
for (; AUDJPY_OCO3S2_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets2.Count; AUDJPY_OCO3S2_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets2[AUDJPY_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO3Sets2[AUDJPY_OCO3S2_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO3Sets2.RemoveAt(AUDJPY_OCO3S2_UP_S2);
AUDJPY_OCO3S2_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S3_UP_S2 = 0;
for (; AUDJPY_OCO3S3_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets3.Count; AUDJPY_OCO3S3_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets3[AUDJPY_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO3Sets3[AUDJPY_OCO3S3_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO3Sets3.RemoveAt(AUDJPY_OCO3S3_UP_S2);
AUDJPY_OCO3S3_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S4_UP_S2 = 0;
for (; AUDJPY_OCO3S4_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets4.Count; AUDJPY_OCO3S4_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets4[AUDJPY_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO3Sets4[AUDJPY_OCO3S4_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO3Sets4.RemoveAt(AUDJPY_OCO3S4_UP_S2);
AUDJPY_OCO3S4_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S5_UP_S2 = 0;
for (; AUDJPY_OCO3S5_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets5.Count; AUDJPY_OCO3S5_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets5[AUDJPY_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO3Sets5[AUDJPY_OCO3S5_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO3Sets5.RemoveAt(AUDJPY_OCO3S5_UP_S2);
AUDJPY_OCO3S5_UP_S2 = 0;
break;
}
int AUDJPY_OCO3S6_UP_S2 = 0;
for (; AUDJPY_OCO3S6_UP_S2 < Base.AUDJPY_UP_S2_OCO3Sets6.Count; AUDJPY_OCO3S6_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO3Sets6[AUDJPY_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO3Sets6[AUDJPY_OCO3S6_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO3Sets6.RemoveAt(AUDJPY_OCO3S6_UP_S2);
AUDJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO4_EO1_UP_S2)
Base.AUDJPY_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO4_EO2_UP_S2)
Base.AUDJPY_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO4_EO3_UP_S2)
Base.AUDJPY_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO4_EO4_UP_S2)
Base.AUDJPY_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO4_EO5_UP_S2)
Base.AUDJPY_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO4_EO6_UP_S2)
Base.AUDJPY_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO1_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP1,"TP1_AUDJPY_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP1_AUDJPY_UP_S2_OCO4"));
};
Base.AUDJPY_UP_S2_OCO4Sets1.Add( Base.AUDJPY_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO2_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP2,"TP2_AUDJPY_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP2_AUDJPY_UP_S2_OCO4"));
};
Base.AUDJPY_UP_S2_OCO4Sets2.Add( Base.AUDJPY_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO3_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP3,"TP3_AUDJPY_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP3_AUDJPY_UP_S2_OCO4"));
};
Base.AUDJPY_UP_S2_OCO4Sets3.Add( Base.AUDJPY_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO4_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP4,"TP4_AUDJPY_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP4_AUDJPY_UP_S2_OCO4"));
};
Base.AUDJPY_UP_S2_OCO4Sets4.Add( Base.AUDJPY_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO5_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP5,"TP5_AUDJPY_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP5_AUDJPY_UP_S2_OCO4"));
};
Base.AUDJPY_UP_S2_OCO4Sets5.Add( Base.AUDJPY_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO6_UP_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_UP_S2_TP6,"TP6_AUDJPY_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_UP_S2_SL,"SL_TP6_AUDJPY_UP_S2_OCO4"));
};
Base.AUDJPY_UP_S2_OCO4Sets6.Add( Base.AUDJPY_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO6_UP_S2_ID = -1;
}
int AUDJPY_OCO4S1_UP_S2 = 0;
for (; AUDJPY_OCO4S1_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets1.Count; AUDJPY_OCO4S1_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets1[AUDJPY_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO4Sets1[AUDJPY_OCO4S1_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO4Sets1.RemoveAt(AUDJPY_OCO4S1_UP_S2);
AUDJPY_OCO4S1_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S2_UP_S2 = 0;
for (; AUDJPY_OCO4S2_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets2.Count; AUDJPY_OCO4S2_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets2[AUDJPY_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO4Sets2[AUDJPY_OCO4S2_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO4Sets2.RemoveAt(AUDJPY_OCO4S2_UP_S2);
AUDJPY_OCO4S2_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S3_UP_S2 = 0;
for (; AUDJPY_OCO4S3_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets3.Count; AUDJPY_OCO4S3_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets3[AUDJPY_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO4Sets3[AUDJPY_OCO4S3_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO4Sets3.RemoveAt(AUDJPY_OCO4S3_UP_S2);
AUDJPY_OCO4S3_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S4_UP_S2 = 0;
for (; AUDJPY_OCO4S4_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets4.Count; AUDJPY_OCO4S4_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets4[AUDJPY_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO4Sets4[AUDJPY_OCO4S4_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO4Sets4.RemoveAt(AUDJPY_OCO4S4_UP_S2);
AUDJPY_OCO4S4_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S5_UP_S2 = 0;
for (; AUDJPY_OCO4S5_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets5.Count; AUDJPY_OCO4S5_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets5[AUDJPY_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO4Sets5[AUDJPY_OCO4S5_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO4Sets5.RemoveAt(AUDJPY_OCO4S5_UP_S2);
AUDJPY_OCO4S5_UP_S2 = 0;
break;
}
int AUDJPY_OCO4S6_UP_S2 = 0;
for (; AUDJPY_OCO4S6_UP_S2 < Base.AUDJPY_UP_S2_OCO4Sets6.Count; AUDJPY_OCO4S6_UP_S2++)
if (Base.AUDJPY_UP_S2_OCO4Sets6[AUDJPY_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_UP_S2_OCO4Sets6[AUDJPY_OCO4S6_UP_S2].Filled();
Base.AUDJPY_UP_S2_OCO4Sets6.RemoveAt(AUDJPY_OCO4S6_UP_S2);
AUDJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDCAD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDCAD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDCAD_DOWN_S2_OCO1")))
{
Base.AUDCAD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCAD_DOWN_S2_OCO2")))
{
Base.AUDCAD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCAD_DOWN_S2_OCO3")))
{
Base.AUDCAD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCAD_DOWN_S2_OCO4")))
{
Base.AUDCAD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDCAD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDCAD_OCO1_EO1_DOWN_S2)
Base.AUDCAD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO2_DOWN_S2)
Base.AUDCAD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO3_DOWN_S2)
Base.AUDCAD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO4_DOWN_S2)
Base.AUDCAD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO5_DOWN_S2)
Base.AUDCAD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO6_DOWN_S2)
Base.AUDCAD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDCAD_OCO1S1_DOWN_S2 = 0;
for (; AUDCAD_OCO1S1_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets1.Count; AUDCAD_OCO1S1_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets1[AUDCAD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO1Sets1[AUDCAD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_1__Time out_OCO1");
Base.AUDCAD_DOWN_S2_OCO1Sets1.Clear();
AUDCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO1S2_DOWN_S2 = 0;
for (; AUDCAD_OCO1S2_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets2.Count; AUDCAD_OCO1S2_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets2[AUDCAD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO1Sets2[AUDCAD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_2__Time out_OCO1");
Base.AUDCAD_DOWN_S2_OCO1Sets2.Clear();
AUDCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO1S3_DOWN_S2 = 0;
for (; AUDCAD_OCO1S3_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets3.Count; AUDCAD_OCO1S3_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets3[AUDCAD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO1Sets3[AUDCAD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_3__Time out_OCO1");
Base.AUDCAD_DOWN_S2_OCO1Sets3.Clear();
AUDCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO1S4_DOWN_S2 = 0;
for (; AUDCAD_OCO1S4_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets4.Count; AUDCAD_OCO1S4_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets4[AUDCAD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO1Sets4[AUDCAD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_4__Time out_OCO1");
Base.AUDCAD_DOWN_S2_OCO1Sets4.Clear();
AUDCAD_OCO1S4_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO1S5_DOWN_S2 = 0;
for (; AUDCAD_OCO1S5_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets5.Count; AUDCAD_OCO1S5_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets5[AUDCAD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO1Sets5[AUDCAD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_5__Time out_OCO1");
Base.AUDCAD_DOWN_S2_OCO1Sets5.Clear();
AUDCAD_OCO1S5_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO1S6_DOWN_S2 = 0;
for (; AUDCAD_OCO1S6_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets6.Count; AUDCAD_OCO1S6_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets6[AUDCAD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO1Sets6[AUDCAD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_6__Time out_OCO1");
Base.AUDCAD_DOWN_S2_OCO1Sets6.Clear();
AUDCAD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO2_EO1_DOWN_S2)
Base.AUDCAD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO2_DOWN_S2)
Base.AUDCAD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO3_DOWN_S2)
Base.AUDCAD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO4_DOWN_S2)
Base.AUDCAD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO5_DOWN_S2)
Base.AUDCAD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO6_DOWN_S2)
Base.AUDCAD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDCAD_OCO2S1_DOWN_S2 = 0;
for (; AUDCAD_OCO2S1_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets1.Count; AUDCAD_OCO2S1_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets1[AUDCAD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO2Sets1[AUDCAD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_1__Time out_OCO2");
Base.AUDCAD_DOWN_S2_OCO2Sets1.Clear();
AUDCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO2S2_DOWN_S2 = 0;
for (; AUDCAD_OCO2S2_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets2.Count; AUDCAD_OCO2S2_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets2[AUDCAD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO2Sets2[AUDCAD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_2__Time out_OCO2");
Base.AUDCAD_DOWN_S2_OCO2Sets2.Clear();
AUDCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO2S3_DOWN_S2 = 0;
for (; AUDCAD_OCO2S3_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets3.Count; AUDCAD_OCO2S3_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets3[AUDCAD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO2Sets3[AUDCAD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_3__Time out_OCO2");
Base.AUDCAD_DOWN_S2_OCO2Sets3.Clear();
AUDCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO2S4_DOWN_S2 = 0;
for (; AUDCAD_OCO2S4_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets4.Count; AUDCAD_OCO2S4_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets4[AUDCAD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO2Sets4[AUDCAD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_4__Time out_OCO2");
Base.AUDCAD_DOWN_S2_OCO2Sets4.Clear();
AUDCAD_OCO2S4_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO2S5_DOWN_S2 = 0;
for (; AUDCAD_OCO2S5_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets5.Count; AUDCAD_OCO2S5_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets5[AUDCAD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO2Sets5[AUDCAD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_5__Time out_OCO2");
Base.AUDCAD_DOWN_S2_OCO2Sets5.Clear();
AUDCAD_OCO2S5_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO2S6_DOWN_S2 = 0;
for (; AUDCAD_OCO2S6_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets6.Count; AUDCAD_OCO2S6_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets6[AUDCAD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO2Sets6[AUDCAD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_6__Time out_OCO2");
Base.AUDCAD_DOWN_S2_OCO2Sets6.Clear();
AUDCAD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO3_EO1_DOWN_S2)
Base.AUDCAD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO2_DOWN_S2)
Base.AUDCAD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO3_DOWN_S2)
Base.AUDCAD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO4_DOWN_S2)
Base.AUDCAD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO5_DOWN_S2)
Base.AUDCAD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO6_DOWN_S2)
Base.AUDCAD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDCAD_OCO3S1_DOWN_S2 = 0;
for (; AUDCAD_OCO3S1_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets1.Count; AUDCAD_OCO3S1_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets1[AUDCAD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO3Sets1[AUDCAD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_1__Time out_OCO3");
Base.AUDCAD_DOWN_S2_OCO3Sets1.Clear();
AUDCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO3S2_DOWN_S2 = 0;
for (; AUDCAD_OCO3S2_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets2.Count; AUDCAD_OCO3S2_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets2[AUDCAD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO3Sets2[AUDCAD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_2__Time out_OCO3");
Base.AUDCAD_DOWN_S2_OCO3Sets2.Clear();
AUDCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO3S3_DOWN_S2 = 0;
for (; AUDCAD_OCO3S3_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets3.Count; AUDCAD_OCO3S3_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets3[AUDCAD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO3Sets3[AUDCAD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_3__Time out_OCO3");
Base.AUDCAD_DOWN_S2_OCO3Sets3.Clear();
AUDCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO3S4_DOWN_S2 = 0;
for (; AUDCAD_OCO3S4_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets4.Count; AUDCAD_OCO3S4_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets4[AUDCAD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO3Sets4[AUDCAD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_4__Time out_OCO3");
Base.AUDCAD_DOWN_S2_OCO3Sets4.Clear();
AUDCAD_OCO3S4_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO3S5_DOWN_S2 = 0;
for (; AUDCAD_OCO3S5_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets5.Count; AUDCAD_OCO3S5_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets5[AUDCAD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO3Sets5[AUDCAD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_5__Time out_OCO3");
Base.AUDCAD_DOWN_S2_OCO3Sets5.Clear();
AUDCAD_OCO3S5_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO3S6_DOWN_S2 = 0;
for (; AUDCAD_OCO3S6_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets6.Count; AUDCAD_OCO3S6_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets6[AUDCAD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO3Sets6[AUDCAD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_6__Time out_OCO3");
Base.AUDCAD_DOWN_S2_OCO3Sets6.Clear();
AUDCAD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO4_EO1_DOWN_S2)
Base.AUDCAD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO2_DOWN_S2)
Base.AUDCAD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO3_DOWN_S2)
Base.AUDCAD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO4_DOWN_S2)
Base.AUDCAD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO5_DOWN_S2)
Base.AUDCAD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO6_DOWN_S2)
Base.AUDCAD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int AUDCAD_OCO4S1_DOWN_S2 = 0;
for (; AUDCAD_OCO4S1_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets1.Count; AUDCAD_OCO4S1_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets1[AUDCAD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO4Sets1[AUDCAD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_1__Time out_OCO4");
Base.AUDCAD_DOWN_S2_OCO4Sets1.Clear();
AUDCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO4S2_DOWN_S2 = 0;
for (; AUDCAD_OCO4S2_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets2.Count; AUDCAD_OCO4S2_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets2[AUDCAD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO4Sets2[AUDCAD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_2__Time out_OCO4");
Base.AUDCAD_DOWN_S2_OCO4Sets2.Clear();
AUDCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO4S3_DOWN_S2 = 0;
for (; AUDCAD_OCO4S3_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets3.Count; AUDCAD_OCO4S3_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets3[AUDCAD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO4Sets3[AUDCAD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_3__Time out_OCO4");
Base.AUDCAD_DOWN_S2_OCO4Sets3.Clear();
AUDCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO4S4_DOWN_S2 = 0;
for (; AUDCAD_OCO4S4_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets4.Count; AUDCAD_OCO4S4_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets4[AUDCAD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO4Sets4[AUDCAD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_4__Time out_OCO4");
Base.AUDCAD_DOWN_S2_OCO4Sets4.Clear();
AUDCAD_OCO4S4_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO4S5_DOWN_S2 = 0;
for (; AUDCAD_OCO4S5_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets5.Count; AUDCAD_OCO4S5_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets5[AUDCAD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO4Sets5[AUDCAD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_5__Time out_OCO4");
Base.AUDCAD_DOWN_S2_OCO4Sets5.Clear();
AUDCAD_OCO4S5_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO4S6_DOWN_S2 = 0;
for (; AUDCAD_OCO4S6_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets6.Count; AUDCAD_OCO4S6_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets6[AUDCAD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.AUDCAD_DOWN_S2_OCO4Sets6[AUDCAD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_DOWN_S2_Entry_6__Time out_OCO4");
Base.AUDCAD_DOWN_S2_OCO4Sets6.Clear();
AUDCAD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDCAD_DOWN_S2 = DOWM_AUDCAD_DOWN_S2 || DOWT_AUDCAD_DOWN_S2 || DOWW_AUDCAD_DOWN_S2 || DOWTH_AUDCAD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDCAD_OCO1_DOWN_S2_IsReady == false ||
Base.AUDCAD_OCO2_DOWN_S2_IsReady == false ||
Base.AUDCAD_OCO3_DOWN_S2_IsReady == false ||
Base.AUDCAD_OCO4_DOWN_S2_IsReady == false)
{
Base.AUDCAD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.AUDCAD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.AUDCAD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.AUDCAD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.AUDCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.AUDCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.AUDCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
AUDCAD_Signal_Condition_DOWN_S2 =
(
prices_ASK_High[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.01m
);
AUDCAD_DOWN_S2_SL = 0.01m;
AUDCAD_DOWN_S2_TP1 = 0.003m;
AUDCAD_DOWN_S2_TP2 = AUDCAD_DOWN_S2_SL * 0;
AUDCAD_DOWN_S2_TP3 = AUDCAD_DOWN_S2_SL * 0;
AUDCAD_DOWN_S2_TP4 = AUDCAD_DOWN_S2_SL * 0;
AUDCAD_DOWN_S2_TP5 = AUDCAD_DOWN_S2_SL * 0;
AUDCAD_DOWN_S2_TP6 = AUDCAD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDCAD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDCAD_quantity_SL_DOWN_S2 = AUDCAD_quantity_DOWN_S2;
AUDCAD_quantity_TP1_DOWN_S2 = (int)Math.Floor(AUDCAD_quantity_DOWN_S2 * 1m);
AUDCAD_quantity_TP2_DOWN_S2 = (int)Math.Floor(AUDCAD_quantity_TP1_DOWN_S2 * 0m);
AUDCAD_quantity_TP3_DOWN_S2 = (int)Math.Floor(AUDCAD_quantity_TP2_DOWN_S2 * 0m);
AUDCAD_quantity_TP4_DOWN_S2 = (int)Math.Floor(AUDCAD_quantity_TP3_DOWN_S2 * 0m);
AUDCAD_quantity_TP5_DOWN_S2 = (int)Math.Floor(AUDCAD_quantity_TP4_DOWN_S2 * 0m);
AUDCAD_quantity_TP6_DOWN_S2 = (int)Math.Floor(AUDCAD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (AUDCAD_Signal_Condition_DOWN_S2 &&
DOWR_AUDCAD_DOWN_S2 &&
Base.AUDCAD_OCO1_DOWN_S2_IsReady == true &&
Base.AUDCAD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDCAD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP1_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP1_OCO1");
Base.AUDCAD_OCO1_EO1_DOWN_S2 = false;
Base.AUDCAD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP2_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP2_OCO1");
Base.AUDCAD_OCO1_EO2_DOWN_S2 = false;
Base.AUDCAD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP3_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP3_OCO1");
Base.AUDCAD_OCO1_EO3_DOWN_S2 = false;
Base.AUDCAD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP4_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP4_OCO1");
Base.AUDCAD_OCO1_EO4_DOWN_S2 = false;
Base.AUDCAD_OCO1_DOWN_S2_IsReady = false;
if (Base.AUDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (AUDCAD_Signal_Condition_DOWN_S2 &&
DOWR_AUDCAD_DOWN_S2 &&
Base.AUDCAD_OCO2_DOWN_S2_IsReady == true &&
Base.AUDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDCAD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDCAD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP1_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP1_OCO2");
Base.AUDCAD_OCO2_EO1_DOWN_S2 = false;
Base.AUDCAD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP2_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP2_OCO2");
Base.AUDCAD_OCO2_EO2_DOWN_S2 = false;
Base.AUDCAD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP3_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP3_OCO2");
Base.AUDCAD_OCO2_EO3_DOWN_S2 = false;
Base.AUDCAD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP4_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP4_OCO2");
Base.AUDCAD_OCO2_EO4_DOWN_S2 = false;
Base.AUDCAD_OCO2_DOWN_S2_IsReady = false;
if (Base.AUDCAD_OCO2_DOWN_S2_IsReady == false && Base.AUDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (AUDCAD_Signal_Condition_DOWN_S2 &&
DOWR_AUDCAD_DOWN_S2 &&
Base.AUDCAD_OCO3_DOWN_S2_IsReady == true &&
Base.AUDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDCAD_OCO2_DOWN_S2_IsReady == false &&
Base.AUDCAD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDCAD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP1_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP1_OCO3");
Base.AUDCAD_OCO3_EO1_DOWN_S2 = false;
Base.AUDCAD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP2_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP2_OCO3");
Base.AUDCAD_OCO3_EO2_DOWN_S2 = false;
Base.AUDCAD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP3_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP3_OCO3");
Base.AUDCAD_OCO3_EO3_DOWN_S2 = false;
Base.AUDCAD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP4_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP4_OCO3");
Base.AUDCAD_OCO3_EO4_DOWN_S2 = false;
Base.AUDCAD_OCO3_DOWN_S2_IsReady = false;
if (Base.AUDCAD_OCO3_DOWN_S2_IsReady == false && Base.AUDCAD_OCO2_DOWN_S2_IsReady == false && Base.AUDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (AUDCAD_Signal_Condition_DOWN_S2 &&
DOWR_AUDCAD_DOWN_S2 &&
Base.AUDCAD_OCO4_DOWN_S2_IsReady == true &&
Base.AUDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.AUDCAD_OCO2_DOWN_S2_IsReady == false &&
Base.AUDCAD_OCO3_DOWN_S2_IsReady == false &&
Base.AUDCAD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.AUDCAD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP1_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP1_OCO4");
Base.AUDCAD_OCO4_EO1_DOWN_S2 = false;
Base.AUDCAD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP2_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP2_OCO4");
Base.AUDCAD_OCO4_EO2_DOWN_S2 = false;
Base.AUDCAD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP3_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP3_OCO4");
Base.AUDCAD_OCO4_EO3_DOWN_S2 = false;
Base.AUDCAD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
AUDCAD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP4_DOWN_S2, false,"AUDCAD_DOWN_S2_Entry_TP4_OCO4");
Base.AUDCAD_OCO4_EO4_DOWN_S2 = false;
Base.AUDCAD_OCO4_DOWN_S2_IsReady = false;
if (Base.AUDCAD_OCO4_DOWN_S2_IsReady == false && Base.AUDCAD_OCO3_DOWN_S2_IsReady == false && Base.AUDCAD_OCO2_DOWN_S2_IsReady == false && Base.AUDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_AUDCAD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_AUDCAD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("AUDCAD_UP_S2_OCO1")))
{
Base.AUDCAD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCAD_UP_S2_OCO2")))
{
Base.AUDCAD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCAD_UP_S2_OCO3")))
{
Base.AUDCAD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("AUDCAD_UP_S2_OCO4")))
{
Base.AUDCAD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("AUDCAD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.AUDCAD_OCO1_EO1_UP_S2)
Base.AUDCAD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO2_UP_S2)
Base.AUDCAD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO3_UP_S2)
Base.AUDCAD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO4_UP_S2)
Base.AUDCAD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO5_UP_S2)
Base.AUDCAD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO1_EO6_UP_S2)
Base.AUDCAD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCAD_UP_S2_OCO_DELAY_7DAY))
{
int AUDCAD_OCO1S1_UP_S2 = 0;
for (; AUDCAD_OCO1S1_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets1.Count; AUDCAD_OCO1S1_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets1[AUDCAD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO1Sets1[AUDCAD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_1__Time out_OCO1");
Base.AUDCAD_UP_S2_OCO1Sets1.Clear();
AUDCAD_OCO1S1_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S2_UP_S2 = 0;
for (; AUDCAD_OCO1S2_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets2.Count; AUDCAD_OCO1S2_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets2[AUDCAD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO1Sets2[AUDCAD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_2__Time out_OCO1");
Base.AUDCAD_UP_S2_OCO1Sets2.Clear();
AUDCAD_OCO1S2_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S3_UP_S2 = 0;
for (; AUDCAD_OCO1S3_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets3.Count; AUDCAD_OCO1S3_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets3[AUDCAD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO1Sets3[AUDCAD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_3__Time out_OCO1");
Base.AUDCAD_UP_S2_OCO1Sets3.Clear();
AUDCAD_OCO1S3_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S4_UP_S2 = 0;
for (; AUDCAD_OCO1S4_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets4.Count; AUDCAD_OCO1S4_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets4[AUDCAD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO1Sets4[AUDCAD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_4__Time out_OCO1");
Base.AUDCAD_UP_S2_OCO1Sets4.Clear();
AUDCAD_OCO1S4_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S5_UP_S2 = 0;
for (; AUDCAD_OCO1S5_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets5.Count; AUDCAD_OCO1S5_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets5[AUDCAD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO1Sets5[AUDCAD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_5__Time out_OCO1");
Base.AUDCAD_UP_S2_OCO1Sets5.Clear();
AUDCAD_OCO1S5_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S6_UP_S2 = 0;
for (; AUDCAD_OCO1S6_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets6.Count; AUDCAD_OCO1S6_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets6[AUDCAD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO1Sets6[AUDCAD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_6__Time out_OCO1");
Base.AUDCAD_UP_S2_OCO1Sets6.Clear();
AUDCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO2_EO1_UP_S2)
Base.AUDCAD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO2_UP_S2)
Base.AUDCAD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO3_UP_S2)
Base.AUDCAD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO4_UP_S2)
Base.AUDCAD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO5_UP_S2)
Base.AUDCAD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO2_EO6_UP_S2)
Base.AUDCAD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCAD_UP_S2_OCO_DELAY_7DAY))
{
int AUDCAD_OCO2S1_UP_S2 = 0;
for (; AUDCAD_OCO2S1_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets1.Count; AUDCAD_OCO2S1_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets1[AUDCAD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO2Sets1[AUDCAD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_1__Time out_OCO2");
Base.AUDCAD_UP_S2_OCO2Sets1.Clear();
AUDCAD_OCO2S1_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S2_UP_S2 = 0;
for (; AUDCAD_OCO2S2_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets2.Count; AUDCAD_OCO2S2_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets2[AUDCAD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO2Sets2[AUDCAD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_2__Time out_OCO2");
Base.AUDCAD_UP_S2_OCO2Sets2.Clear();
AUDCAD_OCO2S2_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S3_UP_S2 = 0;
for (; AUDCAD_OCO2S3_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets3.Count; AUDCAD_OCO2S3_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets3[AUDCAD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO2Sets3[AUDCAD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_3__Time out_OCO2");
Base.AUDCAD_UP_S2_OCO2Sets3.Clear();
AUDCAD_OCO2S3_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S4_UP_S2 = 0;
for (; AUDCAD_OCO2S4_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets4.Count; AUDCAD_OCO2S4_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets4[AUDCAD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO2Sets4[AUDCAD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_4__Time out_OCO2");
Base.AUDCAD_UP_S2_OCO2Sets4.Clear();
AUDCAD_OCO2S4_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S5_UP_S2 = 0;
for (; AUDCAD_OCO2S5_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets5.Count; AUDCAD_OCO2S5_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets5[AUDCAD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO2Sets5[AUDCAD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_5__Time out_OCO2");
Base.AUDCAD_UP_S2_OCO2Sets5.Clear();
AUDCAD_OCO2S5_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S6_UP_S2 = 0;
for (; AUDCAD_OCO2S6_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets6.Count; AUDCAD_OCO2S6_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets6[AUDCAD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO2Sets6[AUDCAD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_6__Time out_OCO2");
Base.AUDCAD_UP_S2_OCO2Sets6.Clear();
AUDCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO3_EO1_UP_S2)
Base.AUDCAD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO2_UP_S2)
Base.AUDCAD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO3_UP_S2)
Base.AUDCAD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO4_UP_S2)
Base.AUDCAD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO5_UP_S2)
Base.AUDCAD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO3_EO6_UP_S2)
Base.AUDCAD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCAD_UP_S2_OCO_DELAY_7DAY))
{
int AUDCAD_OCO3S1_UP_S2 = 0;
for (; AUDCAD_OCO3S1_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets1.Count; AUDCAD_OCO3S1_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets1[AUDCAD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO3Sets1[AUDCAD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_1__Time out_OCO3");
Base.AUDCAD_UP_S2_OCO3Sets1.Clear();
AUDCAD_OCO3S1_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S2_UP_S2 = 0;
for (; AUDCAD_OCO3S2_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets2.Count; AUDCAD_OCO3S2_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets2[AUDCAD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO3Sets2[AUDCAD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_2__Time out_OCO3");
Base.AUDCAD_UP_S2_OCO3Sets2.Clear();
AUDCAD_OCO3S2_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S3_UP_S2 = 0;
for (; AUDCAD_OCO3S3_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets3.Count; AUDCAD_OCO3S3_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets3[AUDCAD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO3Sets3[AUDCAD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_3__Time out_OCO3");
Base.AUDCAD_UP_S2_OCO3Sets3.Clear();
AUDCAD_OCO3S3_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S4_UP_S2 = 0;
for (; AUDCAD_OCO3S4_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets4.Count; AUDCAD_OCO3S4_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets4[AUDCAD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO3Sets4[AUDCAD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_4__Time out_OCO3");
Base.AUDCAD_UP_S2_OCO3Sets4.Clear();
AUDCAD_OCO3S4_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S5_UP_S2 = 0;
for (; AUDCAD_OCO3S5_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets5.Count; AUDCAD_OCO3S5_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets5[AUDCAD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO3Sets5[AUDCAD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_5__Time out_OCO3");
Base.AUDCAD_UP_S2_OCO3Sets5.Clear();
AUDCAD_OCO3S5_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S6_UP_S2 = 0;
for (; AUDCAD_OCO3S6_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets6.Count; AUDCAD_OCO3S6_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets6[AUDCAD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO3Sets6[AUDCAD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_6__Time out_OCO3");
Base.AUDCAD_UP_S2_OCO3Sets6.Clear();
AUDCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO4_EO1_UP_S2)
Base.AUDCAD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO2_UP_S2)
Base.AUDCAD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO3_UP_S2)
Base.AUDCAD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO4_UP_S2)
Base.AUDCAD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO5_UP_S2)
Base.AUDCAD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.AUDCAD_OCO4_EO6_UP_S2)
Base.AUDCAD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.AUDCAD_UP_S2_OCO_DELAY_7DAY))
{
int AUDCAD_OCO4S1_UP_S2 = 0;
for (; AUDCAD_OCO4S1_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets1.Count; AUDCAD_OCO4S1_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets1[AUDCAD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO4Sets1[AUDCAD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_1__Time out_OCO4");
Base.AUDCAD_UP_S2_OCO4Sets1.Clear();
AUDCAD_OCO4S1_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S2_UP_S2 = 0;
for (; AUDCAD_OCO4S2_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets2.Count; AUDCAD_OCO4S2_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets2[AUDCAD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO4Sets2[AUDCAD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_2__Time out_OCO4");
Base.AUDCAD_UP_S2_OCO4Sets2.Clear();
AUDCAD_OCO4S2_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S3_UP_S2 = 0;
for (; AUDCAD_OCO4S3_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets3.Count; AUDCAD_OCO4S3_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets3[AUDCAD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO4Sets3[AUDCAD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_3__Time out_OCO4");
Base.AUDCAD_UP_S2_OCO4Sets3.Clear();
AUDCAD_OCO4S3_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S4_UP_S2 = 0;
for (; AUDCAD_OCO4S4_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets4.Count; AUDCAD_OCO4S4_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets4[AUDCAD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO4Sets4[AUDCAD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_4__Time out_OCO4");
Base.AUDCAD_UP_S2_OCO4Sets4.Clear();
AUDCAD_OCO4S4_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S5_UP_S2 = 0;
for (; AUDCAD_OCO4S5_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets5.Count; AUDCAD_OCO4S5_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets5[AUDCAD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO4Sets5[AUDCAD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_5__Time out_OCO4");
Base.AUDCAD_UP_S2_OCO4Sets5.Clear();
AUDCAD_OCO4S5_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S6_UP_S2 = 0;
for (; AUDCAD_OCO4S6_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets6.Count; AUDCAD_OCO4S6_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets6[AUDCAD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.AUDCAD_UP_S2_OCO4Sets6[AUDCAD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("AUDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("AUDCAD", order.Quantity, false, "AUDCAD_UP_S2_Entry_6__Time out_OCO4");
Base.AUDCAD_UP_S2_OCO4Sets6.Clear();
AUDCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_AUDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_AUDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_AUDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_AUDCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_AUDCAD_UP_S2 = DOWM_AUDCAD_UP_S2 || DOWT_AUDCAD_UP_S2 || DOWW_AUDCAD_UP_S2 || DOWTH_AUDCAD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("AUDCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.AUDCAD_OCO1_UP_S2_IsReady == false ||
Base.AUDCAD_OCO2_UP_S2_IsReady == false ||
Base.AUDCAD_OCO3_UP_S2_IsReady == false ||
Base.AUDCAD_OCO4_UP_S2_IsReady == false)
{
Base.AUDCAD_OCO1_UP_S2_Monthly_IsReady = false;
Base.AUDCAD_OCO2_UP_S2_Monthly_IsReady = false;
Base.AUDCAD_OCO3_UP_S2_Monthly_IsReady = false;
Base.AUDCAD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.AUDCAD_OCO1_UP_S2_Monthly_IsReady = true;
Base.AUDCAD_OCO2_UP_S2_Monthly_IsReady = true;
Base.AUDCAD_OCO3_UP_S2_Monthly_IsReady = true;
Base.AUDCAD_OCO4_UP_S2_Monthly_IsReady = true;
}
AUDCAD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
AUDCAD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
AUDCAD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (AUDCAD_Signal_Condition_UP_1)
{
AUDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDCAD_Signal_Condition_UP_2)
{
AUDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDCAD_Signal_Condition_UP_3)
{
AUDCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (AUDCAD_Signal_Condition_UP_1)
{
AUDCAD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (AUDCAD_Signal_Condition_UP_2)
{
AUDCAD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (AUDCAD_Signal_Condition_UP_3)
{
AUDCAD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
AUDCAD_UP_S2_TP2 = AUDCAD_UP_S2_SL * 0;
AUDCAD_UP_S2_TP3 = AUDCAD_UP_S2_SL * 0;
AUDCAD_UP_S2_TP4 = AUDCAD_UP_S2_SL * 0;
AUDCAD_UP_S2_TP5 = AUDCAD_UP_S2_SL * 0;
AUDCAD_UP_S2_TP6 = AUDCAD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
AUDCAD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
AUDCAD_quantity_SL_UP_S2 = AUDCAD_quantity_UP_S2;
AUDCAD_quantity_TP1_UP_S2 = (int)Math.Floor(AUDCAD_quantity_UP_S2 * 1m);
AUDCAD_quantity_TP2_UP_S2 = (int)Math.Floor(AUDCAD_quantity_TP1_UP_S2 * 0m);
AUDCAD_quantity_TP3_UP_S2 = (int)Math.Floor(AUDCAD_quantity_TP2_UP_S2 * 0m);
AUDCAD_quantity_TP4_UP_S2 = (int)Math.Floor(AUDCAD_quantity_TP3_UP_S2 * 0m);
AUDCAD_quantity_TP5_UP_S2 = (int)Math.Floor(AUDCAD_quantity_TP4_UP_S2 * 0m);
AUDCAD_quantity_TP6_UP_S2 = (int)Math.Floor(AUDCAD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((AUDCAD_Signal_Condition_UP_1 || AUDCAD_Signal_Condition_UP_2 || AUDCAD_Signal_Condition_UP_3) &&
DOWR_AUDCAD_UP_S2 &&
Base.AUDCAD_OCO1_UP_S2_IsReady == true &&
Base.AUDCAD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.AUDCAD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP1_UP_S2, false,"AUDCAD_UP_S2_Entry_TP1_OCO1");
Base.AUDCAD_OCO1_EO1_UP_S2 = false;
Base.AUDCAD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP2_UP_S2, false,"AUDCAD_UP_S2_Entry_TP2_OCO1");
Base.AUDCAD_OCO1_EO2_UP_S2 = false;
Base.AUDCAD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP3_UP_S2, false,"AUDCAD_UP_S2_Entry_TP3_OCO1");
Base.AUDCAD_OCO1_EO3_UP_S2 = false;
Base.AUDCAD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP4_UP_S2, false,"AUDCAD_UP_S2_Entry_TP4_OCO1");
Base.AUDCAD_OCO1_EO4_UP_S2 = false;
Base.AUDCAD_OCO1_UP_S2_IsReady = false;
if (Base.AUDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((AUDCAD_Signal_Condition_UP_1 || AUDCAD_Signal_Condition_UP_2 || AUDCAD_Signal_Condition_UP_3) &&
DOWR_AUDCAD_UP_S2 &&
Base.AUDCAD_OCO1_UP_S2_IsReady == false &&
Base.AUDCAD_OCO2_UP_S2_IsReady == true &&
Base.AUDCAD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.AUDCAD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP1_UP_S2, false,"AUDCAD_UP_S2_Entry_TP1_OCO2");
Base.AUDCAD_OCO2_EO1_UP_S2 = false;
Base.AUDCAD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP2_UP_S2, false,"AUDCAD_UP_S2_Entry_TP2_OCO2");
Base.AUDCAD_OCO2_EO2_UP_S2 = false;
Base.AUDCAD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP3_UP_S2, false,"AUDCAD_UP_S2_Entry_TP3_OCO2");
Base.AUDCAD_OCO2_EO3_UP_S2 = false;
Base.AUDCAD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP4_UP_S2, false,"AUDCAD_UP_S2_Entry_TP4_OCO2");
Base.AUDCAD_OCO2_EO4_UP_S2 = false;
Base.AUDCAD_OCO2_UP_S2_IsReady = false;
if (Base.AUDCAD_OCO2_UP_S2_IsReady == false && Base.AUDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((AUDCAD_Signal_Condition_UP_1 || AUDCAD_Signal_Condition_UP_2 || AUDCAD_Signal_Condition_UP_3) &&
DOWR_AUDCAD_UP_S2 &&
Base.AUDCAD_OCO1_UP_S2_IsReady == false &&
Base.AUDCAD_OCO2_UP_S2_IsReady == false &&
Base.AUDCAD_OCO3_UP_S2_IsReady == true &&
Base.AUDCAD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.AUDCAD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP1_UP_S2, false,"AUDCAD_UP_S2_Entry_TP1_OCO3");
Base.AUDCAD_OCO3_EO1_UP_S2 = false;
Base.AUDCAD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP2_UP_S2, false,"AUDCAD_UP_S2_Entry_TP2_OCO3");
Base.AUDCAD_OCO3_EO2_UP_S2 = false;
Base.AUDCAD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP3_UP_S2, false,"AUDCAD_UP_S2_Entry_TP3_OCO3");
Base.AUDCAD_OCO3_EO3_UP_S2 = false;
Base.AUDCAD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP4_UP_S2, false,"AUDCAD_UP_S2_Entry_TP4_OCO3");
Base.AUDCAD_OCO3_EO4_UP_S2 = false;
Base.AUDCAD_OCO3_UP_S2_IsReady = false;
if (Base.AUDCAD_OCO3_UP_S2_IsReady == false && Base.AUDCAD_OCO2_UP_S2_IsReady == false && Base.AUDCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((AUDCAD_Signal_Condition_UP_1 || AUDCAD_Signal_Condition_UP_2 || AUDCAD_Signal_Condition_UP_3) &&
DOWR_AUDCAD_UP_S2 &&
Base.AUDCAD_OCO1_UP_S2_IsReady == false &&
Base.AUDCAD_OCO2_UP_S2_IsReady == false &&
Base.AUDCAD_OCO3_UP_S2_IsReady == false &&
Base.AUDCAD_OCO4_UP_S2_IsReady == true &&
Base.AUDCAD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.AUDCAD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP1_UP_S2, false,"AUDCAD_UP_S2_Entry_TP1_OCO4");
Base.AUDCAD_OCO4_EO1_UP_S2 = false;
Base.AUDCAD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP2_UP_S2, false,"AUDCAD_UP_S2_Entry_TP2_OCO4");
Base.AUDCAD_OCO4_EO2_UP_S2 = false;
Base.AUDCAD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP3_UP_S2, false,"AUDCAD_UP_S2_Entry_TP3_OCO4");
Base.AUDCAD_OCO4_EO3_UP_S2 = false;
Base.AUDCAD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
AUDCAD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, AUDCAD_quantity_TP4_UP_S2, false,"AUDCAD_UP_S2_Entry_TP4_OCO4");
Base.AUDCAD_OCO4_EO4_UP_S2 = false;
Base.AUDCAD_OCO4_UP_S2_IsReady = false;
if (Base.AUDCAD_OCO4_UP_S2_IsReady == false && Base.AUDCAD_OCO3_UP_S2_IsReady == false && Base.AUDCAD_OCO2_UP_S2_IsReady == false && Base.AUDCAD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDJPY_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDJPY_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
if (OrderID.Tag.StartsWith("AUDJPY OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDJPY OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDJPY S2");
}
}
if (Base.AUDJPY_OCO1_EO1_DOWN_S2)
Base.AUDJPY_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO1_EO2_DOWN_S2)
Base.AUDJPY_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO1_EO3_DOWN_S2)
Base.AUDJPY_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO1_EO4_DOWN_S2)
Base.AUDJPY_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO1_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP1_AUDJPY_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP1,"TP1_AUDJPY_DOWN_S2_OCO1"));
};
Base.AUDJPY_DOWN_S2_OCO1Sets1.Add( Base.AUDJPY_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO2_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP2_AUDJPY_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP2,"TP2_AUDJPY_DOWN_S2_OCO1"));
};
Base.AUDJPY_DOWN_S2_OCO1Sets2.Add( Base.AUDJPY_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO3_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP3_AUDJPY_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP3,"TP3_AUDJPY_DOWN_S2_OCO1"));
};
Base.AUDJPY_DOWN_S2_OCO1Sets3.Add( Base.AUDJPY_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO1_EO4_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP4_AUDJPY_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP4,"TP4_AUDJPY_DOWN_S2_OCO1"));
};
Base.AUDJPY_DOWN_S2_OCO1Sets4.Add( Base.AUDJPY_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO1_EO4_DOWN_S2_ID = -1;
}
int AUDJPY_OCO1S1_DOWN_S2 = 0;
for (; AUDJPY_OCO1S1_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets1.Count; AUDJPY_OCO1S1_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets1[AUDJPY_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO1Sets1[AUDJPY_OCO1S1_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO1Sets1.RemoveAt(AUDJPY_OCO1S1_DOWN_S2);
AUDJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO1S2_DOWN_S2 = 0;
for (; AUDJPY_OCO1S2_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets2.Count; AUDJPY_OCO1S2_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets2[AUDJPY_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO1Sets2[AUDJPY_OCO1S2_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO1Sets2.RemoveAt(AUDJPY_OCO1S2_DOWN_S2);
AUDJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO1S3_DOWN_S2 = 0;
for (; AUDJPY_OCO1S3_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets3.Count; AUDJPY_OCO1S3_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets3[AUDJPY_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO1Sets3[AUDJPY_OCO1S3_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO1Sets3.RemoveAt(AUDJPY_OCO1S3_DOWN_S2);
AUDJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO1S4_DOWN_S2 = 0;
for (; AUDJPY_OCO1S4_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO1Sets4.Count; AUDJPY_OCO1S4_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO1Sets4[AUDJPY_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO1Sets4[AUDJPY_OCO1S4_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO1Sets4.RemoveAt(AUDJPY_OCO1S4_DOWN_S2);
AUDJPY_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO2_EO1_DOWN_S2)
Base.AUDJPY_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO2_EO2_DOWN_S2)
Base.AUDJPY_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO2_EO3_DOWN_S2)
Base.AUDJPY_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO2_EO4_DOWN_S2)
Base.AUDJPY_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO1_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP1_AUDJPY_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP1,"TP1_AUDJPY_DOWN_S2_OCO2"));
};
Base.AUDJPY_DOWN_S2_OCO2Sets1.Add( Base.AUDJPY_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO2_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP2_AUDJPY_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP2,"TP2_AUDJPY_DOWN_S2_OCO2"));
};
Base.AUDJPY_DOWN_S2_OCO2Sets2.Add( Base.AUDJPY_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO3_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP3_AUDJPY_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP3,"TP3_AUDJPY_DOWN_S2_OCO2"));
};
Base.AUDJPY_DOWN_S2_OCO2Sets3.Add( Base.AUDJPY_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO2_EO4_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP4_AUDJPY_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP4,"TP4_AUDJPY_DOWN_S2_OCO2"));
};
Base.AUDJPY_DOWN_S2_OCO2Sets4.Add( Base.AUDJPY_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO2_EO4_DOWN_S2_ID = -1;
}
int AUDJPY_OCO2S1_DOWN_S2 = 0;
for (; AUDJPY_OCO2S1_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets1.Count; AUDJPY_OCO2S1_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets1[AUDJPY_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO2Sets1[AUDJPY_OCO2S1_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO2Sets1.RemoveAt(AUDJPY_OCO2S1_DOWN_S2);
AUDJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO2S2_DOWN_S2 = 0;
for (; AUDJPY_OCO2S2_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets2.Count; AUDJPY_OCO2S2_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets2[AUDJPY_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO2Sets2[AUDJPY_OCO2S2_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO2Sets2.RemoveAt(AUDJPY_OCO2S2_DOWN_S2);
AUDJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO2S3_DOWN_S2 = 0;
for (; AUDJPY_OCO2S3_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets3.Count; AUDJPY_OCO2S3_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets3[AUDJPY_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO2Sets3[AUDJPY_OCO2S3_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO2Sets3.RemoveAt(AUDJPY_OCO2S3_DOWN_S2);
AUDJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO2S4_DOWN_S2 = 0;
for (; AUDJPY_OCO2S4_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO2Sets4.Count; AUDJPY_OCO2S4_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO2Sets4[AUDJPY_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO2Sets4[AUDJPY_OCO2S4_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO2Sets4.RemoveAt(AUDJPY_OCO2S4_DOWN_S2);
AUDJPY_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO3_EO1_DOWN_S2)
Base.AUDJPY_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO3_EO2_DOWN_S2)
Base.AUDJPY_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO3_EO3_DOWN_S2)
Base.AUDJPY_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO3_EO4_DOWN_S2)
Base.AUDJPY_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO1_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP1_AUDJPY_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP1,"TP1_AUDJPY_DOWN_S2_OCO3"));
};
Base.AUDJPY_DOWN_S2_OCO3Sets1.Add( Base.AUDJPY_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO2_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP2_AUDJPY_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP2,"TP2_AUDJPY_DOWN_S2_OCO3"));
};
Base.AUDJPY_DOWN_S2_OCO3Sets2.Add( Base.AUDJPY_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO3_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP3_AUDJPY_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP3,"TP3_AUDJPY_DOWN_S2_OCO3"));
};
Base.AUDJPY_DOWN_S2_OCO3Sets3.Add( Base.AUDJPY_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO3_EO4_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP4_AUDJPY_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP4,"TP4_AUDJPY_DOWN_S2_OCO3"));
};
Base.AUDJPY_DOWN_S2_OCO3Sets4.Add( Base.AUDJPY_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO3_EO4_DOWN_S2_ID = -1;
}
int AUDJPY_OCO3S1_DOWN_S2 = 0;
for (; AUDJPY_OCO3S1_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets1.Count; AUDJPY_OCO3S1_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets1[AUDJPY_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO3Sets1[AUDJPY_OCO3S1_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO3Sets1.RemoveAt(AUDJPY_OCO3S1_DOWN_S2);
AUDJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO3S2_DOWN_S2 = 0;
for (; AUDJPY_OCO3S2_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets2.Count; AUDJPY_OCO3S2_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets2[AUDJPY_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO3Sets2[AUDJPY_OCO3S2_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO3Sets2.RemoveAt(AUDJPY_OCO3S2_DOWN_S2);
AUDJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO3S3_DOWN_S2 = 0;
for (; AUDJPY_OCO3S3_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets3.Count; AUDJPY_OCO3S3_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets3[AUDJPY_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO3Sets3[AUDJPY_OCO3S3_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO3Sets3.RemoveAt(AUDJPY_OCO3S3_DOWN_S2);
AUDJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO3S4_DOWN_S2 = 0;
for (; AUDJPY_OCO3S4_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO3Sets4.Count; AUDJPY_OCO3S4_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO3Sets4[AUDJPY_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO3Sets4[AUDJPY_OCO3S4_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO3Sets4.RemoveAt(AUDJPY_OCO3S4_DOWN_S2);
AUDJPY_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDJPY_OCO4_EO1_DOWN_S2)
Base.AUDJPY_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO4_EO2_DOWN_S2)
Base.AUDJPY_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO4_EO3_DOWN_S2)
Base.AUDJPY_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDJPY_OCO4_EO4_DOWN_S2)
Base.AUDJPY_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO1_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP1_AUDJPY_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP1,"TP1_AUDJPY_DOWN_S2_OCO4"));
};
Base.AUDJPY_DOWN_S2_OCO4Sets1.Add( Base.AUDJPY_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO2_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP2_AUDJPY_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP2,"TP2_AUDJPY_DOWN_S2_OCO4"));
};
Base.AUDJPY_DOWN_S2_OCO4Sets2.Add( Base.AUDJPY_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO3_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP3_AUDJPY_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP3,"TP3_AUDJPY_DOWN_S2_OCO4"));
};
Base.AUDJPY_DOWN_S2_OCO4Sets3.Add( Base.AUDJPY_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDJPY_OCO4_EO4_DOWN_S2_ID)
{
Base.AUDJPY_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDJPY_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDJPY_DOWN_S2_SL,"SL_TP4_AUDJPY_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDJPY_DOWN_S2_TP4,"TP4_AUDJPY_DOWN_S2_OCO4"));
};
Base.AUDJPY_DOWN_S2_OCO4Sets4.Add( Base.AUDJPY_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDJPY_OCO4_EO4_DOWN_S2_ID = -1;
}
int AUDJPY_OCO4S1_DOWN_S2 = 0;
for (; AUDJPY_OCO4S1_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets1.Count; AUDJPY_OCO4S1_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets1[AUDJPY_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO4Sets1[AUDJPY_OCO4S1_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO4Sets1.RemoveAt(AUDJPY_OCO4S1_DOWN_S2);
AUDJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO4S2_DOWN_S2 = 0;
for (; AUDJPY_OCO4S2_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets2.Count; AUDJPY_OCO4S2_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets2[AUDJPY_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO4Sets2[AUDJPY_OCO4S2_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO4Sets2.RemoveAt(AUDJPY_OCO4S2_DOWN_S2);
AUDJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO4S3_DOWN_S2 = 0;
for (; AUDJPY_OCO4S3_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets3.Count; AUDJPY_OCO4S3_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets3[AUDJPY_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO4Sets3[AUDJPY_OCO4S3_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO4Sets3.RemoveAt(AUDJPY_OCO4S3_DOWN_S2);
AUDJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDJPY_OCO4S4_DOWN_S2 = 0;
for (; AUDJPY_OCO4S4_DOWN_S2 < Base.AUDJPY_DOWN_S2_OCO4Sets4.Count; AUDJPY_OCO4S4_DOWN_S2++)
if (Base.AUDJPY_DOWN_S2_OCO4Sets4[AUDJPY_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDJPY_DOWN_S2_OCO4Sets4[AUDJPY_OCO4S4_DOWN_S2].Filled();
Base.AUDJPY_DOWN_S2_OCO4Sets4.RemoveAt(AUDJPY_OCO4S4_DOWN_S2);
AUDJPY_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct NZDUSD_OCO1_DOWN_S2
{
public NZDUSD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDUSD_OCO1_UP_S2
{
public NZDUSD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDUSD_OCO2_DOWN_S2
{
public NZDUSD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDUSD_OCO2_UP_S2
{
public NZDUSD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDUSD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDUSD_OCO3_DOWN_S2
{
public NZDUSD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDUSD_OCO3_UP_S2
{
public NZDUSD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDUSD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDUSD_OCO4_DOWN_S2
{
public NZDUSD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDUSD_OCO4_UP_S2
{
public NZDUSD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDUSD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct NZDJPY_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public NZDJPY_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
}
if (Base.NZDJPY_OCO1_EO1_UP_S2)
Base.NZDJPY_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO1_EO2_UP_S2)
Base.NZDJPY_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO1_EO3_UP_S2)
Base.NZDJPY_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO1_EO4_UP_S2)
Base.NZDJPY_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO1_EO5_UP_S2)
Base.NZDJPY_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO1_EO6_UP_S2)
Base.NZDJPY_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO1_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP1,"TP1_NZDJPY_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP1_NZDJPY_UP_S2_OCO1"));
};
Base.NZDJPY_UP_S2_OCO1Sets1.Add( Base.NZDJPY_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO2_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP2,"TP2_NZDJPY_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP2_NZDJPY_UP_S2_OCO1"));
};
Base.NZDJPY_UP_S2_OCO1Sets2.Add( Base.NZDJPY_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO3_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP3,"TP3_NZDJPY_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP3_NZDJPY_UP_S2_OCO1"));
};
Base.NZDJPY_UP_S2_OCO1Sets3.Add( Base.NZDJPY_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO4_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP4,"TP4_NZDJPY_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP4_NZDJPY_UP_S2_OCO1"));
};
Base.NZDJPY_UP_S2_OCO1Sets4.Add( Base.NZDJPY_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO5_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP5,"TP5_NZDJPY_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP5_NZDJPY_UP_S2_OCO1"));
};
Base.NZDJPY_UP_S2_OCO1Sets5.Add( Base.NZDJPY_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO6_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP6,"TP6_NZDJPY_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP6_NZDJPY_UP_S2_OCO1"));
};
Base.NZDJPY_UP_S2_OCO1Sets6.Add( Base.NZDJPY_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO6_UP_S2_ID = -1;
}
int NZDJPY_OCO1S1_UP_S2 = 0;
for (; NZDJPY_OCO1S1_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets1.Count; NZDJPY_OCO1S1_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets1[NZDJPY_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO1Sets1[NZDJPY_OCO1S1_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO1Sets1.RemoveAt(NZDJPY_OCO1S1_UP_S2);
NZDJPY_OCO1S1_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S2_UP_S2 = 0;
for (; NZDJPY_OCO1S2_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets2.Count; NZDJPY_OCO1S2_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets2[NZDJPY_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO1Sets2[NZDJPY_OCO1S2_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO1Sets2.RemoveAt(NZDJPY_OCO1S2_UP_S2);
NZDJPY_OCO1S2_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S3_UP_S2 = 0;
for (; NZDJPY_OCO1S3_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets3.Count; NZDJPY_OCO1S3_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets3[NZDJPY_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO1Sets3[NZDJPY_OCO1S3_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO1Sets3.RemoveAt(NZDJPY_OCO1S3_UP_S2);
NZDJPY_OCO1S3_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S4_UP_S2 = 0;
for (; NZDJPY_OCO1S4_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets4.Count; NZDJPY_OCO1S4_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets4[NZDJPY_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO1Sets4[NZDJPY_OCO1S4_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO1Sets4.RemoveAt(NZDJPY_OCO1S4_UP_S2);
NZDJPY_OCO1S4_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S5_UP_S2 = 0;
for (; NZDJPY_OCO1S5_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets5.Count; NZDJPY_OCO1S5_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets5[NZDJPY_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO1Sets5[NZDJPY_OCO1S5_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO1Sets5.RemoveAt(NZDJPY_OCO1S5_UP_S2);
NZDJPY_OCO1S5_UP_S2 = 0;
break;
}
int NZDJPY_OCO1S6_UP_S2 = 0;
for (; NZDJPY_OCO1S6_UP_S2 < Base.NZDJPY_UP_S2_OCO1Sets6.Count; NZDJPY_OCO1S6_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO1Sets6[NZDJPY_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO1Sets6[NZDJPY_OCO1S6_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO1Sets6.RemoveAt(NZDJPY_OCO1S6_UP_S2);
NZDJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO2_EO1_UP_S2)
Base.NZDJPY_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO2_EO2_UP_S2)
Base.NZDJPY_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO2_EO3_UP_S2)
Base.NZDJPY_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO2_EO4_UP_S2)
Base.NZDJPY_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO2_EO5_UP_S2)
Base.NZDJPY_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO2_EO6_UP_S2)
Base.NZDJPY_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO1_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP1,"TP1_NZDJPY_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP1_NZDJPY_UP_S2_OCO2"));
};
Base.NZDJPY_UP_S2_OCO2Sets1.Add( Base.NZDJPY_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO2_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP2,"TP2_NZDJPY_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP2_NZDJPY_UP_S2_OCO2"));
};
Base.NZDJPY_UP_S2_OCO2Sets2.Add( Base.NZDJPY_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO3_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP3,"TP3_NZDJPY_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP3_NZDJPY_UP_S2_OCO2"));
};
Base.NZDJPY_UP_S2_OCO2Sets3.Add( Base.NZDJPY_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO4_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP4,"TP4_NZDJPY_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP4_NZDJPY_UP_S2_OCO2"));
};
Base.NZDJPY_UP_S2_OCO2Sets4.Add( Base.NZDJPY_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO5_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP5,"TP5_NZDJPY_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP5_NZDJPY_UP_S2_OCO2"));
};
Base.NZDJPY_UP_S2_OCO2Sets5.Add( Base.NZDJPY_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO6_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP6,"TP6_NZDJPY_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP6_NZDJPY_UP_S2_OCO2"));
};
Base.NZDJPY_UP_S2_OCO2Sets6.Add( Base.NZDJPY_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO6_UP_S2_ID = -1;
}
int NZDJPY_OCO2S1_UP_S2 = 0;
for (; NZDJPY_OCO2S1_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets1.Count; NZDJPY_OCO2S1_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets1[NZDJPY_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO2Sets1[NZDJPY_OCO2S1_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO2Sets1.RemoveAt(NZDJPY_OCO2S1_UP_S2);
NZDJPY_OCO2S1_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S2_UP_S2 = 0;
for (; NZDJPY_OCO2S2_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets2.Count; NZDJPY_OCO2S2_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets2[NZDJPY_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO2Sets2[NZDJPY_OCO2S2_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO2Sets2.RemoveAt(NZDJPY_OCO2S2_UP_S2);
NZDJPY_OCO2S2_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S3_UP_S2 = 0;
for (; NZDJPY_OCO2S3_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets3.Count; NZDJPY_OCO2S3_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets3[NZDJPY_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO2Sets3[NZDJPY_OCO2S3_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO2Sets3.RemoveAt(NZDJPY_OCO2S3_UP_S2);
NZDJPY_OCO2S3_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S4_UP_S2 = 0;
for (; NZDJPY_OCO2S4_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets4.Count; NZDJPY_OCO2S4_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets4[NZDJPY_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO2Sets4[NZDJPY_OCO2S4_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO2Sets4.RemoveAt(NZDJPY_OCO2S4_UP_S2);
NZDJPY_OCO2S4_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S5_UP_S2 = 0;
for (; NZDJPY_OCO2S5_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets5.Count; NZDJPY_OCO2S5_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets5[NZDJPY_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO2Sets5[NZDJPY_OCO2S5_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO2Sets5.RemoveAt(NZDJPY_OCO2S5_UP_S2);
NZDJPY_OCO2S5_UP_S2 = 0;
break;
}
int NZDJPY_OCO2S6_UP_S2 = 0;
for (; NZDJPY_OCO2S6_UP_S2 < Base.NZDJPY_UP_S2_OCO2Sets6.Count; NZDJPY_OCO2S6_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO2Sets6[NZDJPY_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO2Sets6[NZDJPY_OCO2S6_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO2Sets6.RemoveAt(NZDJPY_OCO2S6_UP_S2);
NZDJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO3_EO1_UP_S2)
Base.NZDJPY_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO3_EO2_UP_S2)
Base.NZDJPY_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO3_EO3_UP_S2)
Base.NZDJPY_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO3_EO4_UP_S2)
Base.NZDJPY_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO3_EO5_UP_S2)
Base.NZDJPY_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO3_EO6_UP_S2)
Base.NZDJPY_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO1_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP1,"TP1_NZDJPY_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP1_NZDJPY_UP_S2_OCO3"));
};
Base.NZDJPY_UP_S2_OCO3Sets1.Add( Base.NZDJPY_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO2_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP2,"TP2_NZDJPY_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP2_NZDJPY_UP_S2_OCO3"));
};
Base.NZDJPY_UP_S2_OCO3Sets2.Add( Base.NZDJPY_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO3_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP3,"TP3_NZDJPY_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP3_NZDJPY_UP_S2_OCO3"));
};
Base.NZDJPY_UP_S2_OCO3Sets3.Add( Base.NZDJPY_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO4_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP4,"TP4_NZDJPY_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP4_NZDJPY_UP_S2_OCO3"));
};
Base.NZDJPY_UP_S2_OCO3Sets4.Add( Base.NZDJPY_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO5_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP5,"TP5_NZDJPY_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP5_NZDJPY_UP_S2_OCO3"));
};
Base.NZDJPY_UP_S2_OCO3Sets5.Add( Base.NZDJPY_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO6_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP6,"TP6_NZDJPY_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP6_NZDJPY_UP_S2_OCO3"));
};
Base.NZDJPY_UP_S2_OCO3Sets6.Add( Base.NZDJPY_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO6_UP_S2_ID = -1;
}
int NZDJPY_OCO3S1_UP_S2 = 0;
for (; NZDJPY_OCO3S1_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets1.Count; NZDJPY_OCO3S1_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets1[NZDJPY_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO3Sets1[NZDJPY_OCO3S1_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO3Sets1.RemoveAt(NZDJPY_OCO3S1_UP_S2);
NZDJPY_OCO3S1_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S2_UP_S2 = 0;
for (; NZDJPY_OCO3S2_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets2.Count; NZDJPY_OCO3S2_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets2[NZDJPY_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO3Sets2[NZDJPY_OCO3S2_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO3Sets2.RemoveAt(NZDJPY_OCO3S2_UP_S2);
NZDJPY_OCO3S2_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S3_UP_S2 = 0;
for (; NZDJPY_OCO3S3_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets3.Count; NZDJPY_OCO3S3_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets3[NZDJPY_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO3Sets3[NZDJPY_OCO3S3_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO3Sets3.RemoveAt(NZDJPY_OCO3S3_UP_S2);
NZDJPY_OCO3S3_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S4_UP_S2 = 0;
for (; NZDJPY_OCO3S4_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets4.Count; NZDJPY_OCO3S4_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets4[NZDJPY_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO3Sets4[NZDJPY_OCO3S4_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO3Sets4.RemoveAt(NZDJPY_OCO3S4_UP_S2);
NZDJPY_OCO3S4_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S5_UP_S2 = 0;
for (; NZDJPY_OCO3S5_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets5.Count; NZDJPY_OCO3S5_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets5[NZDJPY_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO3Sets5[NZDJPY_OCO3S5_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO3Sets5.RemoveAt(NZDJPY_OCO3S5_UP_S2);
NZDJPY_OCO3S5_UP_S2 = 0;
break;
}
int NZDJPY_OCO3S6_UP_S2 = 0;
for (; NZDJPY_OCO3S6_UP_S2 < Base.NZDJPY_UP_S2_OCO3Sets6.Count; NZDJPY_OCO3S6_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO3Sets6[NZDJPY_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO3Sets6[NZDJPY_OCO3S6_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO3Sets6.RemoveAt(NZDJPY_OCO3S6_UP_S2);
NZDJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO4_EO1_UP_S2)
Base.NZDJPY_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO4_EO2_UP_S2)
Base.NZDJPY_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO4_EO3_UP_S2)
Base.NZDJPY_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO4_EO4_UP_S2)
Base.NZDJPY_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO4_EO5_UP_S2)
Base.NZDJPY_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO4_EO6_UP_S2)
Base.NZDJPY_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO1_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP1,"TP1_NZDJPY_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP1_NZDJPY_UP_S2_OCO4"));
};
Base.NZDJPY_UP_S2_OCO4Sets1.Add( Base.NZDJPY_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO2_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP2,"TP2_NZDJPY_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP2_NZDJPY_UP_S2_OCO4"));
};
Base.NZDJPY_UP_S2_OCO4Sets2.Add( Base.NZDJPY_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO3_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP3,"TP3_NZDJPY_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP3_NZDJPY_UP_S2_OCO4"));
};
Base.NZDJPY_UP_S2_OCO4Sets3.Add( Base.NZDJPY_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO4_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP4,"TP4_NZDJPY_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP4_NZDJPY_UP_S2_OCO4"));
};
Base.NZDJPY_UP_S2_OCO4Sets4.Add( Base.NZDJPY_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO5_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP5,"TP5_NZDJPY_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP5_NZDJPY_UP_S2_OCO4"));
};
Base.NZDJPY_UP_S2_OCO4Sets5.Add( Base.NZDJPY_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO6_UP_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_UP_S2_TP6,"TP6_NZDJPY_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_UP_S2_SL,"SL_TP6_NZDJPY_UP_S2_OCO4"));
};
Base.NZDJPY_UP_S2_OCO4Sets6.Add( Base.NZDJPY_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO6_UP_S2_ID = -1;
}
int NZDJPY_OCO4S1_UP_S2 = 0;
for (; NZDJPY_OCO4S1_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets1.Count; NZDJPY_OCO4S1_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets1[NZDJPY_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO4Sets1[NZDJPY_OCO4S1_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO4Sets1.RemoveAt(NZDJPY_OCO4S1_UP_S2);
NZDJPY_OCO4S1_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S2_UP_S2 = 0;
for (; NZDJPY_OCO4S2_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets2.Count; NZDJPY_OCO4S2_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets2[NZDJPY_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO4Sets2[NZDJPY_OCO4S2_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO4Sets2.RemoveAt(NZDJPY_OCO4S2_UP_S2);
NZDJPY_OCO4S2_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S3_UP_S2 = 0;
for (; NZDJPY_OCO4S3_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets3.Count; NZDJPY_OCO4S3_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets3[NZDJPY_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO4Sets3[NZDJPY_OCO4S3_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO4Sets3.RemoveAt(NZDJPY_OCO4S3_UP_S2);
NZDJPY_OCO4S3_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S4_UP_S2 = 0;
for (; NZDJPY_OCO4S4_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets4.Count; NZDJPY_OCO4S4_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets4[NZDJPY_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO4Sets4[NZDJPY_OCO4S4_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO4Sets4.RemoveAt(NZDJPY_OCO4S4_UP_S2);
NZDJPY_OCO4S4_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S5_UP_S2 = 0;
for (; NZDJPY_OCO4S5_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets5.Count; NZDJPY_OCO4S5_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets5[NZDJPY_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO4Sets5[NZDJPY_OCO4S5_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO4Sets5.RemoveAt(NZDJPY_OCO4S5_UP_S2);
NZDJPY_OCO4S5_UP_S2 = 0;
break;
}
int NZDJPY_OCO4S6_UP_S2 = 0;
for (; NZDJPY_OCO4S6_UP_S2 < Base.NZDJPY_UP_S2_OCO4Sets6.Count; NZDJPY_OCO4S6_UP_S2++)
if (Base.NZDJPY_UP_S2_OCO4Sets6[NZDJPY_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_UP_S2_OCO4Sets6[NZDJPY_OCO4S6_UP_S2].Filled();
Base.NZDJPY_UP_S2_OCO4Sets6.RemoveAt(NZDJPY_OCO4S6_UP_S2);
NZDJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct NZDJPY_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public NZDJPY_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
if (OrderID.Tag.StartsWith("NZDJPY OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDJPY OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDJPY S2");
}
}
if (Base.NZDJPY_OCO1_EO1_DOWN_S2)
Base.NZDJPY_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO1_EO2_DOWN_S2)
Base.NZDJPY_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO1_EO3_DOWN_S2)
Base.NZDJPY_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO1_EO4_DOWN_S2)
Base.NZDJPY_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO1_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP1_NZDJPY_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP1,"TP1_NZDJPY_DOWN_S2_OCO1"));
};
Base.NZDJPY_DOWN_S2_OCO1Sets1.Add( Base.NZDJPY_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO2_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP2_NZDJPY_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP2,"TP2_NZDJPY_DOWN_S2_OCO1"));
};
Base.NZDJPY_DOWN_S2_OCO1Sets2.Add( Base.NZDJPY_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO3_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP3_NZDJPY_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP3,"TP3_NZDJPY_DOWN_S2_OCO1"));
};
Base.NZDJPY_DOWN_S2_OCO1Sets3.Add( Base.NZDJPY_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO1_EO4_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP4_NZDJPY_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP4,"TP4_NZDJPY_DOWN_S2_OCO1"));
};
Base.NZDJPY_DOWN_S2_OCO1Sets4.Add( Base.NZDJPY_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO1_EO4_DOWN_S2_ID = -1;
}
int NZDJPY_OCO1S1_DOWN_S2 = 0;
for (; NZDJPY_OCO1S1_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets1.Count; NZDJPY_OCO1S1_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets1[NZDJPY_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO1Sets1[NZDJPY_OCO1S1_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO1Sets1.RemoveAt(NZDJPY_OCO1S1_DOWN_S2);
NZDJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO1S2_DOWN_S2 = 0;
for (; NZDJPY_OCO1S2_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets2.Count; NZDJPY_OCO1S2_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets2[NZDJPY_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO1Sets2[NZDJPY_OCO1S2_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO1Sets2.RemoveAt(NZDJPY_OCO1S2_DOWN_S2);
NZDJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO1S3_DOWN_S2 = 0;
for (; NZDJPY_OCO1S3_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets3.Count; NZDJPY_OCO1S3_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets3[NZDJPY_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO1Sets3[NZDJPY_OCO1S3_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO1Sets3.RemoveAt(NZDJPY_OCO1S3_DOWN_S2);
NZDJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO1S4_DOWN_S2 = 0;
for (; NZDJPY_OCO1S4_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO1Sets4.Count; NZDJPY_OCO1S4_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO1Sets4[NZDJPY_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO1Sets4[NZDJPY_OCO1S4_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO1Sets4.RemoveAt(NZDJPY_OCO1S4_DOWN_S2);
NZDJPY_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO2_EO1_DOWN_S2)
Base.NZDJPY_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO2_EO2_DOWN_S2)
Base.NZDJPY_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO2_EO3_DOWN_S2)
Base.NZDJPY_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO2_EO4_DOWN_S2)
Base.NZDJPY_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO1_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP1_NZDJPY_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP1,"TP1_NZDJPY_DOWN_S2_OCO2"));
};
Base.NZDJPY_DOWN_S2_OCO2Sets1.Add( Base.NZDJPY_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO2_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP2_NZDJPY_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP2,"TP2_NZDJPY_DOWN_S2_OCO2"));
};
Base.NZDJPY_DOWN_S2_OCO2Sets2.Add( Base.NZDJPY_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO3_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP3_NZDJPY_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP3,"TP3_NZDJPY_DOWN_S2_OCO2"));
};
Base.NZDJPY_DOWN_S2_OCO2Sets3.Add( Base.NZDJPY_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO2_EO4_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP4_NZDJPY_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP4,"TP4_NZDJPY_DOWN_S2_OCO2"));
};
Base.NZDJPY_DOWN_S2_OCO2Sets4.Add( Base.NZDJPY_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO2_EO4_DOWN_S2_ID = -1;
}
int NZDJPY_OCO2S1_DOWN_S2 = 0;
for (; NZDJPY_OCO2S1_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets1.Count; NZDJPY_OCO2S1_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets1[NZDJPY_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO2Sets1[NZDJPY_OCO2S1_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO2Sets1.RemoveAt(NZDJPY_OCO2S1_DOWN_S2);
NZDJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO2S2_DOWN_S2 = 0;
for (; NZDJPY_OCO2S2_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets2.Count; NZDJPY_OCO2S2_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets2[NZDJPY_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO2Sets2[NZDJPY_OCO2S2_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO2Sets2.RemoveAt(NZDJPY_OCO2S2_DOWN_S2);
NZDJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO2S3_DOWN_S2 = 0;
for (; NZDJPY_OCO2S3_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets3.Count; NZDJPY_OCO2S3_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets3[NZDJPY_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO2Sets3[NZDJPY_OCO2S3_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO2Sets3.RemoveAt(NZDJPY_OCO2S3_DOWN_S2);
NZDJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO2S4_DOWN_S2 = 0;
for (; NZDJPY_OCO2S4_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO2Sets4.Count; NZDJPY_OCO2S4_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO2Sets4[NZDJPY_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO2Sets4[NZDJPY_OCO2S4_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO2Sets4.RemoveAt(NZDJPY_OCO2S4_DOWN_S2);
NZDJPY_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO3_EO1_DOWN_S2)
Base.NZDJPY_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO3_EO2_DOWN_S2)
Base.NZDJPY_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO3_EO3_DOWN_S2)
Base.NZDJPY_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO3_EO4_DOWN_S2)
Base.NZDJPY_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO1_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP1_NZDJPY_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP1,"TP1_NZDJPY_DOWN_S2_OCO3"));
};
Base.NZDJPY_DOWN_S2_OCO3Sets1.Add( Base.NZDJPY_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO2_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP2_NZDJPY_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP2,"TP2_NZDJPY_DOWN_S2_OCO3"));
};
Base.NZDJPY_DOWN_S2_OCO3Sets2.Add( Base.NZDJPY_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO3_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP3_NZDJPY_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP3,"TP3_NZDJPY_DOWN_S2_OCO3"));
};
Base.NZDJPY_DOWN_S2_OCO3Sets3.Add( Base.NZDJPY_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO3_EO4_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP4_NZDJPY_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP4,"TP4_NZDJPY_DOWN_S2_OCO3"));
};
Base.NZDJPY_DOWN_S2_OCO3Sets4.Add( Base.NZDJPY_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO3_EO4_DOWN_S2_ID = -1;
}
int NZDJPY_OCO3S1_DOWN_S2 = 0;
for (; NZDJPY_OCO3S1_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets1.Count; NZDJPY_OCO3S1_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets1[NZDJPY_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO3Sets1[NZDJPY_OCO3S1_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO3Sets1.RemoveAt(NZDJPY_OCO3S1_DOWN_S2);
NZDJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO3S2_DOWN_S2 = 0;
for (; NZDJPY_OCO3S2_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets2.Count; NZDJPY_OCO3S2_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets2[NZDJPY_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO3Sets2[NZDJPY_OCO3S2_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO3Sets2.RemoveAt(NZDJPY_OCO3S2_DOWN_S2);
NZDJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO3S3_DOWN_S2 = 0;
for (; NZDJPY_OCO3S3_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets3.Count; NZDJPY_OCO3S3_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets3[NZDJPY_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO3Sets3[NZDJPY_OCO3S3_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO3Sets3.RemoveAt(NZDJPY_OCO3S3_DOWN_S2);
NZDJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO3S4_DOWN_S2 = 0;
for (; NZDJPY_OCO3S4_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO3Sets4.Count; NZDJPY_OCO3S4_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO3Sets4[NZDJPY_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO3Sets4[NZDJPY_OCO3S4_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO3Sets4.RemoveAt(NZDJPY_OCO3S4_DOWN_S2);
NZDJPY_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDJPY_OCO4_EO1_DOWN_S2)
Base.NZDJPY_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO4_EO2_DOWN_S2)
Base.NZDJPY_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO4_EO3_DOWN_S2)
Base.NZDJPY_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDJPY_OCO4_EO4_DOWN_S2)
Base.NZDJPY_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO1_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP1_NZDJPY_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP1,"TP1_NZDJPY_DOWN_S2_OCO4"));
};
Base.NZDJPY_DOWN_S2_OCO4Sets1.Add( Base.NZDJPY_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO2_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP2_NZDJPY_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP2,"TP2_NZDJPY_DOWN_S2_OCO4"));
};
Base.NZDJPY_DOWN_S2_OCO4Sets2.Add( Base.NZDJPY_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO3_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP3_NZDJPY_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP3,"TP3_NZDJPY_DOWN_S2_OCO4"));
};
Base.NZDJPY_DOWN_S2_OCO4Sets3.Add( Base.NZDJPY_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDJPY_OCO4_EO4_DOWN_S2_ID)
{
Base.NZDJPY_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDJPY_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDJPY_DOWN_S2_SL,"SL_TP4_NZDJPY_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDJPY_DOWN_S2_TP4,"TP4_NZDJPY_DOWN_S2_OCO4"));
};
Base.NZDJPY_DOWN_S2_OCO4Sets4.Add( Base.NZDJPY_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDJPY_OCO4_EO4_DOWN_S2_ID = -1;
}
int NZDJPY_OCO4S1_DOWN_S2 = 0;
for (; NZDJPY_OCO4S1_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets1.Count; NZDJPY_OCO4S1_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets1[NZDJPY_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO4Sets1[NZDJPY_OCO4S1_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO4Sets1.RemoveAt(NZDJPY_OCO4S1_DOWN_S2);
NZDJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO4S2_DOWN_S2 = 0;
for (; NZDJPY_OCO4S2_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets2.Count; NZDJPY_OCO4S2_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets2[NZDJPY_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO4Sets2[NZDJPY_OCO4S2_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO4Sets2.RemoveAt(NZDJPY_OCO4S2_DOWN_S2);
NZDJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO4S3_DOWN_S2 = 0;
for (; NZDJPY_OCO4S3_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets3.Count; NZDJPY_OCO4S3_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets3[NZDJPY_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO4Sets3[NZDJPY_OCO4S3_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO4Sets3.RemoveAt(NZDJPY_OCO4S3_DOWN_S2);
NZDJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int NZDJPY_OCO4S4_DOWN_S2 = 0;
for (; NZDJPY_OCO4S4_DOWN_S2 < Base.NZDJPY_DOWN_S2_OCO4Sets4.Count; NZDJPY_OCO4S4_DOWN_S2++)
if (Base.NZDJPY_DOWN_S2_OCO4Sets4[NZDJPY_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDJPY_DOWN_S2_OCO4Sets4[NZDJPY_OCO4S4_DOWN_S2].Filled();
Base.NZDJPY_DOWN_S2_OCO4Sets4.RemoveAt(NZDJPY_OCO4S4_DOWN_S2);
NZDJPY_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_CHFJPY_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_CHFJPY_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("CHFJPY_DOWN_S2_OCO1")))
{
Base.CHFJPY_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CHFJPY_DOWN_S2_OCO2")))
{
Base.CHFJPY_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CHFJPY_DOWN_S2_OCO3")))
{
Base.CHFJPY_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CHFJPY_DOWN_S2_OCO4")))
{
Base.CHFJPY_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("CHFJPY_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.CHFJPY_OCO1_EO1_DOWN_S2)
Base.CHFJPY_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO2_DOWN_S2)
Base.CHFJPY_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO3_DOWN_S2)
Base.CHFJPY_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO4_DOWN_S2)
Base.CHFJPY_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO5_DOWN_S2)
Base.CHFJPY_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO6_DOWN_S2)
Base.CHFJPY_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CHFJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int CHFJPY_OCO1S1_DOWN_S2 = 0;
for (; CHFJPY_OCO1S1_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets1.Count; CHFJPY_OCO1S1_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets1[CHFJPY_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO1Sets1[CHFJPY_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_1__Time out_OCO1");
Base.CHFJPY_DOWN_S2_OCO1Sets1.Clear();
CHFJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO1S2_DOWN_S2 = 0;
for (; CHFJPY_OCO1S2_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets2.Count; CHFJPY_OCO1S2_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets2[CHFJPY_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO1Sets2[CHFJPY_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_2__Time out_OCO1");
Base.CHFJPY_DOWN_S2_OCO1Sets2.Clear();
CHFJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO1S3_DOWN_S2 = 0;
for (; CHFJPY_OCO1S3_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets3.Count; CHFJPY_OCO1S3_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets3[CHFJPY_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO1Sets3[CHFJPY_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_3__Time out_OCO1");
Base.CHFJPY_DOWN_S2_OCO1Sets3.Clear();
CHFJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO1S4_DOWN_S2 = 0;
for (; CHFJPY_OCO1S4_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets4.Count; CHFJPY_OCO1S4_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets4[CHFJPY_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO1Sets4[CHFJPY_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_4__Time out_OCO1");
Base.CHFJPY_DOWN_S2_OCO1Sets4.Clear();
CHFJPY_OCO1S4_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO1S5_DOWN_S2 = 0;
for (; CHFJPY_OCO1S5_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets5.Count; CHFJPY_OCO1S5_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets5[CHFJPY_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO1Sets5[CHFJPY_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_5__Time out_OCO1");
Base.CHFJPY_DOWN_S2_OCO1Sets5.Clear();
CHFJPY_OCO1S5_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO1S6_DOWN_S2 = 0;
for (; CHFJPY_OCO1S6_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets6.Count; CHFJPY_OCO1S6_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets6[CHFJPY_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO1Sets6[CHFJPY_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_6__Time out_OCO1");
Base.CHFJPY_DOWN_S2_OCO1Sets6.Clear();
CHFJPY_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO2_EO1_DOWN_S2)
Base.CHFJPY_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO2_DOWN_S2)
Base.CHFJPY_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO3_DOWN_S2)
Base.CHFJPY_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO4_DOWN_S2)
Base.CHFJPY_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO5_DOWN_S2)
Base.CHFJPY_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO6_DOWN_S2)
Base.CHFJPY_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CHFJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int CHFJPY_OCO2S1_DOWN_S2 = 0;
for (; CHFJPY_OCO2S1_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets1.Count; CHFJPY_OCO2S1_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets1[CHFJPY_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO2Sets1[CHFJPY_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_1__Time out_OCO2");
Base.CHFJPY_DOWN_S2_OCO2Sets1.Clear();
CHFJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO2S2_DOWN_S2 = 0;
for (; CHFJPY_OCO2S2_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets2.Count; CHFJPY_OCO2S2_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets2[CHFJPY_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO2Sets2[CHFJPY_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_2__Time out_OCO2");
Base.CHFJPY_DOWN_S2_OCO2Sets2.Clear();
CHFJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO2S3_DOWN_S2 = 0;
for (; CHFJPY_OCO2S3_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets3.Count; CHFJPY_OCO2S3_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets3[CHFJPY_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO2Sets3[CHFJPY_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_3__Time out_OCO2");
Base.CHFJPY_DOWN_S2_OCO2Sets3.Clear();
CHFJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO2S4_DOWN_S2 = 0;
for (; CHFJPY_OCO2S4_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets4.Count; CHFJPY_OCO2S4_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets4[CHFJPY_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO2Sets4[CHFJPY_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_4__Time out_OCO2");
Base.CHFJPY_DOWN_S2_OCO2Sets4.Clear();
CHFJPY_OCO2S4_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO2S5_DOWN_S2 = 0;
for (; CHFJPY_OCO2S5_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets5.Count; CHFJPY_OCO2S5_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets5[CHFJPY_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO2Sets5[CHFJPY_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_5__Time out_OCO2");
Base.CHFJPY_DOWN_S2_OCO2Sets5.Clear();
CHFJPY_OCO2S5_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO2S6_DOWN_S2 = 0;
for (; CHFJPY_OCO2S6_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets6.Count; CHFJPY_OCO2S6_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets6[CHFJPY_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO2Sets6[CHFJPY_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_6__Time out_OCO2");
Base.CHFJPY_DOWN_S2_OCO2Sets6.Clear();
CHFJPY_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO3_EO1_DOWN_S2)
Base.CHFJPY_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO2_DOWN_S2)
Base.CHFJPY_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO3_DOWN_S2)
Base.CHFJPY_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO4_DOWN_S2)
Base.CHFJPY_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO5_DOWN_S2)
Base.CHFJPY_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO6_DOWN_S2)
Base.CHFJPY_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CHFJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int CHFJPY_OCO3S1_DOWN_S2 = 0;
for (; CHFJPY_OCO3S1_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets1.Count; CHFJPY_OCO3S1_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets1[CHFJPY_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO3Sets1[CHFJPY_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_1__Time out_OCO3");
Base.CHFJPY_DOWN_S2_OCO3Sets1.Clear();
CHFJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO3S2_DOWN_S2 = 0;
for (; CHFJPY_OCO3S2_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets2.Count; CHFJPY_OCO3S2_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets2[CHFJPY_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO3Sets2[CHFJPY_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_2__Time out_OCO3");
Base.CHFJPY_DOWN_S2_OCO3Sets2.Clear();
CHFJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO3S3_DOWN_S2 = 0;
for (; CHFJPY_OCO3S3_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets3.Count; CHFJPY_OCO3S3_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets3[CHFJPY_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO3Sets3[CHFJPY_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_3__Time out_OCO3");
Base.CHFJPY_DOWN_S2_OCO3Sets3.Clear();
CHFJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO3S4_DOWN_S2 = 0;
for (; CHFJPY_OCO3S4_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets4.Count; CHFJPY_OCO3S4_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets4[CHFJPY_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO3Sets4[CHFJPY_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_4__Time out_OCO3");
Base.CHFJPY_DOWN_S2_OCO3Sets4.Clear();
CHFJPY_OCO3S4_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO3S5_DOWN_S2 = 0;
for (; CHFJPY_OCO3S5_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets5.Count; CHFJPY_OCO3S5_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets5[CHFJPY_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO3Sets5[CHFJPY_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_5__Time out_OCO3");
Base.CHFJPY_DOWN_S2_OCO3Sets5.Clear();
CHFJPY_OCO3S5_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO3S6_DOWN_S2 = 0;
for (; CHFJPY_OCO3S6_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets6.Count; CHFJPY_OCO3S6_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets6[CHFJPY_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO3Sets6[CHFJPY_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_6__Time out_OCO3");
Base.CHFJPY_DOWN_S2_OCO3Sets6.Clear();
CHFJPY_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO4_EO1_DOWN_S2)
Base.CHFJPY_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO2_DOWN_S2)
Base.CHFJPY_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO3_DOWN_S2)
Base.CHFJPY_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO4_DOWN_S2)
Base.CHFJPY_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO5_DOWN_S2)
Base.CHFJPY_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO6_DOWN_S2)
Base.CHFJPY_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CHFJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int CHFJPY_OCO4S1_DOWN_S2 = 0;
for (; CHFJPY_OCO4S1_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets1.Count; CHFJPY_OCO4S1_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets1[CHFJPY_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO4Sets1[CHFJPY_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_1__Time out_OCO4");
Base.CHFJPY_DOWN_S2_OCO4Sets1.Clear();
CHFJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO4S2_DOWN_S2 = 0;
for (; CHFJPY_OCO4S2_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets2.Count; CHFJPY_OCO4S2_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets2[CHFJPY_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO4Sets2[CHFJPY_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_2__Time out_OCO4");
Base.CHFJPY_DOWN_S2_OCO4Sets2.Clear();
CHFJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO4S3_DOWN_S2 = 0;
for (; CHFJPY_OCO4S3_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets3.Count; CHFJPY_OCO4S3_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets3[CHFJPY_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO4Sets3[CHFJPY_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_3__Time out_OCO4");
Base.CHFJPY_DOWN_S2_OCO4Sets3.Clear();
CHFJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO4S4_DOWN_S2 = 0;
for (; CHFJPY_OCO4S4_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets4.Count; CHFJPY_OCO4S4_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets4[CHFJPY_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO4Sets4[CHFJPY_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_4__Time out_OCO4");
Base.CHFJPY_DOWN_S2_OCO4Sets4.Clear();
CHFJPY_OCO4S4_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO4S5_DOWN_S2 = 0;
for (; CHFJPY_OCO4S5_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets5.Count; CHFJPY_OCO4S5_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets5[CHFJPY_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO4Sets5[CHFJPY_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_5__Time out_OCO4");
Base.CHFJPY_DOWN_S2_OCO4Sets5.Clear();
CHFJPY_OCO4S5_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO4S6_DOWN_S2 = 0;
for (; CHFJPY_OCO4S6_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets6.Count; CHFJPY_OCO4S6_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets6[CHFJPY_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.CHFJPY_DOWN_S2_OCO4Sets6[CHFJPY_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_DOWN_S2_Entry_6__Time out_OCO4");
Base.CHFJPY_DOWN_S2_OCO4Sets6.Clear();
CHFJPY_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_CHFJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_CHFJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_CHFJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_CHFJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_CHFJPY_DOWN_S2 = DOWM_CHFJPY_DOWN_S2 || DOWT_CHFJPY_DOWN_S2 || DOWW_CHFJPY_DOWN_S2 || DOWTH_CHFJPY_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("CHFJPY"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.CHFJPY_OCO1_DOWN_S2_IsReady == false ||
Base.CHFJPY_OCO2_DOWN_S2_IsReady == false ||
Base.CHFJPY_OCO3_DOWN_S2_IsReady == false ||
Base.CHFJPY_OCO4_DOWN_S2_IsReady == false)
{
Base.CHFJPY_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.CHFJPY_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.CHFJPY_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.CHFJPY_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.CHFJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.CHFJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.CHFJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.CHFJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
}
CHFJPY_Signal_Condition_DOWN_1 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Yen_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
CHFJPY_Signal_Condition_DOWN_2 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Yen_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
CHFJPY_Signal_Condition_DOWN_3 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Yen_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (CHFJPY_Signal_Condition_DOWN_1)
{
CHFJPY_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (CHFJPY_Signal_Condition_DOWN_2)
{
CHFJPY_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (CHFJPY_Signal_Condition_DOWN_3)
{
CHFJPY_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (CHFJPY_Signal_Condition_DOWN_1)
{
CHFJPY_DOWN_S2_TP1 = 0.05m ;
}
if (CHFJPY_Signal_Condition_DOWN_2)
{
CHFJPY_DOWN_S2_TP1 = 0.05m ;
}
if (CHFJPY_Signal_Condition_DOWN_3)
{
CHFJPY_DOWN_S2_TP1 = 0.05m ;
}
CHFJPY_DOWN_S2_TP2 = CHFJPY_DOWN_S2_SL * 0;
CHFJPY_DOWN_S2_TP3 = CHFJPY_DOWN_S2_SL * 0;
CHFJPY_DOWN_S2_TP4 = CHFJPY_DOWN_S2_SL * 0;
CHFJPY_DOWN_S2_TP5 = CHFJPY_DOWN_S2_SL * 0;
CHFJPY_DOWN_S2_TP6 = CHFJPY_DOWN_S2_SL * 0;
if (coefIntS2 != 0 && CHFJPY_DOWN_S2_SL != 0)
{
CHFJPY_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)*0.015m);
CHFJPY_quantity_SL_DOWN_S2 = CHFJPY_quantity_DOWN_S2;
CHFJPY_quantity_TP1_DOWN_S2 = (CHFJPY_quantity_DOWN_S2 );
CHFJPY_quantity_TP2_DOWN_S2 = (CHFJPY_quantity_TP1_DOWN_S2 * 0);
CHFJPY_quantity_TP3_DOWN_S2 = (CHFJPY_quantity_TP2_DOWN_S2 * 0);
CHFJPY_quantity_TP4_DOWN_S2 = (CHFJPY_quantity_TP3_DOWN_S2 * 0);
CHFJPY_quantity_TP5_DOWN_S2 = (CHFJPY_quantity_TP4_DOWN_S2 * 0);
CHFJPY_quantity_TP6_DOWN_S2 = (CHFJPY_quantity_TP5_DOWN_S2 * 0);
}
oco1:
if ((CHFJPY_Signal_Condition_DOWN_1 || CHFJPY_Signal_Condition_DOWN_2 || CHFJPY_Signal_Condition_DOWN_3) &&
DOWR_CHFJPY_DOWN_S2 &&
Base.CHFJPY_OCO1_DOWN_S2_IsReady == true &&
Base.CHFJPY_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.CHFJPY_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP1_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP1_OCO1");
Base.CHFJPY_OCO1_EO1_DOWN_S2 = false;
Base.CHFJPY_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP2_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP2_OCO1");
Base.CHFJPY_OCO1_EO2_DOWN_S2 = false;
Base.CHFJPY_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP3_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP3_OCO1");
Base.CHFJPY_OCO1_EO3_DOWN_S2 = false;
Base.CHFJPY_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP4_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP4_OCO1");
Base.CHFJPY_OCO1_EO4_DOWN_S2 = false;
Base.CHFJPY_OCO1_DOWN_S2_IsReady = false;
if (Base.CHFJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if ((CHFJPY_Signal_Condition_DOWN_1 || CHFJPY_Signal_Condition_DOWN_2 || CHFJPY_Signal_Condition_DOWN_3) &&
DOWR_CHFJPY_DOWN_S2 &&
Base.CHFJPY_OCO2_DOWN_S2_IsReady == true &&
Base.CHFJPY_OCO1_DOWN_S2_IsReady == false &&
Base.CHFJPY_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.CHFJPY_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP1_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP1_OCO2");
Base.CHFJPY_OCO2_EO1_DOWN_S2 = false;
Base.CHFJPY_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP2_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP2_OCO2");
Base.CHFJPY_OCO2_EO2_DOWN_S2 = false;
Base.CHFJPY_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP3_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP3_OCO2");
Base.CHFJPY_OCO2_EO3_DOWN_S2 = false;
Base.CHFJPY_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP4_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP4_OCO2");
Base.CHFJPY_OCO2_EO4_DOWN_S2 = false;
Base.CHFJPY_OCO2_DOWN_S2_IsReady = false;
if (Base.CHFJPY_OCO2_DOWN_S2_IsReady == false && Base.CHFJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if ((CHFJPY_Signal_Condition_DOWN_1 || CHFJPY_Signal_Condition_DOWN_2 || CHFJPY_Signal_Condition_DOWN_3) &&
DOWR_CHFJPY_DOWN_S2 &&
Base.CHFJPY_OCO3_DOWN_S2_IsReady == true &&
Base.CHFJPY_OCO1_DOWN_S2_IsReady == false &&
Base.CHFJPY_OCO2_DOWN_S2_IsReady == false &&
Base.CHFJPY_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.CHFJPY_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP1_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP1_OCO3");
Base.CHFJPY_OCO3_EO1_DOWN_S2 = false;
Base.CHFJPY_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP2_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP2_OCO3");
Base.CHFJPY_OCO3_EO2_DOWN_S2 = false;
Base.CHFJPY_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP3_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP3_OCO3");
Base.CHFJPY_OCO3_EO3_DOWN_S2 = false;
Base.CHFJPY_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP4_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP4_OCO3");
Base.CHFJPY_OCO3_EO4_DOWN_S2 = false;
Base.CHFJPY_OCO3_DOWN_S2_IsReady = false;
if (Base.CHFJPY_OCO3_DOWN_S2_IsReady == false && Base.CHFJPY_OCO2_DOWN_S2_IsReady == false && Base.CHFJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if ((CHFJPY_Signal_Condition_DOWN_1 || CHFJPY_Signal_Condition_DOWN_2 || CHFJPY_Signal_Condition_DOWN_3) &&
DOWR_CHFJPY_DOWN_S2 &&
Base.CHFJPY_OCO4_DOWN_S2_IsReady == true &&
Base.CHFJPY_OCO1_DOWN_S2_IsReady == false &&
Base.CHFJPY_OCO2_DOWN_S2_IsReady == false &&
Base.CHFJPY_OCO3_DOWN_S2_IsReady == false &&
Base.CHFJPY_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.CHFJPY_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP1_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP1_OCO4");
Base.CHFJPY_OCO4_EO1_DOWN_S2 = false;
Base.CHFJPY_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP2_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP2_OCO4");
Base.CHFJPY_OCO4_EO2_DOWN_S2 = false;
Base.CHFJPY_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP3_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP3_OCO4");
Base.CHFJPY_OCO4_EO3_DOWN_S2 = false;
Base.CHFJPY_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CHFJPY_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP4_DOWN_S2, false,"CHFJPY_DOWN_S2_Entry_TP4_OCO4");
Base.CHFJPY_OCO4_EO4_DOWN_S2 = false;
Base.CHFJPY_OCO4_DOWN_S2_IsReady = false;
if (Base.CHFJPY_OCO4_DOWN_S2_IsReady == false && Base.CHFJPY_OCO3_DOWN_S2_IsReady == false && Base.CHFJPY_OCO2_DOWN_S2_IsReady == false && Base.CHFJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct CADJPY_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public CADJPY_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
}
if (Base.CADJPY_OCO1_EO1_UP_S2)
Base.CADJPY_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO1_EO2_UP_S2)
Base.CADJPY_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO1_EO3_UP_S2)
Base.CADJPY_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO1_EO4_UP_S2)
Base.CADJPY_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO1_EO5_UP_S2)
Base.CADJPY_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO1_EO6_UP_S2)
Base.CADJPY_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO1_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP1,"TP1_CADJPY_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP1_CADJPY_UP_S2_OCO1"));
};
Base.CADJPY_UP_S2_OCO1Sets1.Add( Base.CADJPY_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO2_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP2,"TP2_CADJPY_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP2_CADJPY_UP_S2_OCO1"));
};
Base.CADJPY_UP_S2_OCO1Sets2.Add( Base.CADJPY_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO3_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP3,"TP3_CADJPY_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP3_CADJPY_UP_S2_OCO1"));
};
Base.CADJPY_UP_S2_OCO1Sets3.Add( Base.CADJPY_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO4_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP4,"TP4_CADJPY_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP4_CADJPY_UP_S2_OCO1"));
};
Base.CADJPY_UP_S2_OCO1Sets4.Add( Base.CADJPY_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO5_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP5,"TP5_CADJPY_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP5_CADJPY_UP_S2_OCO1"));
};
Base.CADJPY_UP_S2_OCO1Sets5.Add( Base.CADJPY_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO6_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP6,"TP6_CADJPY_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP6_CADJPY_UP_S2_OCO1"));
};
Base.CADJPY_UP_S2_OCO1Sets6.Add( Base.CADJPY_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO6_UP_S2_ID = -1;
}
int CADJPY_OCO1S1_UP_S2 = 0;
for (; CADJPY_OCO1S1_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets1.Count; CADJPY_OCO1S1_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets1[CADJPY_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO1Sets1[CADJPY_OCO1S1_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO1Sets1.RemoveAt(CADJPY_OCO1S1_UP_S2);
CADJPY_OCO1S1_UP_S2 = 0;
break;
}
int CADJPY_OCO1S2_UP_S2 = 0;
for (; CADJPY_OCO1S2_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets2.Count; CADJPY_OCO1S2_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets2[CADJPY_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO1Sets2[CADJPY_OCO1S2_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO1Sets2.RemoveAt(CADJPY_OCO1S2_UP_S2);
CADJPY_OCO1S2_UP_S2 = 0;
break;
}
int CADJPY_OCO1S3_UP_S2 = 0;
for (; CADJPY_OCO1S3_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets3.Count; CADJPY_OCO1S3_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets3[CADJPY_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO1Sets3[CADJPY_OCO1S3_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO1Sets3.RemoveAt(CADJPY_OCO1S3_UP_S2);
CADJPY_OCO1S3_UP_S2 = 0;
break;
}
int CADJPY_OCO1S4_UP_S2 = 0;
for (; CADJPY_OCO1S4_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets4.Count; CADJPY_OCO1S4_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets4[CADJPY_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO1Sets4[CADJPY_OCO1S4_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO1Sets4.RemoveAt(CADJPY_OCO1S4_UP_S2);
CADJPY_OCO1S4_UP_S2 = 0;
break;
}
int CADJPY_OCO1S5_UP_S2 = 0;
for (; CADJPY_OCO1S5_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets5.Count; CADJPY_OCO1S5_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets5[CADJPY_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO1Sets5[CADJPY_OCO1S5_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO1Sets5.RemoveAt(CADJPY_OCO1S5_UP_S2);
CADJPY_OCO1S5_UP_S2 = 0;
break;
}
int CADJPY_OCO1S6_UP_S2 = 0;
for (; CADJPY_OCO1S6_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets6.Count; CADJPY_OCO1S6_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets6[CADJPY_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO1Sets6[CADJPY_OCO1S6_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO1Sets6.RemoveAt(CADJPY_OCO1S6_UP_S2);
CADJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO2_EO1_UP_S2)
Base.CADJPY_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO2_EO2_UP_S2)
Base.CADJPY_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO2_EO3_UP_S2)
Base.CADJPY_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO2_EO4_UP_S2)
Base.CADJPY_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO2_EO5_UP_S2)
Base.CADJPY_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO2_EO6_UP_S2)
Base.CADJPY_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO1_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP1,"TP1_CADJPY_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP1_CADJPY_UP_S2_OCO2"));
};
Base.CADJPY_UP_S2_OCO2Sets1.Add( Base.CADJPY_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO2_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP2,"TP2_CADJPY_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP2_CADJPY_UP_S2_OCO2"));
};
Base.CADJPY_UP_S2_OCO2Sets2.Add( Base.CADJPY_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO3_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP3,"TP3_CADJPY_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP3_CADJPY_UP_S2_OCO2"));
};
Base.CADJPY_UP_S2_OCO2Sets3.Add( Base.CADJPY_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO4_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP4,"TP4_CADJPY_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP4_CADJPY_UP_S2_OCO2"));
};
Base.CADJPY_UP_S2_OCO2Sets4.Add( Base.CADJPY_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO5_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP5,"TP5_CADJPY_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP5_CADJPY_UP_S2_OCO2"));
};
Base.CADJPY_UP_S2_OCO2Sets5.Add( Base.CADJPY_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO6_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP6,"TP6_CADJPY_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP6_CADJPY_UP_S2_OCO2"));
};
Base.CADJPY_UP_S2_OCO2Sets6.Add( Base.CADJPY_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO6_UP_S2_ID = -1;
}
int CADJPY_OCO2S1_UP_S2 = 0;
for (; CADJPY_OCO2S1_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets1.Count; CADJPY_OCO2S1_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets1[CADJPY_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO2Sets1[CADJPY_OCO2S1_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO2Sets1.RemoveAt(CADJPY_OCO2S1_UP_S2);
CADJPY_OCO2S1_UP_S2 = 0;
break;
}
int CADJPY_OCO2S2_UP_S2 = 0;
for (; CADJPY_OCO2S2_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets2.Count; CADJPY_OCO2S2_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets2[CADJPY_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO2Sets2[CADJPY_OCO2S2_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO2Sets2.RemoveAt(CADJPY_OCO2S2_UP_S2);
CADJPY_OCO2S2_UP_S2 = 0;
break;
}
int CADJPY_OCO2S3_UP_S2 = 0;
for (; CADJPY_OCO2S3_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets3.Count; CADJPY_OCO2S3_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets3[CADJPY_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO2Sets3[CADJPY_OCO2S3_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO2Sets3.RemoveAt(CADJPY_OCO2S3_UP_S2);
CADJPY_OCO2S3_UP_S2 = 0;
break;
}
int CADJPY_OCO2S4_UP_S2 = 0;
for (; CADJPY_OCO2S4_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets4.Count; CADJPY_OCO2S4_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets4[CADJPY_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO2Sets4[CADJPY_OCO2S4_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO2Sets4.RemoveAt(CADJPY_OCO2S4_UP_S2);
CADJPY_OCO2S4_UP_S2 = 0;
break;
}
int CADJPY_OCO2S5_UP_S2 = 0;
for (; CADJPY_OCO2S5_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets5.Count; CADJPY_OCO2S5_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets5[CADJPY_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO2Sets5[CADJPY_OCO2S5_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO2Sets5.RemoveAt(CADJPY_OCO2S5_UP_S2);
CADJPY_OCO2S5_UP_S2 = 0;
break;
}
int CADJPY_OCO2S6_UP_S2 = 0;
for (; CADJPY_OCO2S6_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets6.Count; CADJPY_OCO2S6_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets6[CADJPY_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO2Sets6[CADJPY_OCO2S6_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO2Sets6.RemoveAt(CADJPY_OCO2S6_UP_S2);
CADJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO3_EO1_UP_S2)
Base.CADJPY_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO3_EO2_UP_S2)
Base.CADJPY_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO3_EO3_UP_S2)
Base.CADJPY_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO3_EO4_UP_S2)
Base.CADJPY_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO3_EO5_UP_S2)
Base.CADJPY_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO3_EO6_UP_S2)
Base.CADJPY_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO1_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP1,"TP1_CADJPY_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP1_CADJPY_UP_S2_OCO3"));
};
Base.CADJPY_UP_S2_OCO3Sets1.Add( Base.CADJPY_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO2_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP2,"TP2_CADJPY_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP2_CADJPY_UP_S2_OCO3"));
};
Base.CADJPY_UP_S2_OCO3Sets2.Add( Base.CADJPY_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO3_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP3,"TP3_CADJPY_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP3_CADJPY_UP_S2_OCO3"));
};
Base.CADJPY_UP_S2_OCO3Sets3.Add( Base.CADJPY_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO4_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP4,"TP4_CADJPY_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP4_CADJPY_UP_S2_OCO3"));
};
Base.CADJPY_UP_S2_OCO3Sets4.Add( Base.CADJPY_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO5_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP5,"TP5_CADJPY_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP5_CADJPY_UP_S2_OCO3"));
};
Base.CADJPY_UP_S2_OCO3Sets5.Add( Base.CADJPY_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO6_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP6,"TP6_CADJPY_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP6_CADJPY_UP_S2_OCO3"));
};
Base.CADJPY_UP_S2_OCO3Sets6.Add( Base.CADJPY_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO6_UP_S2_ID = -1;
}
int CADJPY_OCO3S1_UP_S2 = 0;
for (; CADJPY_OCO3S1_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets1.Count; CADJPY_OCO3S1_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets1[CADJPY_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO3Sets1[CADJPY_OCO3S1_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO3Sets1.RemoveAt(CADJPY_OCO3S1_UP_S2);
CADJPY_OCO3S1_UP_S2 = 0;
break;
}
int CADJPY_OCO3S2_UP_S2 = 0;
for (; CADJPY_OCO3S2_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets2.Count; CADJPY_OCO3S2_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets2[CADJPY_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO3Sets2[CADJPY_OCO3S2_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO3Sets2.RemoveAt(CADJPY_OCO3S2_UP_S2);
CADJPY_OCO3S2_UP_S2 = 0;
break;
}
int CADJPY_OCO3S3_UP_S2 = 0;
for (; CADJPY_OCO3S3_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets3.Count; CADJPY_OCO3S3_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets3[CADJPY_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO3Sets3[CADJPY_OCO3S3_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO3Sets3.RemoveAt(CADJPY_OCO3S3_UP_S2);
CADJPY_OCO3S3_UP_S2 = 0;
break;
}
int CADJPY_OCO3S4_UP_S2 = 0;
for (; CADJPY_OCO3S4_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets4.Count; CADJPY_OCO3S4_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets4[CADJPY_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO3Sets4[CADJPY_OCO3S4_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO3Sets4.RemoveAt(CADJPY_OCO3S4_UP_S2);
CADJPY_OCO3S4_UP_S2 = 0;
break;
}
int CADJPY_OCO3S5_UP_S2 = 0;
for (; CADJPY_OCO3S5_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets5.Count; CADJPY_OCO3S5_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets5[CADJPY_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO3Sets5[CADJPY_OCO3S5_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO3Sets5.RemoveAt(CADJPY_OCO3S5_UP_S2);
CADJPY_OCO3S5_UP_S2 = 0;
break;
}
int CADJPY_OCO3S6_UP_S2 = 0;
for (; CADJPY_OCO3S6_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets6.Count; CADJPY_OCO3S6_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets6[CADJPY_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO3Sets6[CADJPY_OCO3S6_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO3Sets6.RemoveAt(CADJPY_OCO3S6_UP_S2);
CADJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO4_EO1_UP_S2)
Base.CADJPY_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO4_EO2_UP_S2)
Base.CADJPY_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO4_EO3_UP_S2)
Base.CADJPY_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO4_EO4_UP_S2)
Base.CADJPY_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO4_EO5_UP_S2)
Base.CADJPY_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO4_EO6_UP_S2)
Base.CADJPY_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO1_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP1,"TP1_CADJPY_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP1_CADJPY_UP_S2_OCO4"));
};
Base.CADJPY_UP_S2_OCO4Sets1.Add( Base.CADJPY_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO2_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP2,"TP2_CADJPY_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP2_CADJPY_UP_S2_OCO4"));
};
Base.CADJPY_UP_S2_OCO4Sets2.Add( Base.CADJPY_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO3_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP3,"TP3_CADJPY_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP3_CADJPY_UP_S2_OCO4"));
};
Base.CADJPY_UP_S2_OCO4Sets3.Add( Base.CADJPY_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO4_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP4,"TP4_CADJPY_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP4_CADJPY_UP_S2_OCO4"));
};
Base.CADJPY_UP_S2_OCO4Sets4.Add( Base.CADJPY_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO5_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP5,"TP5_CADJPY_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP5_CADJPY_UP_S2_OCO4"));
};
Base.CADJPY_UP_S2_OCO4Sets5.Add( Base.CADJPY_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO6_UP_S2_ID)
{
Base.CADJPY_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_UP_S2_TP6,"TP6_CADJPY_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_UP_S2_SL,"SL_TP6_CADJPY_UP_S2_OCO4"));
};
Base.CADJPY_UP_S2_OCO4Sets6.Add( Base.CADJPY_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO6_UP_S2_ID = -1;
}
int CADJPY_OCO4S1_UP_S2 = 0;
for (; CADJPY_OCO4S1_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets1.Count; CADJPY_OCO4S1_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets1[CADJPY_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO4Sets1[CADJPY_OCO4S1_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO4Sets1.RemoveAt(CADJPY_OCO4S1_UP_S2);
CADJPY_OCO4S1_UP_S2 = 0;
break;
}
int CADJPY_OCO4S2_UP_S2 = 0;
for (; CADJPY_OCO4S2_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets2.Count; CADJPY_OCO4S2_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets2[CADJPY_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO4Sets2[CADJPY_OCO4S2_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO4Sets2.RemoveAt(CADJPY_OCO4S2_UP_S2);
CADJPY_OCO4S2_UP_S2 = 0;
break;
}
int CADJPY_OCO4S3_UP_S2 = 0;
for (; CADJPY_OCO4S3_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets3.Count; CADJPY_OCO4S3_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets3[CADJPY_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO4Sets3[CADJPY_OCO4S3_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO4Sets3.RemoveAt(CADJPY_OCO4S3_UP_S2);
CADJPY_OCO4S3_UP_S2 = 0;
break;
}
int CADJPY_OCO4S4_UP_S2 = 0;
for (; CADJPY_OCO4S4_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets4.Count; CADJPY_OCO4S4_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets4[CADJPY_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO4Sets4[CADJPY_OCO4S4_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO4Sets4.RemoveAt(CADJPY_OCO4S4_UP_S2);
CADJPY_OCO4S4_UP_S2 = 0;
break;
}
int CADJPY_OCO4S5_UP_S2 = 0;
for (; CADJPY_OCO4S5_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets5.Count; CADJPY_OCO4S5_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets5[CADJPY_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO4Sets5[CADJPY_OCO4S5_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO4Sets5.RemoveAt(CADJPY_OCO4S5_UP_S2);
CADJPY_OCO4S5_UP_S2 = 0;
break;
}
int CADJPY_OCO4S6_UP_S2 = 0;
for (; CADJPY_OCO4S6_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets6.Count; CADJPY_OCO4S6_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets6[CADJPY_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_UP_S2_OCO4Sets6[CADJPY_OCO4S6_UP_S2].Filled();
Base.CADJPY_UP_S2_OCO4Sets6.RemoveAt(CADJPY_OCO4S6_UP_S2);
CADJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct CADJPY_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public CADJPY_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
if (OrderID.Tag.StartsWith("CADJPY OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("CADJPY OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CADJPY S2");
}
}
if (Base.CADJPY_OCO1_EO1_DOWN_S2)
Base.CADJPY_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO1_EO2_DOWN_S2)
Base.CADJPY_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO1_EO3_DOWN_S2)
Base.CADJPY_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO1_EO4_DOWN_S2)
Base.CADJPY_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO1_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP1_CADJPY_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP1,"TP1_CADJPY_DOWN_S2_OCO1"));
};
Base.CADJPY_DOWN_S2_OCO1Sets1.Add( Base.CADJPY_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO2_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP2_CADJPY_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP2,"TP2_CADJPY_DOWN_S2_OCO1"));
};
Base.CADJPY_DOWN_S2_OCO1Sets2.Add( Base.CADJPY_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO3_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP3_CADJPY_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP3,"TP3_CADJPY_DOWN_S2_OCO1"));
};
Base.CADJPY_DOWN_S2_OCO1Sets3.Add( Base.CADJPY_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO1_EO4_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP4_CADJPY_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP4,"TP4_CADJPY_DOWN_S2_OCO1"));
};
Base.CADJPY_DOWN_S2_OCO1Sets4.Add( Base.CADJPY_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO1_EO4_DOWN_S2_ID = -1;
}
int CADJPY_OCO1S1_DOWN_S2 = 0;
for (; CADJPY_OCO1S1_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets1.Count; CADJPY_OCO1S1_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets1[CADJPY_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO1Sets1[CADJPY_OCO1S1_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO1Sets1.RemoveAt(CADJPY_OCO1S1_DOWN_S2);
CADJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int CADJPY_OCO1S2_DOWN_S2 = 0;
for (; CADJPY_OCO1S2_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets2.Count; CADJPY_OCO1S2_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets2[CADJPY_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO1Sets2[CADJPY_OCO1S2_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO1Sets2.RemoveAt(CADJPY_OCO1S2_DOWN_S2);
CADJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int CADJPY_OCO1S3_DOWN_S2 = 0;
for (; CADJPY_OCO1S3_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets3.Count; CADJPY_OCO1S3_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets3[CADJPY_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO1Sets3[CADJPY_OCO1S3_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO1Sets3.RemoveAt(CADJPY_OCO1S3_DOWN_S2);
CADJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int CADJPY_OCO1S4_DOWN_S2 = 0;
for (; CADJPY_OCO1S4_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets4.Count; CADJPY_OCO1S4_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets4[CADJPY_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO1Sets4[CADJPY_OCO1S4_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO1Sets4.RemoveAt(CADJPY_OCO1S4_DOWN_S2);
CADJPY_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO2_EO1_DOWN_S2)
Base.CADJPY_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO2_EO2_DOWN_S2)
Base.CADJPY_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO2_EO3_DOWN_S2)
Base.CADJPY_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO2_EO4_DOWN_S2)
Base.CADJPY_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO1_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP1_CADJPY_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP1,"TP1_CADJPY_DOWN_S2_OCO2"));
};
Base.CADJPY_DOWN_S2_OCO2Sets1.Add( Base.CADJPY_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO2_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP2_CADJPY_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP2,"TP2_CADJPY_DOWN_S2_OCO2"));
};
Base.CADJPY_DOWN_S2_OCO2Sets2.Add( Base.CADJPY_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO3_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP3_CADJPY_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP3,"TP3_CADJPY_DOWN_S2_OCO2"));
};
Base.CADJPY_DOWN_S2_OCO2Sets3.Add( Base.CADJPY_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO2_EO4_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP4_CADJPY_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP4,"TP4_CADJPY_DOWN_S2_OCO2"));
};
Base.CADJPY_DOWN_S2_OCO2Sets4.Add( Base.CADJPY_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO2_EO4_DOWN_S2_ID = -1;
}
int CADJPY_OCO2S1_DOWN_S2 = 0;
for (; CADJPY_OCO2S1_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets1.Count; CADJPY_OCO2S1_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets1[CADJPY_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO2Sets1[CADJPY_OCO2S1_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO2Sets1.RemoveAt(CADJPY_OCO2S1_DOWN_S2);
CADJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int CADJPY_OCO2S2_DOWN_S2 = 0;
for (; CADJPY_OCO2S2_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets2.Count; CADJPY_OCO2S2_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets2[CADJPY_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO2Sets2[CADJPY_OCO2S2_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO2Sets2.RemoveAt(CADJPY_OCO2S2_DOWN_S2);
CADJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int CADJPY_OCO2S3_DOWN_S2 = 0;
for (; CADJPY_OCO2S3_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets3.Count; CADJPY_OCO2S3_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets3[CADJPY_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO2Sets3[CADJPY_OCO2S3_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO2Sets3.RemoveAt(CADJPY_OCO2S3_DOWN_S2);
CADJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int CADJPY_OCO2S4_DOWN_S2 = 0;
for (; CADJPY_OCO2S4_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets4.Count; CADJPY_OCO2S4_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets4[CADJPY_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO2Sets4[CADJPY_OCO2S4_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO2Sets4.RemoveAt(CADJPY_OCO2S4_DOWN_S2);
CADJPY_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO3_EO1_DOWN_S2)
Base.CADJPY_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO3_EO2_DOWN_S2)
Base.CADJPY_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO3_EO3_DOWN_S2)
Base.CADJPY_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO3_EO4_DOWN_S2)
Base.CADJPY_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO1_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP1_CADJPY_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP1,"TP1_CADJPY_DOWN_S2_OCO3"));
};
Base.CADJPY_DOWN_S2_OCO3Sets1.Add( Base.CADJPY_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO2_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP2_CADJPY_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP2,"TP2_CADJPY_DOWN_S2_OCO3"));
};
Base.CADJPY_DOWN_S2_OCO3Sets2.Add( Base.CADJPY_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO3_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP3_CADJPY_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP3,"TP3_CADJPY_DOWN_S2_OCO3"));
};
Base.CADJPY_DOWN_S2_OCO3Sets3.Add( Base.CADJPY_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO3_EO4_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP4_CADJPY_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP4,"TP4_CADJPY_DOWN_S2_OCO3"));
};
Base.CADJPY_DOWN_S2_OCO3Sets4.Add( Base.CADJPY_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO3_EO4_DOWN_S2_ID = -1;
}
int CADJPY_OCO3S1_DOWN_S2 = 0;
for (; CADJPY_OCO3S1_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets1.Count; CADJPY_OCO3S1_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets1[CADJPY_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO3Sets1[CADJPY_OCO3S1_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO3Sets1.RemoveAt(CADJPY_OCO3S1_DOWN_S2);
CADJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int CADJPY_OCO3S2_DOWN_S2 = 0;
for (; CADJPY_OCO3S2_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets2.Count; CADJPY_OCO3S2_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets2[CADJPY_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO3Sets2[CADJPY_OCO3S2_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO3Sets2.RemoveAt(CADJPY_OCO3S2_DOWN_S2);
CADJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int CADJPY_OCO3S3_DOWN_S2 = 0;
for (; CADJPY_OCO3S3_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets3.Count; CADJPY_OCO3S3_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets3[CADJPY_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO3Sets3[CADJPY_OCO3S3_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO3Sets3.RemoveAt(CADJPY_OCO3S3_DOWN_S2);
CADJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int CADJPY_OCO3S4_DOWN_S2 = 0;
for (; CADJPY_OCO3S4_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets4.Count; CADJPY_OCO3S4_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets4[CADJPY_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO3Sets4[CADJPY_OCO3S4_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO3Sets4.RemoveAt(CADJPY_OCO3S4_DOWN_S2);
CADJPY_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO4_EO1_DOWN_S2)
Base.CADJPY_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO4_EO2_DOWN_S2)
Base.CADJPY_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO4_EO3_DOWN_S2)
Base.CADJPY_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CADJPY_OCO4_EO4_DOWN_S2)
Base.CADJPY_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO1_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP1_CADJPY_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP1,"TP1_CADJPY_DOWN_S2_OCO4"));
};
Base.CADJPY_DOWN_S2_OCO4Sets1.Add( Base.CADJPY_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO2_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP2_CADJPY_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP2,"TP2_CADJPY_DOWN_S2_OCO4"));
};
Base.CADJPY_DOWN_S2_OCO4Sets2.Add( Base.CADJPY_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO3_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP3_CADJPY_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP3,"TP3_CADJPY_DOWN_S2_OCO4"));
};
Base.CADJPY_DOWN_S2_OCO4Sets3.Add( Base.CADJPY_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CADJPY_OCO4_EO4_DOWN_S2_ID)
{
Base.CADJPY_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CADJPY_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CADJPY_DOWN_S2_SL,"SL_TP4_CADJPY_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CADJPY_DOWN_S2_TP4,"TP4_CADJPY_DOWN_S2_OCO4"));
};
Base.CADJPY_DOWN_S2_OCO4Sets4.Add( Base.CADJPY_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CADJPY_OCO4_EO4_DOWN_S2_ID = -1;
}
int CADJPY_OCO4S1_DOWN_S2 = 0;
for (; CADJPY_OCO4S1_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets1.Count; CADJPY_OCO4S1_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets1[CADJPY_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO4Sets1[CADJPY_OCO4S1_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO4Sets1.RemoveAt(CADJPY_OCO4S1_DOWN_S2);
CADJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int CADJPY_OCO4S2_DOWN_S2 = 0;
for (; CADJPY_OCO4S2_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets2.Count; CADJPY_OCO4S2_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets2[CADJPY_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO4Sets2[CADJPY_OCO4S2_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO4Sets2.RemoveAt(CADJPY_OCO4S2_DOWN_S2);
CADJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int CADJPY_OCO4S3_DOWN_S2 = 0;
for (; CADJPY_OCO4S3_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets3.Count; CADJPY_OCO4S3_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets3[CADJPY_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO4Sets3[CADJPY_OCO4S3_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO4Sets3.RemoveAt(CADJPY_OCO4S3_DOWN_S2);
CADJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int CADJPY_OCO4S4_DOWN_S2 = 0;
for (; CADJPY_OCO4S4_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets4.Count; CADJPY_OCO4S4_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets4[CADJPY_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CADJPY_DOWN_S2_OCO4Sets4[CADJPY_OCO4S4_DOWN_S2].Filled();
Base.CADJPY_DOWN_S2_OCO4Sets4.RemoveAt(CADJPY_OCO4S4_DOWN_S2);
CADJPY_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _AUDJPY;
///oco1 up
public static OrderTicket AUDJPY_OCO1_MO1_UP_S2;
public static OrderTicket AUDJPY_OCO1_MO2_UP_S2;
public static OrderTicket AUDJPY_OCO1_MO3_UP_S2;
public static OrderTicket AUDJPY_OCO1_MO4_UP_S2;
public static OrderTicket AUDJPY_OCO1_MO5_UP_S2;
public static OrderTicket AUDJPY_OCO1_MO6_UP_S2;
public static int AUDJPY_OCO1_EO1_UP_S2_ID ;
public static int AUDJPY_OCO1_EO2_UP_S2_ID ;
public static int AUDJPY_OCO1_EO3_UP_S2_ID ;
public static int AUDJPY_OCO1_EO4_UP_S2_ID ;
public static int AUDJPY_OCO1_EO5_UP_S2_ID ;
public static int AUDJPY_OCO1_EO6_UP_S2_ID ;
public static bool AUDJPY_OCO1_EO1_UP_S2 ;
public static bool AUDJPY_OCO1_EO2_UP_S2 ;
public static bool AUDJPY_OCO1_EO3_UP_S2 ;
public static bool AUDJPY_OCO1_EO4_UP_S2 ;
public static bool AUDJPY_OCO1_EO5_UP_S2 ;
public static bool AUDJPY_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_UP_S2> AUDJPY_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_UP_S2> AUDJPY_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_UP_S2> AUDJPY_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_UP_S2> AUDJPY_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_UP_S2> AUDJPY_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_UP_S2> AUDJPY_OOFE_OCO1_UP_S2_6 ;
public static AUDJPY_OCO1_UP_S2 AUDJPY_PFO_OCO1_UP_S2_1 ;
public static AUDJPY_OCO1_UP_S2 AUDJPY_PFO_OCO1_UP_S2_2 ;
public static AUDJPY_OCO1_UP_S2 AUDJPY_PFO_OCO1_UP_S2_3 ;
public static AUDJPY_OCO1_UP_S2 AUDJPY_PFO_OCO1_UP_S2_4 ;
public static AUDJPY_OCO1_UP_S2 AUDJPY_PFO_OCO1_UP_S2_5 ;
public static AUDJPY_OCO1_UP_S2 AUDJPY_PFO_OCO1_UP_S2_6 ;
public static List<AUDJPY_OCO1_UP_S2> AUDJPY_UP_S2_OCO1Sets1 = new List<AUDJPY_OCO1_UP_S2>();
public static List<AUDJPY_OCO1_UP_S2> AUDJPY_UP_S2_OCO1Sets2 = new List<AUDJPY_OCO1_UP_S2>();
public static List<AUDJPY_OCO1_UP_S2> AUDJPY_UP_S2_OCO1Sets3 = new List<AUDJPY_OCO1_UP_S2>();
public static List<AUDJPY_OCO1_UP_S2> AUDJPY_UP_S2_OCO1Sets4 = new List<AUDJPY_OCO1_UP_S2>();
public static List<AUDJPY_OCO1_UP_S2> AUDJPY_UP_S2_OCO1Sets5 = new List<AUDJPY_OCO1_UP_S2>();
public static List<AUDJPY_OCO1_UP_S2> AUDJPY_UP_S2_OCO1Sets6 = new List<AUDJPY_OCO1_UP_S2>();
public static bool AUDJPY_OCO1_UP_S2_IsReady = true;
public static bool AUDJPY_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket AUDJPY_OCO1_MO1_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO1_MO2_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO1_MO3_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO1_MO4_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO1_MO5_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO1_MO6_DOWN_S2 ;
public static int AUDJPY_OCO1_EO1_DOWN_S2_ID ;
public static int AUDJPY_OCO1_EO2_DOWN_S2_ID ;
public static int AUDJPY_OCO1_EO3_DOWN_S2_ID ;
public static int AUDJPY_OCO1_EO4_DOWN_S2_ID ;
public static int AUDJPY_OCO1_EO5_DOWN_S2_ID ;
public static int AUDJPY_OCO1_EO6_DOWN_S2_ID ;
public static bool AUDJPY_OCO1_EO1_DOWN_S2 ;
public static bool AUDJPY_OCO1_EO2_DOWN_S2 ;
public static bool AUDJPY_OCO1_EO3_DOWN_S2 ;
public static bool AUDJPY_OCO1_EO4_DOWN_S2 ;
public static bool AUDJPY_OCO1_EO5_DOWN_S2 ;
public static bool AUDJPY_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_DOWN_S2> AUDJPY_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_DOWN_S2> AUDJPY_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_DOWN_S2> AUDJPY_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_DOWN_S2> AUDJPY_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_DOWN_S2> AUDJPY_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO1_DOWN_S2> AUDJPY_OOFE_OCO1_DOWN_S2_6 ;
public static AUDJPY_OCO1_DOWN_S2 AUDJPY_PFO_OCO1_DOWN_S2_1 ;
public static AUDJPY_OCO1_DOWN_S2 AUDJPY_PFO_OCO1_DOWN_S2_2 ;
public static AUDJPY_OCO1_DOWN_S2 AUDJPY_PFO_OCO1_DOWN_S2_3 ;
public static AUDJPY_OCO1_DOWN_S2 AUDJPY_PFO_OCO1_DOWN_S2_4 ;
public static AUDJPY_OCO1_DOWN_S2 AUDJPY_PFO_OCO1_DOWN_S2_5 ;
public static AUDJPY_OCO1_DOWN_S2 AUDJPY_PFO_OCO1_DOWN_S2_6 ;
public static List<AUDJPY_OCO1_DOWN_S2> AUDJPY_DOWN_S2_OCO1Sets1 = new List<AUDJPY_OCO1_DOWN_S2>();
public static List<AUDJPY_OCO1_DOWN_S2> AUDJPY_DOWN_S2_OCO1Sets2 = new List<AUDJPY_OCO1_DOWN_S2>();
public static List<AUDJPY_OCO1_DOWN_S2> AUDJPY_DOWN_S2_OCO1Sets3 = new List<AUDJPY_OCO1_DOWN_S2>();
public static List<AUDJPY_OCO1_DOWN_S2> AUDJPY_DOWN_S2_OCO1Sets4 = new List<AUDJPY_OCO1_DOWN_S2>();
public static List<AUDJPY_OCO1_DOWN_S2> AUDJPY_DOWN_S2_OCO1Sets5 = new List<AUDJPY_OCO1_DOWN_S2>();
public static List<AUDJPY_OCO1_DOWN_S2> AUDJPY_DOWN_S2_OCO1Sets6 = new List<AUDJPY_OCO1_DOWN_S2>();
public static bool AUDJPY_OCO1_DOWN_S2_IsReady = true;
public static bool AUDJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket AUDJPY_OCO2_MO1_UP_S2 ;
public static OrderTicket AUDJPY_OCO2_MO2_UP_S2 ;
public static OrderTicket AUDJPY_OCO2_MO3_UP_S2 ;
public static OrderTicket AUDJPY_OCO2_MO4_UP_S2 ;
public static OrderTicket AUDJPY_OCO2_MO5_UP_S2 ;
public static OrderTicket AUDJPY_OCO2_MO6_UP_S2 ;
public static int AUDJPY_OCO2_EO1_UP_S2_ID ;
public static int AUDJPY_OCO2_EO2_UP_S2_ID ;
public static int AUDJPY_OCO2_EO3_UP_S2_ID ;
public static int AUDJPY_OCO2_EO4_UP_S2_ID ;
public static int AUDJPY_OCO2_EO5_UP_S2_ID ;
public static int AUDJPY_OCO2_EO6_UP_S2_ID ;
public static bool AUDJPY_OCO2_EO1_UP_S2 ;
public static bool AUDJPY_OCO2_EO2_UP_S2 ;
public static bool AUDJPY_OCO2_EO3_UP_S2 ;
public static bool AUDJPY_OCO2_EO4_UP_S2 ;
public static bool AUDJPY_OCO2_EO5_UP_S2 ;
public static bool AUDJPY_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_UP_S2> AUDJPY_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_UP_S2> AUDJPY_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_UP_S2> AUDJPY_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_UP_S2> AUDJPY_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_UP_S2> AUDJPY_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_UP_S2> AUDJPY_OOFE_OCO2_UP_S2_6 ;
public static AUDJPY_OCO2_UP_S2 AUDJPY_PFO_OCO2_UP_S2_1 ;
public static AUDJPY_OCO2_UP_S2 AUDJPY_PFO_OCO2_UP_S2_2 ;
public static AUDJPY_OCO2_UP_S2 AUDJPY_PFO_OCO2_UP_S2_3 ;
public static AUDJPY_OCO2_UP_S2 AUDJPY_PFO_OCO2_UP_S2_4 ;
public static AUDJPY_OCO2_UP_S2 AUDJPY_PFO_OCO2_UP_S2_5 ;
public static AUDJPY_OCO2_UP_S2 AUDJPY_PFO_OCO2_UP_S2_6 ;
public static List<AUDJPY_OCO2_UP_S2> AUDJPY_UP_S2_OCO2Sets1 = new List<AUDJPY_OCO2_UP_S2>();
public static List<AUDJPY_OCO2_UP_S2> AUDJPY_UP_S2_OCO2Sets2 = new List<AUDJPY_OCO2_UP_S2>();
public static List<AUDJPY_OCO2_UP_S2> AUDJPY_UP_S2_OCO2Sets3 = new List<AUDJPY_OCO2_UP_S2>();
public static List<AUDJPY_OCO2_UP_S2> AUDJPY_UP_S2_OCO2Sets4 = new List<AUDJPY_OCO2_UP_S2>();
public static List<AUDJPY_OCO2_UP_S2> AUDJPY_UP_S2_OCO2Sets5 = new List<AUDJPY_OCO2_UP_S2>();
public static List<AUDJPY_OCO2_UP_S2> AUDJPY_UP_S2_OCO2Sets6 = new List<AUDJPY_OCO2_UP_S2>();
public static bool AUDJPY_OCO2_UP_S2_IsReady = true;
public static bool AUDJPY_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket AUDJPY_OCO2_MO1_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO2_MO2_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO2_MO3_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO2_MO4_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO2_MO5_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO2_MO6_DOWN_S2 ;
public static int AUDJPY_OCO2_EO1_DOWN_S2_ID ;
public static int AUDJPY_OCO2_EO2_DOWN_S2_ID ;
public static int AUDJPY_OCO2_EO3_DOWN_S2_ID ;
public static int AUDJPY_OCO2_EO4_DOWN_S2_ID ;
public static int AUDJPY_OCO2_EO5_DOWN_S2_ID ;
public static int AUDJPY_OCO2_EO6_DOWN_S2_ID ;
public static bool AUDJPY_OCO2_EO1_DOWN_S2 ;
public static bool AUDJPY_OCO2_EO2_DOWN_S2 ;
public static bool AUDJPY_OCO2_EO3_DOWN_S2 ;
public static bool AUDJPY_OCO2_EO4_DOWN_S2 ;
public static bool AUDJPY_OCO2_EO5_DOWN_S2 ;
public static bool AUDJPY_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_DOWN_S2> AUDJPY_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_DOWN_S2> AUDJPY_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_DOWN_S2> AUDJPY_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_DOWN_S2> AUDJPY_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_DOWN_S2> AUDJPY_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO2_DOWN_S2> AUDJPY_OOFE_OCO2_DOWN_S2_6 ;
public static AUDJPY_OCO2_DOWN_S2 AUDJPY_PFO_OCO2_DOWN_S2_1 ;
public static AUDJPY_OCO2_DOWN_S2 AUDJPY_PFO_OCO2_DOWN_S2_2 ;
public static AUDJPY_OCO2_DOWN_S2 AUDJPY_PFO_OCO2_DOWN_S2_3 ;
public static AUDJPY_OCO2_DOWN_S2 AUDJPY_PFO_OCO2_DOWN_S2_4 ;
public static AUDJPY_OCO2_DOWN_S2 AUDJPY_PFO_OCO2_DOWN_S2_5 ;
public static AUDJPY_OCO2_DOWN_S2 AUDJPY_PFO_OCO2_DOWN_S2_6 ;
public static List<AUDJPY_OCO2_DOWN_S2> AUDJPY_DOWN_S2_OCO2Sets1 = new List<AUDJPY_OCO2_DOWN_S2>();
public static List<AUDJPY_OCO2_DOWN_S2> AUDJPY_DOWN_S2_OCO2Sets2 = new List<AUDJPY_OCO2_DOWN_S2>();
public static List<AUDJPY_OCO2_DOWN_S2> AUDJPY_DOWN_S2_OCO2Sets3 = new List<AUDJPY_OCO2_DOWN_S2>();
public static List<AUDJPY_OCO2_DOWN_S2> AUDJPY_DOWN_S2_OCO2Sets4 = new List<AUDJPY_OCO2_DOWN_S2>();
public static List<AUDJPY_OCO2_DOWN_S2> AUDJPY_DOWN_S2_OCO2Sets5 = new List<AUDJPY_OCO2_DOWN_S2>();
public static List<AUDJPY_OCO2_DOWN_S2> AUDJPY_DOWN_S2_OCO2Sets6 = new List<AUDJPY_OCO2_DOWN_S2>();
public static bool AUDJPY_OCO2_DOWN_S2_IsReady = true;
public static bool AUDJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket AUDJPY_OCO3_MO1_UP_S2 ;
public static OrderTicket AUDJPY_OCO3_MO2_UP_S2 ;
public static OrderTicket AUDJPY_OCO3_MO3_UP_S2 ;
public static OrderTicket AUDJPY_OCO3_MO4_UP_S2 ;
public static OrderTicket AUDJPY_OCO3_MO5_UP_S2 ;
public static OrderTicket AUDJPY_OCO3_MO6_UP_S2 ;
public static int AUDJPY_OCO3_EO1_UP_S2_ID ;
public static int AUDJPY_OCO3_EO2_UP_S2_ID ;
public static int AUDJPY_OCO3_EO3_UP_S2_ID ;
public static int AUDJPY_OCO3_EO4_UP_S2_ID ;
public static int AUDJPY_OCO3_EO5_UP_S2_ID ;
public static int AUDJPY_OCO3_EO6_UP_S2_ID ;
public static bool AUDJPY_OCO3_EO1_UP_S2 ;
public static bool AUDJPY_OCO3_EO2_UP_S2 ;
public static bool AUDJPY_OCO3_EO3_UP_S2 ;
public static bool AUDJPY_OCO3_EO4_UP_S2 ;
public static bool AUDJPY_OCO3_EO5_UP_S2 ;
public static bool AUDJPY_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_UP_S2> AUDJPY_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_UP_S2> AUDJPY_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_UP_S2> AUDJPY_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_UP_S2> AUDJPY_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_UP_S2> AUDJPY_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_UP_S2> AUDJPY_OOFE_OCO3_UP_S2_6 ;
public static AUDJPY_OCO3_UP_S2 AUDJPY_PFO_OCO3_UP_S2_1 ;
public static AUDJPY_OCO3_UP_S2 AUDJPY_PFO_OCO3_UP_S2_2 ;
public static AUDJPY_OCO3_UP_S2 AUDJPY_PFO_OCO3_UP_S2_3 ;
public static AUDJPY_OCO3_UP_S2 AUDJPY_PFO_OCO3_UP_S2_4 ;
public static AUDJPY_OCO3_UP_S2 AUDJPY_PFO_OCO3_UP_S2_5 ;
public static AUDJPY_OCO3_UP_S2 AUDJPY_PFO_OCO3_UP_S2_6 ;
public static List<AUDJPY_OCO3_UP_S2> AUDJPY_UP_S2_OCO3Sets1 = new List<AUDJPY_OCO3_UP_S2>();
public static List<AUDJPY_OCO3_UP_S2> AUDJPY_UP_S2_OCO3Sets2 = new List<AUDJPY_OCO3_UP_S2>();
public static List<AUDJPY_OCO3_UP_S2> AUDJPY_UP_S2_OCO3Sets3 = new List<AUDJPY_OCO3_UP_S2>();
public static List<AUDJPY_OCO3_UP_S2> AUDJPY_UP_S2_OCO3Sets4 = new List<AUDJPY_OCO3_UP_S2>();
public static List<AUDJPY_OCO3_UP_S2> AUDJPY_UP_S2_OCO3Sets5 = new List<AUDJPY_OCO3_UP_S2>();
public static List<AUDJPY_OCO3_UP_S2> AUDJPY_UP_S2_OCO3Sets6 = new List<AUDJPY_OCO3_UP_S2>();
public static bool AUDJPY_OCO3_UP_S2_IsReady = true;
public static bool AUDJPY_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket AUDJPY_OCO3_MO1_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO3_MO2_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO3_MO3_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO3_MO4_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO3_MO5_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO3_MO6_DOWN_S2 ;
public static int AUDJPY_OCO3_EO1_DOWN_S2_ID ;
public static int AUDJPY_OCO3_EO2_DOWN_S2_ID ;
public static int AUDJPY_OCO3_EO3_DOWN_S2_ID ;
public static int AUDJPY_OCO3_EO4_DOWN_S2_ID ;
public static int AUDJPY_OCO3_EO5_DOWN_S2_ID ;
public static int AUDJPY_OCO3_EO6_DOWN_S2_ID ;
public static bool AUDJPY_OCO3_EO1_DOWN_S2 ;
public static bool AUDJPY_OCO3_EO2_DOWN_S2 ;
public static bool AUDJPY_OCO3_EO3_DOWN_S2 ;
public static bool AUDJPY_OCO3_EO4_DOWN_S2 ;
public static bool AUDJPY_OCO3_EO5_DOWN_S2 ;
public static bool AUDJPY_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_DOWN_S2> AUDJPY_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_DOWN_S2> AUDJPY_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_DOWN_S2> AUDJPY_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_DOWN_S2> AUDJPY_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_DOWN_S2> AUDJPY_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO3_DOWN_S2> AUDJPY_OOFE_OCO3_DOWN_S2_6 ;
public static AUDJPY_OCO3_DOWN_S2 AUDJPY_PFO_OCO3_DOWN_S2_1 ;
public static AUDJPY_OCO3_DOWN_S2 AUDJPY_PFO_OCO3_DOWN_S2_2 ;
public static AUDJPY_OCO3_DOWN_S2 AUDJPY_PFO_OCO3_DOWN_S2_3 ;
public static AUDJPY_OCO3_DOWN_S2 AUDJPY_PFO_OCO3_DOWN_S2_4 ;
public static AUDJPY_OCO3_DOWN_S2 AUDJPY_PFO_OCO3_DOWN_S2_5 ;
public static AUDJPY_OCO3_DOWN_S2 AUDJPY_PFO_OCO3_DOWN_S2_6 ;
public static List<AUDJPY_OCO3_DOWN_S2> AUDJPY_DOWN_S2_OCO3Sets1 = new List<AUDJPY_OCO3_DOWN_S2>();
public static List<AUDJPY_OCO3_DOWN_S2> AUDJPY_DOWN_S2_OCO3Sets2 = new List<AUDJPY_OCO3_DOWN_S2>();
public static List<AUDJPY_OCO3_DOWN_S2> AUDJPY_DOWN_S2_OCO3Sets3 = new List<AUDJPY_OCO3_DOWN_S2>();
public static List<AUDJPY_OCO3_DOWN_S2> AUDJPY_DOWN_S2_OCO3Sets4 = new List<AUDJPY_OCO3_DOWN_S2>();
public static List<AUDJPY_OCO3_DOWN_S2> AUDJPY_DOWN_S2_OCO3Sets5 = new List<AUDJPY_OCO3_DOWN_S2>();
public static List<AUDJPY_OCO3_DOWN_S2> AUDJPY_DOWN_S2_OCO3Sets6 = new List<AUDJPY_OCO3_DOWN_S2>();
public static bool AUDJPY_OCO3_DOWN_S2_IsReady = true;
public static bool AUDJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket AUDJPY_OCO4_MO1_UP_S2 ;
public static OrderTicket AUDJPY_OCO4_MO2_UP_S2 ;
public static OrderTicket AUDJPY_OCO4_MO3_UP_S2 ;
public static OrderTicket AUDJPY_OCO4_MO4_UP_S2 ;
public static OrderTicket AUDJPY_OCO4_MO5_UP_S2 ;
public static OrderTicket AUDJPY_OCO4_MO6_UP_S2 ;
public static int AUDJPY_OCO4_EO1_UP_S2_ID ;
public static int AUDJPY_OCO4_EO2_UP_S2_ID ;
public static int AUDJPY_OCO4_EO3_UP_S2_ID ;
public static int AUDJPY_OCO4_EO4_UP_S2_ID ;
public static int AUDJPY_OCO4_EO5_UP_S2_ID ;
public static int AUDJPY_OCO4_EO6_UP_S2_ID ;
public static bool AUDJPY_OCO4_EO1_UP_S2 ;
public static bool AUDJPY_OCO4_EO2_UP_S2 ;
public static bool AUDJPY_OCO4_EO3_UP_S2 ;
public static bool AUDJPY_OCO4_EO4_UP_S2 ;
public static bool AUDJPY_OCO4_EO5_UP_S2 ;
public static bool AUDJPY_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_UP_S2> AUDJPY_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_UP_S2> AUDJPY_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_UP_S2> AUDJPY_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_UP_S2> AUDJPY_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_UP_S2> AUDJPY_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_UP_S2> AUDJPY_OOFE_OCO4_UP_S2_6 ;
public static AUDJPY_OCO4_UP_S2 AUDJPY_PFO_OCO4_UP_S2_1 ;
public static AUDJPY_OCO4_UP_S2 AUDJPY_PFO_OCO4_UP_S2_2 ;
public static AUDJPY_OCO4_UP_S2 AUDJPY_PFO_OCO4_UP_S2_3 ;
public static AUDJPY_OCO4_UP_S2 AUDJPY_PFO_OCO4_UP_S2_4 ;
public static AUDJPY_OCO4_UP_S2 AUDJPY_PFO_OCO4_UP_S2_5 ;
public static AUDJPY_OCO4_UP_S2 AUDJPY_PFO_OCO4_UP_S2_6 ;
public static List<AUDJPY_OCO4_UP_S2> AUDJPY_UP_S2_OCO4Sets1 = new List<AUDJPY_OCO4_UP_S2>();
public static List<AUDJPY_OCO4_UP_S2> AUDJPY_UP_S2_OCO4Sets2 = new List<AUDJPY_OCO4_UP_S2>();
public static List<AUDJPY_OCO4_UP_S2> AUDJPY_UP_S2_OCO4Sets3 = new List<AUDJPY_OCO4_UP_S2>();
public static List<AUDJPY_OCO4_UP_S2> AUDJPY_UP_S2_OCO4Sets4 = new List<AUDJPY_OCO4_UP_S2>();
public static List<AUDJPY_OCO4_UP_S2> AUDJPY_UP_S2_OCO4Sets5 = new List<AUDJPY_OCO4_UP_S2>();
public static List<AUDJPY_OCO4_UP_S2> AUDJPY_UP_S2_OCO4Sets6 = new List<AUDJPY_OCO4_UP_S2>();
public static bool AUDJPY_OCO4_UP_S2_IsReady = true;
public static bool AUDJPY_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket AUDJPY_OCO4_MO1_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO4_MO2_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO4_MO3_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO4_MO4_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO4_MO5_DOWN_S2 ;
public static OrderTicket AUDJPY_OCO4_MO6_DOWN_S2 ;
public static int AUDJPY_OCO4_EO1_DOWN_S2_ID ;
public static int AUDJPY_OCO4_EO2_DOWN_S2_ID ;
public static int AUDJPY_OCO4_EO3_DOWN_S2_ID ;
public static int AUDJPY_OCO4_EO4_DOWN_S2_ID ;
public static int AUDJPY_OCO4_EO5_DOWN_S2_ID ;
public static int AUDJPY_OCO4_EO6_DOWN_S2_ID ;
public static bool AUDJPY_OCO4_EO1_DOWN_S2 ;
public static bool AUDJPY_OCO4_EO2_DOWN_S2 ;
public static bool AUDJPY_OCO4_EO3_DOWN_S2 ;
public static bool AUDJPY_OCO4_EO4_DOWN_S2 ;
public static bool AUDJPY_OCO4_EO5_DOWN_S2 ;
public static bool AUDJPY_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_DOWN_S2> AUDJPY_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_DOWN_S2> AUDJPY_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_DOWN_S2> AUDJPY_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_DOWN_S2> AUDJPY_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_DOWN_S2> AUDJPY_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDJPY_OCO4_DOWN_S2> AUDJPY_OOFE_OCO4_DOWN_S2_6 ;
public static AUDJPY_OCO4_DOWN_S2 AUDJPY_PFO_OCO4_DOWN_S2_1 ;
public static AUDJPY_OCO4_DOWN_S2 AUDJPY_PFO_OCO4_DOWN_S2_2 ;
public static AUDJPY_OCO4_DOWN_S2 AUDJPY_PFO_OCO4_DOWN_S2_3 ;
public static AUDJPY_OCO4_DOWN_S2 AUDJPY_PFO_OCO4_DOWN_S2_4 ;
public static AUDJPY_OCO4_DOWN_S2 AUDJPY_PFO_OCO4_DOWN_S2_5 ;
public static AUDJPY_OCO4_DOWN_S2 AUDJPY_PFO_OCO4_DOWN_S2_6 ;
public static List<AUDJPY_OCO4_DOWN_S2> AUDJPY_DOWN_S2_OCO4Sets1 = new List<AUDJPY_OCO4_DOWN_S2>();
public static List<AUDJPY_OCO4_DOWN_S2> AUDJPY_DOWN_S2_OCO4Sets2 = new List<AUDJPY_OCO4_DOWN_S2>();
public static List<AUDJPY_OCO4_DOWN_S2> AUDJPY_DOWN_S2_OCO4Sets3 = new List<AUDJPY_OCO4_DOWN_S2>();
public static List<AUDJPY_OCO4_DOWN_S2> AUDJPY_DOWN_S2_OCO4Sets4 = new List<AUDJPY_OCO4_DOWN_S2>();
public static List<AUDJPY_OCO4_DOWN_S2> AUDJPY_DOWN_S2_OCO4Sets5 = new List<AUDJPY_OCO4_DOWN_S2>();
public static List<AUDJPY_OCO4_DOWN_S2> AUDJPY_DOWN_S2_OCO4Sets6 = new List<AUDJPY_OCO4_DOWN_S2>();
public static bool AUDJPY_OCO4_DOWN_S2_IsReady = true;
public static bool AUDJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal AUDJPY_UP_S2_SL {get; set;}
public static decimal AUDJPY_UP_S2_TP1 {get; set;}
public static decimal AUDJPY_UP_S2_TP2 {get; set;}
public static decimal AUDJPY_UP_S2_TP3 {get; set;}
public static decimal AUDJPY_UP_S2_TP4 {get; set;}
public static decimal AUDJPY_UP_S2_TP5 {get; set;}
public static decimal AUDJPY_UP_S2_TP6 {get; set;}
public static decimal AUDJPY_DOWN_S2_SL {get; set;}
public static decimal AUDJPY_DOWN_S2_TP1 {get; set;}
public static decimal AUDJPY_DOWN_S2_TP2 {get; set;}
public static decimal AUDJPY_DOWN_S2_TP3 {get; set;}
public static decimal AUDJPY_DOWN_S2_TP4 {get; set;}
public static decimal AUDJPY_DOWN_S2_TP5 {get; set;}
public static decimal AUDJPY_DOWN_S2_TP6 {get; set;}
public static bool AUDJPY_Signal_Condition_UP_1 ;
public static bool AUDJPY_Signal_Condition_UP_2 ;
public static bool AUDJPY_Signal_Condition_UP_3 ;
public static bool AUDJPY_Signal_Condition_DOWN_S2 ;
public static int AUDJPY_UP_S2_OCO_DELAY_7DAY = 10080;
public static int AUDJPY_UP_S2_OCOM_DELAY_DAY = 4320;
public static int AUDJPY_UP_S2_OCOT_DELAY_DAY = 2880;
public static int AUDJPY_UP_S2_OCOW_DELAY_DAY = 1440;
public static int AUDJPY_UP_S2_OCOTH_DELAY_DAY = 720;
public static int AUDJPY_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int AUDJPY_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int AUDJPY_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int AUDJPY_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int AUDJPY_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_AUDJPY_UP_S2 ;
public static bool DOWM_AUDJPY_UP_S2 ;
public static bool DOWT_AUDJPY_UP_S2 ;
public static bool DOWW_AUDJPY_UP_S2 ;
public static bool DOWTH_AUDJPY_UP_S2 ;
public static bool DOWR_AUDJPY_DOWN_S2 ;
public static bool DOWM_AUDJPY_DOWN_S2 ;
public static bool DOWT_AUDJPY_DOWN_S2 ;
public static bool DOWW_AUDJPY_DOWN_S2 ;
public static bool DOWTH_AUDJPY_DOWN_S2 ;
public static int AUDJPY_quantity_UP_S2 ;
public static int AUDJPY_quantity_SL_UP_S2 ;
public static int AUDJPY_quantity_TP1_UP_S2 ;
public static int AUDJPY_quantity_TP2_UP_S2 ;
public static int AUDJPY_quantity_TP3_UP_S2 ;
public static int AUDJPY_quantity_TP4_UP_S2 ;
public static int AUDJPY_quantity_TP5_UP_S2;
public static int AUDJPY_quantity_TP6_UP_S2 ;
public static int AUDJPY_quantity_DOWN_S2 ;
public static int AUDJPY_quantity_SL_DOWN_S2 ;
public static int AUDJPY_quantity_TP1_DOWN_S2 ;
public static int AUDJPY_quantity_TP2_DOWN_S2 ;
public static int AUDJPY_quantity_TP3_DOWN_S2 ;
public static int AUDJPY_quantity_TP4_DOWN_S2 ;
public static int AUDJPY_quantity_TP5_DOWN_S2;
public static int AUDJPY_quantity_TP6_DOWN_S2 ;
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct NZDCHF_OCO1_DOWN_S2
{
public NZDCHF_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCHF_OCO1_UP_S2
{
public NZDCHF_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCHF_OCO2_DOWN_S2
{
public NZDCHF_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCHF_OCO2_UP_S2
{
public NZDCHF_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCHF OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCHF_OCO3_DOWN_S2
{
public NZDCHF_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCHF_OCO3_UP_S2
{
public NZDCHF_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCHF OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCHF_OCO4_DOWN_S2
{
public NZDCHF_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCHF_OCO4_UP_S2
{
public NZDCHF_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCHF OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct NZDCAD_OCO1_DOWN_S2
{
public NZDCAD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCAD_OCO1_UP_S2
{
public NZDCAD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_NZDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_NZDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_NZDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_NZDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCAD_OCO2_DOWN_S2
{
public NZDCAD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCAD_OCO2_UP_S2
{
public NZDCAD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_NZDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_NZDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_NZDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_NZDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("NZDCAD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCAD_OCO3_DOWN_S2
{
public NZDCAD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCAD_OCO3_UP_S2
{
public NZDCAD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_NZDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_NZDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_NZDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_NZDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("NZDCAD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCAD_OCO4_DOWN_S2
{
public NZDCAD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_NZDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_NZDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_NZDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct NZDCAD_OCO4_UP_S2
{
public NZDCAD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_NZDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_NZDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_NZDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_NZDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_NZDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_NZDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_NZDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_NZDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_NZDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_NZDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_NZDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("NZDCAD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_USDCAD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_USDCAD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any())
{
algorithm.Liquidate();
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCAD_DOWN_S2_OCO1")))
{
Base.USDCAD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCAD_DOWN_S2_OCO2")))
{
Base.USDCAD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCAD_DOWN_S2_OCO3")))
{
Base.USDCAD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCAD_DOWN_S2_OCO4")))
{
Base.USDCAD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("USDCAD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.USDCAD_OCO1_EO1_DOWN_S2)
Base.USDCAD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO2_DOWN_S2)
Base.USDCAD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO3_DOWN_S2)
Base.USDCAD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO4_DOWN_S2)
Base.USDCAD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO5_DOWN_S2)
Base.USDCAD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO1_EO6_DOWN_S2)
Base.USDCAD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int USDCAD_OCO1S1_DOWN_S2 = 0;
for (; USDCAD_OCO1S1_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets1.Count; USDCAD_OCO1S1_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets1[USDCAD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO1Sets1[USDCAD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_1__Time out_OCO1");
Base.USDCAD_DOWN_S2_OCO1Sets1.Clear();
USDCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int USDCAD_OCO1S2_DOWN_S2 = 0;
for (; USDCAD_OCO1S2_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets2.Count; USDCAD_OCO1S2_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets2[USDCAD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO1Sets2[USDCAD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_2__Time out_OCO1");
Base.USDCAD_DOWN_S2_OCO1Sets2.Clear();
USDCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int USDCAD_OCO1S3_DOWN_S2 = 0;
for (; USDCAD_OCO1S3_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets3.Count; USDCAD_OCO1S3_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets3[USDCAD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO1Sets3[USDCAD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_3__Time out_OCO1");
Base.USDCAD_DOWN_S2_OCO1Sets3.Clear();
USDCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int USDCAD_OCO1S4_DOWN_S2 = 0;
for (; USDCAD_OCO1S4_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets4.Count; USDCAD_OCO1S4_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets4[USDCAD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO1Sets4[USDCAD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_4__Time out_OCO1");
Base.USDCAD_DOWN_S2_OCO1Sets4.Clear();
USDCAD_OCO1S4_DOWN_S2 = 0;
break;
}
int USDCAD_OCO1S5_DOWN_S2 = 0;
for (; USDCAD_OCO1S5_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets5.Count; USDCAD_OCO1S5_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets5[USDCAD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO1Sets5[USDCAD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_5__Time out_OCO1");
Base.USDCAD_DOWN_S2_OCO1Sets5.Clear();
USDCAD_OCO1S5_DOWN_S2 = 0;
break;
}
int USDCAD_OCO1S6_DOWN_S2 = 0;
for (; USDCAD_OCO1S6_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets6.Count; USDCAD_OCO1S6_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets6[USDCAD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO1Sets6[USDCAD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_6__Time out_OCO1");
Base.USDCAD_DOWN_S2_OCO1Sets6.Clear();
USDCAD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO2_EO1_DOWN_S2)
Base.USDCAD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO2_DOWN_S2)
Base.USDCAD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO3_DOWN_S2)
Base.USDCAD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO4_DOWN_S2)
Base.USDCAD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO5_DOWN_S2)
Base.USDCAD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO2_EO6_DOWN_S2)
Base.USDCAD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int USDCAD_OCO2S1_DOWN_S2 = 0;
for (; USDCAD_OCO2S1_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets1.Count; USDCAD_OCO2S1_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets1[USDCAD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO2Sets1[USDCAD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_1__Time out_OCO2");
Base.USDCAD_DOWN_S2_OCO2Sets1.Clear();
USDCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int USDCAD_OCO2S2_DOWN_S2 = 0;
for (; USDCAD_OCO2S2_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets2.Count; USDCAD_OCO2S2_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets2[USDCAD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO2Sets2[USDCAD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_2__Time out_OCO2");
Base.USDCAD_DOWN_S2_OCO2Sets2.Clear();
USDCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int USDCAD_OCO2S3_DOWN_S2 = 0;
for (; USDCAD_OCO2S3_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets3.Count; USDCAD_OCO2S3_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets3[USDCAD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO2Sets3[USDCAD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_3__Time out_OCO2");
Base.USDCAD_DOWN_S2_OCO2Sets3.Clear();
USDCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int USDCAD_OCO2S4_DOWN_S2 = 0;
for (; USDCAD_OCO2S4_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets4.Count; USDCAD_OCO2S4_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets4[USDCAD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO2Sets4[USDCAD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_4__Time out_OCO2");
Base.USDCAD_DOWN_S2_OCO2Sets4.Clear();
USDCAD_OCO2S4_DOWN_S2 = 0;
break;
}
int USDCAD_OCO2S5_DOWN_S2 = 0;
for (; USDCAD_OCO2S5_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets5.Count; USDCAD_OCO2S5_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets5[USDCAD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO2Sets5[USDCAD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_5__Time out_OCO2");
Base.USDCAD_DOWN_S2_OCO2Sets5.Clear();
USDCAD_OCO2S5_DOWN_S2 = 0;
break;
}
int USDCAD_OCO2S6_DOWN_S2 = 0;
for (; USDCAD_OCO2S6_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets6.Count; USDCAD_OCO2S6_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets6[USDCAD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO2Sets6[USDCAD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_6__Time out_OCO2");
Base.USDCAD_DOWN_S2_OCO2Sets6.Clear();
USDCAD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO3_EO1_DOWN_S2)
Base.USDCAD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO2_DOWN_S2)
Base.USDCAD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO3_DOWN_S2)
Base.USDCAD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO4_DOWN_S2)
Base.USDCAD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO5_DOWN_S2)
Base.USDCAD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO3_EO6_DOWN_S2)
Base.USDCAD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int USDCAD_OCO3S1_DOWN_S2 = 0;
for (; USDCAD_OCO3S1_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets1.Count; USDCAD_OCO3S1_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets1[USDCAD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO3Sets1[USDCAD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_1__Time out_OCO3");
Base.USDCAD_DOWN_S2_OCO3Sets1.Clear();
USDCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int USDCAD_OCO3S2_DOWN_S2 = 0;
for (; USDCAD_OCO3S2_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets2.Count; USDCAD_OCO3S2_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets2[USDCAD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO3Sets2[USDCAD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_2__Time out_OCO3");
Base.USDCAD_DOWN_S2_OCO3Sets2.Clear();
USDCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int USDCAD_OCO3S3_DOWN_S2 = 0;
for (; USDCAD_OCO3S3_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets3.Count; USDCAD_OCO3S3_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets3[USDCAD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO3Sets3[USDCAD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_3__Time out_OCO3");
Base.USDCAD_DOWN_S2_OCO3Sets3.Clear();
USDCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int USDCAD_OCO3S4_DOWN_S2 = 0;
for (; USDCAD_OCO3S4_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets4.Count; USDCAD_OCO3S4_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets4[USDCAD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO3Sets4[USDCAD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_4__Time out_OCO3");
Base.USDCAD_DOWN_S2_OCO3Sets4.Clear();
USDCAD_OCO3S4_DOWN_S2 = 0;
break;
}
int USDCAD_OCO3S5_DOWN_S2 = 0;
for (; USDCAD_OCO3S5_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets5.Count; USDCAD_OCO3S5_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets5[USDCAD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO3Sets5[USDCAD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_5__Time out_OCO3");
Base.USDCAD_DOWN_S2_OCO3Sets5.Clear();
USDCAD_OCO3S5_DOWN_S2 = 0;
break;
}
int USDCAD_OCO3S6_DOWN_S2 = 0;
for (; USDCAD_OCO3S6_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets6.Count; USDCAD_OCO3S6_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets6[USDCAD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO3Sets6[USDCAD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_6__Time out_OCO3");
Base.USDCAD_DOWN_S2_OCO3Sets6.Clear();
USDCAD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO4_EO1_DOWN_S2)
Base.USDCAD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO2_DOWN_S2)
Base.USDCAD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO3_DOWN_S2)
Base.USDCAD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO4_DOWN_S2)
Base.USDCAD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO5_DOWN_S2)
Base.USDCAD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.USDCAD_OCO4_EO6_DOWN_S2)
Base.USDCAD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int USDCAD_OCO4S1_DOWN_S2 = 0;
for (; USDCAD_OCO4S1_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets1.Count; USDCAD_OCO4S1_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets1[USDCAD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO4Sets1[USDCAD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_1__Time out_OCO4");
Base.USDCAD_DOWN_S2_OCO4Sets1.Clear();
USDCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int USDCAD_OCO4S2_DOWN_S2 = 0;
for (; USDCAD_OCO4S2_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets2.Count; USDCAD_OCO4S2_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets2[USDCAD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO4Sets2[USDCAD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_2__Time out_OCO4");
Base.USDCAD_DOWN_S2_OCO4Sets2.Clear();
USDCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int USDCAD_OCO4S3_DOWN_S2 = 0;
for (; USDCAD_OCO4S3_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets3.Count; USDCAD_OCO4S3_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets3[USDCAD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO4Sets3[USDCAD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_3__Time out_OCO4");
Base.USDCAD_DOWN_S2_OCO4Sets3.Clear();
USDCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int USDCAD_OCO4S4_DOWN_S2 = 0;
for (; USDCAD_OCO4S4_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets4.Count; USDCAD_OCO4S4_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets4[USDCAD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO4Sets4[USDCAD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_4__Time out_OCO4");
Base.USDCAD_DOWN_S2_OCO4Sets4.Clear();
USDCAD_OCO4S4_DOWN_S2 = 0;
break;
}
int USDCAD_OCO4S5_DOWN_S2 = 0;
for (; USDCAD_OCO4S5_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets5.Count; USDCAD_OCO4S5_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets5[USDCAD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO4Sets5[USDCAD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_5__Time out_OCO4");
Base.USDCAD_DOWN_S2_OCO4Sets5.Clear();
USDCAD_OCO4S5_DOWN_S2 = 0;
break;
}
int USDCAD_OCO4S6_DOWN_S2 = 0;
for (; USDCAD_OCO4S6_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets6.Count; USDCAD_OCO4S6_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets6[USDCAD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.USDCAD_DOWN_S2_OCO4Sets6[USDCAD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCAD", order.Quantity, false, "USDCAD_DOWN_S2_Entry_6__Time out_OCO4");
Base.USDCAD_DOWN_S2_OCO4Sets6.Clear();
USDCAD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_USDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_USDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_USDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_USDCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_USDCAD_DOWN_S2 = DOWM_USDCAD_DOWN_S2 || DOWT_USDCAD_DOWN_S2 || DOWW_USDCAD_DOWN_S2 || DOWTH_USDCAD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("USDCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.USDCAD_OCO1_DOWN_S2_IsReady == false ||
Base.USDCAD_OCO2_DOWN_S2_IsReady == false ||
Base.USDCAD_OCO3_DOWN_S2_IsReady == false ||
Base.USDCAD_OCO4_DOWN_S2_IsReady == false)
{
Base.USDCAD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.USDCAD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.USDCAD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.USDCAD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.USDCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.USDCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.USDCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.USDCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
USDCAD_Signal_Condition_DOWN_1 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
USDCAD_Signal_Condition_DOWN_2 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
USDCAD_Signal_Condition_DOWN_3 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (USDCAD_Signal_Condition_DOWN_1)
{
USDCAD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (USDCAD_Signal_Condition_DOWN_2)
{
USDCAD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (USDCAD_Signal_Condition_DOWN_3)
{
USDCAD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (USDCAD_Signal_Condition_DOWN_1)
{
USDCAD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.05m ;
}
if (USDCAD_Signal_Condition_DOWN_2)
{
USDCAD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.1m ;
}
if (USDCAD_Signal_Condition_DOWN_3)
{
USDCAD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.2m ;
}
USDCAD_DOWN_S2_TP2 = USDCAD_DOWN_S2_SL * 0;
USDCAD_DOWN_S2_TP3 = USDCAD_DOWN_S2_SL * 0;
USDCAD_DOWN_S2_TP4 = USDCAD_DOWN_S2_SL * 0;
USDCAD_DOWN_S2_TP5 = USDCAD_DOWN_S2_SL * 0;
USDCAD_DOWN_S2_TP6 = USDCAD_DOWN_S2_SL * 0;
if (coefIntS2 != 0 && USDCAD_DOWN_S2_SL != 0)
{
USDCAD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)*0.015m);
USDCAD_quantity_SL_DOWN_S2 = USDCAD_quantity_DOWN_S2;
USDCAD_quantity_TP1_DOWN_S2 = (USDCAD_quantity_DOWN_S2 );
USDCAD_quantity_TP2_DOWN_S2 = (USDCAD_quantity_TP1_DOWN_S2 * 0);
USDCAD_quantity_TP3_DOWN_S2 = (USDCAD_quantity_TP2_DOWN_S2 * 0);
USDCAD_quantity_TP4_DOWN_S2 = (USDCAD_quantity_TP3_DOWN_S2 * 0);
USDCAD_quantity_TP5_DOWN_S2 = (USDCAD_quantity_TP4_DOWN_S2 * 0);
USDCAD_quantity_TP6_DOWN_S2 = (USDCAD_quantity_TP5_DOWN_S2 * 0);
}
oco1:
if ((USDCAD_Signal_Condition_DOWN_1 || USDCAD_Signal_Condition_DOWN_2 || USDCAD_Signal_Condition_DOWN_3) &&
DOWR_USDCAD_DOWN_S2 &&
Base.USDCAD_OCO1_DOWN_S2_IsReady == true &&
Base.USDCAD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.USDCAD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP1_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP1_OCO1");
Base.USDCAD_OCO1_EO1_DOWN_S2 = false;
Base.USDCAD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP2_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP2_OCO1");
Base.USDCAD_OCO1_EO2_DOWN_S2 = false;
Base.USDCAD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP3_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP3_OCO1");
Base.USDCAD_OCO1_EO3_DOWN_S2 = false;
Base.USDCAD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP4_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP4_OCO1");
Base.USDCAD_OCO1_EO4_DOWN_S2 = false;
Base.USDCAD_OCO1_DOWN_S2_IsReady = false;
if (Base.USDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if ((USDCAD_Signal_Condition_DOWN_1 || USDCAD_Signal_Condition_DOWN_2 || USDCAD_Signal_Condition_DOWN_3) &&
DOWR_USDCAD_DOWN_S2 &&
Base.USDCAD_OCO2_DOWN_S2_IsReady == true &&
Base.USDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.USDCAD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.USDCAD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP1_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP1_OCO2");
Base.USDCAD_OCO2_EO1_DOWN_S2 = false;
Base.USDCAD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP2_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP2_OCO2");
Base.USDCAD_OCO2_EO2_DOWN_S2 = false;
Base.USDCAD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP3_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP3_OCO2");
Base.USDCAD_OCO2_EO3_DOWN_S2 = false;
Base.USDCAD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP4_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP4_OCO2");
Base.USDCAD_OCO2_EO4_DOWN_S2 = false;
Base.USDCAD_OCO2_DOWN_S2_IsReady = false;
if (Base.USDCAD_OCO2_DOWN_S2_IsReady == false && Base.USDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if ((USDCAD_Signal_Condition_DOWN_1 || USDCAD_Signal_Condition_DOWN_2 || USDCAD_Signal_Condition_DOWN_3) &&
DOWR_USDCAD_DOWN_S2 &&
Base.USDCAD_OCO3_DOWN_S2_IsReady == true &&
Base.USDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.USDCAD_OCO2_DOWN_S2_IsReady == false &&
Base.USDCAD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.USDCAD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP1_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP1_OCO3");
Base.USDCAD_OCO3_EO1_DOWN_S2 = false;
Base.USDCAD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP2_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP2_OCO3");
Base.USDCAD_OCO3_EO2_DOWN_S2 = false;
Base.USDCAD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP3_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP3_OCO3");
Base.USDCAD_OCO3_EO3_DOWN_S2 = false;
Base.USDCAD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP4_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP4_OCO3");
Base.USDCAD_OCO3_EO4_DOWN_S2 = false;
Base.USDCAD_OCO3_DOWN_S2_IsReady = false;
if (Base.USDCAD_OCO3_DOWN_S2_IsReady == false && Base.USDCAD_OCO2_DOWN_S2_IsReady == false && Base.USDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if ((USDCAD_Signal_Condition_DOWN_1 || USDCAD_Signal_Condition_DOWN_2 || USDCAD_Signal_Condition_DOWN_3) &&
DOWR_USDCAD_DOWN_S2 &&
Base.USDCAD_OCO4_DOWN_S2_IsReady == true &&
Base.USDCAD_OCO1_DOWN_S2_IsReady == false &&
Base.USDCAD_OCO2_DOWN_S2_IsReady == false &&
Base.USDCAD_OCO3_DOWN_S2_IsReady == false &&
Base.USDCAD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.USDCAD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP1_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP1_OCO4");
Base.USDCAD_OCO4_EO1_DOWN_S2 = false;
Base.USDCAD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP2_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP2_OCO4");
Base.USDCAD_OCO4_EO2_DOWN_S2 = false;
Base.USDCAD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP3_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP3_OCO4");
Base.USDCAD_OCO4_EO3_DOWN_S2 = false;
Base.USDCAD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCAD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCAD_quantity_TP4_DOWN_S2, false,"USDCAD_DOWN_S2_Entry_TP4_OCO4");
Base.USDCAD_OCO4_EO4_DOWN_S2 = false;
Base.USDCAD_OCO4_DOWN_S2_IsReady = false;
if (Base.USDCAD_OCO4_DOWN_S2_IsReady == false && Base.USDCAD_OCO3_DOWN_S2_IsReady == false && Base.USDCAD_OCO2_DOWN_S2_IsReady == false && Base.USDCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPUSD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPUSD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
}
if (Base.GBPUSD_OCO1_EO1_UP_S2)
Base.GBPUSD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO1_EO2_UP_S2)
Base.GBPUSD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO1_EO3_UP_S2)
Base.GBPUSD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO1_EO4_UP_S2)
Base.GBPUSD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO1_EO5_UP_S2)
Base.GBPUSD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO1_EO6_UP_S2)
Base.GBPUSD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO1_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP1,"TP1_GBPUSD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP1_GBPUSD_UP_S2_OCO1"));
};
Base.GBPUSD_UP_S2_OCO1Sets1.Add( Base.GBPUSD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO2_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP2,"TP2_GBPUSD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP2_GBPUSD_UP_S2_OCO1"));
};
Base.GBPUSD_UP_S2_OCO1Sets2.Add( Base.GBPUSD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO3_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP3,"TP3_GBPUSD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP3_GBPUSD_UP_S2_OCO1"));
};
Base.GBPUSD_UP_S2_OCO1Sets3.Add( Base.GBPUSD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO4_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP4,"TP4_GBPUSD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP4_GBPUSD_UP_S2_OCO1"));
};
Base.GBPUSD_UP_S2_OCO1Sets4.Add( Base.GBPUSD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO5_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP5,"TP5_GBPUSD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP5_GBPUSD_UP_S2_OCO1"));
};
Base.GBPUSD_UP_S2_OCO1Sets5.Add( Base.GBPUSD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO6_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP6,"TP6_GBPUSD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP6_GBPUSD_UP_S2_OCO1"));
};
Base.GBPUSD_UP_S2_OCO1Sets6.Add( Base.GBPUSD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO6_UP_S2_ID = -1;
}
int GBPUSD_OCO1S1_UP_S2 = 0;
for (; GBPUSD_OCO1S1_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets1.Count; GBPUSD_OCO1S1_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets1[GBPUSD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO1Sets1[GBPUSD_OCO1S1_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO1Sets1.RemoveAt(GBPUSD_OCO1S1_UP_S2);
GBPUSD_OCO1S1_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S2_UP_S2 = 0;
for (; GBPUSD_OCO1S2_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets2.Count; GBPUSD_OCO1S2_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets2[GBPUSD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO1Sets2[GBPUSD_OCO1S2_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO1Sets2.RemoveAt(GBPUSD_OCO1S2_UP_S2);
GBPUSD_OCO1S2_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S3_UP_S2 = 0;
for (; GBPUSD_OCO1S3_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets3.Count; GBPUSD_OCO1S3_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets3[GBPUSD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO1Sets3[GBPUSD_OCO1S3_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO1Sets3.RemoveAt(GBPUSD_OCO1S3_UP_S2);
GBPUSD_OCO1S3_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S4_UP_S2 = 0;
for (; GBPUSD_OCO1S4_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets4.Count; GBPUSD_OCO1S4_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets4[GBPUSD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO1Sets4[GBPUSD_OCO1S4_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO1Sets4.RemoveAt(GBPUSD_OCO1S4_UP_S2);
GBPUSD_OCO1S4_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S5_UP_S2 = 0;
for (; GBPUSD_OCO1S5_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets5.Count; GBPUSD_OCO1S5_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets5[GBPUSD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO1Sets5[GBPUSD_OCO1S5_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO1Sets5.RemoveAt(GBPUSD_OCO1S5_UP_S2);
GBPUSD_OCO1S5_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S6_UP_S2 = 0;
for (; GBPUSD_OCO1S6_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets6.Count; GBPUSD_OCO1S6_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets6[GBPUSD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO1Sets6[GBPUSD_OCO1S6_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO1Sets6.RemoveAt(GBPUSD_OCO1S6_UP_S2);
GBPUSD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO2_EO1_UP_S2)
Base.GBPUSD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO2_EO2_UP_S2)
Base.GBPUSD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO2_EO3_UP_S2)
Base.GBPUSD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO2_EO4_UP_S2)
Base.GBPUSD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO2_EO5_UP_S2)
Base.GBPUSD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO2_EO6_UP_S2)
Base.GBPUSD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO1_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP1,"TP1_GBPUSD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP1_GBPUSD_UP_S2_OCO2"));
};
Base.GBPUSD_UP_S2_OCO2Sets1.Add( Base.GBPUSD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO2_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP2,"TP2_GBPUSD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP2_GBPUSD_UP_S2_OCO2"));
};
Base.GBPUSD_UP_S2_OCO2Sets2.Add( Base.GBPUSD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO3_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP3,"TP3_GBPUSD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP3_GBPUSD_UP_S2_OCO2"));
};
Base.GBPUSD_UP_S2_OCO2Sets3.Add( Base.GBPUSD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO4_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP4,"TP4_GBPUSD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP4_GBPUSD_UP_S2_OCO2"));
};
Base.GBPUSD_UP_S2_OCO2Sets4.Add( Base.GBPUSD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO5_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP5,"TP5_GBPUSD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP5_GBPUSD_UP_S2_OCO2"));
};
Base.GBPUSD_UP_S2_OCO2Sets5.Add( Base.GBPUSD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO6_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP6,"TP6_GBPUSD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP6_GBPUSD_UP_S2_OCO2"));
};
Base.GBPUSD_UP_S2_OCO2Sets6.Add( Base.GBPUSD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO6_UP_S2_ID = -1;
}
int GBPUSD_OCO2S1_UP_S2 = 0;
for (; GBPUSD_OCO2S1_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets1.Count; GBPUSD_OCO2S1_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets1[GBPUSD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO2Sets1[GBPUSD_OCO2S1_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO2Sets1.RemoveAt(GBPUSD_OCO2S1_UP_S2);
GBPUSD_OCO2S1_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S2_UP_S2 = 0;
for (; GBPUSD_OCO2S2_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets2.Count; GBPUSD_OCO2S2_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets2[GBPUSD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO2Sets2[GBPUSD_OCO2S2_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO2Sets2.RemoveAt(GBPUSD_OCO2S2_UP_S2);
GBPUSD_OCO2S2_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S3_UP_S2 = 0;
for (; GBPUSD_OCO2S3_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets3.Count; GBPUSD_OCO2S3_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets3[GBPUSD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO2Sets3[GBPUSD_OCO2S3_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO2Sets3.RemoveAt(GBPUSD_OCO2S3_UP_S2);
GBPUSD_OCO2S3_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S4_UP_S2 = 0;
for (; GBPUSD_OCO2S4_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets4.Count; GBPUSD_OCO2S4_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets4[GBPUSD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO2Sets4[GBPUSD_OCO2S4_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO2Sets4.RemoveAt(GBPUSD_OCO2S4_UP_S2);
GBPUSD_OCO2S4_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S5_UP_S2 = 0;
for (; GBPUSD_OCO2S5_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets5.Count; GBPUSD_OCO2S5_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets5[GBPUSD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO2Sets5[GBPUSD_OCO2S5_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO2Sets5.RemoveAt(GBPUSD_OCO2S5_UP_S2);
GBPUSD_OCO2S5_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S6_UP_S2 = 0;
for (; GBPUSD_OCO2S6_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets6.Count; GBPUSD_OCO2S6_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets6[GBPUSD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO2Sets6[GBPUSD_OCO2S6_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO2Sets6.RemoveAt(GBPUSD_OCO2S6_UP_S2);
GBPUSD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO3_EO1_UP_S2)
Base.GBPUSD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO3_EO2_UP_S2)
Base.GBPUSD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO3_EO3_UP_S2)
Base.GBPUSD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO3_EO4_UP_S2)
Base.GBPUSD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO3_EO5_UP_S2)
Base.GBPUSD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO3_EO6_UP_S2)
Base.GBPUSD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO1_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP1,"TP1_GBPUSD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP1_GBPUSD_UP_S2_OCO3"));
};
Base.GBPUSD_UP_S2_OCO3Sets1.Add( Base.GBPUSD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO2_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP2,"TP2_GBPUSD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP2_GBPUSD_UP_S2_OCO3"));
};
Base.GBPUSD_UP_S2_OCO3Sets2.Add( Base.GBPUSD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO3_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP3,"TP3_GBPUSD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP3_GBPUSD_UP_S2_OCO3"));
};
Base.GBPUSD_UP_S2_OCO3Sets3.Add( Base.GBPUSD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO4_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP4,"TP4_GBPUSD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP4_GBPUSD_UP_S2_OCO3"));
};
Base.GBPUSD_UP_S2_OCO3Sets4.Add( Base.GBPUSD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO5_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP5,"TP5_GBPUSD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP5_GBPUSD_UP_S2_OCO3"));
};
Base.GBPUSD_UP_S2_OCO3Sets5.Add( Base.GBPUSD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO6_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP6,"TP6_GBPUSD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP6_GBPUSD_UP_S2_OCO3"));
};
Base.GBPUSD_UP_S2_OCO3Sets6.Add( Base.GBPUSD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO6_UP_S2_ID = -1;
}
int GBPUSD_OCO3S1_UP_S2 = 0;
for (; GBPUSD_OCO3S1_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets1.Count; GBPUSD_OCO3S1_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets1[GBPUSD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO3Sets1[GBPUSD_OCO3S1_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO3Sets1.RemoveAt(GBPUSD_OCO3S1_UP_S2);
GBPUSD_OCO3S1_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S2_UP_S2 = 0;
for (; GBPUSD_OCO3S2_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets2.Count; GBPUSD_OCO3S2_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets2[GBPUSD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO3Sets2[GBPUSD_OCO3S2_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO3Sets2.RemoveAt(GBPUSD_OCO3S2_UP_S2);
GBPUSD_OCO3S2_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S3_UP_S2 = 0;
for (; GBPUSD_OCO3S3_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets3.Count; GBPUSD_OCO3S3_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets3[GBPUSD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO3Sets3[GBPUSD_OCO3S3_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO3Sets3.RemoveAt(GBPUSD_OCO3S3_UP_S2);
GBPUSD_OCO3S3_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S4_UP_S2 = 0;
for (; GBPUSD_OCO3S4_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets4.Count; GBPUSD_OCO3S4_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets4[GBPUSD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO3Sets4[GBPUSD_OCO3S4_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO3Sets4.RemoveAt(GBPUSD_OCO3S4_UP_S2);
GBPUSD_OCO3S4_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S5_UP_S2 = 0;
for (; GBPUSD_OCO3S5_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets5.Count; GBPUSD_OCO3S5_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets5[GBPUSD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO3Sets5[GBPUSD_OCO3S5_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO3Sets5.RemoveAt(GBPUSD_OCO3S5_UP_S2);
GBPUSD_OCO3S5_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S6_UP_S2 = 0;
for (; GBPUSD_OCO3S6_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets6.Count; GBPUSD_OCO3S6_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets6[GBPUSD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO3Sets6[GBPUSD_OCO3S6_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO3Sets6.RemoveAt(GBPUSD_OCO3S6_UP_S2);
GBPUSD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO4_EO1_UP_S2)
Base.GBPUSD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO4_EO2_UP_S2)
Base.GBPUSD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO4_EO3_UP_S2)
Base.GBPUSD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO4_EO4_UP_S2)
Base.GBPUSD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO4_EO5_UP_S2)
Base.GBPUSD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO4_EO6_UP_S2)
Base.GBPUSD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO1_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP1,"TP1_GBPUSD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP1_GBPUSD_UP_S2_OCO4"));
};
Base.GBPUSD_UP_S2_OCO4Sets1.Add( Base.GBPUSD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO2_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP2,"TP2_GBPUSD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP2_GBPUSD_UP_S2_OCO4"));
};
Base.GBPUSD_UP_S2_OCO4Sets2.Add( Base.GBPUSD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO3_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP3,"TP3_GBPUSD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP3_GBPUSD_UP_S2_OCO4"));
};
Base.GBPUSD_UP_S2_OCO4Sets3.Add( Base.GBPUSD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO4_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP4,"TP4_GBPUSD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP4_GBPUSD_UP_S2_OCO4"));
};
Base.GBPUSD_UP_S2_OCO4Sets4.Add( Base.GBPUSD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO5_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP5,"TP5_GBPUSD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP5_GBPUSD_UP_S2_OCO4"));
};
Base.GBPUSD_UP_S2_OCO4Sets5.Add( Base.GBPUSD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO6_UP_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_UP_S2_TP6,"TP6_GBPUSD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_UP_S2_SL,"SL_TP6_GBPUSD_UP_S2_OCO4"));
};
Base.GBPUSD_UP_S2_OCO4Sets6.Add( Base.GBPUSD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO6_UP_S2_ID = -1;
}
int GBPUSD_OCO4S1_UP_S2 = 0;
for (; GBPUSD_OCO4S1_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets1.Count; GBPUSD_OCO4S1_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets1[GBPUSD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO4Sets1[GBPUSD_OCO4S1_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO4Sets1.RemoveAt(GBPUSD_OCO4S1_UP_S2);
GBPUSD_OCO4S1_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S2_UP_S2 = 0;
for (; GBPUSD_OCO4S2_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets2.Count; GBPUSD_OCO4S2_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets2[GBPUSD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO4Sets2[GBPUSD_OCO4S2_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO4Sets2.RemoveAt(GBPUSD_OCO4S2_UP_S2);
GBPUSD_OCO4S2_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S3_UP_S2 = 0;
for (; GBPUSD_OCO4S3_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets3.Count; GBPUSD_OCO4S3_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets3[GBPUSD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO4Sets3[GBPUSD_OCO4S3_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO4Sets3.RemoveAt(GBPUSD_OCO4S3_UP_S2);
GBPUSD_OCO4S3_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S4_UP_S2 = 0;
for (; GBPUSD_OCO4S4_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets4.Count; GBPUSD_OCO4S4_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets4[GBPUSD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO4Sets4[GBPUSD_OCO4S4_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO4Sets4.RemoveAt(GBPUSD_OCO4S4_UP_S2);
GBPUSD_OCO4S4_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S5_UP_S2 = 0;
for (; GBPUSD_OCO4S5_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets5.Count; GBPUSD_OCO4S5_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets5[GBPUSD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO4Sets5[GBPUSD_OCO4S5_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO4Sets5.RemoveAt(GBPUSD_OCO4S5_UP_S2);
GBPUSD_OCO4S5_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S6_UP_S2 = 0;
for (; GBPUSD_OCO4S6_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets6.Count; GBPUSD_OCO4S6_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets6[GBPUSD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_UP_S2_OCO4Sets6[GBPUSD_OCO4S6_UP_S2].Filled();
Base.GBPUSD_UP_S2_OCO4Sets6.RemoveAt(GBPUSD_OCO4S6_UP_S2);
GBPUSD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct GBPUSD_OCO1_DOWN_S2
{
public GBPUSD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPUSD_OCO1_UP_S2
{
public GBPUSD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPUSD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPUSD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPUSD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPUSD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPUSD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPUSD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPUSD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPUSD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPUSD_OCO2_DOWN_S2
{
public GBPUSD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPUSD_OCO2_UP_S2
{
public GBPUSD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPUSD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPUSD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPUSD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPUSD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPUSD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPUSD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPUSD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPUSD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPUSD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPUSD_OCO3_DOWN_S2
{
public GBPUSD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPUSD_OCO3_UP_S2
{
public GBPUSD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPUSD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPUSD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPUSD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPUSD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPUSD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPUSD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPUSD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPUSD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPUSD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPUSD_OCO4_DOWN_S2
{
public GBPUSD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPUSD_OCO4_UP_S2
{
public GBPUSD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPUSD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPUSD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPUSD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPUSD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPUSD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPUSD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPUSD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPUSD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPUSD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPUSD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPUSD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
if (OrderID.Tag.StartsWith("GBPUSD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPUSD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPUSD S2");
}
}
if (Base.GBPUSD_OCO1_EO1_DOWN_S2)
Base.GBPUSD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO1_EO2_DOWN_S2)
Base.GBPUSD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO1_EO3_DOWN_S2)
Base.GBPUSD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO1_EO4_DOWN_S2)
Base.GBPUSD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO1_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP1_GBPUSD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP1,"TP1_GBPUSD_DOWN_S2_OCO1"));
};
Base.GBPUSD_DOWN_S2_OCO1Sets1.Add( Base.GBPUSD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO2_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP2_GBPUSD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP2,"TP2_GBPUSD_DOWN_S2_OCO1"));
};
Base.GBPUSD_DOWN_S2_OCO1Sets2.Add( Base.GBPUSD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO3_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP3_GBPUSD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP3,"TP3_GBPUSD_DOWN_S2_OCO1"));
};
Base.GBPUSD_DOWN_S2_OCO1Sets3.Add( Base.GBPUSD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO1_EO4_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP4_GBPUSD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP4,"TP4_GBPUSD_DOWN_S2_OCO1"));
};
Base.GBPUSD_DOWN_S2_OCO1Sets4.Add( Base.GBPUSD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO1_EO4_DOWN_S2_ID = -1;
}
int GBPUSD_OCO1S1_DOWN_S2 = 0;
for (; GBPUSD_OCO1S1_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets1.Count; GBPUSD_OCO1S1_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets1[GBPUSD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO1Sets1[GBPUSD_OCO1S1_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO1Sets1.RemoveAt(GBPUSD_OCO1S1_DOWN_S2);
GBPUSD_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO1S2_DOWN_S2 = 0;
for (; GBPUSD_OCO1S2_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets2.Count; GBPUSD_OCO1S2_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets2[GBPUSD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO1Sets2[GBPUSD_OCO1S2_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO1Sets2.RemoveAt(GBPUSD_OCO1S2_DOWN_S2);
GBPUSD_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO1S3_DOWN_S2 = 0;
for (; GBPUSD_OCO1S3_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets3.Count; GBPUSD_OCO1S3_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets3[GBPUSD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO1Sets3[GBPUSD_OCO1S3_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO1Sets3.RemoveAt(GBPUSD_OCO1S3_DOWN_S2);
GBPUSD_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO1S4_DOWN_S2 = 0;
for (; GBPUSD_OCO1S4_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets4.Count; GBPUSD_OCO1S4_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets4[GBPUSD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO1Sets4[GBPUSD_OCO1S4_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO1Sets4.RemoveAt(GBPUSD_OCO1S4_DOWN_S2);
GBPUSD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO2_EO1_DOWN_S2)
Base.GBPUSD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO2_EO2_DOWN_S2)
Base.GBPUSD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO2_EO3_DOWN_S2)
Base.GBPUSD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO2_EO4_DOWN_S2)
Base.GBPUSD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO1_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP1_GBPUSD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP1,"TP1_GBPUSD_DOWN_S2_OCO2"));
};
Base.GBPUSD_DOWN_S2_OCO2Sets1.Add( Base.GBPUSD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO2_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP2_GBPUSD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP2,"TP2_GBPUSD_DOWN_S2_OCO2"));
};
Base.GBPUSD_DOWN_S2_OCO2Sets2.Add( Base.GBPUSD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO3_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP3_GBPUSD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP3,"TP3_GBPUSD_DOWN_S2_OCO2"));
};
Base.GBPUSD_DOWN_S2_OCO2Sets3.Add( Base.GBPUSD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO2_EO4_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP4_GBPUSD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP4,"TP4_GBPUSD_DOWN_S2_OCO2"));
};
Base.GBPUSD_DOWN_S2_OCO2Sets4.Add( Base.GBPUSD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO2_EO4_DOWN_S2_ID = -1;
}
int GBPUSD_OCO2S1_DOWN_S2 = 0;
for (; GBPUSD_OCO2S1_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets1.Count; GBPUSD_OCO2S1_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets1[GBPUSD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO2Sets1[GBPUSD_OCO2S1_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO2Sets1.RemoveAt(GBPUSD_OCO2S1_DOWN_S2);
GBPUSD_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO2S2_DOWN_S2 = 0;
for (; GBPUSD_OCO2S2_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets2.Count; GBPUSD_OCO2S2_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets2[GBPUSD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO2Sets2[GBPUSD_OCO2S2_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO2Sets2.RemoveAt(GBPUSD_OCO2S2_DOWN_S2);
GBPUSD_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO2S3_DOWN_S2 = 0;
for (; GBPUSD_OCO2S3_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets3.Count; GBPUSD_OCO2S3_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets3[GBPUSD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO2Sets3[GBPUSD_OCO2S3_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO2Sets3.RemoveAt(GBPUSD_OCO2S3_DOWN_S2);
GBPUSD_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO2S4_DOWN_S2 = 0;
for (; GBPUSD_OCO2S4_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets4.Count; GBPUSD_OCO2S4_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets4[GBPUSD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO2Sets4[GBPUSD_OCO2S4_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO2Sets4.RemoveAt(GBPUSD_OCO2S4_DOWN_S2);
GBPUSD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO3_EO1_DOWN_S2)
Base.GBPUSD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO3_EO2_DOWN_S2)
Base.GBPUSD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO3_EO3_DOWN_S2)
Base.GBPUSD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO3_EO4_DOWN_S2)
Base.GBPUSD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO1_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP1_GBPUSD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP1,"TP1_GBPUSD_DOWN_S2_OCO3"));
};
Base.GBPUSD_DOWN_S2_OCO3Sets1.Add( Base.GBPUSD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO2_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP2_GBPUSD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP2,"TP2_GBPUSD_DOWN_S2_OCO3"));
};
Base.GBPUSD_DOWN_S2_OCO3Sets2.Add( Base.GBPUSD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO3_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP3_GBPUSD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP3,"TP3_GBPUSD_DOWN_S2_OCO3"));
};
Base.GBPUSD_DOWN_S2_OCO3Sets3.Add( Base.GBPUSD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO3_EO4_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP4_GBPUSD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP4,"TP4_GBPUSD_DOWN_S2_OCO3"));
};
Base.GBPUSD_DOWN_S2_OCO3Sets4.Add( Base.GBPUSD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO3_EO4_DOWN_S2_ID = -1;
}
int GBPUSD_OCO3S1_DOWN_S2 = 0;
for (; GBPUSD_OCO3S1_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets1.Count; GBPUSD_OCO3S1_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets1[GBPUSD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO3Sets1[GBPUSD_OCO3S1_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO3Sets1.RemoveAt(GBPUSD_OCO3S1_DOWN_S2);
GBPUSD_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO3S2_DOWN_S2 = 0;
for (; GBPUSD_OCO3S2_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets2.Count; GBPUSD_OCO3S2_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets2[GBPUSD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO3Sets2[GBPUSD_OCO3S2_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO3Sets2.RemoveAt(GBPUSD_OCO3S2_DOWN_S2);
GBPUSD_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO3S3_DOWN_S2 = 0;
for (; GBPUSD_OCO3S3_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets3.Count; GBPUSD_OCO3S3_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets3[GBPUSD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO3Sets3[GBPUSD_OCO3S3_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO3Sets3.RemoveAt(GBPUSD_OCO3S3_DOWN_S2);
GBPUSD_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO3S4_DOWN_S2 = 0;
for (; GBPUSD_OCO3S4_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets4.Count; GBPUSD_OCO3S4_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets4[GBPUSD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO3Sets4[GBPUSD_OCO3S4_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO3Sets4.RemoveAt(GBPUSD_OCO3S4_DOWN_S2);
GBPUSD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO4_EO1_DOWN_S2)
Base.GBPUSD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO4_EO2_DOWN_S2)
Base.GBPUSD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO4_EO3_DOWN_S2)
Base.GBPUSD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPUSD_OCO4_EO4_DOWN_S2)
Base.GBPUSD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO1_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP1_GBPUSD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP1,"TP1_GBPUSD_DOWN_S2_OCO4"));
};
Base.GBPUSD_DOWN_S2_OCO4Sets1.Add( Base.GBPUSD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO2_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP2_GBPUSD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP2,"TP2_GBPUSD_DOWN_S2_OCO4"));
};
Base.GBPUSD_DOWN_S2_OCO4Sets2.Add( Base.GBPUSD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO3_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP3_GBPUSD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP3,"TP3_GBPUSD_DOWN_S2_OCO4"));
};
Base.GBPUSD_DOWN_S2_OCO4Sets3.Add( Base.GBPUSD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPUSD_OCO4_EO4_DOWN_S2_ID)
{
Base.GBPUSD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPUSD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPUSD_DOWN_S2_SL,"SL_TP4_GBPUSD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPUSD_DOWN_S2_TP4,"TP4_GBPUSD_DOWN_S2_OCO4"));
};
Base.GBPUSD_DOWN_S2_OCO4Sets4.Add( Base.GBPUSD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPUSD_OCO4_EO4_DOWN_S2_ID = -1;
}
int GBPUSD_OCO4S1_DOWN_S2 = 0;
for (; GBPUSD_OCO4S1_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets1.Count; GBPUSD_OCO4S1_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets1[GBPUSD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO4Sets1[GBPUSD_OCO4S1_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO4Sets1.RemoveAt(GBPUSD_OCO4S1_DOWN_S2);
GBPUSD_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO4S2_DOWN_S2 = 0;
for (; GBPUSD_OCO4S2_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets2.Count; GBPUSD_OCO4S2_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets2[GBPUSD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO4Sets2[GBPUSD_OCO4S2_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO4Sets2.RemoveAt(GBPUSD_OCO4S2_DOWN_S2);
GBPUSD_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO4S3_DOWN_S2 = 0;
for (; GBPUSD_OCO4S3_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets3.Count; GBPUSD_OCO4S3_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets3[GBPUSD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO4Sets3[GBPUSD_OCO4S3_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO4Sets3.RemoveAt(GBPUSD_OCO4S3_DOWN_S2);
GBPUSD_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO4S4_DOWN_S2 = 0;
for (; GBPUSD_OCO4S4_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets4.Count; GBPUSD_OCO4S4_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets4[GBPUSD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPUSD_DOWN_S2_OCO4Sets4[GBPUSD_OCO4S4_DOWN_S2].Filled();
Base.GBPUSD_DOWN_S2_OCO4Sets4.RemoveAt(GBPUSD_OCO4S4_DOWN_S2);
GBPUSD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPNZD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPNZD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
}
if (Base.GBPNZD_OCO1_EO1_UP_S2)
Base.GBPNZD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO1_EO2_UP_S2)
Base.GBPNZD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO1_EO3_UP_S2)
Base.GBPNZD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO1_EO4_UP_S2)
Base.GBPNZD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO1_EO5_UP_S2)
Base.GBPNZD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO1_EO6_UP_S2)
Base.GBPNZD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO1_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP1,"TP1_GBPNZD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP1_GBPNZD_UP_S2_OCO1"));
};
Base.GBPNZD_UP_S2_OCO1Sets1.Add( Base.GBPNZD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO2_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP2,"TP2_GBPNZD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP2_GBPNZD_UP_S2_OCO1"));
};
Base.GBPNZD_UP_S2_OCO1Sets2.Add( Base.GBPNZD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO3_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP3,"TP3_GBPNZD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP3_GBPNZD_UP_S2_OCO1"));
};
Base.GBPNZD_UP_S2_OCO1Sets3.Add( Base.GBPNZD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO4_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP4,"TP4_GBPNZD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP4_GBPNZD_UP_S2_OCO1"));
};
Base.GBPNZD_UP_S2_OCO1Sets4.Add( Base.GBPNZD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO5_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP5,"TP5_GBPNZD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP5_GBPNZD_UP_S2_OCO1"));
};
Base.GBPNZD_UP_S2_OCO1Sets5.Add( Base.GBPNZD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO6_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP6,"TP6_GBPNZD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP6_GBPNZD_UP_S2_OCO1"));
};
Base.GBPNZD_UP_S2_OCO1Sets6.Add( Base.GBPNZD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO6_UP_S2_ID = -1;
}
int GBPNZD_OCO1S1_UP_S2 = 0;
for (; GBPNZD_OCO1S1_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets1.Count; GBPNZD_OCO1S1_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets1[GBPNZD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO1Sets1[GBPNZD_OCO1S1_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO1Sets1.RemoveAt(GBPNZD_OCO1S1_UP_S2);
GBPNZD_OCO1S1_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S2_UP_S2 = 0;
for (; GBPNZD_OCO1S2_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets2.Count; GBPNZD_OCO1S2_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets2[GBPNZD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO1Sets2[GBPNZD_OCO1S2_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO1Sets2.RemoveAt(GBPNZD_OCO1S2_UP_S2);
GBPNZD_OCO1S2_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S3_UP_S2 = 0;
for (; GBPNZD_OCO1S3_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets3.Count; GBPNZD_OCO1S3_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets3[GBPNZD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO1Sets3[GBPNZD_OCO1S3_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO1Sets3.RemoveAt(GBPNZD_OCO1S3_UP_S2);
GBPNZD_OCO1S3_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S4_UP_S2 = 0;
for (; GBPNZD_OCO1S4_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets4.Count; GBPNZD_OCO1S4_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets4[GBPNZD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO1Sets4[GBPNZD_OCO1S4_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO1Sets4.RemoveAt(GBPNZD_OCO1S4_UP_S2);
GBPNZD_OCO1S4_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S5_UP_S2 = 0;
for (; GBPNZD_OCO1S5_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets5.Count; GBPNZD_OCO1S5_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets5[GBPNZD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO1Sets5[GBPNZD_OCO1S5_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO1Sets5.RemoveAt(GBPNZD_OCO1S5_UP_S2);
GBPNZD_OCO1S5_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S6_UP_S2 = 0;
for (; GBPNZD_OCO1S6_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets6.Count; GBPNZD_OCO1S6_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets6[GBPNZD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO1Sets6[GBPNZD_OCO1S6_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO1Sets6.RemoveAt(GBPNZD_OCO1S6_UP_S2);
GBPNZD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO2_EO1_UP_S2)
Base.GBPNZD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO2_EO2_UP_S2)
Base.GBPNZD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO2_EO3_UP_S2)
Base.GBPNZD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO2_EO4_UP_S2)
Base.GBPNZD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO2_EO5_UP_S2)
Base.GBPNZD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO2_EO6_UP_S2)
Base.GBPNZD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO1_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP1,"TP1_GBPNZD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP1_GBPNZD_UP_S2_OCO2"));
};
Base.GBPNZD_UP_S2_OCO2Sets1.Add( Base.GBPNZD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO2_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP2,"TP2_GBPNZD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP2_GBPNZD_UP_S2_OCO2"));
};
Base.GBPNZD_UP_S2_OCO2Sets2.Add( Base.GBPNZD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO3_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP3,"TP3_GBPNZD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP3_GBPNZD_UP_S2_OCO2"));
};
Base.GBPNZD_UP_S2_OCO2Sets3.Add( Base.GBPNZD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO4_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP4,"TP4_GBPNZD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP4_GBPNZD_UP_S2_OCO2"));
};
Base.GBPNZD_UP_S2_OCO2Sets4.Add( Base.GBPNZD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO5_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP5,"TP5_GBPNZD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP5_GBPNZD_UP_S2_OCO2"));
};
Base.GBPNZD_UP_S2_OCO2Sets5.Add( Base.GBPNZD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO6_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP6,"TP6_GBPNZD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP6_GBPNZD_UP_S2_OCO2"));
};
Base.GBPNZD_UP_S2_OCO2Sets6.Add( Base.GBPNZD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO6_UP_S2_ID = -1;
}
int GBPNZD_OCO2S1_UP_S2 = 0;
for (; GBPNZD_OCO2S1_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets1.Count; GBPNZD_OCO2S1_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets1[GBPNZD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO2Sets1[GBPNZD_OCO2S1_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO2Sets1.RemoveAt(GBPNZD_OCO2S1_UP_S2);
GBPNZD_OCO2S1_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S2_UP_S2 = 0;
for (; GBPNZD_OCO2S2_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets2.Count; GBPNZD_OCO2S2_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets2[GBPNZD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO2Sets2[GBPNZD_OCO2S2_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO2Sets2.RemoveAt(GBPNZD_OCO2S2_UP_S2);
GBPNZD_OCO2S2_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S3_UP_S2 = 0;
for (; GBPNZD_OCO2S3_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets3.Count; GBPNZD_OCO2S3_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets3[GBPNZD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO2Sets3[GBPNZD_OCO2S3_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO2Sets3.RemoveAt(GBPNZD_OCO2S3_UP_S2);
GBPNZD_OCO2S3_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S4_UP_S2 = 0;
for (; GBPNZD_OCO2S4_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets4.Count; GBPNZD_OCO2S4_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets4[GBPNZD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO2Sets4[GBPNZD_OCO2S4_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO2Sets4.RemoveAt(GBPNZD_OCO2S4_UP_S2);
GBPNZD_OCO2S4_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S5_UP_S2 = 0;
for (; GBPNZD_OCO2S5_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets5.Count; GBPNZD_OCO2S5_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets5[GBPNZD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO2Sets5[GBPNZD_OCO2S5_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO2Sets5.RemoveAt(GBPNZD_OCO2S5_UP_S2);
GBPNZD_OCO2S5_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S6_UP_S2 = 0;
for (; GBPNZD_OCO2S6_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets6.Count; GBPNZD_OCO2S6_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets6[GBPNZD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO2Sets6[GBPNZD_OCO2S6_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO2Sets6.RemoveAt(GBPNZD_OCO2S6_UP_S2);
GBPNZD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO3_EO1_UP_S2)
Base.GBPNZD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO3_EO2_UP_S2)
Base.GBPNZD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO3_EO3_UP_S2)
Base.GBPNZD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO3_EO4_UP_S2)
Base.GBPNZD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO3_EO5_UP_S2)
Base.GBPNZD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO3_EO6_UP_S2)
Base.GBPNZD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO1_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP1,"TP1_GBPNZD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP1_GBPNZD_UP_S2_OCO3"));
};
Base.GBPNZD_UP_S2_OCO3Sets1.Add( Base.GBPNZD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO2_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP2,"TP2_GBPNZD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP2_GBPNZD_UP_S2_OCO3"));
};
Base.GBPNZD_UP_S2_OCO3Sets2.Add( Base.GBPNZD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO3_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP3,"TP3_GBPNZD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP3_GBPNZD_UP_S2_OCO3"));
};
Base.GBPNZD_UP_S2_OCO3Sets3.Add( Base.GBPNZD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO4_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP4,"TP4_GBPNZD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP4_GBPNZD_UP_S2_OCO3"));
};
Base.GBPNZD_UP_S2_OCO3Sets4.Add( Base.GBPNZD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO5_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP5,"TP5_GBPNZD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP5_GBPNZD_UP_S2_OCO3"));
};
Base.GBPNZD_UP_S2_OCO3Sets5.Add( Base.GBPNZD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO6_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP6,"TP6_GBPNZD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP6_GBPNZD_UP_S2_OCO3"));
};
Base.GBPNZD_UP_S2_OCO3Sets6.Add( Base.GBPNZD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO6_UP_S2_ID = -1;
}
int GBPNZD_OCO3S1_UP_S2 = 0;
for (; GBPNZD_OCO3S1_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets1.Count; GBPNZD_OCO3S1_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets1[GBPNZD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO3Sets1[GBPNZD_OCO3S1_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO3Sets1.RemoveAt(GBPNZD_OCO3S1_UP_S2);
GBPNZD_OCO3S1_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S2_UP_S2 = 0;
for (; GBPNZD_OCO3S2_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets2.Count; GBPNZD_OCO3S2_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets2[GBPNZD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO3Sets2[GBPNZD_OCO3S2_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO3Sets2.RemoveAt(GBPNZD_OCO3S2_UP_S2);
GBPNZD_OCO3S2_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S3_UP_S2 = 0;
for (; GBPNZD_OCO3S3_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets3.Count; GBPNZD_OCO3S3_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets3[GBPNZD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO3Sets3[GBPNZD_OCO3S3_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO3Sets3.RemoveAt(GBPNZD_OCO3S3_UP_S2);
GBPNZD_OCO3S3_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S4_UP_S2 = 0;
for (; GBPNZD_OCO3S4_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets4.Count; GBPNZD_OCO3S4_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets4[GBPNZD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO3Sets4[GBPNZD_OCO3S4_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO3Sets4.RemoveAt(GBPNZD_OCO3S4_UP_S2);
GBPNZD_OCO3S4_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S5_UP_S2 = 0;
for (; GBPNZD_OCO3S5_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets5.Count; GBPNZD_OCO3S5_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets5[GBPNZD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO3Sets5[GBPNZD_OCO3S5_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO3Sets5.RemoveAt(GBPNZD_OCO3S5_UP_S2);
GBPNZD_OCO3S5_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S6_UP_S2 = 0;
for (; GBPNZD_OCO3S6_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets6.Count; GBPNZD_OCO3S6_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets6[GBPNZD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO3Sets6[GBPNZD_OCO3S6_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO3Sets6.RemoveAt(GBPNZD_OCO3S6_UP_S2);
GBPNZD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO4_EO1_UP_S2)
Base.GBPNZD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO4_EO2_UP_S2)
Base.GBPNZD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO4_EO3_UP_S2)
Base.GBPNZD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO4_EO4_UP_S2)
Base.GBPNZD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO4_EO5_UP_S2)
Base.GBPNZD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO4_EO6_UP_S2)
Base.GBPNZD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO1_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP1,"TP1_GBPNZD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP1_GBPNZD_UP_S2_OCO4"));
};
Base.GBPNZD_UP_S2_OCO4Sets1.Add( Base.GBPNZD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO2_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP2,"TP2_GBPNZD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP2_GBPNZD_UP_S2_OCO4"));
};
Base.GBPNZD_UP_S2_OCO4Sets2.Add( Base.GBPNZD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO3_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP3,"TP3_GBPNZD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP3_GBPNZD_UP_S2_OCO4"));
};
Base.GBPNZD_UP_S2_OCO4Sets3.Add( Base.GBPNZD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO4_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP4,"TP4_GBPNZD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP4_GBPNZD_UP_S2_OCO4"));
};
Base.GBPNZD_UP_S2_OCO4Sets4.Add( Base.GBPNZD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO5_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP5,"TP5_GBPNZD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP5_GBPNZD_UP_S2_OCO4"));
};
Base.GBPNZD_UP_S2_OCO4Sets5.Add( Base.GBPNZD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO6_UP_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_UP_S2_TP6,"TP6_GBPNZD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_UP_S2_SL,"SL_TP6_GBPNZD_UP_S2_OCO4"));
};
Base.GBPNZD_UP_S2_OCO4Sets6.Add( Base.GBPNZD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO6_UP_S2_ID = -1;
}
int GBPNZD_OCO4S1_UP_S2 = 0;
for (; GBPNZD_OCO4S1_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets1.Count; GBPNZD_OCO4S1_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets1[GBPNZD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO4Sets1[GBPNZD_OCO4S1_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO4Sets1.RemoveAt(GBPNZD_OCO4S1_UP_S2);
GBPNZD_OCO4S1_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S2_UP_S2 = 0;
for (; GBPNZD_OCO4S2_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets2.Count; GBPNZD_OCO4S2_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets2[GBPNZD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO4Sets2[GBPNZD_OCO4S2_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO4Sets2.RemoveAt(GBPNZD_OCO4S2_UP_S2);
GBPNZD_OCO4S2_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S3_UP_S2 = 0;
for (; GBPNZD_OCO4S3_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets3.Count; GBPNZD_OCO4S3_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets3[GBPNZD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO4Sets3[GBPNZD_OCO4S3_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO4Sets3.RemoveAt(GBPNZD_OCO4S3_UP_S2);
GBPNZD_OCO4S3_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S4_UP_S2 = 0;
for (; GBPNZD_OCO4S4_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets4.Count; GBPNZD_OCO4S4_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets4[GBPNZD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO4Sets4[GBPNZD_OCO4S4_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO4Sets4.RemoveAt(GBPNZD_OCO4S4_UP_S2);
GBPNZD_OCO4S4_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S5_UP_S2 = 0;
for (; GBPNZD_OCO4S5_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets5.Count; GBPNZD_OCO4S5_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets5[GBPNZD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO4Sets5[GBPNZD_OCO4S5_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO4Sets5.RemoveAt(GBPNZD_OCO4S5_UP_S2);
GBPNZD_OCO4S5_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S6_UP_S2 = 0;
for (; GBPNZD_OCO4S6_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets6.Count; GBPNZD_OCO4S6_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets6[GBPNZD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_UP_S2_OCO4Sets6[GBPNZD_OCO4S6_UP_S2].Filled();
Base.GBPNZD_UP_S2_OCO4Sets6.RemoveAt(GBPNZD_OCO4S6_UP_S2);
GBPNZD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPNZD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPNZD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
if (OrderID.Tag.StartsWith("GBPNZD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPNZD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPNZD S2");
}
}
if (Base.GBPNZD_OCO1_EO1_DOWN_S2)
Base.GBPNZD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO1_EO2_DOWN_S2)
Base.GBPNZD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO1_EO3_DOWN_S2)
Base.GBPNZD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO1_EO4_DOWN_S2)
Base.GBPNZD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO1_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP1_GBPNZD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP1,"TP1_GBPNZD_DOWN_S2_OCO1"));
};
Base.GBPNZD_DOWN_S2_OCO1Sets1.Add( Base.GBPNZD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO2_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP2_GBPNZD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP2,"TP2_GBPNZD_DOWN_S2_OCO1"));
};
Base.GBPNZD_DOWN_S2_OCO1Sets2.Add( Base.GBPNZD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO3_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP3_GBPNZD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP3,"TP3_GBPNZD_DOWN_S2_OCO1"));
};
Base.GBPNZD_DOWN_S2_OCO1Sets3.Add( Base.GBPNZD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO1_EO4_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP4_GBPNZD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP4,"TP4_GBPNZD_DOWN_S2_OCO1"));
};
Base.GBPNZD_DOWN_S2_OCO1Sets4.Add( Base.GBPNZD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO1_EO4_DOWN_S2_ID = -1;
}
int GBPNZD_OCO1S1_DOWN_S2 = 0;
for (; GBPNZD_OCO1S1_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets1.Count; GBPNZD_OCO1S1_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets1[GBPNZD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO1Sets1[GBPNZD_OCO1S1_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO1Sets1.RemoveAt(GBPNZD_OCO1S1_DOWN_S2);
GBPNZD_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO1S2_DOWN_S2 = 0;
for (; GBPNZD_OCO1S2_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets2.Count; GBPNZD_OCO1S2_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets2[GBPNZD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO1Sets2[GBPNZD_OCO1S2_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO1Sets2.RemoveAt(GBPNZD_OCO1S2_DOWN_S2);
GBPNZD_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO1S3_DOWN_S2 = 0;
for (; GBPNZD_OCO1S3_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets3.Count; GBPNZD_OCO1S3_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets3[GBPNZD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO1Sets3[GBPNZD_OCO1S3_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO1Sets3.RemoveAt(GBPNZD_OCO1S3_DOWN_S2);
GBPNZD_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO1S4_DOWN_S2 = 0;
for (; GBPNZD_OCO1S4_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets4.Count; GBPNZD_OCO1S4_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets4[GBPNZD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO1Sets4[GBPNZD_OCO1S4_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO1Sets4.RemoveAt(GBPNZD_OCO1S4_DOWN_S2);
GBPNZD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO2_EO1_DOWN_S2)
Base.GBPNZD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO2_EO2_DOWN_S2)
Base.GBPNZD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO2_EO3_DOWN_S2)
Base.GBPNZD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO2_EO4_DOWN_S2)
Base.GBPNZD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO1_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP1_GBPNZD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP1,"TP1_GBPNZD_DOWN_S2_OCO2"));
};
Base.GBPNZD_DOWN_S2_OCO2Sets1.Add( Base.GBPNZD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO2_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP2_GBPNZD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP2,"TP2_GBPNZD_DOWN_S2_OCO2"));
};
Base.GBPNZD_DOWN_S2_OCO2Sets2.Add( Base.GBPNZD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO3_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP3_GBPNZD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP3,"TP3_GBPNZD_DOWN_S2_OCO2"));
};
Base.GBPNZD_DOWN_S2_OCO2Sets3.Add( Base.GBPNZD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO2_EO4_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP4_GBPNZD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP4,"TP4_GBPNZD_DOWN_S2_OCO2"));
};
Base.GBPNZD_DOWN_S2_OCO2Sets4.Add( Base.GBPNZD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO2_EO4_DOWN_S2_ID = -1;
}
int GBPNZD_OCO2S1_DOWN_S2 = 0;
for (; GBPNZD_OCO2S1_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets1.Count; GBPNZD_OCO2S1_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets1[GBPNZD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO2Sets1[GBPNZD_OCO2S1_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO2Sets1.RemoveAt(GBPNZD_OCO2S1_DOWN_S2);
GBPNZD_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO2S2_DOWN_S2 = 0;
for (; GBPNZD_OCO2S2_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets2.Count; GBPNZD_OCO2S2_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets2[GBPNZD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO2Sets2[GBPNZD_OCO2S2_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO2Sets2.RemoveAt(GBPNZD_OCO2S2_DOWN_S2);
GBPNZD_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO2S3_DOWN_S2 = 0;
for (; GBPNZD_OCO2S3_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets3.Count; GBPNZD_OCO2S3_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets3[GBPNZD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO2Sets3[GBPNZD_OCO2S3_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO2Sets3.RemoveAt(GBPNZD_OCO2S3_DOWN_S2);
GBPNZD_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO2S4_DOWN_S2 = 0;
for (; GBPNZD_OCO2S4_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets4.Count; GBPNZD_OCO2S4_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets4[GBPNZD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO2Sets4[GBPNZD_OCO2S4_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO2Sets4.RemoveAt(GBPNZD_OCO2S4_DOWN_S2);
GBPNZD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO3_EO1_DOWN_S2)
Base.GBPNZD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO3_EO2_DOWN_S2)
Base.GBPNZD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO3_EO3_DOWN_S2)
Base.GBPNZD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO3_EO4_DOWN_S2)
Base.GBPNZD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO1_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP1_GBPNZD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP1,"TP1_GBPNZD_DOWN_S2_OCO3"));
};
Base.GBPNZD_DOWN_S2_OCO3Sets1.Add( Base.GBPNZD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO2_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP2_GBPNZD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP2,"TP2_GBPNZD_DOWN_S2_OCO3"));
};
Base.GBPNZD_DOWN_S2_OCO3Sets2.Add( Base.GBPNZD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO3_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP3_GBPNZD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP3,"TP3_GBPNZD_DOWN_S2_OCO3"));
};
Base.GBPNZD_DOWN_S2_OCO3Sets3.Add( Base.GBPNZD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO3_EO4_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP4_GBPNZD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP4,"TP4_GBPNZD_DOWN_S2_OCO3"));
};
Base.GBPNZD_DOWN_S2_OCO3Sets4.Add( Base.GBPNZD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO3_EO4_DOWN_S2_ID = -1;
}
int GBPNZD_OCO3S1_DOWN_S2 = 0;
for (; GBPNZD_OCO3S1_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets1.Count; GBPNZD_OCO3S1_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets1[GBPNZD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO3Sets1[GBPNZD_OCO3S1_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO3Sets1.RemoveAt(GBPNZD_OCO3S1_DOWN_S2);
GBPNZD_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO3S2_DOWN_S2 = 0;
for (; GBPNZD_OCO3S2_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets2.Count; GBPNZD_OCO3S2_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets2[GBPNZD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO3Sets2[GBPNZD_OCO3S2_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO3Sets2.RemoveAt(GBPNZD_OCO3S2_DOWN_S2);
GBPNZD_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO3S3_DOWN_S2 = 0;
for (; GBPNZD_OCO3S3_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets3.Count; GBPNZD_OCO3S3_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets3[GBPNZD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO3Sets3[GBPNZD_OCO3S3_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO3Sets3.RemoveAt(GBPNZD_OCO3S3_DOWN_S2);
GBPNZD_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO3S4_DOWN_S2 = 0;
for (; GBPNZD_OCO3S4_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets4.Count; GBPNZD_OCO3S4_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets4[GBPNZD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO3Sets4[GBPNZD_OCO3S4_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO3Sets4.RemoveAt(GBPNZD_OCO3S4_DOWN_S2);
GBPNZD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO4_EO1_DOWN_S2)
Base.GBPNZD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO4_EO2_DOWN_S2)
Base.GBPNZD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO4_EO3_DOWN_S2)
Base.GBPNZD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPNZD_OCO4_EO4_DOWN_S2)
Base.GBPNZD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO1_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP1_GBPNZD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP1,"TP1_GBPNZD_DOWN_S2_OCO4"));
};
Base.GBPNZD_DOWN_S2_OCO4Sets1.Add( Base.GBPNZD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO2_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP2_GBPNZD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP2,"TP2_GBPNZD_DOWN_S2_OCO4"));
};
Base.GBPNZD_DOWN_S2_OCO4Sets2.Add( Base.GBPNZD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO3_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP3_GBPNZD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP3,"TP3_GBPNZD_DOWN_S2_OCO4"));
};
Base.GBPNZD_DOWN_S2_OCO4Sets3.Add( Base.GBPNZD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPNZD_OCO4_EO4_DOWN_S2_ID)
{
Base.GBPNZD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPNZD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPNZD_DOWN_S2_SL,"SL_TP4_GBPNZD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPNZD_DOWN_S2_TP4,"TP4_GBPNZD_DOWN_S2_OCO4"));
};
Base.GBPNZD_DOWN_S2_OCO4Sets4.Add( Base.GBPNZD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPNZD_OCO4_EO4_DOWN_S2_ID = -1;
}
int GBPNZD_OCO4S1_DOWN_S2 = 0;
for (; GBPNZD_OCO4S1_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets1.Count; GBPNZD_OCO4S1_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets1[GBPNZD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO4Sets1[GBPNZD_OCO4S1_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO4Sets1.RemoveAt(GBPNZD_OCO4S1_DOWN_S2);
GBPNZD_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO4S2_DOWN_S2 = 0;
for (; GBPNZD_OCO4S2_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets2.Count; GBPNZD_OCO4S2_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets2[GBPNZD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO4Sets2[GBPNZD_OCO4S2_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO4Sets2.RemoveAt(GBPNZD_OCO4S2_DOWN_S2);
GBPNZD_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO4S3_DOWN_S2 = 0;
for (; GBPNZD_OCO4S3_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets3.Count; GBPNZD_OCO4S3_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets3[GBPNZD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO4Sets3[GBPNZD_OCO4S3_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO4Sets3.RemoveAt(GBPNZD_OCO4S3_DOWN_S2);
GBPNZD_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO4S4_DOWN_S2 = 0;
for (; GBPNZD_OCO4S4_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets4.Count; GBPNZD_OCO4S4_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets4[GBPNZD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPNZD_DOWN_S2_OCO4Sets4[GBPNZD_OCO4S4_DOWN_S2].Filled();
Base.GBPNZD_DOWN_S2_OCO4Sets4.RemoveAt(GBPNZD_OCO4S4_DOWN_S2);
GBPNZD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _CADJPY;
///oco1 up
public static OrderTicket CADJPY_OCO1_MO1_UP_S2;
public static OrderTicket CADJPY_OCO1_MO2_UP_S2;
public static OrderTicket CADJPY_OCO1_MO3_UP_S2;
public static OrderTicket CADJPY_OCO1_MO4_UP_S2;
public static OrderTicket CADJPY_OCO1_MO5_UP_S2;
public static OrderTicket CADJPY_OCO1_MO6_UP_S2;
public static int CADJPY_OCO1_EO1_UP_S2_ID ;
public static int CADJPY_OCO1_EO2_UP_S2_ID ;
public static int CADJPY_OCO1_EO3_UP_S2_ID ;
public static int CADJPY_OCO1_EO4_UP_S2_ID ;
public static int CADJPY_OCO1_EO5_UP_S2_ID ;
public static int CADJPY_OCO1_EO6_UP_S2_ID ;
public static bool CADJPY_OCO1_EO1_UP_S2 ;
public static bool CADJPY_OCO1_EO2_UP_S2 ;
public static bool CADJPY_OCO1_EO3_UP_S2 ;
public static bool CADJPY_OCO1_EO4_UP_S2 ;
public static bool CADJPY_OCO1_EO5_UP_S2 ;
public static bool CADJPY_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_UP_S2> CADJPY_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_UP_S2> CADJPY_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_UP_S2> CADJPY_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_UP_S2> CADJPY_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_UP_S2> CADJPY_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_UP_S2> CADJPY_OOFE_OCO1_UP_S2_6 ;
public static CADJPY_OCO1_UP_S2 CADJPY_PFO_OCO1_UP_S2_1 ;
public static CADJPY_OCO1_UP_S2 CADJPY_PFO_OCO1_UP_S2_2 ;
public static CADJPY_OCO1_UP_S2 CADJPY_PFO_OCO1_UP_S2_3 ;
public static CADJPY_OCO1_UP_S2 CADJPY_PFO_OCO1_UP_S2_4 ;
public static CADJPY_OCO1_UP_S2 CADJPY_PFO_OCO1_UP_S2_5 ;
public static CADJPY_OCO1_UP_S2 CADJPY_PFO_OCO1_UP_S2_6 ;
public static List<CADJPY_OCO1_UP_S2> CADJPY_UP_S2_OCO1Sets1 = new List<CADJPY_OCO1_UP_S2>();
public static List<CADJPY_OCO1_UP_S2> CADJPY_UP_S2_OCO1Sets2 = new List<CADJPY_OCO1_UP_S2>();
public static List<CADJPY_OCO1_UP_S2> CADJPY_UP_S2_OCO1Sets3 = new List<CADJPY_OCO1_UP_S2>();
public static List<CADJPY_OCO1_UP_S2> CADJPY_UP_S2_OCO1Sets4 = new List<CADJPY_OCO1_UP_S2>();
public static List<CADJPY_OCO1_UP_S2> CADJPY_UP_S2_OCO1Sets5 = new List<CADJPY_OCO1_UP_S2>();
public static List<CADJPY_OCO1_UP_S2> CADJPY_UP_S2_OCO1Sets6 = new List<CADJPY_OCO1_UP_S2>();
public static bool CADJPY_OCO1_UP_S2_IsReady = true;
public static bool CADJPY_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket CADJPY_OCO1_MO1_DOWN_S2 ;
public static OrderTicket CADJPY_OCO1_MO2_DOWN_S2 ;
public static OrderTicket CADJPY_OCO1_MO3_DOWN_S2 ;
public static OrderTicket CADJPY_OCO1_MO4_DOWN_S2 ;
public static OrderTicket CADJPY_OCO1_MO5_DOWN_S2 ;
public static OrderTicket CADJPY_OCO1_MO6_DOWN_S2 ;
public static int CADJPY_OCO1_EO1_DOWN_S2_ID ;
public static int CADJPY_OCO1_EO2_DOWN_S2_ID ;
public static int CADJPY_OCO1_EO3_DOWN_S2_ID ;
public static int CADJPY_OCO1_EO4_DOWN_S2_ID ;
public static int CADJPY_OCO1_EO5_DOWN_S2_ID ;
public static int CADJPY_OCO1_EO6_DOWN_S2_ID ;
public static bool CADJPY_OCO1_EO1_DOWN_S2 ;
public static bool CADJPY_OCO1_EO2_DOWN_S2 ;
public static bool CADJPY_OCO1_EO3_DOWN_S2 ;
public static bool CADJPY_OCO1_EO4_DOWN_S2 ;
public static bool CADJPY_OCO1_EO5_DOWN_S2 ;
public static bool CADJPY_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_DOWN_S2> CADJPY_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_DOWN_S2> CADJPY_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_DOWN_S2> CADJPY_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_DOWN_S2> CADJPY_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_DOWN_S2> CADJPY_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO1_DOWN_S2> CADJPY_OOFE_OCO1_DOWN_S2_6 ;
public static CADJPY_OCO1_DOWN_S2 CADJPY_PFO_OCO1_DOWN_S2_1 ;
public static CADJPY_OCO1_DOWN_S2 CADJPY_PFO_OCO1_DOWN_S2_2 ;
public static CADJPY_OCO1_DOWN_S2 CADJPY_PFO_OCO1_DOWN_S2_3 ;
public static CADJPY_OCO1_DOWN_S2 CADJPY_PFO_OCO1_DOWN_S2_4 ;
public static CADJPY_OCO1_DOWN_S2 CADJPY_PFO_OCO1_DOWN_S2_5 ;
public static CADJPY_OCO1_DOWN_S2 CADJPY_PFO_OCO1_DOWN_S2_6 ;
public static List<CADJPY_OCO1_DOWN_S2> CADJPY_DOWN_S2_OCO1Sets1 = new List<CADJPY_OCO1_DOWN_S2>();
public static List<CADJPY_OCO1_DOWN_S2> CADJPY_DOWN_S2_OCO1Sets2 = new List<CADJPY_OCO1_DOWN_S2>();
public static List<CADJPY_OCO1_DOWN_S2> CADJPY_DOWN_S2_OCO1Sets3 = new List<CADJPY_OCO1_DOWN_S2>();
public static List<CADJPY_OCO1_DOWN_S2> CADJPY_DOWN_S2_OCO1Sets4 = new List<CADJPY_OCO1_DOWN_S2>();
public static List<CADJPY_OCO1_DOWN_S2> CADJPY_DOWN_S2_OCO1Sets5 = new List<CADJPY_OCO1_DOWN_S2>();
public static List<CADJPY_OCO1_DOWN_S2> CADJPY_DOWN_S2_OCO1Sets6 = new List<CADJPY_OCO1_DOWN_S2>();
public static bool CADJPY_OCO1_DOWN_S2_IsReady = true;
public static bool CADJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket CADJPY_OCO2_MO1_UP_S2 ;
public static OrderTicket CADJPY_OCO2_MO2_UP_S2 ;
public static OrderTicket CADJPY_OCO2_MO3_UP_S2 ;
public static OrderTicket CADJPY_OCO2_MO4_UP_S2 ;
public static OrderTicket CADJPY_OCO2_MO5_UP_S2 ;
public static OrderTicket CADJPY_OCO2_MO6_UP_S2 ;
public static int CADJPY_OCO2_EO1_UP_S2_ID ;
public static int CADJPY_OCO2_EO2_UP_S2_ID ;
public static int CADJPY_OCO2_EO3_UP_S2_ID ;
public static int CADJPY_OCO2_EO4_UP_S2_ID ;
public static int CADJPY_OCO2_EO5_UP_S2_ID ;
public static int CADJPY_OCO2_EO6_UP_S2_ID ;
public static bool CADJPY_OCO2_EO1_UP_S2 ;
public static bool CADJPY_OCO2_EO2_UP_S2 ;
public static bool CADJPY_OCO2_EO3_UP_S2 ;
public static bool CADJPY_OCO2_EO4_UP_S2 ;
public static bool CADJPY_OCO2_EO5_UP_S2 ;
public static bool CADJPY_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_UP_S2> CADJPY_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_UP_S2> CADJPY_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_UP_S2> CADJPY_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_UP_S2> CADJPY_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_UP_S2> CADJPY_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_UP_S2> CADJPY_OOFE_OCO2_UP_S2_6 ;
public static CADJPY_OCO2_UP_S2 CADJPY_PFO_OCO2_UP_S2_1 ;
public static CADJPY_OCO2_UP_S2 CADJPY_PFO_OCO2_UP_S2_2 ;
public static CADJPY_OCO2_UP_S2 CADJPY_PFO_OCO2_UP_S2_3 ;
public static CADJPY_OCO2_UP_S2 CADJPY_PFO_OCO2_UP_S2_4 ;
public static CADJPY_OCO2_UP_S2 CADJPY_PFO_OCO2_UP_S2_5 ;
public static CADJPY_OCO2_UP_S2 CADJPY_PFO_OCO2_UP_S2_6 ;
public static List<CADJPY_OCO2_UP_S2> CADJPY_UP_S2_OCO2Sets1 = new List<CADJPY_OCO2_UP_S2>();
public static List<CADJPY_OCO2_UP_S2> CADJPY_UP_S2_OCO2Sets2 = new List<CADJPY_OCO2_UP_S2>();
public static List<CADJPY_OCO2_UP_S2> CADJPY_UP_S2_OCO2Sets3 = new List<CADJPY_OCO2_UP_S2>();
public static List<CADJPY_OCO2_UP_S2> CADJPY_UP_S2_OCO2Sets4 = new List<CADJPY_OCO2_UP_S2>();
public static List<CADJPY_OCO2_UP_S2> CADJPY_UP_S2_OCO2Sets5 = new List<CADJPY_OCO2_UP_S2>();
public static List<CADJPY_OCO2_UP_S2> CADJPY_UP_S2_OCO2Sets6 = new List<CADJPY_OCO2_UP_S2>();
public static bool CADJPY_OCO2_UP_S2_IsReady = true;
public static bool CADJPY_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket CADJPY_OCO2_MO1_DOWN_S2 ;
public static OrderTicket CADJPY_OCO2_MO2_DOWN_S2 ;
public static OrderTicket CADJPY_OCO2_MO3_DOWN_S2 ;
public static OrderTicket CADJPY_OCO2_MO4_DOWN_S2 ;
public static OrderTicket CADJPY_OCO2_MO5_DOWN_S2 ;
public static OrderTicket CADJPY_OCO2_MO6_DOWN_S2 ;
public static int CADJPY_OCO2_EO1_DOWN_S2_ID ;
public static int CADJPY_OCO2_EO2_DOWN_S2_ID ;
public static int CADJPY_OCO2_EO3_DOWN_S2_ID ;
public static int CADJPY_OCO2_EO4_DOWN_S2_ID ;
public static int CADJPY_OCO2_EO5_DOWN_S2_ID ;
public static int CADJPY_OCO2_EO6_DOWN_S2_ID ;
public static bool CADJPY_OCO2_EO1_DOWN_S2 ;
public static bool CADJPY_OCO2_EO2_DOWN_S2 ;
public static bool CADJPY_OCO2_EO3_DOWN_S2 ;
public static bool CADJPY_OCO2_EO4_DOWN_S2 ;
public static bool CADJPY_OCO2_EO5_DOWN_S2 ;
public static bool CADJPY_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_DOWN_S2> CADJPY_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_DOWN_S2> CADJPY_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_DOWN_S2> CADJPY_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_DOWN_S2> CADJPY_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_DOWN_S2> CADJPY_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO2_DOWN_S2> CADJPY_OOFE_OCO2_DOWN_S2_6 ;
public static CADJPY_OCO2_DOWN_S2 CADJPY_PFO_OCO2_DOWN_S2_1 ;
public static CADJPY_OCO2_DOWN_S2 CADJPY_PFO_OCO2_DOWN_S2_2 ;
public static CADJPY_OCO2_DOWN_S2 CADJPY_PFO_OCO2_DOWN_S2_3 ;
public static CADJPY_OCO2_DOWN_S2 CADJPY_PFO_OCO2_DOWN_S2_4 ;
public static CADJPY_OCO2_DOWN_S2 CADJPY_PFO_OCO2_DOWN_S2_5 ;
public static CADJPY_OCO2_DOWN_S2 CADJPY_PFO_OCO2_DOWN_S2_6 ;
public static List<CADJPY_OCO2_DOWN_S2> CADJPY_DOWN_S2_OCO2Sets1 = new List<CADJPY_OCO2_DOWN_S2>();
public static List<CADJPY_OCO2_DOWN_S2> CADJPY_DOWN_S2_OCO2Sets2 = new List<CADJPY_OCO2_DOWN_S2>();
public static List<CADJPY_OCO2_DOWN_S2> CADJPY_DOWN_S2_OCO2Sets3 = new List<CADJPY_OCO2_DOWN_S2>();
public static List<CADJPY_OCO2_DOWN_S2> CADJPY_DOWN_S2_OCO2Sets4 = new List<CADJPY_OCO2_DOWN_S2>();
public static List<CADJPY_OCO2_DOWN_S2> CADJPY_DOWN_S2_OCO2Sets5 = new List<CADJPY_OCO2_DOWN_S2>();
public static List<CADJPY_OCO2_DOWN_S2> CADJPY_DOWN_S2_OCO2Sets6 = new List<CADJPY_OCO2_DOWN_S2>();
public static bool CADJPY_OCO2_DOWN_S2_IsReady = true;
public static bool CADJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket CADJPY_OCO3_MO1_UP_S2 ;
public static OrderTicket CADJPY_OCO3_MO2_UP_S2 ;
public static OrderTicket CADJPY_OCO3_MO3_UP_S2 ;
public static OrderTicket CADJPY_OCO3_MO4_UP_S2 ;
public static OrderTicket CADJPY_OCO3_MO5_UP_S2 ;
public static OrderTicket CADJPY_OCO3_MO6_UP_S2 ;
public static int CADJPY_OCO3_EO1_UP_S2_ID ;
public static int CADJPY_OCO3_EO2_UP_S2_ID ;
public static int CADJPY_OCO3_EO3_UP_S2_ID ;
public static int CADJPY_OCO3_EO4_UP_S2_ID ;
public static int CADJPY_OCO3_EO5_UP_S2_ID ;
public static int CADJPY_OCO3_EO6_UP_S2_ID ;
public static bool CADJPY_OCO3_EO1_UP_S2 ;
public static bool CADJPY_OCO3_EO2_UP_S2 ;
public static bool CADJPY_OCO3_EO3_UP_S2 ;
public static bool CADJPY_OCO3_EO4_UP_S2 ;
public static bool CADJPY_OCO3_EO5_UP_S2 ;
public static bool CADJPY_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_UP_S2> CADJPY_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_UP_S2> CADJPY_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_UP_S2> CADJPY_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_UP_S2> CADJPY_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_UP_S2> CADJPY_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_UP_S2> CADJPY_OOFE_OCO3_UP_S2_6 ;
public static CADJPY_OCO3_UP_S2 CADJPY_PFO_OCO3_UP_S2_1 ;
public static CADJPY_OCO3_UP_S2 CADJPY_PFO_OCO3_UP_S2_2 ;
public static CADJPY_OCO3_UP_S2 CADJPY_PFO_OCO3_UP_S2_3 ;
public static CADJPY_OCO3_UP_S2 CADJPY_PFO_OCO3_UP_S2_4 ;
public static CADJPY_OCO3_UP_S2 CADJPY_PFO_OCO3_UP_S2_5 ;
public static CADJPY_OCO3_UP_S2 CADJPY_PFO_OCO3_UP_S2_6 ;
public static List<CADJPY_OCO3_UP_S2> CADJPY_UP_S2_OCO3Sets1 = new List<CADJPY_OCO3_UP_S2>();
public static List<CADJPY_OCO3_UP_S2> CADJPY_UP_S2_OCO3Sets2 = new List<CADJPY_OCO3_UP_S2>();
public static List<CADJPY_OCO3_UP_S2> CADJPY_UP_S2_OCO3Sets3 = new List<CADJPY_OCO3_UP_S2>();
public static List<CADJPY_OCO3_UP_S2> CADJPY_UP_S2_OCO3Sets4 = new List<CADJPY_OCO3_UP_S2>();
public static List<CADJPY_OCO3_UP_S2> CADJPY_UP_S2_OCO3Sets5 = new List<CADJPY_OCO3_UP_S2>();
public static List<CADJPY_OCO3_UP_S2> CADJPY_UP_S2_OCO3Sets6 = new List<CADJPY_OCO3_UP_S2>();
public static bool CADJPY_OCO3_UP_S2_IsReady = true;
public static bool CADJPY_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket CADJPY_OCO3_MO1_DOWN_S2 ;
public static OrderTicket CADJPY_OCO3_MO2_DOWN_S2 ;
public static OrderTicket CADJPY_OCO3_MO3_DOWN_S2 ;
public static OrderTicket CADJPY_OCO3_MO4_DOWN_S2 ;
public static OrderTicket CADJPY_OCO3_MO5_DOWN_S2 ;
public static OrderTicket CADJPY_OCO3_MO6_DOWN_S2 ;
public static int CADJPY_OCO3_EO1_DOWN_S2_ID ;
public static int CADJPY_OCO3_EO2_DOWN_S2_ID ;
public static int CADJPY_OCO3_EO3_DOWN_S2_ID ;
public static int CADJPY_OCO3_EO4_DOWN_S2_ID ;
public static int CADJPY_OCO3_EO5_DOWN_S2_ID ;
public static int CADJPY_OCO3_EO6_DOWN_S2_ID ;
public static bool CADJPY_OCO3_EO1_DOWN_S2 ;
public static bool CADJPY_OCO3_EO2_DOWN_S2 ;
public static bool CADJPY_OCO3_EO3_DOWN_S2 ;
public static bool CADJPY_OCO3_EO4_DOWN_S2 ;
public static bool CADJPY_OCO3_EO5_DOWN_S2 ;
public static bool CADJPY_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_DOWN_S2> CADJPY_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_DOWN_S2> CADJPY_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_DOWN_S2> CADJPY_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_DOWN_S2> CADJPY_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_DOWN_S2> CADJPY_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO3_DOWN_S2> CADJPY_OOFE_OCO3_DOWN_S2_6 ;
public static CADJPY_OCO3_DOWN_S2 CADJPY_PFO_OCO3_DOWN_S2_1 ;
public static CADJPY_OCO3_DOWN_S2 CADJPY_PFO_OCO3_DOWN_S2_2 ;
public static CADJPY_OCO3_DOWN_S2 CADJPY_PFO_OCO3_DOWN_S2_3 ;
public static CADJPY_OCO3_DOWN_S2 CADJPY_PFO_OCO3_DOWN_S2_4 ;
public static CADJPY_OCO3_DOWN_S2 CADJPY_PFO_OCO3_DOWN_S2_5 ;
public static CADJPY_OCO3_DOWN_S2 CADJPY_PFO_OCO3_DOWN_S2_6 ;
public static List<CADJPY_OCO3_DOWN_S2> CADJPY_DOWN_S2_OCO3Sets1 = new List<CADJPY_OCO3_DOWN_S2>();
public static List<CADJPY_OCO3_DOWN_S2> CADJPY_DOWN_S2_OCO3Sets2 = new List<CADJPY_OCO3_DOWN_S2>();
public static List<CADJPY_OCO3_DOWN_S2> CADJPY_DOWN_S2_OCO3Sets3 = new List<CADJPY_OCO3_DOWN_S2>();
public static List<CADJPY_OCO3_DOWN_S2> CADJPY_DOWN_S2_OCO3Sets4 = new List<CADJPY_OCO3_DOWN_S2>();
public static List<CADJPY_OCO3_DOWN_S2> CADJPY_DOWN_S2_OCO3Sets5 = new List<CADJPY_OCO3_DOWN_S2>();
public static List<CADJPY_OCO3_DOWN_S2> CADJPY_DOWN_S2_OCO3Sets6 = new List<CADJPY_OCO3_DOWN_S2>();
public static bool CADJPY_OCO3_DOWN_S2_IsReady = true;
public static bool CADJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket CADJPY_OCO4_MO1_UP_S2 ;
public static OrderTicket CADJPY_OCO4_MO2_UP_S2 ;
public static OrderTicket CADJPY_OCO4_MO3_UP_S2 ;
public static OrderTicket CADJPY_OCO4_MO4_UP_S2 ;
public static OrderTicket CADJPY_OCO4_MO5_UP_S2 ;
public static OrderTicket CADJPY_OCO4_MO6_UP_S2 ;
public static int CADJPY_OCO4_EO1_UP_S2_ID ;
public static int CADJPY_OCO4_EO2_UP_S2_ID ;
public static int CADJPY_OCO4_EO3_UP_S2_ID ;
public static int CADJPY_OCO4_EO4_UP_S2_ID ;
public static int CADJPY_OCO4_EO5_UP_S2_ID ;
public static int CADJPY_OCO4_EO6_UP_S2_ID ;
public static bool CADJPY_OCO4_EO1_UP_S2 ;
public static bool CADJPY_OCO4_EO2_UP_S2 ;
public static bool CADJPY_OCO4_EO3_UP_S2 ;
public static bool CADJPY_OCO4_EO4_UP_S2 ;
public static bool CADJPY_OCO4_EO5_UP_S2 ;
public static bool CADJPY_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_UP_S2> CADJPY_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_UP_S2> CADJPY_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_UP_S2> CADJPY_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_UP_S2> CADJPY_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_UP_S2> CADJPY_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_UP_S2> CADJPY_OOFE_OCO4_UP_S2_6 ;
public static CADJPY_OCO4_UP_S2 CADJPY_PFO_OCO4_UP_S2_1 ;
public static CADJPY_OCO4_UP_S2 CADJPY_PFO_OCO4_UP_S2_2 ;
public static CADJPY_OCO4_UP_S2 CADJPY_PFO_OCO4_UP_S2_3 ;
public static CADJPY_OCO4_UP_S2 CADJPY_PFO_OCO4_UP_S2_4 ;
public static CADJPY_OCO4_UP_S2 CADJPY_PFO_OCO4_UP_S2_5 ;
public static CADJPY_OCO4_UP_S2 CADJPY_PFO_OCO4_UP_S2_6 ;
public static List<CADJPY_OCO4_UP_S2> CADJPY_UP_S2_OCO4Sets1 = new List<CADJPY_OCO4_UP_S2>();
public static List<CADJPY_OCO4_UP_S2> CADJPY_UP_S2_OCO4Sets2 = new List<CADJPY_OCO4_UP_S2>();
public static List<CADJPY_OCO4_UP_S2> CADJPY_UP_S2_OCO4Sets3 = new List<CADJPY_OCO4_UP_S2>();
public static List<CADJPY_OCO4_UP_S2> CADJPY_UP_S2_OCO4Sets4 = new List<CADJPY_OCO4_UP_S2>();
public static List<CADJPY_OCO4_UP_S2> CADJPY_UP_S2_OCO4Sets5 = new List<CADJPY_OCO4_UP_S2>();
public static List<CADJPY_OCO4_UP_S2> CADJPY_UP_S2_OCO4Sets6 = new List<CADJPY_OCO4_UP_S2>();
public static bool CADJPY_OCO4_UP_S2_IsReady = true;
public static bool CADJPY_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket CADJPY_OCO4_MO1_DOWN_S2 ;
public static OrderTicket CADJPY_OCO4_MO2_DOWN_S2 ;
public static OrderTicket CADJPY_OCO4_MO3_DOWN_S2 ;
public static OrderTicket CADJPY_OCO4_MO4_DOWN_S2 ;
public static OrderTicket CADJPY_OCO4_MO5_DOWN_S2 ;
public static OrderTicket CADJPY_OCO4_MO6_DOWN_S2 ;
public static int CADJPY_OCO4_EO1_DOWN_S2_ID ;
public static int CADJPY_OCO4_EO2_DOWN_S2_ID ;
public static int CADJPY_OCO4_EO3_DOWN_S2_ID ;
public static int CADJPY_OCO4_EO4_DOWN_S2_ID ;
public static int CADJPY_OCO4_EO5_DOWN_S2_ID ;
public static int CADJPY_OCO4_EO6_DOWN_S2_ID ;
public static bool CADJPY_OCO4_EO1_DOWN_S2 ;
public static bool CADJPY_OCO4_EO2_DOWN_S2 ;
public static bool CADJPY_OCO4_EO3_DOWN_S2 ;
public static bool CADJPY_OCO4_EO4_DOWN_S2 ;
public static bool CADJPY_OCO4_EO5_DOWN_S2 ;
public static bool CADJPY_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_DOWN_S2> CADJPY_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_DOWN_S2> CADJPY_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_DOWN_S2> CADJPY_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_DOWN_S2> CADJPY_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_DOWN_S2> CADJPY_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, CADJPY_OCO4_DOWN_S2> CADJPY_OOFE_OCO4_DOWN_S2_6 ;
public static CADJPY_OCO4_DOWN_S2 CADJPY_PFO_OCO4_DOWN_S2_1 ;
public static CADJPY_OCO4_DOWN_S2 CADJPY_PFO_OCO4_DOWN_S2_2 ;
public static CADJPY_OCO4_DOWN_S2 CADJPY_PFO_OCO4_DOWN_S2_3 ;
public static CADJPY_OCO4_DOWN_S2 CADJPY_PFO_OCO4_DOWN_S2_4 ;
public static CADJPY_OCO4_DOWN_S2 CADJPY_PFO_OCO4_DOWN_S2_5 ;
public static CADJPY_OCO4_DOWN_S2 CADJPY_PFO_OCO4_DOWN_S2_6 ;
public static List<CADJPY_OCO4_DOWN_S2> CADJPY_DOWN_S2_OCO4Sets1 = new List<CADJPY_OCO4_DOWN_S2>();
public static List<CADJPY_OCO4_DOWN_S2> CADJPY_DOWN_S2_OCO4Sets2 = new List<CADJPY_OCO4_DOWN_S2>();
public static List<CADJPY_OCO4_DOWN_S2> CADJPY_DOWN_S2_OCO4Sets3 = new List<CADJPY_OCO4_DOWN_S2>();
public static List<CADJPY_OCO4_DOWN_S2> CADJPY_DOWN_S2_OCO4Sets4 = new List<CADJPY_OCO4_DOWN_S2>();
public static List<CADJPY_OCO4_DOWN_S2> CADJPY_DOWN_S2_OCO4Sets5 = new List<CADJPY_OCO4_DOWN_S2>();
public static List<CADJPY_OCO4_DOWN_S2> CADJPY_DOWN_S2_OCO4Sets6 = new List<CADJPY_OCO4_DOWN_S2>();
public static bool CADJPY_OCO4_DOWN_S2_IsReady = true;
public static bool CADJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal CADJPY_UP_S2_SL {get; set;}
public static decimal CADJPY_UP_S2_TP1 {get; set;}
public static decimal CADJPY_UP_S2_TP2 {get; set;}
public static decimal CADJPY_UP_S2_TP3 {get; set;}
public static decimal CADJPY_UP_S2_TP4 {get; set;}
public static decimal CADJPY_UP_S2_TP5 {get; set;}
public static decimal CADJPY_UP_S2_TP6 {get; set;}
public static decimal CADJPY_DOWN_S2_SL {get; set;}
public static decimal CADJPY_DOWN_S2_TP1 {get; set;}
public static decimal CADJPY_DOWN_S2_TP2 {get; set;}
public static decimal CADJPY_DOWN_S2_TP3 {get; set;}
public static decimal CADJPY_DOWN_S2_TP4 {get; set;}
public static decimal CADJPY_DOWN_S2_TP5 {get; set;}
public static decimal CADJPY_DOWN_S2_TP6 {get; set;}
public static bool CADJPY_Signal_Condition_UP_1 ;
public static bool CADJPY_Signal_Condition_UP_2 ;
public static bool CADJPY_Signal_Condition_UP_3 ;
public static bool CADJPY_Signal_Condition_DOWN_1 ;
public static bool CADJPY_Signal_Condition_DOWN_2 ;
public static bool CADJPY_Signal_Condition_DOWN_3 ;
public static int CADJPY_UP_S2_OCO_DELAY_7DAY = 10080;
public static int CADJPY_UP_S2_OCOM_DELAY_DAY = 4320;
public static int CADJPY_UP_S2_OCOT_DELAY_DAY = 2880;
public static int CADJPY_UP_S2_OCOW_DELAY_DAY = 1440;
public static int CADJPY_UP_S2_OCOTH_DELAY_DAY = 720;
public static int CADJPY_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int CADJPY_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int CADJPY_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int CADJPY_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int CADJPY_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_CADJPY_UP_S2 ;
public static bool DOWM_CADJPY_UP_S2 ;
public static bool DOWT_CADJPY_UP_S2 ;
public static bool DOWW_CADJPY_UP_S2 ;
public static bool DOWTH_CADJPY_UP_S2 ;
public static bool DOWR_CADJPY_DOWN_S2 ;
public static bool DOWM_CADJPY_DOWN_S2 ;
public static bool DOWT_CADJPY_DOWN_S2 ;
public static bool DOWW_CADJPY_DOWN_S2 ;
public static bool DOWTH_CADJPY_DOWN_S2 ;
public static int CADJPY_quantity_UP_S2 ;
public static int CADJPY_quantity_SL_UP_S2 ;
public static int CADJPY_quantity_TP1_UP_S2 ;
public static int CADJPY_quantity_TP2_UP_S2 ;
public static int CADJPY_quantity_TP3_UP_S2 ;
public static int CADJPY_quantity_TP4_UP_S2 ;
public static int CADJPY_quantity_TP5_UP_S2;
public static int CADJPY_quantity_TP6_UP_S2 ;
public static int CADJPY_quantity_DOWN_S2 ;
public static int CADJPY_quantity_SL_DOWN_S2 ;
public static int CADJPY_quantity_TP1_DOWN_S2 ;
public static int CADJPY_quantity_TP2_DOWN_S2 ;
public static int CADJPY_quantity_TP3_DOWN_S2 ;
public static int CADJPY_quantity_TP4_DOWN_S2 ;
public static int CADJPY_quantity_TP5_DOWN_S2;
public static int CADJPY_quantity_TP6_DOWN_S2 ;
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct GBPNZD_OCO1_DOWN_S2
{
public GBPNZD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPNZD_OCO1_UP_S2
{
public GBPNZD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPNZD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPNZD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPNZD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPNZD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPNZD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPNZD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPNZD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPNZD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPNZD_OCO2_DOWN_S2
{
public GBPNZD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPNZD_OCO2_UP_S2
{
public GBPNZD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPNZD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPNZD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPNZD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPNZD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPNZD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPNZD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPNZD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPNZD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPNZD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPNZD_OCO3_DOWN_S2
{
public GBPNZD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPNZD_OCO3_UP_S2
{
public GBPNZD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPNZD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPNZD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPNZD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPNZD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPNZD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPNZD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPNZD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPNZD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPNZD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPNZD_OCO4_DOWN_S2
{
public GBPNZD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPNZD_OCO4_UP_S2
{
public GBPNZD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPNZD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPNZD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPNZD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPNZD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPNZD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPNZD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPNZD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPNZD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPNZD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
namespace QuantConnect.Data.Consolidators
{
[Obsolete("CalendarType is obsolete, please use Calendar instead")]
public static class CalendarTypee
{
/// <summary>
/// Computes the start of week (previous Monday) of given date/time
/// </summary>
public static Func<DateTime, CalendarInfo> Weekly => Calendar.Weekly;
/// <summary>
/// Computes the start of month (1st of the current month) of given date/time
/// </summary>
public static Func<DateTime, CalendarInfo> Monthly => Calendar.Monthly;
public static Func<DateTime, CalendarInfo> Yearly => Calendar.Yearly;
public static Func<DateTime, CalendarInfo> Quarterly => Calendar.Quarterly;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPAUD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPAUD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
}
if (Base.GBPAUD_OCO1_EO1_UP_S2)
Base.GBPAUD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO1_EO2_UP_S2)
Base.GBPAUD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO1_EO3_UP_S2)
Base.GBPAUD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO1_EO4_UP_S2)
Base.GBPAUD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO1_EO5_UP_S2)
Base.GBPAUD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO1_EO6_UP_S2)
Base.GBPAUD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO1_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP1,"TP1_GBPAUD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP1_GBPAUD_UP_S2_OCO1"));
};
Base.GBPAUD_UP_S2_OCO1Sets1.Add( Base.GBPAUD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO2_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP2,"TP2_GBPAUD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP2_GBPAUD_UP_S2_OCO1"));
};
Base.GBPAUD_UP_S2_OCO1Sets2.Add( Base.GBPAUD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO3_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP3,"TP3_GBPAUD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP3_GBPAUD_UP_S2_OCO1"));
};
Base.GBPAUD_UP_S2_OCO1Sets3.Add( Base.GBPAUD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO4_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP4,"TP4_GBPAUD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP4_GBPAUD_UP_S2_OCO1"));
};
Base.GBPAUD_UP_S2_OCO1Sets4.Add( Base.GBPAUD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO5_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP5,"TP5_GBPAUD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP5_GBPAUD_UP_S2_OCO1"));
};
Base.GBPAUD_UP_S2_OCO1Sets5.Add( Base.GBPAUD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO6_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP6,"TP6_GBPAUD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP6_GBPAUD_UP_S2_OCO1"));
};
Base.GBPAUD_UP_S2_OCO1Sets6.Add( Base.GBPAUD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO6_UP_S2_ID = -1;
}
int GBPAUD_OCO1S1_UP_S2 = 0;
for (; GBPAUD_OCO1S1_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets1.Count; GBPAUD_OCO1S1_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets1[GBPAUD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO1Sets1[GBPAUD_OCO1S1_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO1Sets1.RemoveAt(GBPAUD_OCO1S1_UP_S2);
GBPAUD_OCO1S1_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S2_UP_S2 = 0;
for (; GBPAUD_OCO1S2_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets2.Count; GBPAUD_OCO1S2_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets2[GBPAUD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO1Sets2[GBPAUD_OCO1S2_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO1Sets2.RemoveAt(GBPAUD_OCO1S2_UP_S2);
GBPAUD_OCO1S2_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S3_UP_S2 = 0;
for (; GBPAUD_OCO1S3_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets3.Count; GBPAUD_OCO1S3_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets3[GBPAUD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO1Sets3[GBPAUD_OCO1S3_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO1Sets3.RemoveAt(GBPAUD_OCO1S3_UP_S2);
GBPAUD_OCO1S3_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S4_UP_S2 = 0;
for (; GBPAUD_OCO1S4_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets4.Count; GBPAUD_OCO1S4_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets4[GBPAUD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO1Sets4[GBPAUD_OCO1S4_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO1Sets4.RemoveAt(GBPAUD_OCO1S4_UP_S2);
GBPAUD_OCO1S4_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S5_UP_S2 = 0;
for (; GBPAUD_OCO1S5_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets5.Count; GBPAUD_OCO1S5_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets5[GBPAUD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO1Sets5[GBPAUD_OCO1S5_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO1Sets5.RemoveAt(GBPAUD_OCO1S5_UP_S2);
GBPAUD_OCO1S5_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S6_UP_S2 = 0;
for (; GBPAUD_OCO1S6_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets6.Count; GBPAUD_OCO1S6_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets6[GBPAUD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO1Sets6[GBPAUD_OCO1S6_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO1Sets6.RemoveAt(GBPAUD_OCO1S6_UP_S2);
GBPAUD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO2_EO1_UP_S2)
Base.GBPAUD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO2_EO2_UP_S2)
Base.GBPAUD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO2_EO3_UP_S2)
Base.GBPAUD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO2_EO4_UP_S2)
Base.GBPAUD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO2_EO5_UP_S2)
Base.GBPAUD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO2_EO6_UP_S2)
Base.GBPAUD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO1_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP1,"TP1_GBPAUD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP1_GBPAUD_UP_S2_OCO2"));
};
Base.GBPAUD_UP_S2_OCO2Sets1.Add( Base.GBPAUD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO2_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP2,"TP2_GBPAUD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP2_GBPAUD_UP_S2_OCO2"));
};
Base.GBPAUD_UP_S2_OCO2Sets2.Add( Base.GBPAUD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO3_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP3,"TP3_GBPAUD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP3_GBPAUD_UP_S2_OCO2"));
};
Base.GBPAUD_UP_S2_OCO2Sets3.Add( Base.GBPAUD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO4_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP4,"TP4_GBPAUD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP4_GBPAUD_UP_S2_OCO2"));
};
Base.GBPAUD_UP_S2_OCO2Sets4.Add( Base.GBPAUD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO5_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP5,"TP5_GBPAUD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP5_GBPAUD_UP_S2_OCO2"));
};
Base.GBPAUD_UP_S2_OCO2Sets5.Add( Base.GBPAUD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO6_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP6,"TP6_GBPAUD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP6_GBPAUD_UP_S2_OCO2"));
};
Base.GBPAUD_UP_S2_OCO2Sets6.Add( Base.GBPAUD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO6_UP_S2_ID = -1;
}
int GBPAUD_OCO2S1_UP_S2 = 0;
for (; GBPAUD_OCO2S1_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets1.Count; GBPAUD_OCO2S1_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets1[GBPAUD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO2Sets1[GBPAUD_OCO2S1_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO2Sets1.RemoveAt(GBPAUD_OCO2S1_UP_S2);
GBPAUD_OCO2S1_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S2_UP_S2 = 0;
for (; GBPAUD_OCO2S2_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets2.Count; GBPAUD_OCO2S2_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets2[GBPAUD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO2Sets2[GBPAUD_OCO2S2_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO2Sets2.RemoveAt(GBPAUD_OCO2S2_UP_S2);
GBPAUD_OCO2S2_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S3_UP_S2 = 0;
for (; GBPAUD_OCO2S3_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets3.Count; GBPAUD_OCO2S3_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets3[GBPAUD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO2Sets3[GBPAUD_OCO2S3_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO2Sets3.RemoveAt(GBPAUD_OCO2S3_UP_S2);
GBPAUD_OCO2S3_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S4_UP_S2 = 0;
for (; GBPAUD_OCO2S4_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets4.Count; GBPAUD_OCO2S4_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets4[GBPAUD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO2Sets4[GBPAUD_OCO2S4_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO2Sets4.RemoveAt(GBPAUD_OCO2S4_UP_S2);
GBPAUD_OCO2S4_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S5_UP_S2 = 0;
for (; GBPAUD_OCO2S5_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets5.Count; GBPAUD_OCO2S5_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets5[GBPAUD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO2Sets5[GBPAUD_OCO2S5_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO2Sets5.RemoveAt(GBPAUD_OCO2S5_UP_S2);
GBPAUD_OCO2S5_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S6_UP_S2 = 0;
for (; GBPAUD_OCO2S6_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets6.Count; GBPAUD_OCO2S6_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets6[GBPAUD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO2Sets6[GBPAUD_OCO2S6_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO2Sets6.RemoveAt(GBPAUD_OCO2S6_UP_S2);
GBPAUD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO3_EO1_UP_S2)
Base.GBPAUD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO3_EO2_UP_S2)
Base.GBPAUD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO3_EO3_UP_S2)
Base.GBPAUD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO3_EO4_UP_S2)
Base.GBPAUD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO3_EO5_UP_S2)
Base.GBPAUD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO3_EO6_UP_S2)
Base.GBPAUD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO1_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP1,"TP1_GBPAUD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP1_GBPAUD_UP_S2_OCO3"));
};
Base.GBPAUD_UP_S2_OCO3Sets1.Add( Base.GBPAUD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO2_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP2,"TP2_GBPAUD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP2_GBPAUD_UP_S2_OCO3"));
};
Base.GBPAUD_UP_S2_OCO3Sets2.Add( Base.GBPAUD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO3_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP3,"TP3_GBPAUD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP3_GBPAUD_UP_S2_OCO3"));
};
Base.GBPAUD_UP_S2_OCO3Sets3.Add( Base.GBPAUD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO4_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP4,"TP4_GBPAUD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP4_GBPAUD_UP_S2_OCO3"));
};
Base.GBPAUD_UP_S2_OCO3Sets4.Add( Base.GBPAUD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO5_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP5,"TP5_GBPAUD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP5_GBPAUD_UP_S2_OCO3"));
};
Base.GBPAUD_UP_S2_OCO3Sets5.Add( Base.GBPAUD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO6_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP6,"TP6_GBPAUD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP6_GBPAUD_UP_S2_OCO3"));
};
Base.GBPAUD_UP_S2_OCO3Sets6.Add( Base.GBPAUD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO6_UP_S2_ID = -1;
}
int GBPAUD_OCO3S1_UP_S2 = 0;
for (; GBPAUD_OCO3S1_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets1.Count; GBPAUD_OCO3S1_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets1[GBPAUD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO3Sets1[GBPAUD_OCO3S1_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO3Sets1.RemoveAt(GBPAUD_OCO3S1_UP_S2);
GBPAUD_OCO3S1_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S2_UP_S2 = 0;
for (; GBPAUD_OCO3S2_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets2.Count; GBPAUD_OCO3S2_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets2[GBPAUD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO3Sets2[GBPAUD_OCO3S2_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO3Sets2.RemoveAt(GBPAUD_OCO3S2_UP_S2);
GBPAUD_OCO3S2_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S3_UP_S2 = 0;
for (; GBPAUD_OCO3S3_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets3.Count; GBPAUD_OCO3S3_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets3[GBPAUD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO3Sets3[GBPAUD_OCO3S3_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO3Sets3.RemoveAt(GBPAUD_OCO3S3_UP_S2);
GBPAUD_OCO3S3_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S4_UP_S2 = 0;
for (; GBPAUD_OCO3S4_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets4.Count; GBPAUD_OCO3S4_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets4[GBPAUD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO3Sets4[GBPAUD_OCO3S4_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO3Sets4.RemoveAt(GBPAUD_OCO3S4_UP_S2);
GBPAUD_OCO3S4_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S5_UP_S2 = 0;
for (; GBPAUD_OCO3S5_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets5.Count; GBPAUD_OCO3S5_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets5[GBPAUD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO3Sets5[GBPAUD_OCO3S5_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO3Sets5.RemoveAt(GBPAUD_OCO3S5_UP_S2);
GBPAUD_OCO3S5_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S6_UP_S2 = 0;
for (; GBPAUD_OCO3S6_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets6.Count; GBPAUD_OCO3S6_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets6[GBPAUD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO3Sets6[GBPAUD_OCO3S6_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO3Sets6.RemoveAt(GBPAUD_OCO3S6_UP_S2);
GBPAUD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO4_EO1_UP_S2)
Base.GBPAUD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO4_EO2_UP_S2)
Base.GBPAUD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO4_EO3_UP_S2)
Base.GBPAUD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO4_EO4_UP_S2)
Base.GBPAUD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO4_EO5_UP_S2)
Base.GBPAUD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO4_EO6_UP_S2)
Base.GBPAUD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO1_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP1,"TP1_GBPAUD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP1_GBPAUD_UP_S2_OCO4"));
};
Base.GBPAUD_UP_S2_OCO4Sets1.Add( Base.GBPAUD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO2_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP2,"TP2_GBPAUD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP2_GBPAUD_UP_S2_OCO4"));
};
Base.GBPAUD_UP_S2_OCO4Sets2.Add( Base.GBPAUD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO3_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP3,"TP3_GBPAUD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP3_GBPAUD_UP_S2_OCO4"));
};
Base.GBPAUD_UP_S2_OCO4Sets3.Add( Base.GBPAUD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO4_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP4,"TP4_GBPAUD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP4_GBPAUD_UP_S2_OCO4"));
};
Base.GBPAUD_UP_S2_OCO4Sets4.Add( Base.GBPAUD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO5_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP5,"TP5_GBPAUD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP5_GBPAUD_UP_S2_OCO4"));
};
Base.GBPAUD_UP_S2_OCO4Sets5.Add( Base.GBPAUD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO6_UP_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_UP_S2_TP6,"TP6_GBPAUD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_UP_S2_SL,"SL_TP6_GBPAUD_UP_S2_OCO4"));
};
Base.GBPAUD_UP_S2_OCO4Sets6.Add( Base.GBPAUD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO6_UP_S2_ID = -1;
}
int GBPAUD_OCO4S1_UP_S2 = 0;
for (; GBPAUD_OCO4S1_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets1.Count; GBPAUD_OCO4S1_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets1[GBPAUD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO4Sets1[GBPAUD_OCO4S1_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO4Sets1.RemoveAt(GBPAUD_OCO4S1_UP_S2);
GBPAUD_OCO4S1_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S2_UP_S2 = 0;
for (; GBPAUD_OCO4S2_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets2.Count; GBPAUD_OCO4S2_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets2[GBPAUD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO4Sets2[GBPAUD_OCO4S2_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO4Sets2.RemoveAt(GBPAUD_OCO4S2_UP_S2);
GBPAUD_OCO4S2_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S3_UP_S2 = 0;
for (; GBPAUD_OCO4S3_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets3.Count; GBPAUD_OCO4S3_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets3[GBPAUD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO4Sets3[GBPAUD_OCO4S3_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO4Sets3.RemoveAt(GBPAUD_OCO4S3_UP_S2);
GBPAUD_OCO4S3_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S4_UP_S2 = 0;
for (; GBPAUD_OCO4S4_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets4.Count; GBPAUD_OCO4S4_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets4[GBPAUD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO4Sets4[GBPAUD_OCO4S4_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO4Sets4.RemoveAt(GBPAUD_OCO4S4_UP_S2);
GBPAUD_OCO4S4_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S5_UP_S2 = 0;
for (; GBPAUD_OCO4S5_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets5.Count; GBPAUD_OCO4S5_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets5[GBPAUD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO4Sets5[GBPAUD_OCO4S5_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO4Sets5.RemoveAt(GBPAUD_OCO4S5_UP_S2);
GBPAUD_OCO4S5_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S6_UP_S2 = 0;
for (; GBPAUD_OCO4S6_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets6.Count; GBPAUD_OCO4S6_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets6[GBPAUD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_UP_S2_OCO4Sets6[GBPAUD_OCO4S6_UP_S2].Filled();
Base.GBPAUD_UP_S2_OCO4Sets6.RemoveAt(GBPAUD_OCO4S6_UP_S2);
GBPAUD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPAUD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPAUD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
if (OrderID.Tag.StartsWith("GBPAUD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPAUD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPAUD S2");
}
}
if (Base.GBPAUD_OCO1_EO1_DOWN_S2)
Base.GBPAUD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO1_EO2_DOWN_S2)
Base.GBPAUD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO1_EO3_DOWN_S2)
Base.GBPAUD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO1_EO4_DOWN_S2)
Base.GBPAUD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO1_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP1_GBPAUD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP1,"TP1_GBPAUD_DOWN_S2_OCO1"));
};
Base.GBPAUD_DOWN_S2_OCO1Sets1.Add( Base.GBPAUD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO2_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP2_GBPAUD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP2,"TP2_GBPAUD_DOWN_S2_OCO1"));
};
Base.GBPAUD_DOWN_S2_OCO1Sets2.Add( Base.GBPAUD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO3_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP3_GBPAUD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP3,"TP3_GBPAUD_DOWN_S2_OCO1"));
};
Base.GBPAUD_DOWN_S2_OCO1Sets3.Add( Base.GBPAUD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO1_EO4_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP4_GBPAUD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP4,"TP4_GBPAUD_DOWN_S2_OCO1"));
};
Base.GBPAUD_DOWN_S2_OCO1Sets4.Add( Base.GBPAUD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO1_EO4_DOWN_S2_ID = -1;
}
int GBPAUD_OCO1S1_DOWN_S2 = 0;
for (; GBPAUD_OCO1S1_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets1.Count; GBPAUD_OCO1S1_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets1[GBPAUD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO1Sets1[GBPAUD_OCO1S1_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO1Sets1.RemoveAt(GBPAUD_OCO1S1_DOWN_S2);
GBPAUD_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO1S2_DOWN_S2 = 0;
for (; GBPAUD_OCO1S2_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets2.Count; GBPAUD_OCO1S2_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets2[GBPAUD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO1Sets2[GBPAUD_OCO1S2_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO1Sets2.RemoveAt(GBPAUD_OCO1S2_DOWN_S2);
GBPAUD_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO1S3_DOWN_S2 = 0;
for (; GBPAUD_OCO1S3_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets3.Count; GBPAUD_OCO1S3_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets3[GBPAUD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO1Sets3[GBPAUD_OCO1S3_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO1Sets3.RemoveAt(GBPAUD_OCO1S3_DOWN_S2);
GBPAUD_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO1S4_DOWN_S2 = 0;
for (; GBPAUD_OCO1S4_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets4.Count; GBPAUD_OCO1S4_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets4[GBPAUD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO1Sets4[GBPAUD_OCO1S4_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO1Sets4.RemoveAt(GBPAUD_OCO1S4_DOWN_S2);
GBPAUD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO2_EO1_DOWN_S2)
Base.GBPAUD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO2_EO2_DOWN_S2)
Base.GBPAUD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO2_EO3_DOWN_S2)
Base.GBPAUD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO2_EO4_DOWN_S2)
Base.GBPAUD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO1_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP1_GBPAUD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP1,"TP1_GBPAUD_DOWN_S2_OCO2"));
};
Base.GBPAUD_DOWN_S2_OCO2Sets1.Add( Base.GBPAUD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO2_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP2_GBPAUD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP2,"TP2_GBPAUD_DOWN_S2_OCO2"));
};
Base.GBPAUD_DOWN_S2_OCO2Sets2.Add( Base.GBPAUD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO3_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP3_GBPAUD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP3,"TP3_GBPAUD_DOWN_S2_OCO2"));
};
Base.GBPAUD_DOWN_S2_OCO2Sets3.Add( Base.GBPAUD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO2_EO4_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP4_GBPAUD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP4,"TP4_GBPAUD_DOWN_S2_OCO2"));
};
Base.GBPAUD_DOWN_S2_OCO2Sets4.Add( Base.GBPAUD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO2_EO4_DOWN_S2_ID = -1;
}
int GBPAUD_OCO2S1_DOWN_S2 = 0;
for (; GBPAUD_OCO2S1_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets1.Count; GBPAUD_OCO2S1_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets1[GBPAUD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO2Sets1[GBPAUD_OCO2S1_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO2Sets1.RemoveAt(GBPAUD_OCO2S1_DOWN_S2);
GBPAUD_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO2S2_DOWN_S2 = 0;
for (; GBPAUD_OCO2S2_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets2.Count; GBPAUD_OCO2S2_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets2[GBPAUD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO2Sets2[GBPAUD_OCO2S2_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO2Sets2.RemoveAt(GBPAUD_OCO2S2_DOWN_S2);
GBPAUD_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO2S3_DOWN_S2 = 0;
for (; GBPAUD_OCO2S3_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets3.Count; GBPAUD_OCO2S3_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets3[GBPAUD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO2Sets3[GBPAUD_OCO2S3_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO2Sets3.RemoveAt(GBPAUD_OCO2S3_DOWN_S2);
GBPAUD_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO2S4_DOWN_S2 = 0;
for (; GBPAUD_OCO2S4_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets4.Count; GBPAUD_OCO2S4_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets4[GBPAUD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO2Sets4[GBPAUD_OCO2S4_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO2Sets4.RemoveAt(GBPAUD_OCO2S4_DOWN_S2);
GBPAUD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO3_EO1_DOWN_S2)
Base.GBPAUD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO3_EO2_DOWN_S2)
Base.GBPAUD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO3_EO3_DOWN_S2)
Base.GBPAUD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO3_EO4_DOWN_S2)
Base.GBPAUD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO1_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP1_GBPAUD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP1,"TP1_GBPAUD_DOWN_S2_OCO3"));
};
Base.GBPAUD_DOWN_S2_OCO3Sets1.Add( Base.GBPAUD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO2_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP2_GBPAUD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP2,"TP2_GBPAUD_DOWN_S2_OCO3"));
};
Base.GBPAUD_DOWN_S2_OCO3Sets2.Add( Base.GBPAUD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO3_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP3_GBPAUD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP3,"TP3_GBPAUD_DOWN_S2_OCO3"));
};
Base.GBPAUD_DOWN_S2_OCO3Sets3.Add( Base.GBPAUD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO3_EO4_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP4_GBPAUD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP4,"TP4_GBPAUD_DOWN_S2_OCO3"));
};
Base.GBPAUD_DOWN_S2_OCO3Sets4.Add( Base.GBPAUD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO3_EO4_DOWN_S2_ID = -1;
}
int GBPAUD_OCO3S1_DOWN_S2 = 0;
for (; GBPAUD_OCO3S1_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets1.Count; GBPAUD_OCO3S1_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets1[GBPAUD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO3Sets1[GBPAUD_OCO3S1_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO3Sets1.RemoveAt(GBPAUD_OCO3S1_DOWN_S2);
GBPAUD_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO3S2_DOWN_S2 = 0;
for (; GBPAUD_OCO3S2_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets2.Count; GBPAUD_OCO3S2_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets2[GBPAUD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO3Sets2[GBPAUD_OCO3S2_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO3Sets2.RemoveAt(GBPAUD_OCO3S2_DOWN_S2);
GBPAUD_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO3S3_DOWN_S2 = 0;
for (; GBPAUD_OCO3S3_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets3.Count; GBPAUD_OCO3S3_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets3[GBPAUD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO3Sets3[GBPAUD_OCO3S3_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO3Sets3.RemoveAt(GBPAUD_OCO3S3_DOWN_S2);
GBPAUD_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO3S4_DOWN_S2 = 0;
for (; GBPAUD_OCO3S4_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets4.Count; GBPAUD_OCO3S4_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets4[GBPAUD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO3Sets4[GBPAUD_OCO3S4_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO3Sets4.RemoveAt(GBPAUD_OCO3S4_DOWN_S2);
GBPAUD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO4_EO1_DOWN_S2)
Base.GBPAUD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO4_EO2_DOWN_S2)
Base.GBPAUD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO4_EO3_DOWN_S2)
Base.GBPAUD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPAUD_OCO4_EO4_DOWN_S2)
Base.GBPAUD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO1_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP1_GBPAUD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP1,"TP1_GBPAUD_DOWN_S2_OCO4"));
};
Base.GBPAUD_DOWN_S2_OCO4Sets1.Add( Base.GBPAUD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO2_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP2_GBPAUD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP2,"TP2_GBPAUD_DOWN_S2_OCO4"));
};
Base.GBPAUD_DOWN_S2_OCO4Sets2.Add( Base.GBPAUD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO3_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP3_GBPAUD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP3,"TP3_GBPAUD_DOWN_S2_OCO4"));
};
Base.GBPAUD_DOWN_S2_OCO4Sets3.Add( Base.GBPAUD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPAUD_OCO4_EO4_DOWN_S2_ID)
{
Base.GBPAUD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPAUD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPAUD_DOWN_S2_SL,"SL_TP4_GBPAUD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPAUD_DOWN_S2_TP4,"TP4_GBPAUD_DOWN_S2_OCO4"));
};
Base.GBPAUD_DOWN_S2_OCO4Sets4.Add( Base.GBPAUD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPAUD_OCO4_EO4_DOWN_S2_ID = -1;
}
int GBPAUD_OCO4S1_DOWN_S2 = 0;
for (; GBPAUD_OCO4S1_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets1.Count; GBPAUD_OCO4S1_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets1[GBPAUD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO4Sets1[GBPAUD_OCO4S1_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO4Sets1.RemoveAt(GBPAUD_OCO4S1_DOWN_S2);
GBPAUD_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO4S2_DOWN_S2 = 0;
for (; GBPAUD_OCO4S2_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets2.Count; GBPAUD_OCO4S2_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets2[GBPAUD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO4Sets2[GBPAUD_OCO4S2_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO4Sets2.RemoveAt(GBPAUD_OCO4S2_DOWN_S2);
GBPAUD_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO4S3_DOWN_S2 = 0;
for (; GBPAUD_OCO4S3_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets3.Count; GBPAUD_OCO4S3_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets3[GBPAUD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO4Sets3[GBPAUD_OCO4S3_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO4Sets3.RemoveAt(GBPAUD_OCO4S3_DOWN_S2);
GBPAUD_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO4S4_DOWN_S2 = 0;
for (; GBPAUD_OCO4S4_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets4.Count; GBPAUD_OCO4S4_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets4[GBPAUD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPAUD_DOWN_S2_OCO4Sets4[GBPAUD_OCO4S4_DOWN_S2].Filled();
Base.GBPAUD_DOWN_S2_OCO4Sets4.RemoveAt(GBPAUD_OCO4S4_DOWN_S2);
GBPAUD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPJPY_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPJPY_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
}
if (Base.GBPJPY_OCO1_EO1_UP_S2)
Base.GBPJPY_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO1_EO2_UP_S2)
Base.GBPJPY_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO1_EO3_UP_S2)
Base.GBPJPY_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO1_EO4_UP_S2)
Base.GBPJPY_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO1_EO5_UP_S2)
Base.GBPJPY_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO1_EO6_UP_S2)
Base.GBPJPY_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO1_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP1,"TP1_GBPJPY_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP1_GBPJPY_UP_S2_OCO1"));
};
Base.GBPJPY_UP_S2_OCO1Sets1.Add( Base.GBPJPY_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO2_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP2,"TP2_GBPJPY_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP2_GBPJPY_UP_S2_OCO1"));
};
Base.GBPJPY_UP_S2_OCO1Sets2.Add( Base.GBPJPY_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO3_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP3,"TP3_GBPJPY_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP3_GBPJPY_UP_S2_OCO1"));
};
Base.GBPJPY_UP_S2_OCO1Sets3.Add( Base.GBPJPY_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO4_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP4,"TP4_GBPJPY_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP4_GBPJPY_UP_S2_OCO1"));
};
Base.GBPJPY_UP_S2_OCO1Sets4.Add( Base.GBPJPY_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO5_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP5,"TP5_GBPJPY_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP5_GBPJPY_UP_S2_OCO1"));
};
Base.GBPJPY_UP_S2_OCO1Sets5.Add( Base.GBPJPY_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO6_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP6,"TP6_GBPJPY_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP6_GBPJPY_UP_S2_OCO1"));
};
Base.GBPJPY_UP_S2_OCO1Sets6.Add( Base.GBPJPY_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO6_UP_S2_ID = -1;
}
int GBPJPY_OCO1S1_UP_S2 = 0;
for (; GBPJPY_OCO1S1_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets1.Count; GBPJPY_OCO1S1_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets1[GBPJPY_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO1Sets1[GBPJPY_OCO1S1_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO1Sets1.RemoveAt(GBPJPY_OCO1S1_UP_S2);
GBPJPY_OCO1S1_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S2_UP_S2 = 0;
for (; GBPJPY_OCO1S2_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets2.Count; GBPJPY_OCO1S2_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets2[GBPJPY_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO1Sets2[GBPJPY_OCO1S2_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO1Sets2.RemoveAt(GBPJPY_OCO1S2_UP_S2);
GBPJPY_OCO1S2_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S3_UP_S2 = 0;
for (; GBPJPY_OCO1S3_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets3.Count; GBPJPY_OCO1S3_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets3[GBPJPY_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO1Sets3[GBPJPY_OCO1S3_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO1Sets3.RemoveAt(GBPJPY_OCO1S3_UP_S2);
GBPJPY_OCO1S3_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S4_UP_S2 = 0;
for (; GBPJPY_OCO1S4_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets4.Count; GBPJPY_OCO1S4_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets4[GBPJPY_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO1Sets4[GBPJPY_OCO1S4_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO1Sets4.RemoveAt(GBPJPY_OCO1S4_UP_S2);
GBPJPY_OCO1S4_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S5_UP_S2 = 0;
for (; GBPJPY_OCO1S5_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets5.Count; GBPJPY_OCO1S5_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets5[GBPJPY_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO1Sets5[GBPJPY_OCO1S5_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO1Sets5.RemoveAt(GBPJPY_OCO1S5_UP_S2);
GBPJPY_OCO1S5_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S6_UP_S2 = 0;
for (; GBPJPY_OCO1S6_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets6.Count; GBPJPY_OCO1S6_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets6[GBPJPY_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO1Sets6[GBPJPY_OCO1S6_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO1Sets6.RemoveAt(GBPJPY_OCO1S6_UP_S2);
GBPJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO2_EO1_UP_S2)
Base.GBPJPY_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO2_EO2_UP_S2)
Base.GBPJPY_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO2_EO3_UP_S2)
Base.GBPJPY_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO2_EO4_UP_S2)
Base.GBPJPY_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO2_EO5_UP_S2)
Base.GBPJPY_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO2_EO6_UP_S2)
Base.GBPJPY_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO1_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP1,"TP1_GBPJPY_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP1_GBPJPY_UP_S2_OCO2"));
};
Base.GBPJPY_UP_S2_OCO2Sets1.Add( Base.GBPJPY_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO2_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP2,"TP2_GBPJPY_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP2_GBPJPY_UP_S2_OCO2"));
};
Base.GBPJPY_UP_S2_OCO2Sets2.Add( Base.GBPJPY_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO3_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP3,"TP3_GBPJPY_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP3_GBPJPY_UP_S2_OCO2"));
};
Base.GBPJPY_UP_S2_OCO2Sets3.Add( Base.GBPJPY_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO4_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP4,"TP4_GBPJPY_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP4_GBPJPY_UP_S2_OCO2"));
};
Base.GBPJPY_UP_S2_OCO2Sets4.Add( Base.GBPJPY_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO5_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP5,"TP5_GBPJPY_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP5_GBPJPY_UP_S2_OCO2"));
};
Base.GBPJPY_UP_S2_OCO2Sets5.Add( Base.GBPJPY_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO6_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP6,"TP6_GBPJPY_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP6_GBPJPY_UP_S2_OCO2"));
};
Base.GBPJPY_UP_S2_OCO2Sets6.Add( Base.GBPJPY_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO6_UP_S2_ID = -1;
}
int GBPJPY_OCO2S1_UP_S2 = 0;
for (; GBPJPY_OCO2S1_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets1.Count; GBPJPY_OCO2S1_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets1[GBPJPY_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO2Sets1[GBPJPY_OCO2S1_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO2Sets1.RemoveAt(GBPJPY_OCO2S1_UP_S2);
GBPJPY_OCO2S1_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S2_UP_S2 = 0;
for (; GBPJPY_OCO2S2_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets2.Count; GBPJPY_OCO2S2_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets2[GBPJPY_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO2Sets2[GBPJPY_OCO2S2_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO2Sets2.RemoveAt(GBPJPY_OCO2S2_UP_S2);
GBPJPY_OCO2S2_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S3_UP_S2 = 0;
for (; GBPJPY_OCO2S3_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets3.Count; GBPJPY_OCO2S3_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets3[GBPJPY_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO2Sets3[GBPJPY_OCO2S3_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO2Sets3.RemoveAt(GBPJPY_OCO2S3_UP_S2);
GBPJPY_OCO2S3_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S4_UP_S2 = 0;
for (; GBPJPY_OCO2S4_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets4.Count; GBPJPY_OCO2S4_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets4[GBPJPY_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO2Sets4[GBPJPY_OCO2S4_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO2Sets4.RemoveAt(GBPJPY_OCO2S4_UP_S2);
GBPJPY_OCO2S4_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S5_UP_S2 = 0;
for (; GBPJPY_OCO2S5_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets5.Count; GBPJPY_OCO2S5_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets5[GBPJPY_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO2Sets5[GBPJPY_OCO2S5_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO2Sets5.RemoveAt(GBPJPY_OCO2S5_UP_S2);
GBPJPY_OCO2S5_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S6_UP_S2 = 0;
for (; GBPJPY_OCO2S6_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets6.Count; GBPJPY_OCO2S6_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets6[GBPJPY_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO2Sets6[GBPJPY_OCO2S6_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO2Sets6.RemoveAt(GBPJPY_OCO2S6_UP_S2);
GBPJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO3_EO1_UP_S2)
Base.GBPJPY_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO3_EO2_UP_S2)
Base.GBPJPY_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO3_EO3_UP_S2)
Base.GBPJPY_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO3_EO4_UP_S2)
Base.GBPJPY_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO3_EO5_UP_S2)
Base.GBPJPY_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO3_EO6_UP_S2)
Base.GBPJPY_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO1_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP1,"TP1_GBPJPY_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP1_GBPJPY_UP_S2_OCO3"));
};
Base.GBPJPY_UP_S2_OCO3Sets1.Add( Base.GBPJPY_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO2_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP2,"TP2_GBPJPY_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP2_GBPJPY_UP_S2_OCO3"));
};
Base.GBPJPY_UP_S2_OCO3Sets2.Add( Base.GBPJPY_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO3_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP3,"TP3_GBPJPY_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP3_GBPJPY_UP_S2_OCO3"));
};
Base.GBPJPY_UP_S2_OCO3Sets3.Add( Base.GBPJPY_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO4_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP4,"TP4_GBPJPY_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP4_GBPJPY_UP_S2_OCO3"));
};
Base.GBPJPY_UP_S2_OCO3Sets4.Add( Base.GBPJPY_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO5_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP5,"TP5_GBPJPY_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP5_GBPJPY_UP_S2_OCO3"));
};
Base.GBPJPY_UP_S2_OCO3Sets5.Add( Base.GBPJPY_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO6_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP6,"TP6_GBPJPY_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP6_GBPJPY_UP_S2_OCO3"));
};
Base.GBPJPY_UP_S2_OCO3Sets6.Add( Base.GBPJPY_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO6_UP_S2_ID = -1;
}
int GBPJPY_OCO3S1_UP_S2 = 0;
for (; GBPJPY_OCO3S1_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets1.Count; GBPJPY_OCO3S1_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets1[GBPJPY_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO3Sets1[GBPJPY_OCO3S1_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO3Sets1.RemoveAt(GBPJPY_OCO3S1_UP_S2);
GBPJPY_OCO3S1_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S2_UP_S2 = 0;
for (; GBPJPY_OCO3S2_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets2.Count; GBPJPY_OCO3S2_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets2[GBPJPY_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO3Sets2[GBPJPY_OCO3S2_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO3Sets2.RemoveAt(GBPJPY_OCO3S2_UP_S2);
GBPJPY_OCO3S2_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S3_UP_S2 = 0;
for (; GBPJPY_OCO3S3_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets3.Count; GBPJPY_OCO3S3_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets3[GBPJPY_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO3Sets3[GBPJPY_OCO3S3_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO3Sets3.RemoveAt(GBPJPY_OCO3S3_UP_S2);
GBPJPY_OCO3S3_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S4_UP_S2 = 0;
for (; GBPJPY_OCO3S4_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets4.Count; GBPJPY_OCO3S4_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets4[GBPJPY_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO3Sets4[GBPJPY_OCO3S4_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO3Sets4.RemoveAt(GBPJPY_OCO3S4_UP_S2);
GBPJPY_OCO3S4_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S5_UP_S2 = 0;
for (; GBPJPY_OCO3S5_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets5.Count; GBPJPY_OCO3S5_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets5[GBPJPY_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO3Sets5[GBPJPY_OCO3S5_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO3Sets5.RemoveAt(GBPJPY_OCO3S5_UP_S2);
GBPJPY_OCO3S5_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S6_UP_S2 = 0;
for (; GBPJPY_OCO3S6_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets6.Count; GBPJPY_OCO3S6_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets6[GBPJPY_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO3Sets6[GBPJPY_OCO3S6_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO3Sets6.RemoveAt(GBPJPY_OCO3S6_UP_S2);
GBPJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO4_EO1_UP_S2)
Base.GBPJPY_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO4_EO2_UP_S2)
Base.GBPJPY_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO4_EO3_UP_S2)
Base.GBPJPY_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO4_EO4_UP_S2)
Base.GBPJPY_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO4_EO5_UP_S2)
Base.GBPJPY_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO4_EO6_UP_S2)
Base.GBPJPY_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO1_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP1,"TP1_GBPJPY_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP1_GBPJPY_UP_S2_OCO4"));
};
Base.GBPJPY_UP_S2_OCO4Sets1.Add( Base.GBPJPY_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO2_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP2,"TP2_GBPJPY_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP2_GBPJPY_UP_S2_OCO4"));
};
Base.GBPJPY_UP_S2_OCO4Sets2.Add( Base.GBPJPY_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO3_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP3,"TP3_GBPJPY_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP3_GBPJPY_UP_S2_OCO4"));
};
Base.GBPJPY_UP_S2_OCO4Sets3.Add( Base.GBPJPY_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO4_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP4,"TP4_GBPJPY_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP4_GBPJPY_UP_S2_OCO4"));
};
Base.GBPJPY_UP_S2_OCO4Sets4.Add( Base.GBPJPY_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO5_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP5,"TP5_GBPJPY_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP5_GBPJPY_UP_S2_OCO4"));
};
Base.GBPJPY_UP_S2_OCO4Sets5.Add( Base.GBPJPY_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO6_UP_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_UP_S2_TP6,"TP6_GBPJPY_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_UP_S2_SL,"SL_TP6_GBPJPY_UP_S2_OCO4"));
};
Base.GBPJPY_UP_S2_OCO4Sets6.Add( Base.GBPJPY_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO6_UP_S2_ID = -1;
}
int GBPJPY_OCO4S1_UP_S2 = 0;
for (; GBPJPY_OCO4S1_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets1.Count; GBPJPY_OCO4S1_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets1[GBPJPY_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO4Sets1[GBPJPY_OCO4S1_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO4Sets1.RemoveAt(GBPJPY_OCO4S1_UP_S2);
GBPJPY_OCO4S1_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S2_UP_S2 = 0;
for (; GBPJPY_OCO4S2_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets2.Count; GBPJPY_OCO4S2_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets2[GBPJPY_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO4Sets2[GBPJPY_OCO4S2_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO4Sets2.RemoveAt(GBPJPY_OCO4S2_UP_S2);
GBPJPY_OCO4S2_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S3_UP_S2 = 0;
for (; GBPJPY_OCO4S3_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets3.Count; GBPJPY_OCO4S3_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets3[GBPJPY_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO4Sets3[GBPJPY_OCO4S3_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO4Sets3.RemoveAt(GBPJPY_OCO4S3_UP_S2);
GBPJPY_OCO4S3_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S4_UP_S2 = 0;
for (; GBPJPY_OCO4S4_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets4.Count; GBPJPY_OCO4S4_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets4[GBPJPY_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO4Sets4[GBPJPY_OCO4S4_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO4Sets4.RemoveAt(GBPJPY_OCO4S4_UP_S2);
GBPJPY_OCO4S4_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S5_UP_S2 = 0;
for (; GBPJPY_OCO4S5_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets5.Count; GBPJPY_OCO4S5_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets5[GBPJPY_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO4Sets5[GBPJPY_OCO4S5_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO4Sets5.RemoveAt(GBPJPY_OCO4S5_UP_S2);
GBPJPY_OCO4S5_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S6_UP_S2 = 0;
for (; GBPJPY_OCO4S6_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets6.Count; GBPJPY_OCO4S6_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets6[GBPJPY_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_UP_S2_OCO4Sets6[GBPJPY_OCO4S6_UP_S2].Filled();
Base.GBPJPY_UP_S2_OCO4Sets6.RemoveAt(GBPJPY_OCO4S6_UP_S2);
GBPJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPJPY_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPJPY_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
if (OrderID.Tag.StartsWith("GBPJPY OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPJPY OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPJPY S2");
}
}
if (Base.GBPJPY_OCO1_EO1_DOWN_S2)
Base.GBPJPY_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO1_EO2_DOWN_S2)
Base.GBPJPY_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO1_EO3_DOWN_S2)
Base.GBPJPY_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO1_EO4_DOWN_S2)
Base.GBPJPY_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO1_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP1_GBPJPY_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP1,"TP1_GBPJPY_DOWN_S2_OCO1"));
};
Base.GBPJPY_DOWN_S2_OCO1Sets1.Add( Base.GBPJPY_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO2_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP2_GBPJPY_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP2,"TP2_GBPJPY_DOWN_S2_OCO1"));
};
Base.GBPJPY_DOWN_S2_OCO1Sets2.Add( Base.GBPJPY_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO3_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP3_GBPJPY_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP3,"TP3_GBPJPY_DOWN_S2_OCO1"));
};
Base.GBPJPY_DOWN_S2_OCO1Sets3.Add( Base.GBPJPY_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO1_EO4_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP4_GBPJPY_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP4,"TP4_GBPJPY_DOWN_S2_OCO1"));
};
Base.GBPJPY_DOWN_S2_OCO1Sets4.Add( Base.GBPJPY_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO1_EO4_DOWN_S2_ID = -1;
}
int GBPJPY_OCO1S1_DOWN_S2 = 0;
for (; GBPJPY_OCO1S1_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets1.Count; GBPJPY_OCO1S1_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets1[GBPJPY_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO1Sets1[GBPJPY_OCO1S1_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO1Sets1.RemoveAt(GBPJPY_OCO1S1_DOWN_S2);
GBPJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO1S2_DOWN_S2 = 0;
for (; GBPJPY_OCO1S2_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets2.Count; GBPJPY_OCO1S2_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets2[GBPJPY_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO1Sets2[GBPJPY_OCO1S2_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO1Sets2.RemoveAt(GBPJPY_OCO1S2_DOWN_S2);
GBPJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO1S3_DOWN_S2 = 0;
for (; GBPJPY_OCO1S3_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets3.Count; GBPJPY_OCO1S3_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets3[GBPJPY_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO1Sets3[GBPJPY_OCO1S3_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO1Sets3.RemoveAt(GBPJPY_OCO1S3_DOWN_S2);
GBPJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO1S4_DOWN_S2 = 0;
for (; GBPJPY_OCO1S4_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets4.Count; GBPJPY_OCO1S4_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets4[GBPJPY_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO1Sets4[GBPJPY_OCO1S4_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO1Sets4.RemoveAt(GBPJPY_OCO1S4_DOWN_S2);
GBPJPY_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO2_EO1_DOWN_S2)
Base.GBPJPY_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO2_EO2_DOWN_S2)
Base.GBPJPY_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO2_EO3_DOWN_S2)
Base.GBPJPY_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO2_EO4_DOWN_S2)
Base.GBPJPY_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO1_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP1_GBPJPY_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP1,"TP1_GBPJPY_DOWN_S2_OCO2"));
};
Base.GBPJPY_DOWN_S2_OCO2Sets1.Add( Base.GBPJPY_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO2_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP2_GBPJPY_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP2,"TP2_GBPJPY_DOWN_S2_OCO2"));
};
Base.GBPJPY_DOWN_S2_OCO2Sets2.Add( Base.GBPJPY_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO3_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP3_GBPJPY_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP3,"TP3_GBPJPY_DOWN_S2_OCO2"));
};
Base.GBPJPY_DOWN_S2_OCO2Sets3.Add( Base.GBPJPY_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO2_EO4_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP4_GBPJPY_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP4,"TP4_GBPJPY_DOWN_S2_OCO2"));
};
Base.GBPJPY_DOWN_S2_OCO2Sets4.Add( Base.GBPJPY_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO2_EO4_DOWN_S2_ID = -1;
}
int GBPJPY_OCO2S1_DOWN_S2 = 0;
for (; GBPJPY_OCO2S1_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets1.Count; GBPJPY_OCO2S1_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets1[GBPJPY_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO2Sets1[GBPJPY_OCO2S1_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO2Sets1.RemoveAt(GBPJPY_OCO2S1_DOWN_S2);
GBPJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO2S2_DOWN_S2 = 0;
for (; GBPJPY_OCO2S2_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets2.Count; GBPJPY_OCO2S2_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets2[GBPJPY_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO2Sets2[GBPJPY_OCO2S2_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO2Sets2.RemoveAt(GBPJPY_OCO2S2_DOWN_S2);
GBPJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO2S3_DOWN_S2 = 0;
for (; GBPJPY_OCO2S3_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets3.Count; GBPJPY_OCO2S3_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets3[GBPJPY_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO2Sets3[GBPJPY_OCO2S3_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO2Sets3.RemoveAt(GBPJPY_OCO2S3_DOWN_S2);
GBPJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO2S4_DOWN_S2 = 0;
for (; GBPJPY_OCO2S4_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets4.Count; GBPJPY_OCO2S4_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets4[GBPJPY_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO2Sets4[GBPJPY_OCO2S4_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO2Sets4.RemoveAt(GBPJPY_OCO2S4_DOWN_S2);
GBPJPY_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO3_EO1_DOWN_S2)
Base.GBPJPY_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO3_EO2_DOWN_S2)
Base.GBPJPY_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO3_EO3_DOWN_S2)
Base.GBPJPY_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO3_EO4_DOWN_S2)
Base.GBPJPY_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO1_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP1_GBPJPY_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP1,"TP1_GBPJPY_DOWN_S2_OCO3"));
};
Base.GBPJPY_DOWN_S2_OCO3Sets1.Add( Base.GBPJPY_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO2_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP2_GBPJPY_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP2,"TP2_GBPJPY_DOWN_S2_OCO3"));
};
Base.GBPJPY_DOWN_S2_OCO3Sets2.Add( Base.GBPJPY_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO3_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP3_GBPJPY_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP3,"TP3_GBPJPY_DOWN_S2_OCO3"));
};
Base.GBPJPY_DOWN_S2_OCO3Sets3.Add( Base.GBPJPY_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO3_EO4_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP4_GBPJPY_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP4,"TP4_GBPJPY_DOWN_S2_OCO3"));
};
Base.GBPJPY_DOWN_S2_OCO3Sets4.Add( Base.GBPJPY_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO3_EO4_DOWN_S2_ID = -1;
}
int GBPJPY_OCO3S1_DOWN_S2 = 0;
for (; GBPJPY_OCO3S1_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets1.Count; GBPJPY_OCO3S1_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets1[GBPJPY_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO3Sets1[GBPJPY_OCO3S1_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO3Sets1.RemoveAt(GBPJPY_OCO3S1_DOWN_S2);
GBPJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO3S2_DOWN_S2 = 0;
for (; GBPJPY_OCO3S2_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets2.Count; GBPJPY_OCO3S2_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets2[GBPJPY_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO3Sets2[GBPJPY_OCO3S2_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO3Sets2.RemoveAt(GBPJPY_OCO3S2_DOWN_S2);
GBPJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO3S3_DOWN_S2 = 0;
for (; GBPJPY_OCO3S3_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets3.Count; GBPJPY_OCO3S3_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets3[GBPJPY_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO3Sets3[GBPJPY_OCO3S3_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO3Sets3.RemoveAt(GBPJPY_OCO3S3_DOWN_S2);
GBPJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO3S4_DOWN_S2 = 0;
for (; GBPJPY_OCO3S4_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets4.Count; GBPJPY_OCO3S4_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets4[GBPJPY_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO3Sets4[GBPJPY_OCO3S4_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO3Sets4.RemoveAt(GBPJPY_OCO3S4_DOWN_S2);
GBPJPY_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO4_EO1_DOWN_S2)
Base.GBPJPY_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO4_EO2_DOWN_S2)
Base.GBPJPY_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO4_EO3_DOWN_S2)
Base.GBPJPY_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPJPY_OCO4_EO4_DOWN_S2)
Base.GBPJPY_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO1_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP1_GBPJPY_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP1,"TP1_GBPJPY_DOWN_S2_OCO4"));
};
Base.GBPJPY_DOWN_S2_OCO4Sets1.Add( Base.GBPJPY_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO2_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP2_GBPJPY_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP2,"TP2_GBPJPY_DOWN_S2_OCO4"));
};
Base.GBPJPY_DOWN_S2_OCO4Sets2.Add( Base.GBPJPY_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO3_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP3_GBPJPY_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP3,"TP3_GBPJPY_DOWN_S2_OCO4"));
};
Base.GBPJPY_DOWN_S2_OCO4Sets3.Add( Base.GBPJPY_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPJPY_OCO4_EO4_DOWN_S2_ID)
{
Base.GBPJPY_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPJPY_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPJPY_DOWN_S2_SL,"SL_TP4_GBPJPY_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPJPY_DOWN_S2_TP4,"TP4_GBPJPY_DOWN_S2_OCO4"));
};
Base.GBPJPY_DOWN_S2_OCO4Sets4.Add( Base.GBPJPY_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPJPY_OCO4_EO4_DOWN_S2_ID = -1;
}
int GBPJPY_OCO4S1_DOWN_S2 = 0;
for (; GBPJPY_OCO4S1_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets1.Count; GBPJPY_OCO4S1_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets1[GBPJPY_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO4Sets1[GBPJPY_OCO4S1_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO4Sets1.RemoveAt(GBPJPY_OCO4S1_DOWN_S2);
GBPJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO4S2_DOWN_S2 = 0;
for (; GBPJPY_OCO4S2_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets2.Count; GBPJPY_OCO4S2_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets2[GBPJPY_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO4Sets2[GBPJPY_OCO4S2_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO4Sets2.RemoveAt(GBPJPY_OCO4S2_DOWN_S2);
GBPJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO4S3_DOWN_S2 = 0;
for (; GBPJPY_OCO4S3_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets3.Count; GBPJPY_OCO4S3_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets3[GBPJPY_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO4Sets3[GBPJPY_OCO4S3_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO4Sets3.RemoveAt(GBPJPY_OCO4S3_DOWN_S2);
GBPJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO4S4_DOWN_S2 = 0;
for (; GBPJPY_OCO4S4_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets4.Count; GBPJPY_OCO4S4_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets4[GBPJPY_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPJPY_DOWN_S2_OCO4Sets4[GBPJPY_OCO4S4_DOWN_S2].Filled();
Base.GBPJPY_DOWN_S2_OCO4Sets4.RemoveAt(GBPJPY_OCO4S4_DOWN_S2);
GBPJPY_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPUSD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPUSD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPUSD_DOWN_S2_OCO1")))
{
Base.GBPUSD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPUSD_DOWN_S2_OCO2")))
{
Base.GBPUSD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPUSD_DOWN_S2_OCO3")))
{
Base.GBPUSD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPUSD_DOWN_S2_OCO4")))
{
Base.GBPUSD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPUSD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPUSD_OCO1_EO1_DOWN_S2)
Base.GBPUSD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO2_DOWN_S2)
Base.GBPUSD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO3_DOWN_S2)
Base.GBPUSD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO4_DOWN_S2)
Base.GBPUSD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO5_DOWN_S2)
Base.GBPUSD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO6_DOWN_S2)
Base.GBPUSD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPUSD_OCO1S1_DOWN_S2 = 0;
for (; GBPUSD_OCO1S1_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets1.Count; GBPUSD_OCO1S1_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets1[GBPUSD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO1Sets1[GBPUSD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_1__Time out_OCO1");
Base.GBPUSD_DOWN_S2_OCO1Sets1.Clear();
GBPUSD_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO1S2_DOWN_S2 = 0;
for (; GBPUSD_OCO1S2_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets2.Count; GBPUSD_OCO1S2_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets2[GBPUSD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO1Sets2[GBPUSD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_2__Time out_OCO1");
Base.GBPUSD_DOWN_S2_OCO1Sets2.Clear();
GBPUSD_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO1S3_DOWN_S2 = 0;
for (; GBPUSD_OCO1S3_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets3.Count; GBPUSD_OCO1S3_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets3[GBPUSD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO1Sets3[GBPUSD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_3__Time out_OCO1");
Base.GBPUSD_DOWN_S2_OCO1Sets3.Clear();
GBPUSD_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO1S4_DOWN_S2 = 0;
for (; GBPUSD_OCO1S4_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets4.Count; GBPUSD_OCO1S4_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets4[GBPUSD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO1Sets4[GBPUSD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_4__Time out_OCO1");
Base.GBPUSD_DOWN_S2_OCO1Sets4.Clear();
GBPUSD_OCO1S4_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO1S5_DOWN_S2 = 0;
for (; GBPUSD_OCO1S5_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets5.Count; GBPUSD_OCO1S5_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets5[GBPUSD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO1Sets5[GBPUSD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_5__Time out_OCO1");
Base.GBPUSD_DOWN_S2_OCO1Sets5.Clear();
GBPUSD_OCO1S5_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO1S6_DOWN_S2 = 0;
for (; GBPUSD_OCO1S6_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO1Sets6.Count; GBPUSD_OCO1S6_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO1Sets6[GBPUSD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO1Sets6[GBPUSD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_6__Time out_OCO1");
Base.GBPUSD_DOWN_S2_OCO1Sets6.Clear();
GBPUSD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO2_EO1_DOWN_S2)
Base.GBPUSD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO2_DOWN_S2)
Base.GBPUSD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO3_DOWN_S2)
Base.GBPUSD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO4_DOWN_S2)
Base.GBPUSD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO5_DOWN_S2)
Base.GBPUSD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO6_DOWN_S2)
Base.GBPUSD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPUSD_OCO2S1_DOWN_S2 = 0;
for (; GBPUSD_OCO2S1_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets1.Count; GBPUSD_OCO2S1_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets1[GBPUSD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO2Sets1[GBPUSD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_1__Time out_OCO2");
Base.GBPUSD_DOWN_S2_OCO2Sets1.Clear();
GBPUSD_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO2S2_DOWN_S2 = 0;
for (; GBPUSD_OCO2S2_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets2.Count; GBPUSD_OCO2S2_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets2[GBPUSD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO2Sets2[GBPUSD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_2__Time out_OCO2");
Base.GBPUSD_DOWN_S2_OCO2Sets2.Clear();
GBPUSD_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO2S3_DOWN_S2 = 0;
for (; GBPUSD_OCO2S3_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets3.Count; GBPUSD_OCO2S3_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets3[GBPUSD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO2Sets3[GBPUSD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_3__Time out_OCO2");
Base.GBPUSD_DOWN_S2_OCO2Sets3.Clear();
GBPUSD_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO2S4_DOWN_S2 = 0;
for (; GBPUSD_OCO2S4_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets4.Count; GBPUSD_OCO2S4_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets4[GBPUSD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO2Sets4[GBPUSD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_4__Time out_OCO2");
Base.GBPUSD_DOWN_S2_OCO2Sets4.Clear();
GBPUSD_OCO2S4_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO2S5_DOWN_S2 = 0;
for (; GBPUSD_OCO2S5_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets5.Count; GBPUSD_OCO2S5_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets5[GBPUSD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO2Sets5[GBPUSD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_5__Time out_OCO2");
Base.GBPUSD_DOWN_S2_OCO2Sets5.Clear();
GBPUSD_OCO2S5_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO2S6_DOWN_S2 = 0;
for (; GBPUSD_OCO2S6_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO2Sets6.Count; GBPUSD_OCO2S6_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO2Sets6[GBPUSD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO2Sets6[GBPUSD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_6__Time out_OCO2");
Base.GBPUSD_DOWN_S2_OCO2Sets6.Clear();
GBPUSD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO3_EO1_DOWN_S2)
Base.GBPUSD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO2_DOWN_S2)
Base.GBPUSD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO3_DOWN_S2)
Base.GBPUSD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO4_DOWN_S2)
Base.GBPUSD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO5_DOWN_S2)
Base.GBPUSD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO6_DOWN_S2)
Base.GBPUSD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPUSD_OCO3S1_DOWN_S2 = 0;
for (; GBPUSD_OCO3S1_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets1.Count; GBPUSD_OCO3S1_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets1[GBPUSD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO3Sets1[GBPUSD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_1__Time out_OCO3");
Base.GBPUSD_DOWN_S2_OCO3Sets1.Clear();
GBPUSD_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO3S2_DOWN_S2 = 0;
for (; GBPUSD_OCO3S2_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets2.Count; GBPUSD_OCO3S2_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets2[GBPUSD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO3Sets2[GBPUSD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_2__Time out_OCO3");
Base.GBPUSD_DOWN_S2_OCO3Sets2.Clear();
GBPUSD_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO3S3_DOWN_S2 = 0;
for (; GBPUSD_OCO3S3_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets3.Count; GBPUSD_OCO3S3_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets3[GBPUSD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO3Sets3[GBPUSD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_3__Time out_OCO3");
Base.GBPUSD_DOWN_S2_OCO3Sets3.Clear();
GBPUSD_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO3S4_DOWN_S2 = 0;
for (; GBPUSD_OCO3S4_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets4.Count; GBPUSD_OCO3S4_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets4[GBPUSD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO3Sets4[GBPUSD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_4__Time out_OCO3");
Base.GBPUSD_DOWN_S2_OCO3Sets4.Clear();
GBPUSD_OCO3S4_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO3S5_DOWN_S2 = 0;
for (; GBPUSD_OCO3S5_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets5.Count; GBPUSD_OCO3S5_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets5[GBPUSD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO3Sets5[GBPUSD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_5__Time out_OCO3");
Base.GBPUSD_DOWN_S2_OCO3Sets5.Clear();
GBPUSD_OCO3S5_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO3S6_DOWN_S2 = 0;
for (; GBPUSD_OCO3S6_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO3Sets6.Count; GBPUSD_OCO3S6_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO3Sets6[GBPUSD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO3Sets6[GBPUSD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_6__Time out_OCO3");
Base.GBPUSD_DOWN_S2_OCO3Sets6.Clear();
GBPUSD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO4_EO1_DOWN_S2)
Base.GBPUSD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO2_DOWN_S2)
Base.GBPUSD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO3_DOWN_S2)
Base.GBPUSD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO4_DOWN_S2)
Base.GBPUSD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO5_DOWN_S2)
Base.GBPUSD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO6_DOWN_S2)
Base.GBPUSD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPUSD_OCO4S1_DOWN_S2 = 0;
for (; GBPUSD_OCO4S1_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets1.Count; GBPUSD_OCO4S1_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets1[GBPUSD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO4Sets1[GBPUSD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_1__Time out_OCO4");
Base.GBPUSD_DOWN_S2_OCO4Sets1.Clear();
GBPUSD_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO4S2_DOWN_S2 = 0;
for (; GBPUSD_OCO4S2_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets2.Count; GBPUSD_OCO4S2_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets2[GBPUSD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO4Sets2[GBPUSD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_2__Time out_OCO4");
Base.GBPUSD_DOWN_S2_OCO4Sets2.Clear();
GBPUSD_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO4S3_DOWN_S2 = 0;
for (; GBPUSD_OCO4S3_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets3.Count; GBPUSD_OCO4S3_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets3[GBPUSD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO4Sets3[GBPUSD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_3__Time out_OCO4");
Base.GBPUSD_DOWN_S2_OCO4Sets3.Clear();
GBPUSD_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO4S4_DOWN_S2 = 0;
for (; GBPUSD_OCO4S4_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets4.Count; GBPUSD_OCO4S4_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets4[GBPUSD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO4Sets4[GBPUSD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_4__Time out_OCO4");
Base.GBPUSD_DOWN_S2_OCO4Sets4.Clear();
GBPUSD_OCO4S4_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO4S5_DOWN_S2 = 0;
for (; GBPUSD_OCO4S5_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets5.Count; GBPUSD_OCO4S5_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets5[GBPUSD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO4Sets5[GBPUSD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_5__Time out_OCO4");
Base.GBPUSD_DOWN_S2_OCO4Sets5.Clear();
GBPUSD_OCO4S5_DOWN_S2 = 0;
break;
}
int GBPUSD_OCO4S6_DOWN_S2 = 0;
for (; GBPUSD_OCO4S6_DOWN_S2 < Base.GBPUSD_DOWN_S2_OCO4Sets6.Count; GBPUSD_OCO4S6_DOWN_S2++)
if (Base.GBPUSD_DOWN_S2_OCO4Sets6[GBPUSD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPUSD_DOWN_S2_OCO4Sets6[GBPUSD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_DOWN_S2_Entry_6__Time out_OCO4");
Base.GBPUSD_DOWN_S2_OCO4Sets6.Clear();
GBPUSD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPUSD_DOWN_S2 = DOWM_GBPUSD_DOWN_S2 || DOWT_GBPUSD_DOWN_S2 || DOWW_GBPUSD_DOWN_S2 || DOWTH_GBPUSD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPUSD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPUSD_OCO1_DOWN_S2_IsReady == false ||
Base.GBPUSD_OCO2_DOWN_S2_IsReady == false ||
Base.GBPUSD_OCO3_DOWN_S2_IsReady == false ||
Base.GBPUSD_OCO4_DOWN_S2_IsReady == false)
{
Base.GBPUSD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.GBPUSD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.GBPUSD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.GBPUSD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPUSD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.GBPUSD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.GBPUSD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.GBPUSD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
GBPUSD_Signal_Condition_DOWN_1 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPUSD_Signal_Condition_DOWN_2 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPUSD_Signal_Condition_DOWN_3 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (GBPUSD_Signal_Condition_DOWN_1)
{
GBPUSD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (GBPUSD_Signal_Condition_DOWN_2)
{
GBPUSD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (GBPUSD_Signal_Condition_DOWN_3)
{
GBPUSD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (GBPUSD_Signal_Condition_DOWN_1)
{
GBPUSD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.05m ;
}
if (GBPUSD_Signal_Condition_DOWN_2)
{
GBPUSD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.1m ;
}
if (GBPUSD_Signal_Condition_DOWN_3)
{
GBPUSD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.2m ;
}
GBPUSD_DOWN_S2_TP2 = GBPUSD_DOWN_S2_SL * 0;
GBPUSD_DOWN_S2_TP3 = GBPUSD_DOWN_S2_SL * 0;
GBPUSD_DOWN_S2_TP4 = GBPUSD_DOWN_S2_SL * 0;
GBPUSD_DOWN_S2_TP5 = GBPUSD_DOWN_S2_SL * 0;
GBPUSD_DOWN_S2_TP6 = GBPUSD_DOWN_S2_SL * 0;
if (coefIntS2 != 0 && GBPUSD_DOWN_S2_SL != 0)
{
GBPUSD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)*0.015m);
GBPUSD_quantity_SL_DOWN_S2 = GBPUSD_quantity_DOWN_S2;
GBPUSD_quantity_TP1_DOWN_S2 = (GBPUSD_quantity_DOWN_S2 );
GBPUSD_quantity_TP2_DOWN_S2 = (GBPUSD_quantity_TP1_DOWN_S2 * 0);
GBPUSD_quantity_TP3_DOWN_S2 = (GBPUSD_quantity_TP2_DOWN_S2 * 0);
GBPUSD_quantity_TP4_DOWN_S2 = (GBPUSD_quantity_TP3_DOWN_S2 * 0);
GBPUSD_quantity_TP5_DOWN_S2 = (GBPUSD_quantity_TP4_DOWN_S2 * 0);
GBPUSD_quantity_TP6_DOWN_S2 = (GBPUSD_quantity_TP5_DOWN_S2 * 0);
}
oco1:
if ((GBPUSD_Signal_Condition_DOWN_1 || GBPUSD_Signal_Condition_DOWN_2 || GBPUSD_Signal_Condition_DOWN_3) &&
DOWR_GBPUSD_DOWN_S2 &&
Base.GBPUSD_OCO1_DOWN_S2_IsReady == true &&
Base.GBPUSD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPUSD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP1_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP1_OCO1");
Base.GBPUSD_OCO1_EO1_DOWN_S2 = false;
Base.GBPUSD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP2_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP2_OCO1");
Base.GBPUSD_OCO1_EO2_DOWN_S2 = false;
Base.GBPUSD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP3_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP3_OCO1");
Base.GBPUSD_OCO1_EO3_DOWN_S2 = false;
Base.GBPUSD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP4_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP4_OCO1");
Base.GBPUSD_OCO1_EO4_DOWN_S2 = false;
Base.GBPUSD_OCO1_DOWN_S2_IsReady = false;
if (Base.GBPUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if ((GBPUSD_Signal_Condition_DOWN_1 || GBPUSD_Signal_Condition_DOWN_2 || GBPUSD_Signal_Condition_DOWN_3) &&
DOWR_GBPUSD_DOWN_S2 &&
Base.GBPUSD_OCO2_DOWN_S2_IsReady == true &&
Base.GBPUSD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPUSD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPUSD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP1_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP1_OCO2");
Base.GBPUSD_OCO2_EO1_DOWN_S2 = false;
Base.GBPUSD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP2_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP2_OCO2");
Base.GBPUSD_OCO2_EO2_DOWN_S2 = false;
Base.GBPUSD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP3_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP3_OCO2");
Base.GBPUSD_OCO2_EO3_DOWN_S2 = false;
Base.GBPUSD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP4_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP4_OCO2");
Base.GBPUSD_OCO2_EO4_DOWN_S2 = false;
Base.GBPUSD_OCO2_DOWN_S2_IsReady = false;
if (Base.GBPUSD_OCO2_DOWN_S2_IsReady == false && Base.GBPUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if ((GBPUSD_Signal_Condition_DOWN_1 || GBPUSD_Signal_Condition_DOWN_2 || GBPUSD_Signal_Condition_DOWN_3) &&
DOWR_GBPUSD_DOWN_S2 &&
Base.GBPUSD_OCO3_DOWN_S2_IsReady == true &&
Base.GBPUSD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPUSD_OCO2_DOWN_S2_IsReady == false &&
Base.GBPUSD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPUSD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP1_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP1_OCO3");
Base.GBPUSD_OCO3_EO1_DOWN_S2 = false;
Base.GBPUSD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP2_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP2_OCO3");
Base.GBPUSD_OCO3_EO2_DOWN_S2 = false;
Base.GBPUSD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP3_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP3_OCO3");
Base.GBPUSD_OCO3_EO3_DOWN_S2 = false;
Base.GBPUSD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP4_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP4_OCO3");
Base.GBPUSD_OCO3_EO4_DOWN_S2 = false;
Base.GBPUSD_OCO3_DOWN_S2_IsReady = false;
if (Base.GBPUSD_OCO3_DOWN_S2_IsReady == false && Base.GBPUSD_OCO2_DOWN_S2_IsReady == false && Base.GBPUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if ((GBPUSD_Signal_Condition_DOWN_1 || GBPUSD_Signal_Condition_DOWN_2 || GBPUSD_Signal_Condition_DOWN_3) &&
DOWR_GBPUSD_DOWN_S2 &&
Base.GBPUSD_OCO4_DOWN_S2_IsReady == true &&
Base.GBPUSD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPUSD_OCO2_DOWN_S2_IsReady == false &&
Base.GBPUSD_OCO3_DOWN_S2_IsReady == false &&
Base.GBPUSD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPUSD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP1_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP1_OCO4");
Base.GBPUSD_OCO4_EO1_DOWN_S2 = false;
Base.GBPUSD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP2_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP2_OCO4");
Base.GBPUSD_OCO4_EO2_DOWN_S2 = false;
Base.GBPUSD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP3_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP3_OCO4");
Base.GBPUSD_OCO4_EO3_DOWN_S2 = false;
Base.GBPUSD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPUSD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP4_DOWN_S2, false,"GBPUSD_DOWN_S2_Entry_TP4_OCO4");
Base.GBPUSD_OCO4_EO4_DOWN_S2 = false;
Base.GBPUSD_OCO4_DOWN_S2_IsReady = false;
if (Base.GBPUSD_OCO4_DOWN_S2_IsReady == false && Base.GBPUSD_OCO3_DOWN_S2_IsReady == false && Base.GBPUSD_OCO2_DOWN_S2_IsReady == false && Base.GBPUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct USDCAD_OCO1_DOWN_S2
{
public USDCAD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCAD_OCO1_UP_S2
{
public USDCAD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCAD_OCO2_DOWN_S2
{
public USDCAD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCAD_OCO2_UP_S2
{
public USDCAD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("USDCAD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCAD_OCO3_DOWN_S2
{
public USDCAD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCAD_OCO3_UP_S2
{
public USDCAD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("USDCAD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCAD_OCO4_DOWN_S2
{
public USDCAD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCAD_OCO4_UP_S2
{
public USDCAD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("USDCAD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPUSD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPUSD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPUSD_UP_S2_OCO1")))
{
Base.GBPUSD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPUSD_UP_S2_OCO2")))
{
Base.GBPUSD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPUSD_UP_S2_OCO3")))
{
Base.GBPUSD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPUSD_UP_S2_OCO4")))
{
Base.GBPUSD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPUSD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPUSD_OCO1_EO1_UP_S2)
Base.GBPUSD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO2_UP_S2)
Base.GBPUSD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO3_UP_S2)
Base.GBPUSD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO4_UP_S2)
Base.GBPUSD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO5_UP_S2)
Base.GBPUSD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO1_EO6_UP_S2)
Base.GBPUSD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPUSD_UP_S2_OCO_DELAY_7DAY))
{
int GBPUSD_OCO1S1_UP_S2 = 0;
for (; GBPUSD_OCO1S1_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets1.Count; GBPUSD_OCO1S1_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets1[GBPUSD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO1Sets1[GBPUSD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_1__Time out_OCO1");
Base.GBPUSD_UP_S2_OCO1Sets1.Clear();
GBPUSD_OCO1S1_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S2_UP_S2 = 0;
for (; GBPUSD_OCO1S2_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets2.Count; GBPUSD_OCO1S2_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets2[GBPUSD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO1Sets2[GBPUSD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_2__Time out_OCO1");
Base.GBPUSD_UP_S2_OCO1Sets2.Clear();
GBPUSD_OCO1S2_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S3_UP_S2 = 0;
for (; GBPUSD_OCO1S3_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets3.Count; GBPUSD_OCO1S3_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets3[GBPUSD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO1Sets3[GBPUSD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_3__Time out_OCO1");
Base.GBPUSD_UP_S2_OCO1Sets3.Clear();
GBPUSD_OCO1S3_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S4_UP_S2 = 0;
for (; GBPUSD_OCO1S4_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets4.Count; GBPUSD_OCO1S4_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets4[GBPUSD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO1Sets4[GBPUSD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_4__Time out_OCO1");
Base.GBPUSD_UP_S2_OCO1Sets4.Clear();
GBPUSD_OCO1S4_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S5_UP_S2 = 0;
for (; GBPUSD_OCO1S5_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets5.Count; GBPUSD_OCO1S5_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets5[GBPUSD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO1Sets5[GBPUSD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_5__Time out_OCO1");
Base.GBPUSD_UP_S2_OCO1Sets5.Clear();
GBPUSD_OCO1S5_UP_S2 = 0;
break;
}
int GBPUSD_OCO1S6_UP_S2 = 0;
for (; GBPUSD_OCO1S6_UP_S2 < Base.GBPUSD_UP_S2_OCO1Sets6.Count; GBPUSD_OCO1S6_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO1Sets6[GBPUSD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO1Sets6[GBPUSD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_6__Time out_OCO1");
Base.GBPUSD_UP_S2_OCO1Sets6.Clear();
GBPUSD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO2_EO1_UP_S2)
Base.GBPUSD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO2_UP_S2)
Base.GBPUSD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO3_UP_S2)
Base.GBPUSD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO4_UP_S2)
Base.GBPUSD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO5_UP_S2)
Base.GBPUSD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO2_EO6_UP_S2)
Base.GBPUSD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPUSD_UP_S2_OCO_DELAY_7DAY))
{
int GBPUSD_OCO2S1_UP_S2 = 0;
for (; GBPUSD_OCO2S1_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets1.Count; GBPUSD_OCO2S1_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets1[GBPUSD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO2Sets1[GBPUSD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_1__Time out_OCO2");
Base.GBPUSD_UP_S2_OCO2Sets1.Clear();
GBPUSD_OCO2S1_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S2_UP_S2 = 0;
for (; GBPUSD_OCO2S2_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets2.Count; GBPUSD_OCO2S2_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets2[GBPUSD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO2Sets2[GBPUSD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_2__Time out_OCO2");
Base.GBPUSD_UP_S2_OCO2Sets2.Clear();
GBPUSD_OCO2S2_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S3_UP_S2 = 0;
for (; GBPUSD_OCO2S3_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets3.Count; GBPUSD_OCO2S3_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets3[GBPUSD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO2Sets3[GBPUSD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_3__Time out_OCO2");
Base.GBPUSD_UP_S2_OCO2Sets3.Clear();
GBPUSD_OCO2S3_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S4_UP_S2 = 0;
for (; GBPUSD_OCO2S4_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets4.Count; GBPUSD_OCO2S4_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets4[GBPUSD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO2Sets4[GBPUSD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_4__Time out_OCO2");
Base.GBPUSD_UP_S2_OCO2Sets4.Clear();
GBPUSD_OCO2S4_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S5_UP_S2 = 0;
for (; GBPUSD_OCO2S5_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets5.Count; GBPUSD_OCO2S5_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets5[GBPUSD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO2Sets5[GBPUSD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_5__Time out_OCO2");
Base.GBPUSD_UP_S2_OCO2Sets5.Clear();
GBPUSD_OCO2S5_UP_S2 = 0;
break;
}
int GBPUSD_OCO2S6_UP_S2 = 0;
for (; GBPUSD_OCO2S6_UP_S2 < Base.GBPUSD_UP_S2_OCO2Sets6.Count; GBPUSD_OCO2S6_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO2Sets6[GBPUSD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO2Sets6[GBPUSD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_6__Time out_OCO2");
Base.GBPUSD_UP_S2_OCO2Sets6.Clear();
GBPUSD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO3_EO1_UP_S2)
Base.GBPUSD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO2_UP_S2)
Base.GBPUSD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO3_UP_S2)
Base.GBPUSD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO4_UP_S2)
Base.GBPUSD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO5_UP_S2)
Base.GBPUSD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO3_EO6_UP_S2)
Base.GBPUSD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPUSD_UP_S2_OCO_DELAY_7DAY))
{
int GBPUSD_OCO3S1_UP_S2 = 0;
for (; GBPUSD_OCO3S1_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets1.Count; GBPUSD_OCO3S1_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets1[GBPUSD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO3Sets1[GBPUSD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_1__Time out_OCO3");
Base.GBPUSD_UP_S2_OCO3Sets1.Clear();
GBPUSD_OCO3S1_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S2_UP_S2 = 0;
for (; GBPUSD_OCO3S2_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets2.Count; GBPUSD_OCO3S2_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets2[GBPUSD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO3Sets2[GBPUSD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_2__Time out_OCO3");
Base.GBPUSD_UP_S2_OCO3Sets2.Clear();
GBPUSD_OCO3S2_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S3_UP_S2 = 0;
for (; GBPUSD_OCO3S3_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets3.Count; GBPUSD_OCO3S3_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets3[GBPUSD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO3Sets3[GBPUSD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_3__Time out_OCO3");
Base.GBPUSD_UP_S2_OCO3Sets3.Clear();
GBPUSD_OCO3S3_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S4_UP_S2 = 0;
for (; GBPUSD_OCO3S4_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets4.Count; GBPUSD_OCO3S4_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets4[GBPUSD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO3Sets4[GBPUSD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_4__Time out_OCO3");
Base.GBPUSD_UP_S2_OCO3Sets4.Clear();
GBPUSD_OCO3S4_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S5_UP_S2 = 0;
for (; GBPUSD_OCO3S5_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets5.Count; GBPUSD_OCO3S5_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets5[GBPUSD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO3Sets5[GBPUSD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_5__Time out_OCO3");
Base.GBPUSD_UP_S2_OCO3Sets5.Clear();
GBPUSD_OCO3S5_UP_S2 = 0;
break;
}
int GBPUSD_OCO3S6_UP_S2 = 0;
for (; GBPUSD_OCO3S6_UP_S2 < Base.GBPUSD_UP_S2_OCO3Sets6.Count; GBPUSD_OCO3S6_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO3Sets6[GBPUSD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO3Sets6[GBPUSD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_6__Time out_OCO3");
Base.GBPUSD_UP_S2_OCO3Sets6.Clear();
GBPUSD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPUSD_OCO4_EO1_UP_S2)
Base.GBPUSD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO2_UP_S2)
Base.GBPUSD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO3_UP_S2)
Base.GBPUSD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO4_UP_S2)
Base.GBPUSD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO5_UP_S2)
Base.GBPUSD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.GBPUSD_OCO4_EO6_UP_S2)
Base.GBPUSD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPUSD_UP_S2_OCO_DELAY_7DAY))
{
int GBPUSD_OCO4S1_UP_S2 = 0;
for (; GBPUSD_OCO4S1_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets1.Count; GBPUSD_OCO4S1_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets1[GBPUSD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO4Sets1[GBPUSD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_1__Time out_OCO4");
Base.GBPUSD_UP_S2_OCO4Sets1.Clear();
GBPUSD_OCO4S1_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S2_UP_S2 = 0;
for (; GBPUSD_OCO4S2_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets2.Count; GBPUSD_OCO4S2_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets2[GBPUSD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO4Sets2[GBPUSD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_2__Time out_OCO4");
Base.GBPUSD_UP_S2_OCO4Sets2.Clear();
GBPUSD_OCO4S2_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S3_UP_S2 = 0;
for (; GBPUSD_OCO4S3_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets3.Count; GBPUSD_OCO4S3_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets3[GBPUSD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO4Sets3[GBPUSD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_3__Time out_OCO4");
Base.GBPUSD_UP_S2_OCO4Sets3.Clear();
GBPUSD_OCO4S3_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S4_UP_S2 = 0;
for (; GBPUSD_OCO4S4_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets4.Count; GBPUSD_OCO4S4_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets4[GBPUSD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO4Sets4[GBPUSD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_4__Time out_OCO4");
Base.GBPUSD_UP_S2_OCO4Sets4.Clear();
GBPUSD_OCO4S4_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S5_UP_S2 = 0;
for (; GBPUSD_OCO4S5_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets5.Count; GBPUSD_OCO4S5_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets5[GBPUSD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO4Sets5[GBPUSD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_5__Time out_OCO4");
Base.GBPUSD_UP_S2_OCO4Sets5.Clear();
GBPUSD_OCO4S5_UP_S2 = 0;
break;
}
int GBPUSD_OCO4S6_UP_S2 = 0;
for (; GBPUSD_OCO4S6_UP_S2 < Base.GBPUSD_UP_S2_OCO4Sets6.Count; GBPUSD_OCO4S6_UP_S2++)
if (Base.GBPUSD_UP_S2_OCO4Sets6[GBPUSD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.GBPUSD_UP_S2_OCO4Sets6[GBPUSD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("GBPUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPUSD", order.Quantity, false, "GBPUSD_UP_S2_Entry_6__Time out_OCO4");
Base.GBPUSD_UP_S2_OCO4Sets6.Clear();
GBPUSD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPUSD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPUSD_UP_S2 = DOWM_GBPUSD_UP_S2 || DOWT_GBPUSD_UP_S2 || DOWW_GBPUSD_UP_S2 || DOWTH_GBPUSD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPUSD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPUSD_OCO1_UP_S2_IsReady == false ||
Base.GBPUSD_OCO2_UP_S2_IsReady == false ||
Base.GBPUSD_OCO3_UP_S2_IsReady == false ||
Base.GBPUSD_OCO4_UP_S2_IsReady == false)
{
Base.GBPUSD_OCO1_UP_S2_Monthly_IsReady = false;
Base.GBPUSD_OCO2_UP_S2_Monthly_IsReady = false;
Base.GBPUSD_OCO3_UP_S2_Monthly_IsReady = false;
Base.GBPUSD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPUSD_OCO1_UP_S2_Monthly_IsReady = true;
Base.GBPUSD_OCO2_UP_S2_Monthly_IsReady = true;
Base.GBPUSD_OCO3_UP_S2_Monthly_IsReady = true;
Base.GBPUSD_OCO4_UP_S2_Monthly_IsReady = true;
}
GBPUSD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPUSD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPUSD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (GBPUSD_Signal_Condition_UP_1)
{
GBPUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPUSD_Signal_Condition_UP_2)
{
GBPUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPUSD_Signal_Condition_UP_3)
{
GBPUSD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPUSD_Signal_Condition_UP_1)
{
GBPUSD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (GBPUSD_Signal_Condition_UP_2)
{
GBPUSD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (GBPUSD_Signal_Condition_UP_3)
{
GBPUSD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
GBPUSD_UP_S2_TP2 = GBPUSD_UP_S2_SL * 0;
GBPUSD_UP_S2_TP3 = GBPUSD_UP_S2_SL * 0;
GBPUSD_UP_S2_TP4 = GBPUSD_UP_S2_SL * 0;
GBPUSD_UP_S2_TP5 = GBPUSD_UP_S2_SL * 0;
GBPUSD_UP_S2_TP6 = GBPUSD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPUSD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPUSD_quantity_SL_UP_S2 = GBPUSD_quantity_UP_S2;
GBPUSD_quantity_TP1_UP_S2 = (int)Math.Floor(GBPUSD_quantity_UP_S2 * 1m);
GBPUSD_quantity_TP2_UP_S2 = (int)Math.Floor(GBPUSD_quantity_TP1_UP_S2 * 0m);
GBPUSD_quantity_TP3_UP_S2 = (int)Math.Floor(GBPUSD_quantity_TP2_UP_S2 * 0m);
GBPUSD_quantity_TP4_UP_S2 = (int)Math.Floor(GBPUSD_quantity_TP3_UP_S2 * 0m);
GBPUSD_quantity_TP5_UP_S2 = (int)Math.Floor(GBPUSD_quantity_TP4_UP_S2 * 0m);
GBPUSD_quantity_TP6_UP_S2 = (int)Math.Floor(GBPUSD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((GBPUSD_Signal_Condition_UP_1 || GBPUSD_Signal_Condition_UP_2 || GBPUSD_Signal_Condition_UP_3) &&
DOWR_GBPUSD_UP_S2 &&
Base.GBPUSD_OCO1_UP_S2_IsReady == true &&
Base.GBPUSD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.GBPUSD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP1_UP_S2, false,"GBPUSD_UP_S2_Entry_TP1_OCO1");
Base.GBPUSD_OCO1_EO1_UP_S2 = false;
Base.GBPUSD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP2_UP_S2, false,"GBPUSD_UP_S2_Entry_TP2_OCO1");
Base.GBPUSD_OCO1_EO2_UP_S2 = false;
Base.GBPUSD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP3_UP_S2, false,"GBPUSD_UP_S2_Entry_TP3_OCO1");
Base.GBPUSD_OCO1_EO3_UP_S2 = false;
Base.GBPUSD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP4_UP_S2, false,"GBPUSD_UP_S2_Entry_TP4_OCO1");
Base.GBPUSD_OCO1_EO4_UP_S2 = false;
Base.GBPUSD_OCO1_UP_S2_IsReady = false;
if (Base.GBPUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((GBPUSD_Signal_Condition_UP_1 || GBPUSD_Signal_Condition_UP_2 || GBPUSD_Signal_Condition_UP_3) &&
DOWR_GBPUSD_UP_S2 &&
Base.GBPUSD_OCO1_UP_S2_IsReady == false &&
Base.GBPUSD_OCO2_UP_S2_IsReady == true &&
Base.GBPUSD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.GBPUSD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP1_UP_S2, false,"GBPUSD_UP_S2_Entry_TP1_OCO2");
Base.GBPUSD_OCO2_EO1_UP_S2 = false;
Base.GBPUSD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP2_UP_S2, false,"GBPUSD_UP_S2_Entry_TP2_OCO2");
Base.GBPUSD_OCO2_EO2_UP_S2 = false;
Base.GBPUSD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP3_UP_S2, false,"GBPUSD_UP_S2_Entry_TP3_OCO2");
Base.GBPUSD_OCO2_EO3_UP_S2 = false;
Base.GBPUSD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP4_UP_S2, false,"GBPUSD_UP_S2_Entry_TP4_OCO2");
Base.GBPUSD_OCO2_EO4_UP_S2 = false;
Base.GBPUSD_OCO2_UP_S2_IsReady = false;
if (Base.GBPUSD_OCO2_UP_S2_IsReady == false && Base.GBPUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((GBPUSD_Signal_Condition_UP_1 || GBPUSD_Signal_Condition_UP_2 || GBPUSD_Signal_Condition_UP_3) &&
DOWR_GBPUSD_UP_S2 &&
Base.GBPUSD_OCO1_UP_S2_IsReady == false &&
Base.GBPUSD_OCO2_UP_S2_IsReady == false &&
Base.GBPUSD_OCO3_UP_S2_IsReady == true &&
Base.GBPUSD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.GBPUSD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP1_UP_S2, false,"GBPUSD_UP_S2_Entry_TP1_OCO3");
Base.GBPUSD_OCO3_EO1_UP_S2 = false;
Base.GBPUSD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP2_UP_S2, false,"GBPUSD_UP_S2_Entry_TP2_OCO3");
Base.GBPUSD_OCO3_EO2_UP_S2 = false;
Base.GBPUSD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP3_UP_S2, false,"GBPUSD_UP_S2_Entry_TP3_OCO3");
Base.GBPUSD_OCO3_EO3_UP_S2 = false;
Base.GBPUSD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP4_UP_S2, false,"GBPUSD_UP_S2_Entry_TP4_OCO3");
Base.GBPUSD_OCO3_EO4_UP_S2 = false;
Base.GBPUSD_OCO3_UP_S2_IsReady = false;
if (Base.GBPUSD_OCO3_UP_S2_IsReady == false && Base.GBPUSD_OCO2_UP_S2_IsReady == false && Base.GBPUSD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((GBPUSD_Signal_Condition_UP_1 || GBPUSD_Signal_Condition_UP_2 || GBPUSD_Signal_Condition_UP_3) &&
DOWR_GBPUSD_UP_S2 &&
Base.GBPUSD_OCO1_UP_S2_IsReady == false &&
Base.GBPUSD_OCO2_UP_S2_IsReady == false &&
Base.GBPUSD_OCO3_UP_S2_IsReady == false &&
Base.GBPUSD_OCO4_UP_S2_IsReady == true &&
Base.GBPUSD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.GBPUSD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP1_UP_S2, false,"GBPUSD_UP_S2_Entry_TP1_OCO4");
Base.GBPUSD_OCO4_EO1_UP_S2 = false;
Base.GBPUSD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP2_UP_S2, false,"GBPUSD_UP_S2_Entry_TP2_OCO4");
Base.GBPUSD_OCO4_EO2_UP_S2 = false;
Base.GBPUSD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP3_UP_S2, false,"GBPUSD_UP_S2_Entry_TP3_OCO4");
Base.GBPUSD_OCO4_EO3_UP_S2 = false;
Base.GBPUSD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPUSD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPUSD_quantity_TP4_UP_S2, false,"GBPUSD_UP_S2_Entry_TP4_OCO4");
Base.GBPUSD_OCO4_EO4_UP_S2 = false;
Base.GBPUSD_OCO4_UP_S2_IsReady = false;
if (Base.GBPUSD_OCO4_UP_S2_IsReady == false && Base.GBPUSD_OCO3_UP_S2_IsReady == false && Base.GBPUSD_OCO2_UP_S2_IsReady == false && Base.GBPUSD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_CADJPY_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_CADJPY_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("CADJPY_DOWN_S2_OCO1")))
{
Base.CADJPY_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CADJPY_DOWN_S2_OCO2")))
{
Base.CADJPY_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CADJPY_DOWN_S2_OCO3")))
{
Base.CADJPY_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CADJPY_DOWN_S2_OCO4")))
{
Base.CADJPY_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("CADJPY_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.CADJPY_OCO1_EO1_DOWN_S2)
Base.CADJPY_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO2_DOWN_S2)
Base.CADJPY_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO3_DOWN_S2)
Base.CADJPY_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO4_DOWN_S2)
Base.CADJPY_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO5_DOWN_S2)
Base.CADJPY_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO6_DOWN_S2)
Base.CADJPY_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CADJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int CADJPY_OCO1S1_DOWN_S2 = 0;
for (; CADJPY_OCO1S1_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets1.Count; CADJPY_OCO1S1_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets1[CADJPY_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO1Sets1[CADJPY_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_1__Time out_OCO1");
Base.CADJPY_DOWN_S2_OCO1Sets1.Clear();
CADJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int CADJPY_OCO1S2_DOWN_S2 = 0;
for (; CADJPY_OCO1S2_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets2.Count; CADJPY_OCO1S2_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets2[CADJPY_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO1Sets2[CADJPY_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_2__Time out_OCO1");
Base.CADJPY_DOWN_S2_OCO1Sets2.Clear();
CADJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int CADJPY_OCO1S3_DOWN_S2 = 0;
for (; CADJPY_OCO1S3_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets3.Count; CADJPY_OCO1S3_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets3[CADJPY_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO1Sets3[CADJPY_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_3__Time out_OCO1");
Base.CADJPY_DOWN_S2_OCO1Sets3.Clear();
CADJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int CADJPY_OCO1S4_DOWN_S2 = 0;
for (; CADJPY_OCO1S4_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets4.Count; CADJPY_OCO1S4_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets4[CADJPY_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO1Sets4[CADJPY_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_4__Time out_OCO1");
Base.CADJPY_DOWN_S2_OCO1Sets4.Clear();
CADJPY_OCO1S4_DOWN_S2 = 0;
break;
}
int CADJPY_OCO1S5_DOWN_S2 = 0;
for (; CADJPY_OCO1S5_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets5.Count; CADJPY_OCO1S5_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets5[CADJPY_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO1Sets5[CADJPY_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_5__Time out_OCO1");
Base.CADJPY_DOWN_S2_OCO1Sets5.Clear();
CADJPY_OCO1S5_DOWN_S2 = 0;
break;
}
int CADJPY_OCO1S6_DOWN_S2 = 0;
for (; CADJPY_OCO1S6_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO1Sets6.Count; CADJPY_OCO1S6_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO1Sets6[CADJPY_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO1Sets6[CADJPY_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_6__Time out_OCO1");
Base.CADJPY_DOWN_S2_OCO1Sets6.Clear();
CADJPY_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO2_EO1_DOWN_S2)
Base.CADJPY_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO2_DOWN_S2)
Base.CADJPY_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO3_DOWN_S2)
Base.CADJPY_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO4_DOWN_S2)
Base.CADJPY_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO5_DOWN_S2)
Base.CADJPY_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO6_DOWN_S2)
Base.CADJPY_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CADJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int CADJPY_OCO2S1_DOWN_S2 = 0;
for (; CADJPY_OCO2S1_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets1.Count; CADJPY_OCO2S1_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets1[CADJPY_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO2Sets1[CADJPY_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_1__Time out_OCO2");
Base.CADJPY_DOWN_S2_OCO2Sets1.Clear();
CADJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int CADJPY_OCO2S2_DOWN_S2 = 0;
for (; CADJPY_OCO2S2_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets2.Count; CADJPY_OCO2S2_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets2[CADJPY_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO2Sets2[CADJPY_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_2__Time out_OCO2");
Base.CADJPY_DOWN_S2_OCO2Sets2.Clear();
CADJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int CADJPY_OCO2S3_DOWN_S2 = 0;
for (; CADJPY_OCO2S3_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets3.Count; CADJPY_OCO2S3_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets3[CADJPY_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO2Sets3[CADJPY_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_3__Time out_OCO2");
Base.CADJPY_DOWN_S2_OCO2Sets3.Clear();
CADJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int CADJPY_OCO2S4_DOWN_S2 = 0;
for (; CADJPY_OCO2S4_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets4.Count; CADJPY_OCO2S4_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets4[CADJPY_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO2Sets4[CADJPY_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_4__Time out_OCO2");
Base.CADJPY_DOWN_S2_OCO2Sets4.Clear();
CADJPY_OCO2S4_DOWN_S2 = 0;
break;
}
int CADJPY_OCO2S5_DOWN_S2 = 0;
for (; CADJPY_OCO2S5_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets5.Count; CADJPY_OCO2S5_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets5[CADJPY_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO2Sets5[CADJPY_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_5__Time out_OCO2");
Base.CADJPY_DOWN_S2_OCO2Sets5.Clear();
CADJPY_OCO2S5_DOWN_S2 = 0;
break;
}
int CADJPY_OCO2S6_DOWN_S2 = 0;
for (; CADJPY_OCO2S6_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO2Sets6.Count; CADJPY_OCO2S6_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO2Sets6[CADJPY_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO2Sets6[CADJPY_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_6__Time out_OCO2");
Base.CADJPY_DOWN_S2_OCO2Sets6.Clear();
CADJPY_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO3_EO1_DOWN_S2)
Base.CADJPY_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO2_DOWN_S2)
Base.CADJPY_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO3_DOWN_S2)
Base.CADJPY_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO4_DOWN_S2)
Base.CADJPY_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO5_DOWN_S2)
Base.CADJPY_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO6_DOWN_S2)
Base.CADJPY_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CADJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int CADJPY_OCO3S1_DOWN_S2 = 0;
for (; CADJPY_OCO3S1_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets1.Count; CADJPY_OCO3S1_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets1[CADJPY_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO3Sets1[CADJPY_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_1__Time out_OCO3");
Base.CADJPY_DOWN_S2_OCO3Sets1.Clear();
CADJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int CADJPY_OCO3S2_DOWN_S2 = 0;
for (; CADJPY_OCO3S2_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets2.Count; CADJPY_OCO3S2_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets2[CADJPY_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO3Sets2[CADJPY_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_2__Time out_OCO3");
Base.CADJPY_DOWN_S2_OCO3Sets2.Clear();
CADJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int CADJPY_OCO3S3_DOWN_S2 = 0;
for (; CADJPY_OCO3S3_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets3.Count; CADJPY_OCO3S3_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets3[CADJPY_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO3Sets3[CADJPY_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_3__Time out_OCO3");
Base.CADJPY_DOWN_S2_OCO3Sets3.Clear();
CADJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int CADJPY_OCO3S4_DOWN_S2 = 0;
for (; CADJPY_OCO3S4_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets4.Count; CADJPY_OCO3S4_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets4[CADJPY_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO3Sets4[CADJPY_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_4__Time out_OCO3");
Base.CADJPY_DOWN_S2_OCO3Sets4.Clear();
CADJPY_OCO3S4_DOWN_S2 = 0;
break;
}
int CADJPY_OCO3S5_DOWN_S2 = 0;
for (; CADJPY_OCO3S5_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets5.Count; CADJPY_OCO3S5_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets5[CADJPY_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO3Sets5[CADJPY_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_5__Time out_OCO3");
Base.CADJPY_DOWN_S2_OCO3Sets5.Clear();
CADJPY_OCO3S5_DOWN_S2 = 0;
break;
}
int CADJPY_OCO3S6_DOWN_S2 = 0;
for (; CADJPY_OCO3S6_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO3Sets6.Count; CADJPY_OCO3S6_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO3Sets6[CADJPY_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO3Sets6[CADJPY_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_6__Time out_OCO3");
Base.CADJPY_DOWN_S2_OCO3Sets6.Clear();
CADJPY_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO4_EO1_DOWN_S2)
Base.CADJPY_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO2_DOWN_S2)
Base.CADJPY_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO3_DOWN_S2)
Base.CADJPY_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO4_DOWN_S2)
Base.CADJPY_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO5_DOWN_S2)
Base.CADJPY_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO6_DOWN_S2)
Base.CADJPY_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CADJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int CADJPY_OCO4S1_DOWN_S2 = 0;
for (; CADJPY_OCO4S1_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets1.Count; CADJPY_OCO4S1_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets1[CADJPY_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO4Sets1[CADJPY_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_1__Time out_OCO4");
Base.CADJPY_DOWN_S2_OCO4Sets1.Clear();
CADJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int CADJPY_OCO4S2_DOWN_S2 = 0;
for (; CADJPY_OCO4S2_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets2.Count; CADJPY_OCO4S2_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets2[CADJPY_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO4Sets2[CADJPY_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_2__Time out_OCO4");
Base.CADJPY_DOWN_S2_OCO4Sets2.Clear();
CADJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int CADJPY_OCO4S3_DOWN_S2 = 0;
for (; CADJPY_OCO4S3_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets3.Count; CADJPY_OCO4S3_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets3[CADJPY_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO4Sets3[CADJPY_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_3__Time out_OCO4");
Base.CADJPY_DOWN_S2_OCO4Sets3.Clear();
CADJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int CADJPY_OCO4S4_DOWN_S2 = 0;
for (; CADJPY_OCO4S4_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets4.Count; CADJPY_OCO4S4_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets4[CADJPY_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO4Sets4[CADJPY_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_4__Time out_OCO4");
Base.CADJPY_DOWN_S2_OCO4Sets4.Clear();
CADJPY_OCO4S4_DOWN_S2 = 0;
break;
}
int CADJPY_OCO4S5_DOWN_S2 = 0;
for (; CADJPY_OCO4S5_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets5.Count; CADJPY_OCO4S5_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets5[CADJPY_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO4Sets5[CADJPY_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_5__Time out_OCO4");
Base.CADJPY_DOWN_S2_OCO4Sets5.Clear();
CADJPY_OCO4S5_DOWN_S2 = 0;
break;
}
int CADJPY_OCO4S6_DOWN_S2 = 0;
for (; CADJPY_OCO4S6_DOWN_S2 < Base.CADJPY_DOWN_S2_OCO4Sets6.Count; CADJPY_OCO4S6_DOWN_S2++)
if (Base.CADJPY_DOWN_S2_OCO4Sets6[CADJPY_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.CADJPY_DOWN_S2_OCO4Sets6[CADJPY_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_DOWN_S2_Entry_6__Time out_OCO4");
Base.CADJPY_DOWN_S2_OCO4Sets6.Clear();
CADJPY_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_CADJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_CADJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_CADJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_CADJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_CADJPY_DOWN_S2 = DOWM_CADJPY_DOWN_S2 || DOWT_CADJPY_DOWN_S2 || DOWW_CADJPY_DOWN_S2 || DOWTH_CADJPY_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("CADJPY"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.CADJPY_OCO1_DOWN_S2_IsReady == false ||
Base.CADJPY_OCO2_DOWN_S2_IsReady == false ||
Base.CADJPY_OCO3_DOWN_S2_IsReady == false ||
Base.CADJPY_OCO4_DOWN_S2_IsReady == false)
{
Base.CADJPY_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.CADJPY_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.CADJPY_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.CADJPY_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.CADJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.CADJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.CADJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.CADJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
}
CADJPY_Signal_Condition_DOWN_1 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Yen_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
CADJPY_Signal_Condition_DOWN_2 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Yen_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
CADJPY_Signal_Condition_DOWN_3 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Yen_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (CADJPY_Signal_Condition_DOWN_1)
{
CADJPY_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (CADJPY_Signal_Condition_DOWN_2)
{
CADJPY_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (CADJPY_Signal_Condition_DOWN_3)
{
CADJPY_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (CADJPY_Signal_Condition_DOWN_1)
{
CADJPY_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Static_Yen_TP_1 ;
}
if (CADJPY_Signal_Condition_DOWN_2)
{
CADJPY_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Static_Yen_TP_1 ;
}
if (CADJPY_Signal_Condition_DOWN_3)
{
CADJPY_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Static_Yen_TP_1 ;
}
CADJPY_DOWN_S2_TP2 = CADJPY_DOWN_S2_SL * 0;
CADJPY_DOWN_S2_TP3 = CADJPY_DOWN_S2_SL * 0;
CADJPY_DOWN_S2_TP4 = CADJPY_DOWN_S2_SL * 0;
CADJPY_DOWN_S2_TP5 = CADJPY_DOWN_S2_SL * 0;
CADJPY_DOWN_S2_TP6 = CADJPY_DOWN_S2_SL * 0;
if (coefIntS2 != 0 && CADJPY_DOWN_S2_SL != 0)
{
CADJPY_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)*0.015m);
CADJPY_quantity_SL_DOWN_S2 = CADJPY_quantity_DOWN_S2;
CADJPY_quantity_TP1_DOWN_S2 = (CADJPY_quantity_DOWN_S2 );
CADJPY_quantity_TP2_DOWN_S2 = (CADJPY_quantity_TP1_DOWN_S2 * 0);
CADJPY_quantity_TP3_DOWN_S2 = (CADJPY_quantity_TP2_DOWN_S2 * 0);
CADJPY_quantity_TP4_DOWN_S2 = (CADJPY_quantity_TP3_DOWN_S2 * 0);
CADJPY_quantity_TP5_DOWN_S2 = (CADJPY_quantity_TP4_DOWN_S2 * 0);
CADJPY_quantity_TP6_DOWN_S2 = (CADJPY_quantity_TP5_DOWN_S2 * 0);
}
oco1:
if ((CADJPY_Signal_Condition_DOWN_1 || CADJPY_Signal_Condition_DOWN_2 || CADJPY_Signal_Condition_DOWN_3) &&
DOWR_CADJPY_DOWN_S2 &&
Base.CADJPY_OCO1_DOWN_S2_IsReady == true &&
Base.CADJPY_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.CADJPY_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP1_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP1_OCO1");
Base.CADJPY_OCO1_EO1_DOWN_S2 = false;
Base.CADJPY_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP2_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP2_OCO1");
Base.CADJPY_OCO1_EO2_DOWN_S2 = false;
Base.CADJPY_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP3_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP3_OCO1");
Base.CADJPY_OCO1_EO3_DOWN_S2 = false;
Base.CADJPY_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP4_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP4_OCO1");
Base.CADJPY_OCO1_EO4_DOWN_S2 = false;
Base.CADJPY_OCO1_DOWN_S2_IsReady = false;
if (Base.CADJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if ((CADJPY_Signal_Condition_DOWN_1 || CADJPY_Signal_Condition_DOWN_2 || CADJPY_Signal_Condition_DOWN_3) &&
DOWR_CADJPY_DOWN_S2 &&
Base.CADJPY_OCO2_DOWN_S2_IsReady == true &&
Base.CADJPY_OCO1_DOWN_S2_IsReady == false &&
Base.CADJPY_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.CADJPY_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP1_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP1_OCO2");
Base.CADJPY_OCO2_EO1_DOWN_S2 = false;
Base.CADJPY_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP2_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP2_OCO2");
Base.CADJPY_OCO2_EO2_DOWN_S2 = false;
Base.CADJPY_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP3_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP3_OCO2");
Base.CADJPY_OCO2_EO3_DOWN_S2 = false;
Base.CADJPY_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP4_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP4_OCO2");
Base.CADJPY_OCO2_EO4_DOWN_S2 = false;
Base.CADJPY_OCO2_DOWN_S2_IsReady = false;
if (Base.CADJPY_OCO2_DOWN_S2_IsReady == false && Base.CADJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if ((CADJPY_Signal_Condition_DOWN_1 || CADJPY_Signal_Condition_DOWN_2 || CADJPY_Signal_Condition_DOWN_3) &&
DOWR_CADJPY_DOWN_S2 &&
Base.CADJPY_OCO3_DOWN_S2_IsReady == true &&
Base.CADJPY_OCO1_DOWN_S2_IsReady == false &&
Base.CADJPY_OCO2_DOWN_S2_IsReady == false &&
Base.CADJPY_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.CADJPY_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP1_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP1_OCO3");
Base.CADJPY_OCO3_EO1_DOWN_S2 = false;
Base.CADJPY_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP2_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP2_OCO3");
Base.CADJPY_OCO3_EO2_DOWN_S2 = false;
Base.CADJPY_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP3_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP3_OCO3");
Base.CADJPY_OCO3_EO3_DOWN_S2 = false;
Base.CADJPY_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP4_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP4_OCO3");
Base.CADJPY_OCO3_EO4_DOWN_S2 = false;
Base.CADJPY_OCO3_DOWN_S2_IsReady = false;
if (Base.CADJPY_OCO3_DOWN_S2_IsReady == false && Base.CADJPY_OCO2_DOWN_S2_IsReady == false && Base.CADJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if ((CADJPY_Signal_Condition_DOWN_1 || CADJPY_Signal_Condition_DOWN_2 || CADJPY_Signal_Condition_DOWN_3) &&
DOWR_CADJPY_DOWN_S2 &&
Base.CADJPY_OCO4_DOWN_S2_IsReady == true &&
Base.CADJPY_OCO1_DOWN_S2_IsReady == false &&
Base.CADJPY_OCO2_DOWN_S2_IsReady == false &&
Base.CADJPY_OCO3_DOWN_S2_IsReady == false &&
Base.CADJPY_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.CADJPY_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP1_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP1_OCO4");
Base.CADJPY_OCO4_EO1_DOWN_S2 = false;
Base.CADJPY_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP2_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP2_OCO4");
Base.CADJPY_OCO4_EO2_DOWN_S2 = false;
Base.CADJPY_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP3_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP3_OCO4");
Base.CADJPY_OCO4_EO3_DOWN_S2 = false;
Base.CADJPY_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
CADJPY_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP4_DOWN_S2, false,"CADJPY_DOWN_S2_Entry_TP4_OCO4");
Base.CADJPY_OCO4_EO4_DOWN_S2 = false;
Base.CADJPY_OCO4_DOWN_S2_IsReady = false;
if (Base.CADJPY_OCO4_DOWN_S2_IsReady == false && Base.CADJPY_OCO3_DOWN_S2_IsReady == false && Base.CADJPY_OCO2_DOWN_S2_IsReady == false && Base.CADJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct AUDUSD_OCO1_DOWN_S2
{
public AUDUSD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDUSD_OCO1_UP_S2
{
public AUDUSD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDUSD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDUSD_OCO2_DOWN_S2
{
public AUDUSD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDUSD_OCO2_UP_S2
{
public AUDUSD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDUSD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDUSD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDUSD_OCO3_DOWN_S2
{
public AUDUSD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDUSD_OCO3_UP_S2
{
public AUDUSD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDUSD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDUSD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDUSD_OCO4_DOWN_S2
{
public AUDUSD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDUSD_OCO4_UP_S2
{
public AUDUSD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDUSD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDUSD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct NZDCAD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public NZDCAD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
}
if (Base.NZDCAD_OCO1_EO1_UP_S2)
Base.NZDCAD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO1_EO2_UP_S2)
Base.NZDCAD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO1_EO3_UP_S2)
Base.NZDCAD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO1_EO4_UP_S2)
Base.NZDCAD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO1_EO5_UP_S2)
Base.NZDCAD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO1_EO6_UP_S2)
Base.NZDCAD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO1_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP1,"TP1_NZDCAD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP1_NZDCAD_UP_S2_OCO1"));
};
Base.NZDCAD_UP_S2_OCO1Sets1.Add( Base.NZDCAD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO2_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP2,"TP2_NZDCAD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP2_NZDCAD_UP_S2_OCO1"));
};
Base.NZDCAD_UP_S2_OCO1Sets2.Add( Base.NZDCAD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO3_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP3,"TP3_NZDCAD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP3_NZDCAD_UP_S2_OCO1"));
};
Base.NZDCAD_UP_S2_OCO1Sets3.Add( Base.NZDCAD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO4_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP4,"TP4_NZDCAD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP4_NZDCAD_UP_S2_OCO1"));
};
Base.NZDCAD_UP_S2_OCO1Sets4.Add( Base.NZDCAD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO5_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP5,"TP5_NZDCAD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP5_NZDCAD_UP_S2_OCO1"));
};
Base.NZDCAD_UP_S2_OCO1Sets5.Add( Base.NZDCAD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO6_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP6,"TP6_NZDCAD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP6_NZDCAD_UP_S2_OCO1"));
};
Base.NZDCAD_UP_S2_OCO1Sets6.Add( Base.NZDCAD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO6_UP_S2_ID = -1;
}
int NZDCAD_OCO1S1_UP_S2 = 0;
for (; NZDCAD_OCO1S1_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets1.Count; NZDCAD_OCO1S1_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets1[NZDCAD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO1Sets1[NZDCAD_OCO1S1_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO1Sets1.RemoveAt(NZDCAD_OCO1S1_UP_S2);
NZDCAD_OCO1S1_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S2_UP_S2 = 0;
for (; NZDCAD_OCO1S2_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets2.Count; NZDCAD_OCO1S2_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets2[NZDCAD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO1Sets2[NZDCAD_OCO1S2_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO1Sets2.RemoveAt(NZDCAD_OCO1S2_UP_S2);
NZDCAD_OCO1S2_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S3_UP_S2 = 0;
for (; NZDCAD_OCO1S3_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets3.Count; NZDCAD_OCO1S3_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets3[NZDCAD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO1Sets3[NZDCAD_OCO1S3_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO1Sets3.RemoveAt(NZDCAD_OCO1S3_UP_S2);
NZDCAD_OCO1S3_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S4_UP_S2 = 0;
for (; NZDCAD_OCO1S4_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets4.Count; NZDCAD_OCO1S4_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets4[NZDCAD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO1Sets4[NZDCAD_OCO1S4_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO1Sets4.RemoveAt(NZDCAD_OCO1S4_UP_S2);
NZDCAD_OCO1S4_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S5_UP_S2 = 0;
for (; NZDCAD_OCO1S5_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets5.Count; NZDCAD_OCO1S5_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets5[NZDCAD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO1Sets5[NZDCAD_OCO1S5_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO1Sets5.RemoveAt(NZDCAD_OCO1S5_UP_S2);
NZDCAD_OCO1S5_UP_S2 = 0;
break;
}
int NZDCAD_OCO1S6_UP_S2 = 0;
for (; NZDCAD_OCO1S6_UP_S2 < Base.NZDCAD_UP_S2_OCO1Sets6.Count; NZDCAD_OCO1S6_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO1Sets6[NZDCAD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO1Sets6[NZDCAD_OCO1S6_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO1Sets6.RemoveAt(NZDCAD_OCO1S6_UP_S2);
NZDCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO2_EO1_UP_S2)
Base.NZDCAD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO2_EO2_UP_S2)
Base.NZDCAD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO2_EO3_UP_S2)
Base.NZDCAD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO2_EO4_UP_S2)
Base.NZDCAD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO2_EO5_UP_S2)
Base.NZDCAD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO2_EO6_UP_S2)
Base.NZDCAD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO1_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP1,"TP1_NZDCAD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP1_NZDCAD_UP_S2_OCO2"));
};
Base.NZDCAD_UP_S2_OCO2Sets1.Add( Base.NZDCAD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO2_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP2,"TP2_NZDCAD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP2_NZDCAD_UP_S2_OCO2"));
};
Base.NZDCAD_UP_S2_OCO2Sets2.Add( Base.NZDCAD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO3_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP3,"TP3_NZDCAD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP3_NZDCAD_UP_S2_OCO2"));
};
Base.NZDCAD_UP_S2_OCO2Sets3.Add( Base.NZDCAD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO4_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP4,"TP4_NZDCAD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP4_NZDCAD_UP_S2_OCO2"));
};
Base.NZDCAD_UP_S2_OCO2Sets4.Add( Base.NZDCAD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO5_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP5,"TP5_NZDCAD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP5_NZDCAD_UP_S2_OCO2"));
};
Base.NZDCAD_UP_S2_OCO2Sets5.Add( Base.NZDCAD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO6_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP6,"TP6_NZDCAD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP6_NZDCAD_UP_S2_OCO2"));
};
Base.NZDCAD_UP_S2_OCO2Sets6.Add( Base.NZDCAD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO6_UP_S2_ID = -1;
}
int NZDCAD_OCO2S1_UP_S2 = 0;
for (; NZDCAD_OCO2S1_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets1.Count; NZDCAD_OCO2S1_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets1[NZDCAD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO2Sets1[NZDCAD_OCO2S1_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO2Sets1.RemoveAt(NZDCAD_OCO2S1_UP_S2);
NZDCAD_OCO2S1_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S2_UP_S2 = 0;
for (; NZDCAD_OCO2S2_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets2.Count; NZDCAD_OCO2S2_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets2[NZDCAD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO2Sets2[NZDCAD_OCO2S2_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO2Sets2.RemoveAt(NZDCAD_OCO2S2_UP_S2);
NZDCAD_OCO2S2_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S3_UP_S2 = 0;
for (; NZDCAD_OCO2S3_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets3.Count; NZDCAD_OCO2S3_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets3[NZDCAD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO2Sets3[NZDCAD_OCO2S3_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO2Sets3.RemoveAt(NZDCAD_OCO2S3_UP_S2);
NZDCAD_OCO2S3_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S4_UP_S2 = 0;
for (; NZDCAD_OCO2S4_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets4.Count; NZDCAD_OCO2S4_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets4[NZDCAD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO2Sets4[NZDCAD_OCO2S4_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO2Sets4.RemoveAt(NZDCAD_OCO2S4_UP_S2);
NZDCAD_OCO2S4_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S5_UP_S2 = 0;
for (; NZDCAD_OCO2S5_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets5.Count; NZDCAD_OCO2S5_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets5[NZDCAD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO2Sets5[NZDCAD_OCO2S5_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO2Sets5.RemoveAt(NZDCAD_OCO2S5_UP_S2);
NZDCAD_OCO2S5_UP_S2 = 0;
break;
}
int NZDCAD_OCO2S6_UP_S2 = 0;
for (; NZDCAD_OCO2S6_UP_S2 < Base.NZDCAD_UP_S2_OCO2Sets6.Count; NZDCAD_OCO2S6_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO2Sets6[NZDCAD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO2Sets6[NZDCAD_OCO2S6_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO2Sets6.RemoveAt(NZDCAD_OCO2S6_UP_S2);
NZDCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO3_EO1_UP_S2)
Base.NZDCAD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO3_EO2_UP_S2)
Base.NZDCAD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO3_EO3_UP_S2)
Base.NZDCAD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO3_EO4_UP_S2)
Base.NZDCAD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO3_EO5_UP_S2)
Base.NZDCAD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO3_EO6_UP_S2)
Base.NZDCAD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO1_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP1,"TP1_NZDCAD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP1_NZDCAD_UP_S2_OCO3"));
};
Base.NZDCAD_UP_S2_OCO3Sets1.Add( Base.NZDCAD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO2_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP2,"TP2_NZDCAD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP2_NZDCAD_UP_S2_OCO3"));
};
Base.NZDCAD_UP_S2_OCO3Sets2.Add( Base.NZDCAD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO3_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP3,"TP3_NZDCAD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP3_NZDCAD_UP_S2_OCO3"));
};
Base.NZDCAD_UP_S2_OCO3Sets3.Add( Base.NZDCAD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO4_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP4,"TP4_NZDCAD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP4_NZDCAD_UP_S2_OCO3"));
};
Base.NZDCAD_UP_S2_OCO3Sets4.Add( Base.NZDCAD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO5_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP5,"TP5_NZDCAD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP5_NZDCAD_UP_S2_OCO3"));
};
Base.NZDCAD_UP_S2_OCO3Sets5.Add( Base.NZDCAD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO6_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP6,"TP6_NZDCAD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP6_NZDCAD_UP_S2_OCO3"));
};
Base.NZDCAD_UP_S2_OCO3Sets6.Add( Base.NZDCAD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO6_UP_S2_ID = -1;
}
int NZDCAD_OCO3S1_UP_S2 = 0;
for (; NZDCAD_OCO3S1_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets1.Count; NZDCAD_OCO3S1_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets1[NZDCAD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO3Sets1[NZDCAD_OCO3S1_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO3Sets1.RemoveAt(NZDCAD_OCO3S1_UP_S2);
NZDCAD_OCO3S1_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S2_UP_S2 = 0;
for (; NZDCAD_OCO3S2_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets2.Count; NZDCAD_OCO3S2_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets2[NZDCAD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO3Sets2[NZDCAD_OCO3S2_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO3Sets2.RemoveAt(NZDCAD_OCO3S2_UP_S2);
NZDCAD_OCO3S2_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S3_UP_S2 = 0;
for (; NZDCAD_OCO3S3_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets3.Count; NZDCAD_OCO3S3_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets3[NZDCAD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO3Sets3[NZDCAD_OCO3S3_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO3Sets3.RemoveAt(NZDCAD_OCO3S3_UP_S2);
NZDCAD_OCO3S3_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S4_UP_S2 = 0;
for (; NZDCAD_OCO3S4_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets4.Count; NZDCAD_OCO3S4_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets4[NZDCAD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO3Sets4[NZDCAD_OCO3S4_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO3Sets4.RemoveAt(NZDCAD_OCO3S4_UP_S2);
NZDCAD_OCO3S4_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S5_UP_S2 = 0;
for (; NZDCAD_OCO3S5_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets5.Count; NZDCAD_OCO3S5_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets5[NZDCAD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO3Sets5[NZDCAD_OCO3S5_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO3Sets5.RemoveAt(NZDCAD_OCO3S5_UP_S2);
NZDCAD_OCO3S5_UP_S2 = 0;
break;
}
int NZDCAD_OCO3S6_UP_S2 = 0;
for (; NZDCAD_OCO3S6_UP_S2 < Base.NZDCAD_UP_S2_OCO3Sets6.Count; NZDCAD_OCO3S6_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO3Sets6[NZDCAD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO3Sets6[NZDCAD_OCO3S6_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO3Sets6.RemoveAt(NZDCAD_OCO3S6_UP_S2);
NZDCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO4_EO1_UP_S2)
Base.NZDCAD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO4_EO2_UP_S2)
Base.NZDCAD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO4_EO3_UP_S2)
Base.NZDCAD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO4_EO4_UP_S2)
Base.NZDCAD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO4_EO5_UP_S2)
Base.NZDCAD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO4_EO6_UP_S2)
Base.NZDCAD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO1_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP1,"TP1_NZDCAD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP1_NZDCAD_UP_S2_OCO4"));
};
Base.NZDCAD_UP_S2_OCO4Sets1.Add( Base.NZDCAD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO2_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP2,"TP2_NZDCAD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP2_NZDCAD_UP_S2_OCO4"));
};
Base.NZDCAD_UP_S2_OCO4Sets2.Add( Base.NZDCAD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO3_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP3,"TP3_NZDCAD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP3_NZDCAD_UP_S2_OCO4"));
};
Base.NZDCAD_UP_S2_OCO4Sets3.Add( Base.NZDCAD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO4_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP4,"TP4_NZDCAD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP4_NZDCAD_UP_S2_OCO4"));
};
Base.NZDCAD_UP_S2_OCO4Sets4.Add( Base.NZDCAD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO5_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP5,"TP5_NZDCAD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP5_NZDCAD_UP_S2_OCO4"));
};
Base.NZDCAD_UP_S2_OCO4Sets5.Add( Base.NZDCAD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO6_UP_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_UP_S2_TP6,"TP6_NZDCAD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_UP_S2_SL,"SL_TP6_NZDCAD_UP_S2_OCO4"));
};
Base.NZDCAD_UP_S2_OCO4Sets6.Add( Base.NZDCAD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO6_UP_S2_ID = -1;
}
int NZDCAD_OCO4S1_UP_S2 = 0;
for (; NZDCAD_OCO4S1_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets1.Count; NZDCAD_OCO4S1_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets1[NZDCAD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO4Sets1[NZDCAD_OCO4S1_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO4Sets1.RemoveAt(NZDCAD_OCO4S1_UP_S2);
NZDCAD_OCO4S1_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S2_UP_S2 = 0;
for (; NZDCAD_OCO4S2_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets2.Count; NZDCAD_OCO4S2_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets2[NZDCAD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO4Sets2[NZDCAD_OCO4S2_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO4Sets2.RemoveAt(NZDCAD_OCO4S2_UP_S2);
NZDCAD_OCO4S2_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S3_UP_S2 = 0;
for (; NZDCAD_OCO4S3_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets3.Count; NZDCAD_OCO4S3_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets3[NZDCAD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO4Sets3[NZDCAD_OCO4S3_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO4Sets3.RemoveAt(NZDCAD_OCO4S3_UP_S2);
NZDCAD_OCO4S3_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S4_UP_S2 = 0;
for (; NZDCAD_OCO4S4_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets4.Count; NZDCAD_OCO4S4_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets4[NZDCAD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO4Sets4[NZDCAD_OCO4S4_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO4Sets4.RemoveAt(NZDCAD_OCO4S4_UP_S2);
NZDCAD_OCO4S4_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S5_UP_S2 = 0;
for (; NZDCAD_OCO4S5_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets5.Count; NZDCAD_OCO4S5_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets5[NZDCAD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO4Sets5[NZDCAD_OCO4S5_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO4Sets5.RemoveAt(NZDCAD_OCO4S5_UP_S2);
NZDCAD_OCO4S5_UP_S2 = 0;
break;
}
int NZDCAD_OCO4S6_UP_S2 = 0;
for (; NZDCAD_OCO4S6_UP_S2 < Base.NZDCAD_UP_S2_OCO4Sets6.Count; NZDCAD_OCO4S6_UP_S2++)
if (Base.NZDCAD_UP_S2_OCO4Sets6[NZDCAD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_UP_S2_OCO4Sets6[NZDCAD_OCO4S6_UP_S2].Filled();
Base.NZDCAD_UP_S2_OCO4Sets6.RemoveAt(NZDCAD_OCO4S6_UP_S2);
NZDCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct USDCHF_OCO1_DOWN_S2
{
public USDCHF_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCHF_OCO1_UP_S2
{
public USDCHF_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCHF_OCO2_DOWN_S2
{
public USDCHF_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCHF_OCO2_UP_S2
{
public USDCHF_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("USDCHF OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCHF_OCO3_DOWN_S2
{
public USDCHF_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCHF_OCO3_UP_S2
{
public USDCHF_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("USDCHF OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCHF_OCO4_DOWN_S2
{
public USDCHF_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDCHF_OCO4_UP_S2
{
public USDCHF_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("USDCHF OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_CADJPY_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_CADJPY_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("CADJPY_UP_S2_OCO1")))
{
Base.CADJPY_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CADJPY_UP_S2_OCO2")))
{
Base.CADJPY_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CADJPY_UP_S2_OCO3")))
{
Base.CADJPY_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CADJPY_UP_S2_OCO4")))
{
Base.CADJPY_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("CADJPY_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.CADJPY_OCO1_EO1_UP_S2)
Base.CADJPY_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO2_UP_S2)
Base.CADJPY_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO3_UP_S2)
Base.CADJPY_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO4_UP_S2)
Base.CADJPY_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO5_UP_S2)
Base.CADJPY_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO1_EO6_UP_S2)
Base.CADJPY_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CADJPY_UP_S2_OCO_DELAY_7DAY))
{
int CADJPY_OCO1S1_UP_S2 = 0;
for (; CADJPY_OCO1S1_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets1.Count; CADJPY_OCO1S1_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets1[CADJPY_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO1Sets1[CADJPY_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_1__Time out_OCO1");
Base.CADJPY_UP_S2_OCO1Sets1.Clear();
CADJPY_OCO1S1_UP_S2 = 0;
break;
}
int CADJPY_OCO1S2_UP_S2 = 0;
for (; CADJPY_OCO1S2_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets2.Count; CADJPY_OCO1S2_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets2[CADJPY_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO1Sets2[CADJPY_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_2__Time out_OCO1");
Base.CADJPY_UP_S2_OCO1Sets2.Clear();
CADJPY_OCO1S2_UP_S2 = 0;
break;
}
int CADJPY_OCO1S3_UP_S2 = 0;
for (; CADJPY_OCO1S3_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets3.Count; CADJPY_OCO1S3_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets3[CADJPY_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO1Sets3[CADJPY_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_3__Time out_OCO1");
Base.CADJPY_UP_S2_OCO1Sets3.Clear();
CADJPY_OCO1S3_UP_S2 = 0;
break;
}
int CADJPY_OCO1S4_UP_S2 = 0;
for (; CADJPY_OCO1S4_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets4.Count; CADJPY_OCO1S4_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets4[CADJPY_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO1Sets4[CADJPY_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_4__Time out_OCO1");
Base.CADJPY_UP_S2_OCO1Sets4.Clear();
CADJPY_OCO1S4_UP_S2 = 0;
break;
}
int CADJPY_OCO1S5_UP_S2 = 0;
for (; CADJPY_OCO1S5_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets5.Count; CADJPY_OCO1S5_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets5[CADJPY_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO1Sets5[CADJPY_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_5__Time out_OCO1");
Base.CADJPY_UP_S2_OCO1Sets5.Clear();
CADJPY_OCO1S5_UP_S2 = 0;
break;
}
int CADJPY_OCO1S6_UP_S2 = 0;
for (; CADJPY_OCO1S6_UP_S2 < Base.CADJPY_UP_S2_OCO1Sets6.Count; CADJPY_OCO1S6_UP_S2++)
if (Base.CADJPY_UP_S2_OCO1Sets6[CADJPY_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO1Sets6[CADJPY_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_6__Time out_OCO1");
Base.CADJPY_UP_S2_OCO1Sets6.Clear();
CADJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO2_EO1_UP_S2)
Base.CADJPY_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO2_UP_S2)
Base.CADJPY_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO3_UP_S2)
Base.CADJPY_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO4_UP_S2)
Base.CADJPY_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO5_UP_S2)
Base.CADJPY_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO2_EO6_UP_S2)
Base.CADJPY_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CADJPY_UP_S2_OCO_DELAY_7DAY))
{
int CADJPY_OCO2S1_UP_S2 = 0;
for (; CADJPY_OCO2S1_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets1.Count; CADJPY_OCO2S1_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets1[CADJPY_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO2Sets1[CADJPY_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_1__Time out_OCO2");
Base.CADJPY_UP_S2_OCO2Sets1.Clear();
CADJPY_OCO2S1_UP_S2 = 0;
break;
}
int CADJPY_OCO2S2_UP_S2 = 0;
for (; CADJPY_OCO2S2_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets2.Count; CADJPY_OCO2S2_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets2[CADJPY_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO2Sets2[CADJPY_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_2__Time out_OCO2");
Base.CADJPY_UP_S2_OCO2Sets2.Clear();
CADJPY_OCO2S2_UP_S2 = 0;
break;
}
int CADJPY_OCO2S3_UP_S2 = 0;
for (; CADJPY_OCO2S3_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets3.Count; CADJPY_OCO2S3_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets3[CADJPY_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO2Sets3[CADJPY_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_3__Time out_OCO2");
Base.CADJPY_UP_S2_OCO2Sets3.Clear();
CADJPY_OCO2S3_UP_S2 = 0;
break;
}
int CADJPY_OCO2S4_UP_S2 = 0;
for (; CADJPY_OCO2S4_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets4.Count; CADJPY_OCO2S4_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets4[CADJPY_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO2Sets4[CADJPY_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_4__Time out_OCO2");
Base.CADJPY_UP_S2_OCO2Sets4.Clear();
CADJPY_OCO2S4_UP_S2 = 0;
break;
}
int CADJPY_OCO2S5_UP_S2 = 0;
for (; CADJPY_OCO2S5_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets5.Count; CADJPY_OCO2S5_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets5[CADJPY_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO2Sets5[CADJPY_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_5__Time out_OCO2");
Base.CADJPY_UP_S2_OCO2Sets5.Clear();
CADJPY_OCO2S5_UP_S2 = 0;
break;
}
int CADJPY_OCO2S6_UP_S2 = 0;
for (; CADJPY_OCO2S6_UP_S2 < Base.CADJPY_UP_S2_OCO2Sets6.Count; CADJPY_OCO2S6_UP_S2++)
if (Base.CADJPY_UP_S2_OCO2Sets6[CADJPY_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO2Sets6[CADJPY_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_6__Time out_OCO2");
Base.CADJPY_UP_S2_OCO2Sets6.Clear();
CADJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO3_EO1_UP_S2)
Base.CADJPY_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO2_UP_S2)
Base.CADJPY_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO3_UP_S2)
Base.CADJPY_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO4_UP_S2)
Base.CADJPY_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO5_UP_S2)
Base.CADJPY_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO3_EO6_UP_S2)
Base.CADJPY_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CADJPY_UP_S2_OCO_DELAY_7DAY))
{
int CADJPY_OCO3S1_UP_S2 = 0;
for (; CADJPY_OCO3S1_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets1.Count; CADJPY_OCO3S1_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets1[CADJPY_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO3Sets1[CADJPY_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_1__Time out_OCO3");
Base.CADJPY_UP_S2_OCO3Sets1.Clear();
CADJPY_OCO3S1_UP_S2 = 0;
break;
}
int CADJPY_OCO3S2_UP_S2 = 0;
for (; CADJPY_OCO3S2_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets2.Count; CADJPY_OCO3S2_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets2[CADJPY_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO3Sets2[CADJPY_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_2__Time out_OCO3");
Base.CADJPY_UP_S2_OCO3Sets2.Clear();
CADJPY_OCO3S2_UP_S2 = 0;
break;
}
int CADJPY_OCO3S3_UP_S2 = 0;
for (; CADJPY_OCO3S3_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets3.Count; CADJPY_OCO3S3_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets3[CADJPY_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO3Sets3[CADJPY_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_3__Time out_OCO3");
Base.CADJPY_UP_S2_OCO3Sets3.Clear();
CADJPY_OCO3S3_UP_S2 = 0;
break;
}
int CADJPY_OCO3S4_UP_S2 = 0;
for (; CADJPY_OCO3S4_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets4.Count; CADJPY_OCO3S4_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets4[CADJPY_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO3Sets4[CADJPY_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_4__Time out_OCO3");
Base.CADJPY_UP_S2_OCO3Sets4.Clear();
CADJPY_OCO3S4_UP_S2 = 0;
break;
}
int CADJPY_OCO3S5_UP_S2 = 0;
for (; CADJPY_OCO3S5_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets5.Count; CADJPY_OCO3S5_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets5[CADJPY_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO3Sets5[CADJPY_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_5__Time out_OCO3");
Base.CADJPY_UP_S2_OCO3Sets5.Clear();
CADJPY_OCO3S5_UP_S2 = 0;
break;
}
int CADJPY_OCO3S6_UP_S2 = 0;
for (; CADJPY_OCO3S6_UP_S2 < Base.CADJPY_UP_S2_OCO3Sets6.Count; CADJPY_OCO3S6_UP_S2++)
if (Base.CADJPY_UP_S2_OCO3Sets6[CADJPY_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO3Sets6[CADJPY_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_6__Time out_OCO3");
Base.CADJPY_UP_S2_OCO3Sets6.Clear();
CADJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.CADJPY_OCO4_EO1_UP_S2)
Base.CADJPY_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO2_UP_S2)
Base.CADJPY_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO3_UP_S2)
Base.CADJPY_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO4_UP_S2)
Base.CADJPY_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO5_UP_S2)
Base.CADJPY_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.CADJPY_OCO4_EO6_UP_S2)
Base.CADJPY_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CADJPY_UP_S2_OCO_DELAY_7DAY))
{
int CADJPY_OCO4S1_UP_S2 = 0;
for (; CADJPY_OCO4S1_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets1.Count; CADJPY_OCO4S1_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets1[CADJPY_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO4Sets1[CADJPY_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_1__Time out_OCO4");
Base.CADJPY_UP_S2_OCO4Sets1.Clear();
CADJPY_OCO4S1_UP_S2 = 0;
break;
}
int CADJPY_OCO4S2_UP_S2 = 0;
for (; CADJPY_OCO4S2_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets2.Count; CADJPY_OCO4S2_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets2[CADJPY_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO4Sets2[CADJPY_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_2__Time out_OCO4");
Base.CADJPY_UP_S2_OCO4Sets2.Clear();
CADJPY_OCO4S2_UP_S2 = 0;
break;
}
int CADJPY_OCO4S3_UP_S2 = 0;
for (; CADJPY_OCO4S3_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets3.Count; CADJPY_OCO4S3_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets3[CADJPY_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO4Sets3[CADJPY_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_3__Time out_OCO4");
Base.CADJPY_UP_S2_OCO4Sets3.Clear();
CADJPY_OCO4S3_UP_S2 = 0;
break;
}
int CADJPY_OCO4S4_UP_S2 = 0;
for (; CADJPY_OCO4S4_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets4.Count; CADJPY_OCO4S4_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets4[CADJPY_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO4Sets4[CADJPY_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_4__Time out_OCO4");
Base.CADJPY_UP_S2_OCO4Sets4.Clear();
CADJPY_OCO4S4_UP_S2 = 0;
break;
}
int CADJPY_OCO4S5_UP_S2 = 0;
for (; CADJPY_OCO4S5_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets5.Count; CADJPY_OCO4S5_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets5[CADJPY_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO4Sets5[CADJPY_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_5__Time out_OCO4");
Base.CADJPY_UP_S2_OCO4Sets5.Clear();
CADJPY_OCO4S5_UP_S2 = 0;
break;
}
int CADJPY_OCO4S6_UP_S2 = 0;
for (; CADJPY_OCO4S6_UP_S2 < Base.CADJPY_UP_S2_OCO4Sets6.Count; CADJPY_OCO4S6_UP_S2++)
if (Base.CADJPY_UP_S2_OCO4Sets6[CADJPY_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.CADJPY_UP_S2_OCO4Sets6[CADJPY_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("CADJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CADJPY", order.Quantity, false, "CADJPY_UP_S2_Entry_6__Time out_OCO4");
Base.CADJPY_UP_S2_OCO4Sets6.Clear();
CADJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_CADJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_CADJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_CADJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_CADJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_CADJPY_UP_S2 = DOWM_CADJPY_UP_S2 || DOWT_CADJPY_UP_S2 || DOWW_CADJPY_UP_S2 || DOWTH_CADJPY_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("CADJPY") && SY1D.Symbol.ID.Market == Market.FXCM)
{
if(SY1D.BQ[0].Open != 0)
{
algorithm.Debug("ID : " + SY1D.Symbol.ID.Market);
}
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.CADJPY_OCO1_UP_S2_IsReady == false ||
Base.CADJPY_OCO2_UP_S2_IsReady == false ||
Base.CADJPY_OCO3_UP_S2_IsReady == false ||
Base.CADJPY_OCO4_UP_S2_IsReady == false)
{
Base.CADJPY_OCO1_UP_S2_Monthly_IsReady = false;
Base.CADJPY_OCO2_UP_S2_Monthly_IsReady = false;
Base.CADJPY_OCO3_UP_S2_Monthly_IsReady = false;
Base.CADJPY_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.CADJPY_OCO1_UP_S2_Monthly_IsReady = true;
Base.CADJPY_OCO2_UP_S2_Monthly_IsReady = true;
Base.CADJPY_OCO3_UP_S2_Monthly_IsReady = true;
Base.CADJPY_OCO4_UP_S2_Monthly_IsReady = true;
}
CADJPY_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
CADJPY_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
CADJPY_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (CADJPY_Signal_Condition_UP_1)
{
CADJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (CADJPY_Signal_Condition_UP_2)
{
CADJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (CADJPY_Signal_Condition_UP_3)
{
CADJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (CADJPY_Signal_Condition_UP_1)
{
CADJPY_UP_S2_TP1 = Base.Yen_TP_1 ;
}
if (CADJPY_Signal_Condition_UP_2)
{
CADJPY_UP_S2_TP1 = Base.Yen_TP_2 ;
}
if (CADJPY_Signal_Condition_UP_3)
{
CADJPY_UP_S2_TP1 = Base.Yen_TP_3 ;
}
CADJPY_UP_S2_TP2 = CADJPY_UP_S2_SL * 0;
CADJPY_UP_S2_TP3 = CADJPY_UP_S2_SL * 0;
CADJPY_UP_S2_TP4 = CADJPY_UP_S2_SL * 0;
CADJPY_UP_S2_TP5 = CADJPY_UP_S2_SL * 0;
CADJPY_UP_S2_TP6 = CADJPY_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
CADJPY_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
CADJPY_quantity_SL_UP_S2 = CADJPY_quantity_UP_S2;
CADJPY_quantity_TP1_UP_S2 = (int)Math.Floor(CADJPY_quantity_UP_S2 * 1m);
CADJPY_quantity_TP2_UP_S2 = (int)Math.Floor(CADJPY_quantity_TP1_UP_S2 * 0m);
CADJPY_quantity_TP3_UP_S2 = (int)Math.Floor(CADJPY_quantity_TP2_UP_S2 * 0m);
CADJPY_quantity_TP4_UP_S2 = (int)Math.Floor(CADJPY_quantity_TP3_UP_S2 * 0m);
CADJPY_quantity_TP5_UP_S2 = (int)Math.Floor(CADJPY_quantity_TP4_UP_S2 * 0m);
CADJPY_quantity_TP6_UP_S2 = (int)Math.Floor(CADJPY_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((CADJPY_Signal_Condition_UP_1 || CADJPY_Signal_Condition_UP_2 || CADJPY_Signal_Condition_UP_3) &&
DOWR_CADJPY_UP_S2 &&
Base.CADJPY_OCO1_UP_S2_IsReady == true &&
Base.CADJPY_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.CADJPY_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP1_UP_S2, false,"CADJPY_UP_S2_Entry_TP1_OCO1");
Base.CADJPY_OCO1_EO1_UP_S2 = false;
Base.CADJPY_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP2_UP_S2, false,"CADJPY_UP_S2_Entry_TP2_OCO1");
Base.CADJPY_OCO1_EO2_UP_S2 = false;
Base.CADJPY_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP3_UP_S2, false,"CADJPY_UP_S2_Entry_TP3_OCO1");
Base.CADJPY_OCO1_EO3_UP_S2 = false;
Base.CADJPY_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP4_UP_S2, false,"CADJPY_UP_S2_Entry_TP4_OCO1");
Base.CADJPY_OCO1_EO4_UP_S2 = false;
Base.CADJPY_OCO1_UP_S2_IsReady = false;
if (Base.CADJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((CADJPY_Signal_Condition_UP_1 || CADJPY_Signal_Condition_UP_2 || CADJPY_Signal_Condition_UP_3) &&
DOWR_CADJPY_UP_S2 &&
Base.CADJPY_OCO1_UP_S2_IsReady == false &&
Base.CADJPY_OCO2_UP_S2_IsReady == true &&
Base.CADJPY_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.CADJPY_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP1_UP_S2, false,"CADJPY_UP_S2_Entry_TP1_OCO2");
Base.CADJPY_OCO2_EO1_UP_S2 = false;
Base.CADJPY_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP2_UP_S2, false,"CADJPY_UP_S2_Entry_TP2_OCO2");
Base.CADJPY_OCO2_EO2_UP_S2 = false;
Base.CADJPY_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP3_UP_S2, false,"CADJPY_UP_S2_Entry_TP3_OCO2");
Base.CADJPY_OCO2_EO3_UP_S2 = false;
Base.CADJPY_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP4_UP_S2, false,"CADJPY_UP_S2_Entry_TP4_OCO2");
Base.CADJPY_OCO2_EO4_UP_S2 = false;
Base.CADJPY_OCO2_UP_S2_IsReady = false;
if (Base.CADJPY_OCO2_UP_S2_IsReady == false && Base.CADJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((CADJPY_Signal_Condition_UP_1 || CADJPY_Signal_Condition_UP_2 || CADJPY_Signal_Condition_UP_3) &&
DOWR_CADJPY_UP_S2 &&
Base.CADJPY_OCO1_UP_S2_IsReady == false &&
Base.CADJPY_OCO2_UP_S2_IsReady == false &&
Base.CADJPY_OCO3_UP_S2_IsReady == true &&
Base.CADJPY_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.CADJPY_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP1_UP_S2, false,"CADJPY_UP_S2_Entry_TP1_OCO3");
Base.CADJPY_OCO3_EO1_UP_S2 = false;
Base.CADJPY_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP2_UP_S2, false,"CADJPY_UP_S2_Entry_TP2_OCO3");
Base.CADJPY_OCO3_EO2_UP_S2 = false;
Base.CADJPY_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP3_UP_S2, false,"CADJPY_UP_S2_Entry_TP3_OCO3");
Base.CADJPY_OCO3_EO3_UP_S2 = false;
Base.CADJPY_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP4_UP_S2, false,"CADJPY_UP_S2_Entry_TP4_OCO3");
Base.CADJPY_OCO3_EO4_UP_S2 = false;
Base.CADJPY_OCO3_UP_S2_IsReady = false;
if (Base.CADJPY_OCO3_UP_S2_IsReady == false && Base.CADJPY_OCO2_UP_S2_IsReady == false && Base.CADJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((CADJPY_Signal_Condition_UP_1 || CADJPY_Signal_Condition_UP_2 || CADJPY_Signal_Condition_UP_3) &&
DOWR_CADJPY_UP_S2 &&
Base.CADJPY_OCO1_UP_S2_IsReady == false &&
Base.CADJPY_OCO2_UP_S2_IsReady == false &&
Base.CADJPY_OCO3_UP_S2_IsReady == false &&
Base.CADJPY_OCO4_UP_S2_IsReady == true &&
Base.CADJPY_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.CADJPY_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP1_UP_S2, false,"CADJPY_UP_S2_Entry_TP1_OCO4");
Base.CADJPY_OCO4_EO1_UP_S2 = false;
Base.CADJPY_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP2_UP_S2, false,"CADJPY_UP_S2_Entry_TP2_OCO4");
Base.CADJPY_OCO4_EO2_UP_S2 = false;
Base.CADJPY_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP3_UP_S2, false,"CADJPY_UP_S2_Entry_TP3_OCO4");
Base.CADJPY_OCO4_EO3_UP_S2 = false;
Base.CADJPY_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CADJPY_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CADJPY_quantity_TP4_UP_S2, false,"CADJPY_UP_S2_Entry_TP4_OCO4");
Base.CADJPY_OCO4_EO4_UP_S2 = false;
Base.CADJPY_OCO4_UP_S2_IsReady = false;
if (Base.CADJPY_OCO4_UP_S2_IsReady == false && Base.CADJPY_OCO3_UP_S2_IsReady == false && Base.CADJPY_OCO2_UP_S2_IsReady == false && Base.CADJPY_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct AUDNZD_OCO1_DOWN_S2
{
public AUDNZD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDNZD_OCO1_UP_S2
{
public AUDNZD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDNZD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDNZD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDNZD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDNZD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDNZD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDNZD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDNZD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDNZD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDNZD_OCO2_DOWN_S2
{
public AUDNZD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDNZD_OCO2_UP_S2
{
public AUDNZD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDNZD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDNZD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDNZD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDNZD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDNZD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDNZD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDNZD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDNZD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDNZD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDNZD_OCO3_DOWN_S2
{
public AUDNZD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDNZD_OCO3_UP_S2
{
public AUDNZD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDNZD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDNZD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDNZD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDNZD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDNZD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDNZD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDNZD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDNZD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDNZD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDNZD_OCO4_DOWN_S2
{
public AUDNZD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDNZD_OCO4_UP_S2
{
public AUDNZD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDNZD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDNZD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDNZD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDNZD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDNZD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDNZD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDNZD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDNZD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDNZD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPCHF_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPCHF_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
}
if (Base.GBPCHF_OCO1_EO1_DOWN_S2)
Base.GBPCHF_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO1_EO2_DOWN_S2)
Base.GBPCHF_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO1_EO3_DOWN_S2)
Base.GBPCHF_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO1_EO4_DOWN_S2)
Base.GBPCHF_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO1_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP1_GBPCHF_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP1,"TP1_GBPCHF_DOWN_S2_OCO1"));
};
Base.GBPCHF_DOWN_S2_OCO1Sets1.Add( Base.GBPCHF_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO2_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP2_GBPCHF_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP2,"TP2_GBPCHF_DOWN_S2_OCO1"));
};
Base.GBPCHF_DOWN_S2_OCO1Sets2.Add( Base.GBPCHF_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO3_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP3_GBPCHF_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP3,"TP3_GBPCHF_DOWN_S2_OCO1"));
};
Base.GBPCHF_DOWN_S2_OCO1Sets3.Add( Base.GBPCHF_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO4_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP4_GBPCHF_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP4,"TP4_GBPCHF_DOWN_S2_OCO1"));
};
Base.GBPCHF_DOWN_S2_OCO1Sets4.Add( Base.GBPCHF_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO4_DOWN_S2_ID = -1;
}
int GBPCHF_OCO1S1_DOWN_S2 = 0;
for (; GBPCHF_OCO1S1_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets1.Count; GBPCHF_OCO1S1_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets1[GBPCHF_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO1Sets1[GBPCHF_OCO1S1_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO1Sets1.RemoveAt(GBPCHF_OCO1S1_DOWN_S2);
GBPCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO1S2_DOWN_S2 = 0;
for (; GBPCHF_OCO1S2_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets2.Count; GBPCHF_OCO1S2_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets2[GBPCHF_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO1Sets2[GBPCHF_OCO1S2_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO1Sets2.RemoveAt(GBPCHF_OCO1S2_DOWN_S2);
GBPCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO1S3_DOWN_S2 = 0;
for (; GBPCHF_OCO1S3_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets3.Count; GBPCHF_OCO1S3_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets3[GBPCHF_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO1Sets3[GBPCHF_OCO1S3_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO1Sets3.RemoveAt(GBPCHF_OCO1S3_DOWN_S2);
GBPCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO1S4_DOWN_S2 = 0;
for (; GBPCHF_OCO1S4_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets4.Count; GBPCHF_OCO1S4_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets4[GBPCHF_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO1Sets4[GBPCHF_OCO1S4_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO1Sets4.RemoveAt(GBPCHF_OCO1S4_DOWN_S2);
GBPCHF_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO2_EO1_DOWN_S2)
Base.GBPCHF_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO2_EO2_DOWN_S2)
Base.GBPCHF_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO2_EO3_DOWN_S2)
Base.GBPCHF_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO2_EO4_DOWN_S2)
Base.GBPCHF_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO1_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP1_GBPCHF_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP1,"TP1_GBPCHF_DOWN_S2_OCO2"));
};
Base.GBPCHF_DOWN_S2_OCO2Sets1.Add( Base.GBPCHF_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO2_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP2_GBPCHF_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP2,"TP2_GBPCHF_DOWN_S2_OCO2"));
};
Base.GBPCHF_DOWN_S2_OCO2Sets2.Add( Base.GBPCHF_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO3_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP3_GBPCHF_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP3,"TP3_GBPCHF_DOWN_S2_OCO2"));
};
Base.GBPCHF_DOWN_S2_OCO2Sets3.Add( Base.GBPCHF_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO4_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP4_GBPCHF_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP4,"TP4_GBPCHF_DOWN_S2_OCO2"));
};
Base.GBPCHF_DOWN_S2_OCO2Sets4.Add( Base.GBPCHF_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO4_DOWN_S2_ID = -1;
}
int GBPCHF_OCO2S1_DOWN_S2 = 0;
for (; GBPCHF_OCO2S1_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets1.Count; GBPCHF_OCO2S1_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets1[GBPCHF_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO2Sets1[GBPCHF_OCO2S1_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO2Sets1.RemoveAt(GBPCHF_OCO2S1_DOWN_S2);
GBPCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO2S2_DOWN_S2 = 0;
for (; GBPCHF_OCO2S2_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets2.Count; GBPCHF_OCO2S2_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets2[GBPCHF_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO2Sets2[GBPCHF_OCO2S2_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO2Sets2.RemoveAt(GBPCHF_OCO2S2_DOWN_S2);
GBPCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO2S3_DOWN_S2 = 0;
for (; GBPCHF_OCO2S3_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets3.Count; GBPCHF_OCO2S3_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets3[GBPCHF_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO2Sets3[GBPCHF_OCO2S3_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO2Sets3.RemoveAt(GBPCHF_OCO2S3_DOWN_S2);
GBPCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO2S4_DOWN_S2 = 0;
for (; GBPCHF_OCO2S4_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets4.Count; GBPCHF_OCO2S4_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets4[GBPCHF_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO2Sets4[GBPCHF_OCO2S4_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO2Sets4.RemoveAt(GBPCHF_OCO2S4_DOWN_S2);
GBPCHF_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO3_EO1_DOWN_S2)
Base.GBPCHF_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO3_EO2_DOWN_S2)
Base.GBPCHF_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO3_EO3_DOWN_S2)
Base.GBPCHF_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO3_EO4_DOWN_S2)
Base.GBPCHF_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO1_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP1_GBPCHF_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP1,"TP1_GBPCHF_DOWN_S2_OCO3"));
};
Base.GBPCHF_DOWN_S2_OCO3Sets1.Add( Base.GBPCHF_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO2_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP2_GBPCHF_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP2,"TP2_GBPCHF_DOWN_S2_OCO3"));
};
Base.GBPCHF_DOWN_S2_OCO3Sets2.Add( Base.GBPCHF_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO3_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP3_GBPCHF_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP3,"TP3_GBPCHF_DOWN_S2_OCO3"));
};
Base.GBPCHF_DOWN_S2_OCO3Sets3.Add( Base.GBPCHF_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO4_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP4_GBPCHF_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP4,"TP4_GBPCHF_DOWN_S2_OCO3"));
};
Base.GBPCHF_DOWN_S2_OCO3Sets4.Add( Base.GBPCHF_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO4_DOWN_S2_ID = -1;
}
int GBPCHF_OCO3S1_DOWN_S2 = 0;
for (; GBPCHF_OCO3S1_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets1.Count; GBPCHF_OCO3S1_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets1[GBPCHF_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO3Sets1[GBPCHF_OCO3S1_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO3Sets1.RemoveAt(GBPCHF_OCO3S1_DOWN_S2);
GBPCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO3S2_DOWN_S2 = 0;
for (; GBPCHF_OCO3S2_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets2.Count; GBPCHF_OCO3S2_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets2[GBPCHF_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO3Sets2[GBPCHF_OCO3S2_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO3Sets2.RemoveAt(GBPCHF_OCO3S2_DOWN_S2);
GBPCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO3S3_DOWN_S2 = 0;
for (; GBPCHF_OCO3S3_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets3.Count; GBPCHF_OCO3S3_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets3[GBPCHF_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO3Sets3[GBPCHF_OCO3S3_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO3Sets3.RemoveAt(GBPCHF_OCO3S3_DOWN_S2);
GBPCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO3S4_DOWN_S2 = 0;
for (; GBPCHF_OCO3S4_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets4.Count; GBPCHF_OCO3S4_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets4[GBPCHF_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO3Sets4[GBPCHF_OCO3S4_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO3Sets4.RemoveAt(GBPCHF_OCO3S4_DOWN_S2);
GBPCHF_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO4_EO1_DOWN_S2)
Base.GBPCHF_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO4_EO2_DOWN_S2)
Base.GBPCHF_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO4_EO3_DOWN_S2)
Base.GBPCHF_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO4_EO4_DOWN_S2)
Base.GBPCHF_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO1_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP1_GBPCHF_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP1,"TP1_GBPCHF_DOWN_S2_OCO4"));
};
Base.GBPCHF_DOWN_S2_OCO4Sets1.Add( Base.GBPCHF_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO2_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP2_GBPCHF_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP2,"TP2_GBPCHF_DOWN_S2_OCO4"));
};
Base.GBPCHF_DOWN_S2_OCO4Sets2.Add( Base.GBPCHF_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO3_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP3_GBPCHF_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP3,"TP3_GBPCHF_DOWN_S2_OCO4"));
};
Base.GBPCHF_DOWN_S2_OCO4Sets3.Add( Base.GBPCHF_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO4_DOWN_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_DOWN_S2_SL,"SL_TP4_GBPCHF_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_DOWN_S2_TP4,"TP4_GBPCHF_DOWN_S2_OCO4"));
};
Base.GBPCHF_DOWN_S2_OCO4Sets4.Add( Base.GBPCHF_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO4_DOWN_S2_ID = -1;
}
int GBPCHF_OCO4S1_DOWN_S2 = 0;
for (; GBPCHF_OCO4S1_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets1.Count; GBPCHF_OCO4S1_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets1[GBPCHF_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO4Sets1[GBPCHF_OCO4S1_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO4Sets1.RemoveAt(GBPCHF_OCO4S1_DOWN_S2);
GBPCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO4S2_DOWN_S2 = 0;
for (; GBPCHF_OCO4S2_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets2.Count; GBPCHF_OCO4S2_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets2[GBPCHF_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO4Sets2[GBPCHF_OCO4S2_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO4Sets2.RemoveAt(GBPCHF_OCO4S2_DOWN_S2);
GBPCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO4S3_DOWN_S2 = 0;
for (; GBPCHF_OCO4S3_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets3.Count; GBPCHF_OCO4S3_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets3[GBPCHF_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO4Sets3[GBPCHF_OCO4S3_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO4Sets3.RemoveAt(GBPCHF_OCO4S3_DOWN_S2);
GBPCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO4S4_DOWN_S2 = 0;
for (; GBPCHF_OCO4S4_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets4.Count; GBPCHF_OCO4S4_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets4[GBPCHF_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_DOWN_S2_OCO4Sets4[GBPCHF_OCO4S4_DOWN_S2].Filled();
Base.GBPCHF_DOWN_S2_OCO4Sets4.RemoveAt(GBPCHF_OCO4S4_DOWN_S2);
GBPCHF_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct NZDCAD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public NZDCAD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
if (OrderID.Tag.StartsWith("NZDCAD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCAD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCAD S2");
}
}
if (Base.NZDCAD_OCO1_EO1_DOWN_S2)
Base.NZDCAD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO1_EO2_DOWN_S2)
Base.NZDCAD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO1_EO3_DOWN_S2)
Base.NZDCAD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO1_EO4_DOWN_S2)
Base.NZDCAD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO1_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP1_NZDCAD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP1,"TP1_NZDCAD_DOWN_S2_OCO1"));
};
Base.NZDCAD_DOWN_S2_OCO1Sets1.Add( Base.NZDCAD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO2_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP2_NZDCAD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP2,"TP2_NZDCAD_DOWN_S2_OCO1"));
};
Base.NZDCAD_DOWN_S2_OCO1Sets2.Add( Base.NZDCAD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO3_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP3_NZDCAD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP3,"TP3_NZDCAD_DOWN_S2_OCO1"));
};
Base.NZDCAD_DOWN_S2_OCO1Sets3.Add( Base.NZDCAD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO1_EO4_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP4_NZDCAD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP4,"TP4_NZDCAD_DOWN_S2_OCO1"));
};
Base.NZDCAD_DOWN_S2_OCO1Sets4.Add( Base.NZDCAD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO1_EO4_DOWN_S2_ID = -1;
}
int NZDCAD_OCO1S1_DOWN_S2 = 0;
for (; NZDCAD_OCO1S1_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets1.Count; NZDCAD_OCO1S1_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets1[NZDCAD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO1Sets1[NZDCAD_OCO1S1_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO1Sets1.RemoveAt(NZDCAD_OCO1S1_DOWN_S2);
NZDCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO1S2_DOWN_S2 = 0;
for (; NZDCAD_OCO1S2_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets2.Count; NZDCAD_OCO1S2_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets2[NZDCAD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO1Sets2[NZDCAD_OCO1S2_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO1Sets2.RemoveAt(NZDCAD_OCO1S2_DOWN_S2);
NZDCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO1S3_DOWN_S2 = 0;
for (; NZDCAD_OCO1S3_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets3.Count; NZDCAD_OCO1S3_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets3[NZDCAD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO1Sets3[NZDCAD_OCO1S3_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO1Sets3.RemoveAt(NZDCAD_OCO1S3_DOWN_S2);
NZDCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO1S4_DOWN_S2 = 0;
for (; NZDCAD_OCO1S4_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO1Sets4.Count; NZDCAD_OCO1S4_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO1Sets4[NZDCAD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO1Sets4[NZDCAD_OCO1S4_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO1Sets4.RemoveAt(NZDCAD_OCO1S4_DOWN_S2);
NZDCAD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO2_EO1_DOWN_S2)
Base.NZDCAD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO2_EO2_DOWN_S2)
Base.NZDCAD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO2_EO3_DOWN_S2)
Base.NZDCAD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO2_EO4_DOWN_S2)
Base.NZDCAD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO1_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP1_NZDCAD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP1,"TP1_NZDCAD_DOWN_S2_OCO2"));
};
Base.NZDCAD_DOWN_S2_OCO2Sets1.Add( Base.NZDCAD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO2_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP2_NZDCAD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP2,"TP2_NZDCAD_DOWN_S2_OCO2"));
};
Base.NZDCAD_DOWN_S2_OCO2Sets2.Add( Base.NZDCAD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO3_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP3_NZDCAD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP3,"TP3_NZDCAD_DOWN_S2_OCO2"));
};
Base.NZDCAD_DOWN_S2_OCO2Sets3.Add( Base.NZDCAD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO2_EO4_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP4_NZDCAD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP4,"TP4_NZDCAD_DOWN_S2_OCO2"));
};
Base.NZDCAD_DOWN_S2_OCO2Sets4.Add( Base.NZDCAD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO2_EO4_DOWN_S2_ID = -1;
}
int NZDCAD_OCO2S1_DOWN_S2 = 0;
for (; NZDCAD_OCO2S1_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets1.Count; NZDCAD_OCO2S1_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets1[NZDCAD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO2Sets1[NZDCAD_OCO2S1_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO2Sets1.RemoveAt(NZDCAD_OCO2S1_DOWN_S2);
NZDCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO2S2_DOWN_S2 = 0;
for (; NZDCAD_OCO2S2_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets2.Count; NZDCAD_OCO2S2_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets2[NZDCAD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO2Sets2[NZDCAD_OCO2S2_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO2Sets2.RemoveAt(NZDCAD_OCO2S2_DOWN_S2);
NZDCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO2S3_DOWN_S2 = 0;
for (; NZDCAD_OCO2S3_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets3.Count; NZDCAD_OCO2S3_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets3[NZDCAD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO2Sets3[NZDCAD_OCO2S3_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO2Sets3.RemoveAt(NZDCAD_OCO2S3_DOWN_S2);
NZDCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO2S4_DOWN_S2 = 0;
for (; NZDCAD_OCO2S4_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO2Sets4.Count; NZDCAD_OCO2S4_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO2Sets4[NZDCAD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO2Sets4[NZDCAD_OCO2S4_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO2Sets4.RemoveAt(NZDCAD_OCO2S4_DOWN_S2);
NZDCAD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO3_EO1_DOWN_S2)
Base.NZDCAD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO3_EO2_DOWN_S2)
Base.NZDCAD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO3_EO3_DOWN_S2)
Base.NZDCAD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO3_EO4_DOWN_S2)
Base.NZDCAD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO1_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP1_NZDCAD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP1,"TP1_NZDCAD_DOWN_S2_OCO3"));
};
Base.NZDCAD_DOWN_S2_OCO3Sets1.Add( Base.NZDCAD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO2_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP2_NZDCAD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP2,"TP2_NZDCAD_DOWN_S2_OCO3"));
};
Base.NZDCAD_DOWN_S2_OCO3Sets2.Add( Base.NZDCAD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO3_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP3_NZDCAD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP3,"TP3_NZDCAD_DOWN_S2_OCO3"));
};
Base.NZDCAD_DOWN_S2_OCO3Sets3.Add( Base.NZDCAD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO3_EO4_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP4_NZDCAD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP4,"TP4_NZDCAD_DOWN_S2_OCO3"));
};
Base.NZDCAD_DOWN_S2_OCO3Sets4.Add( Base.NZDCAD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO3_EO4_DOWN_S2_ID = -1;
}
int NZDCAD_OCO3S1_DOWN_S2 = 0;
for (; NZDCAD_OCO3S1_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets1.Count; NZDCAD_OCO3S1_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets1[NZDCAD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO3Sets1[NZDCAD_OCO3S1_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO3Sets1.RemoveAt(NZDCAD_OCO3S1_DOWN_S2);
NZDCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO3S2_DOWN_S2 = 0;
for (; NZDCAD_OCO3S2_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets2.Count; NZDCAD_OCO3S2_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets2[NZDCAD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO3Sets2[NZDCAD_OCO3S2_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO3Sets2.RemoveAt(NZDCAD_OCO3S2_DOWN_S2);
NZDCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO3S3_DOWN_S2 = 0;
for (; NZDCAD_OCO3S3_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets3.Count; NZDCAD_OCO3S3_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets3[NZDCAD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO3Sets3[NZDCAD_OCO3S3_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO3Sets3.RemoveAt(NZDCAD_OCO3S3_DOWN_S2);
NZDCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO3S4_DOWN_S2 = 0;
for (; NZDCAD_OCO3S4_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO3Sets4.Count; NZDCAD_OCO3S4_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO3Sets4[NZDCAD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO3Sets4[NZDCAD_OCO3S4_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO3Sets4.RemoveAt(NZDCAD_OCO3S4_DOWN_S2);
NZDCAD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCAD_OCO4_EO1_DOWN_S2)
Base.NZDCAD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO4_EO2_DOWN_S2)
Base.NZDCAD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO4_EO3_DOWN_S2)
Base.NZDCAD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCAD_OCO4_EO4_DOWN_S2)
Base.NZDCAD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO1_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP1_NZDCAD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP1,"TP1_NZDCAD_DOWN_S2_OCO4"));
};
Base.NZDCAD_DOWN_S2_OCO4Sets1.Add( Base.NZDCAD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO2_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP2_NZDCAD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP2,"TP2_NZDCAD_DOWN_S2_OCO4"));
};
Base.NZDCAD_DOWN_S2_OCO4Sets2.Add( Base.NZDCAD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO3_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP3_NZDCAD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP3,"TP3_NZDCAD_DOWN_S2_OCO4"));
};
Base.NZDCAD_DOWN_S2_OCO4Sets3.Add( Base.NZDCAD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCAD_OCO4_EO4_DOWN_S2_ID)
{
Base.NZDCAD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCAD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCAD_DOWN_S2_SL,"SL_TP4_NZDCAD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCAD_DOWN_S2_TP4,"TP4_NZDCAD_DOWN_S2_OCO4"));
};
Base.NZDCAD_DOWN_S2_OCO4Sets4.Add( Base.NZDCAD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCAD_OCO4_EO4_DOWN_S2_ID = -1;
}
int NZDCAD_OCO4S1_DOWN_S2 = 0;
for (; NZDCAD_OCO4S1_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets1.Count; NZDCAD_OCO4S1_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets1[NZDCAD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO4Sets1[NZDCAD_OCO4S1_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO4Sets1.RemoveAt(NZDCAD_OCO4S1_DOWN_S2);
NZDCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO4S2_DOWN_S2 = 0;
for (; NZDCAD_OCO4S2_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets2.Count; NZDCAD_OCO4S2_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets2[NZDCAD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO4Sets2[NZDCAD_OCO4S2_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO4Sets2.RemoveAt(NZDCAD_OCO4S2_DOWN_S2);
NZDCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO4S3_DOWN_S2 = 0;
for (; NZDCAD_OCO4S3_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets3.Count; NZDCAD_OCO4S3_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets3[NZDCAD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO4Sets3[NZDCAD_OCO4S3_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO4Sets3.RemoveAt(NZDCAD_OCO4S3_DOWN_S2);
NZDCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int NZDCAD_OCO4S4_DOWN_S2 = 0;
for (; NZDCAD_OCO4S4_DOWN_S2 < Base.NZDCAD_DOWN_S2_OCO4Sets4.Count; NZDCAD_OCO4S4_DOWN_S2++)
if (Base.NZDCAD_DOWN_S2_OCO4Sets4[NZDCAD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCAD_DOWN_S2_OCO4Sets4[NZDCAD_OCO4S4_DOWN_S2].Filled();
Base.NZDCAD_DOWN_S2_OCO4Sets4.RemoveAt(NZDCAD_OCO4S4_DOWN_S2);
NZDCAD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct AUDCHF_OCO1_DOWN_S2
{
public AUDCHF_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCHF_OCO1_UP_S2
{
public AUDCHF_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDCHF_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCHF_OCO2_DOWN_S2
{
public AUDCHF_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCHF_OCO2_UP_S2
{
public AUDCHF_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDCHF_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCHF OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCHF_OCO3_DOWN_S2
{
public AUDCHF_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCHF_OCO3_UP_S2
{
public AUDCHF_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDCHF_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCHF OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCHF_OCO4_DOWN_S2
{
public AUDCHF_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCHF_OCO4_UP_S2
{
public AUDCHF_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDCHF_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCHF OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPNZD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPNZD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any())
{
algorithm.Liquidate();
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPNZD_DOWN_S2_OCO1")))
{
Base.GBPNZD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPNZD_DOWN_S2_OCO2")))
{
Base.GBPNZD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPNZD_DOWN_S2_OCO3")))
{
Base.GBPNZD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPNZD_DOWN_S2_OCO4")))
{
Base.GBPNZD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPNZD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPNZD_OCO1_EO1_DOWN_S2)
Base.GBPNZD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO2_DOWN_S2)
Base.GBPNZD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO3_DOWN_S2)
Base.GBPNZD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO4_DOWN_S2)
Base.GBPNZD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO5_DOWN_S2)
Base.GBPNZD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO6_DOWN_S2)
Base.GBPNZD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPNZD_OCO1S1_DOWN_S2 = 0;
for (; GBPNZD_OCO1S1_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets1.Count; GBPNZD_OCO1S1_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets1[GBPNZD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO1Sets1[GBPNZD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_1__Time out_OCO1");
Base.GBPNZD_DOWN_S2_OCO1Sets1.Clear();
GBPNZD_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO1S2_DOWN_S2 = 0;
for (; GBPNZD_OCO1S2_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets2.Count; GBPNZD_OCO1S2_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets2[GBPNZD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO1Sets2[GBPNZD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_2__Time out_OCO1");
Base.GBPNZD_DOWN_S2_OCO1Sets2.Clear();
GBPNZD_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO1S3_DOWN_S2 = 0;
for (; GBPNZD_OCO1S3_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets3.Count; GBPNZD_OCO1S3_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets3[GBPNZD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO1Sets3[GBPNZD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_3__Time out_OCO1");
Base.GBPNZD_DOWN_S2_OCO1Sets3.Clear();
GBPNZD_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO1S4_DOWN_S2 = 0;
for (; GBPNZD_OCO1S4_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets4.Count; GBPNZD_OCO1S4_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets4[GBPNZD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO1Sets4[GBPNZD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_4__Time out_OCO1");
Base.GBPNZD_DOWN_S2_OCO1Sets4.Clear();
GBPNZD_OCO1S4_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO1S5_DOWN_S2 = 0;
for (; GBPNZD_OCO1S5_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets5.Count; GBPNZD_OCO1S5_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets5[GBPNZD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO1Sets5[GBPNZD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_5__Time out_OCO1");
Base.GBPNZD_DOWN_S2_OCO1Sets5.Clear();
GBPNZD_OCO1S5_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO1S6_DOWN_S2 = 0;
for (; GBPNZD_OCO1S6_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO1Sets6.Count; GBPNZD_OCO1S6_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO1Sets6[GBPNZD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO1Sets6[GBPNZD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_6__Time out_OCO1");
Base.GBPNZD_DOWN_S2_OCO1Sets6.Clear();
GBPNZD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO2_EO1_DOWN_S2)
Base.GBPNZD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO2_DOWN_S2)
Base.GBPNZD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO3_DOWN_S2)
Base.GBPNZD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO4_DOWN_S2)
Base.GBPNZD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO5_DOWN_S2)
Base.GBPNZD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO6_DOWN_S2)
Base.GBPNZD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPNZD_OCO2S1_DOWN_S2 = 0;
for (; GBPNZD_OCO2S1_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets1.Count; GBPNZD_OCO2S1_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets1[GBPNZD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO2Sets1[GBPNZD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_1__Time out_OCO2");
Base.GBPNZD_DOWN_S2_OCO2Sets1.Clear();
GBPNZD_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO2S2_DOWN_S2 = 0;
for (; GBPNZD_OCO2S2_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets2.Count; GBPNZD_OCO2S2_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets2[GBPNZD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO2Sets2[GBPNZD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_2__Time out_OCO2");
Base.GBPNZD_DOWN_S2_OCO2Sets2.Clear();
GBPNZD_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO2S3_DOWN_S2 = 0;
for (; GBPNZD_OCO2S3_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets3.Count; GBPNZD_OCO2S3_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets3[GBPNZD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO2Sets3[GBPNZD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_3__Time out_OCO2");
Base.GBPNZD_DOWN_S2_OCO2Sets3.Clear();
GBPNZD_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO2S4_DOWN_S2 = 0;
for (; GBPNZD_OCO2S4_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets4.Count; GBPNZD_OCO2S4_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets4[GBPNZD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO2Sets4[GBPNZD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_4__Time out_OCO2");
Base.GBPNZD_DOWN_S2_OCO2Sets4.Clear();
GBPNZD_OCO2S4_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO2S5_DOWN_S2 = 0;
for (; GBPNZD_OCO2S5_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets5.Count; GBPNZD_OCO2S5_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets5[GBPNZD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO2Sets5[GBPNZD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_5__Time out_OCO2");
Base.GBPNZD_DOWN_S2_OCO2Sets5.Clear();
GBPNZD_OCO2S5_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO2S6_DOWN_S2 = 0;
for (; GBPNZD_OCO2S6_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO2Sets6.Count; GBPNZD_OCO2S6_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO2Sets6[GBPNZD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO2Sets6[GBPNZD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_6__Time out_OCO2");
Base.GBPNZD_DOWN_S2_OCO2Sets6.Clear();
GBPNZD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO3_EO1_DOWN_S2)
Base.GBPNZD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO2_DOWN_S2)
Base.GBPNZD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO3_DOWN_S2)
Base.GBPNZD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO4_DOWN_S2)
Base.GBPNZD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO5_DOWN_S2)
Base.GBPNZD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO6_DOWN_S2)
Base.GBPNZD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPNZD_OCO3S1_DOWN_S2 = 0;
for (; GBPNZD_OCO3S1_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets1.Count; GBPNZD_OCO3S1_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets1[GBPNZD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO3Sets1[GBPNZD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_1__Time out_OCO3");
Base.GBPNZD_DOWN_S2_OCO3Sets1.Clear();
GBPNZD_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO3S2_DOWN_S2 = 0;
for (; GBPNZD_OCO3S2_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets2.Count; GBPNZD_OCO3S2_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets2[GBPNZD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO3Sets2[GBPNZD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_2__Time out_OCO3");
Base.GBPNZD_DOWN_S2_OCO3Sets2.Clear();
GBPNZD_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO3S3_DOWN_S2 = 0;
for (; GBPNZD_OCO3S3_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets3.Count; GBPNZD_OCO3S3_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets3[GBPNZD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO3Sets3[GBPNZD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_3__Time out_OCO3");
Base.GBPNZD_DOWN_S2_OCO3Sets3.Clear();
GBPNZD_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO3S4_DOWN_S2 = 0;
for (; GBPNZD_OCO3S4_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets4.Count; GBPNZD_OCO3S4_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets4[GBPNZD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO3Sets4[GBPNZD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_4__Time out_OCO3");
Base.GBPNZD_DOWN_S2_OCO3Sets4.Clear();
GBPNZD_OCO3S4_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO3S5_DOWN_S2 = 0;
for (; GBPNZD_OCO3S5_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets5.Count; GBPNZD_OCO3S5_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets5[GBPNZD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO3Sets5[GBPNZD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_5__Time out_OCO3");
Base.GBPNZD_DOWN_S2_OCO3Sets5.Clear();
GBPNZD_OCO3S5_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO3S6_DOWN_S2 = 0;
for (; GBPNZD_OCO3S6_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO3Sets6.Count; GBPNZD_OCO3S6_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO3Sets6[GBPNZD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO3Sets6[GBPNZD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_6__Time out_OCO3");
Base.GBPNZD_DOWN_S2_OCO3Sets6.Clear();
GBPNZD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO4_EO1_DOWN_S2)
Base.GBPNZD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO2_DOWN_S2)
Base.GBPNZD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO3_DOWN_S2)
Base.GBPNZD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO4_DOWN_S2)
Base.GBPNZD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO5_DOWN_S2)
Base.GBPNZD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO6_DOWN_S2)
Base.GBPNZD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPNZD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPNZD_OCO4S1_DOWN_S2 = 0;
for (; GBPNZD_OCO4S1_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets1.Count; GBPNZD_OCO4S1_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets1[GBPNZD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO4Sets1[GBPNZD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_1__Time out_OCO4");
Base.GBPNZD_DOWN_S2_OCO4Sets1.Clear();
GBPNZD_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO4S2_DOWN_S2 = 0;
for (; GBPNZD_OCO4S2_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets2.Count; GBPNZD_OCO4S2_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets2[GBPNZD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO4Sets2[GBPNZD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_2__Time out_OCO4");
Base.GBPNZD_DOWN_S2_OCO4Sets2.Clear();
GBPNZD_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO4S3_DOWN_S2 = 0;
for (; GBPNZD_OCO4S3_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets3.Count; GBPNZD_OCO4S3_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets3[GBPNZD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO4Sets3[GBPNZD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_3__Time out_OCO4");
Base.GBPNZD_DOWN_S2_OCO4Sets3.Clear();
GBPNZD_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO4S4_DOWN_S2 = 0;
for (; GBPNZD_OCO4S4_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets4.Count; GBPNZD_OCO4S4_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets4[GBPNZD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO4Sets4[GBPNZD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_4__Time out_OCO4");
Base.GBPNZD_DOWN_S2_OCO4Sets4.Clear();
GBPNZD_OCO4S4_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO4S5_DOWN_S2 = 0;
for (; GBPNZD_OCO4S5_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets5.Count; GBPNZD_OCO4S5_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets5[GBPNZD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO4Sets5[GBPNZD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_5__Time out_OCO4");
Base.GBPNZD_DOWN_S2_OCO4Sets5.Clear();
GBPNZD_OCO4S5_DOWN_S2 = 0;
break;
}
int GBPNZD_OCO4S6_DOWN_S2 = 0;
for (; GBPNZD_OCO4S6_DOWN_S2 < Base.GBPNZD_DOWN_S2_OCO4Sets6.Count; GBPNZD_OCO4S6_DOWN_S2++)
if (Base.GBPNZD_DOWN_S2_OCO4Sets6[GBPNZD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPNZD_DOWN_S2_OCO4Sets6[GBPNZD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_DOWN_S2_Entry_6__Time out_OCO4");
Base.GBPNZD_DOWN_S2_OCO4Sets6.Clear();
GBPNZD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPNZD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPNZD_DOWN_S2 = DOWM_GBPNZD_DOWN_S2 || DOWT_GBPNZD_DOWN_S2 || DOWW_GBPNZD_DOWN_S2 || DOWTH_GBPNZD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPNZD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPNZD_OCO1_DOWN_S2_IsReady == false ||
Base.GBPNZD_OCO2_DOWN_S2_IsReady == false ||
Base.GBPNZD_OCO3_DOWN_S2_IsReady == false ||
Base.GBPNZD_OCO4_DOWN_S2_IsReady == false)
{
Base.GBPNZD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.GBPNZD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.GBPNZD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.GBPNZD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPNZD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.GBPNZD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.GBPNZD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.GBPNZD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
GBPNZD_Signal_Condition_DOWN_1 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPNZD_Signal_Condition_DOWN_2 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPNZD_Signal_Condition_DOWN_3 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > Base.Oth_Min_Size
&&
(
prices_ASK_High[0] > pricesM_ASK_High[0] + ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (GBPNZD_Signal_Condition_DOWN_1)
{
GBPNZD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (GBPNZD_Signal_Condition_DOWN_2)
{
GBPNZD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (GBPNZD_Signal_Condition_DOWN_3)
{
GBPNZD_DOWN_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m);
}
if (GBPNZD_Signal_Condition_DOWN_1)
{
GBPNZD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.05m ;
}
if (GBPNZD_Signal_Condition_DOWN_2)
{
GBPNZD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.1m ;
}
if (GBPNZD_Signal_Condition_DOWN_3)
{
GBPNZD_DOWN_S2_TP1 = (pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.2m ;
}
GBPNZD_DOWN_S2_TP2 = GBPNZD_DOWN_S2_SL * 0;
GBPNZD_DOWN_S2_TP3 = GBPNZD_DOWN_S2_SL * 0;
GBPNZD_DOWN_S2_TP4 = GBPNZD_DOWN_S2_SL * 0;
GBPNZD_DOWN_S2_TP5 = GBPNZD_DOWN_S2_SL * 0;
GBPNZD_DOWN_S2_TP6 = GBPNZD_DOWN_S2_SL * 0;
if (coefIntS2 != 0 && GBPNZD_DOWN_S2_SL != 0)
{
GBPNZD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)*0.015m);
GBPNZD_quantity_SL_DOWN_S2 = GBPNZD_quantity_DOWN_S2;
GBPNZD_quantity_TP1_DOWN_S2 = (GBPNZD_quantity_DOWN_S2 );
GBPNZD_quantity_TP2_DOWN_S2 = (GBPNZD_quantity_TP1_DOWN_S2 * 0);
GBPNZD_quantity_TP3_DOWN_S2 = (GBPNZD_quantity_TP2_DOWN_S2 * 0);
GBPNZD_quantity_TP4_DOWN_S2 = (GBPNZD_quantity_TP3_DOWN_S2 * 0);
GBPNZD_quantity_TP5_DOWN_S2 = (GBPNZD_quantity_TP4_DOWN_S2 * 0);
GBPNZD_quantity_TP6_DOWN_S2 = (GBPNZD_quantity_TP5_DOWN_S2 * 0);
}
oco1:
if ((GBPNZD_Signal_Condition_DOWN_1 || GBPNZD_Signal_Condition_DOWN_2 || GBPNZD_Signal_Condition_DOWN_3) &&
DOWR_GBPNZD_DOWN_S2 &&
Base.GBPNZD_OCO1_DOWN_S2_IsReady == true &&
Base.GBPNZD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPNZD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP1_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP1_OCO1");
Base.GBPNZD_OCO1_EO1_DOWN_S2 = false;
Base.GBPNZD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP2_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP2_OCO1");
Base.GBPNZD_OCO1_EO2_DOWN_S2 = false;
Base.GBPNZD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP3_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP3_OCO1");
Base.GBPNZD_OCO1_EO3_DOWN_S2 = false;
Base.GBPNZD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP4_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP4_OCO1");
Base.GBPNZD_OCO1_EO4_DOWN_S2 = false;
Base.GBPNZD_OCO1_DOWN_S2_IsReady = false;
if (Base.GBPNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if ((GBPNZD_Signal_Condition_DOWN_1 || GBPNZD_Signal_Condition_DOWN_2 || GBPNZD_Signal_Condition_DOWN_3) &&
DOWR_GBPNZD_DOWN_S2 &&
Base.GBPNZD_OCO2_DOWN_S2_IsReady == true &&
Base.GBPNZD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPNZD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPNZD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP1_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP1_OCO2");
Base.GBPNZD_OCO2_EO1_DOWN_S2 = false;
Base.GBPNZD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP2_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP2_OCO2");
Base.GBPNZD_OCO2_EO2_DOWN_S2 = false;
Base.GBPNZD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP3_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP3_OCO2");
Base.GBPNZD_OCO2_EO3_DOWN_S2 = false;
Base.GBPNZD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP4_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP4_OCO2");
Base.GBPNZD_OCO2_EO4_DOWN_S2 = false;
Base.GBPNZD_OCO2_DOWN_S2_IsReady = false;
if (Base.GBPNZD_OCO2_DOWN_S2_IsReady == false && Base.GBPNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if ((GBPNZD_Signal_Condition_DOWN_1 || GBPNZD_Signal_Condition_DOWN_2 || GBPNZD_Signal_Condition_DOWN_3) &&
DOWR_GBPNZD_DOWN_S2 &&
Base.GBPNZD_OCO3_DOWN_S2_IsReady == true &&
Base.GBPNZD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPNZD_OCO2_DOWN_S2_IsReady == false &&
Base.GBPNZD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPNZD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP1_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP1_OCO3");
Base.GBPNZD_OCO3_EO1_DOWN_S2 = false;
Base.GBPNZD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP2_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP2_OCO3");
Base.GBPNZD_OCO3_EO2_DOWN_S2 = false;
Base.GBPNZD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP3_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP3_OCO3");
Base.GBPNZD_OCO3_EO3_DOWN_S2 = false;
Base.GBPNZD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP4_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP4_OCO3");
Base.GBPNZD_OCO3_EO4_DOWN_S2 = false;
Base.GBPNZD_OCO3_DOWN_S2_IsReady = false;
if (Base.GBPNZD_OCO3_DOWN_S2_IsReady == false && Base.GBPNZD_OCO2_DOWN_S2_IsReady == false && Base.GBPNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if ((GBPNZD_Signal_Condition_DOWN_1 || GBPNZD_Signal_Condition_DOWN_2 || GBPNZD_Signal_Condition_DOWN_3) &&
DOWR_GBPNZD_DOWN_S2 &&
Base.GBPNZD_OCO4_DOWN_S2_IsReady == true &&
Base.GBPNZD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPNZD_OCO2_DOWN_S2_IsReady == false &&
Base.GBPNZD_OCO3_DOWN_S2_IsReady == false &&
Base.GBPNZD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPNZD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP1_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP1_OCO4");
Base.GBPNZD_OCO4_EO1_DOWN_S2 = false;
Base.GBPNZD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP2_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP2_OCO4");
Base.GBPNZD_OCO4_EO2_DOWN_S2 = false;
Base.GBPNZD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP3_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP3_OCO4");
Base.GBPNZD_OCO4_EO3_DOWN_S2 = false;
Base.GBPNZD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPNZD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP4_DOWN_S2, false,"GBPNZD_DOWN_S2_Entry_TP4_OCO4");
Base.GBPNZD_OCO4_EO4_DOWN_S2 = false;
Base.GBPNZD_OCO4_DOWN_S2_IsReady = false;
if (Base.GBPNZD_OCO4_DOWN_S2_IsReady == false && Base.GBPNZD_OCO3_DOWN_S2_IsReady == false && Base.GBPNZD_OCO2_DOWN_S2_IsReady == false && Base.GBPNZD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPNZD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPNZD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPNZD_UP_S2_OCO1")))
{
Base.GBPNZD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPNZD_UP_S2_OCO2")))
{
Base.GBPNZD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPNZD_UP_S2_OCO3")))
{
Base.GBPNZD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPNZD_UP_S2_OCO4")))
{
Base.GBPNZD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPNZD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPNZD_OCO1_EO1_UP_S2)
Base.GBPNZD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO2_UP_S2)
Base.GBPNZD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO3_UP_S2)
Base.GBPNZD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO4_UP_S2)
Base.GBPNZD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO5_UP_S2)
Base.GBPNZD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO1_EO6_UP_S2)
Base.GBPNZD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPNZD_UP_S2_OCO_DELAY_7DAY))
{
int GBPNZD_OCO1S1_UP_S2 = 0;
for (; GBPNZD_OCO1S1_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets1.Count; GBPNZD_OCO1S1_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets1[GBPNZD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO1Sets1[GBPNZD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_1__Time out_OCO1");
Base.GBPNZD_UP_S2_OCO1Sets1.Clear();
GBPNZD_OCO1S1_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S2_UP_S2 = 0;
for (; GBPNZD_OCO1S2_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets2.Count; GBPNZD_OCO1S2_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets2[GBPNZD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO1Sets2[GBPNZD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_2__Time out_OCO1");
Base.GBPNZD_UP_S2_OCO1Sets2.Clear();
GBPNZD_OCO1S2_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S3_UP_S2 = 0;
for (; GBPNZD_OCO1S3_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets3.Count; GBPNZD_OCO1S3_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets3[GBPNZD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO1Sets3[GBPNZD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_3__Time out_OCO1");
Base.GBPNZD_UP_S2_OCO1Sets3.Clear();
GBPNZD_OCO1S3_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S4_UP_S2 = 0;
for (; GBPNZD_OCO1S4_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets4.Count; GBPNZD_OCO1S4_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets4[GBPNZD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO1Sets4[GBPNZD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_4__Time out_OCO1");
Base.GBPNZD_UP_S2_OCO1Sets4.Clear();
GBPNZD_OCO1S4_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S5_UP_S2 = 0;
for (; GBPNZD_OCO1S5_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets5.Count; GBPNZD_OCO1S5_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets5[GBPNZD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO1Sets5[GBPNZD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_5__Time out_OCO1");
Base.GBPNZD_UP_S2_OCO1Sets5.Clear();
GBPNZD_OCO1S5_UP_S2 = 0;
break;
}
int GBPNZD_OCO1S6_UP_S2 = 0;
for (; GBPNZD_OCO1S6_UP_S2 < Base.GBPNZD_UP_S2_OCO1Sets6.Count; GBPNZD_OCO1S6_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO1Sets6[GBPNZD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO1Sets6[GBPNZD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_6__Time out_OCO1");
Base.GBPNZD_UP_S2_OCO1Sets6.Clear();
GBPNZD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO2_EO1_UP_S2)
Base.GBPNZD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO2_UP_S2)
Base.GBPNZD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO3_UP_S2)
Base.GBPNZD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO4_UP_S2)
Base.GBPNZD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO5_UP_S2)
Base.GBPNZD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO2_EO6_UP_S2)
Base.GBPNZD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPNZD_UP_S2_OCO_DELAY_7DAY))
{
int GBPNZD_OCO2S1_UP_S2 = 0;
for (; GBPNZD_OCO2S1_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets1.Count; GBPNZD_OCO2S1_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets1[GBPNZD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO2Sets1[GBPNZD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_1__Time out_OCO2");
Base.GBPNZD_UP_S2_OCO2Sets1.Clear();
GBPNZD_OCO2S1_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S2_UP_S2 = 0;
for (; GBPNZD_OCO2S2_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets2.Count; GBPNZD_OCO2S2_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets2[GBPNZD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO2Sets2[GBPNZD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_2__Time out_OCO2");
Base.GBPNZD_UP_S2_OCO2Sets2.Clear();
GBPNZD_OCO2S2_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S3_UP_S2 = 0;
for (; GBPNZD_OCO2S3_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets3.Count; GBPNZD_OCO2S3_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets3[GBPNZD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO2Sets3[GBPNZD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_3__Time out_OCO2");
Base.GBPNZD_UP_S2_OCO2Sets3.Clear();
GBPNZD_OCO2S3_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S4_UP_S2 = 0;
for (; GBPNZD_OCO2S4_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets4.Count; GBPNZD_OCO2S4_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets4[GBPNZD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO2Sets4[GBPNZD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_4__Time out_OCO2");
Base.GBPNZD_UP_S2_OCO2Sets4.Clear();
GBPNZD_OCO2S4_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S5_UP_S2 = 0;
for (; GBPNZD_OCO2S5_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets5.Count; GBPNZD_OCO2S5_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets5[GBPNZD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO2Sets5[GBPNZD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_5__Time out_OCO2");
Base.GBPNZD_UP_S2_OCO2Sets5.Clear();
GBPNZD_OCO2S5_UP_S2 = 0;
break;
}
int GBPNZD_OCO2S6_UP_S2 = 0;
for (; GBPNZD_OCO2S6_UP_S2 < Base.GBPNZD_UP_S2_OCO2Sets6.Count; GBPNZD_OCO2S6_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO2Sets6[GBPNZD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO2Sets6[GBPNZD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_6__Time out_OCO2");
Base.GBPNZD_UP_S2_OCO2Sets6.Clear();
GBPNZD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO3_EO1_UP_S2)
Base.GBPNZD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO2_UP_S2)
Base.GBPNZD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO3_UP_S2)
Base.GBPNZD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO4_UP_S2)
Base.GBPNZD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO5_UP_S2)
Base.GBPNZD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO3_EO6_UP_S2)
Base.GBPNZD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPNZD_UP_S2_OCO_DELAY_7DAY))
{
int GBPNZD_OCO3S1_UP_S2 = 0;
for (; GBPNZD_OCO3S1_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets1.Count; GBPNZD_OCO3S1_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets1[GBPNZD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO3Sets1[GBPNZD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_1__Time out_OCO3");
Base.GBPNZD_UP_S2_OCO3Sets1.Clear();
GBPNZD_OCO3S1_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S2_UP_S2 = 0;
for (; GBPNZD_OCO3S2_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets2.Count; GBPNZD_OCO3S2_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets2[GBPNZD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO3Sets2[GBPNZD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_2__Time out_OCO3");
Base.GBPNZD_UP_S2_OCO3Sets2.Clear();
GBPNZD_OCO3S2_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S3_UP_S2 = 0;
for (; GBPNZD_OCO3S3_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets3.Count; GBPNZD_OCO3S3_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets3[GBPNZD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO3Sets3[GBPNZD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_3__Time out_OCO3");
Base.GBPNZD_UP_S2_OCO3Sets3.Clear();
GBPNZD_OCO3S3_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S4_UP_S2 = 0;
for (; GBPNZD_OCO3S4_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets4.Count; GBPNZD_OCO3S4_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets4[GBPNZD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO3Sets4[GBPNZD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_4__Time out_OCO3");
Base.GBPNZD_UP_S2_OCO3Sets4.Clear();
GBPNZD_OCO3S4_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S5_UP_S2 = 0;
for (; GBPNZD_OCO3S5_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets5.Count; GBPNZD_OCO3S5_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets5[GBPNZD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO3Sets5[GBPNZD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_5__Time out_OCO3");
Base.GBPNZD_UP_S2_OCO3Sets5.Clear();
GBPNZD_OCO3S5_UP_S2 = 0;
break;
}
int GBPNZD_OCO3S6_UP_S2 = 0;
for (; GBPNZD_OCO3S6_UP_S2 < Base.GBPNZD_UP_S2_OCO3Sets6.Count; GBPNZD_OCO3S6_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO3Sets6[GBPNZD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO3Sets6[GBPNZD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_6__Time out_OCO3");
Base.GBPNZD_UP_S2_OCO3Sets6.Clear();
GBPNZD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPNZD_OCO4_EO1_UP_S2)
Base.GBPNZD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO2_UP_S2)
Base.GBPNZD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO3_UP_S2)
Base.GBPNZD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO4_UP_S2)
Base.GBPNZD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO5_UP_S2)
Base.GBPNZD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.GBPNZD_OCO4_EO6_UP_S2)
Base.GBPNZD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPNZD_UP_S2_OCO_DELAY_7DAY))
{
int GBPNZD_OCO4S1_UP_S2 = 0;
for (; GBPNZD_OCO4S1_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets1.Count; GBPNZD_OCO4S1_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets1[GBPNZD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO4Sets1[GBPNZD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_1__Time out_OCO4");
Base.GBPNZD_UP_S2_OCO4Sets1.Clear();
GBPNZD_OCO4S1_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S2_UP_S2 = 0;
for (; GBPNZD_OCO4S2_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets2.Count; GBPNZD_OCO4S2_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets2[GBPNZD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO4Sets2[GBPNZD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_2__Time out_OCO4");
Base.GBPNZD_UP_S2_OCO4Sets2.Clear();
GBPNZD_OCO4S2_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S3_UP_S2 = 0;
for (; GBPNZD_OCO4S3_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets3.Count; GBPNZD_OCO4S3_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets3[GBPNZD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO4Sets3[GBPNZD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_3__Time out_OCO4");
Base.GBPNZD_UP_S2_OCO4Sets3.Clear();
GBPNZD_OCO4S3_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S4_UP_S2 = 0;
for (; GBPNZD_OCO4S4_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets4.Count; GBPNZD_OCO4S4_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets4[GBPNZD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO4Sets4[GBPNZD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_4__Time out_OCO4");
Base.GBPNZD_UP_S2_OCO4Sets4.Clear();
GBPNZD_OCO4S4_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S5_UP_S2 = 0;
for (; GBPNZD_OCO4S5_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets5.Count; GBPNZD_OCO4S5_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets5[GBPNZD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO4Sets5[GBPNZD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_5__Time out_OCO4");
Base.GBPNZD_UP_S2_OCO4Sets5.Clear();
GBPNZD_OCO4S5_UP_S2 = 0;
break;
}
int GBPNZD_OCO4S6_UP_S2 = 0;
for (; GBPNZD_OCO4S6_UP_S2 < Base.GBPNZD_UP_S2_OCO4Sets6.Count; GBPNZD_OCO4S6_UP_S2++)
if (Base.GBPNZD_UP_S2_OCO4Sets6[GBPNZD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.GBPNZD_UP_S2_OCO4Sets6[GBPNZD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("GBPNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPNZD", order.Quantity, false, "GBPNZD_UP_S2_Entry_6__Time out_OCO4");
Base.GBPNZD_UP_S2_OCO4Sets6.Clear();
GBPNZD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPNZD_UP_S2 = DOWM_GBPNZD_UP_S2 || DOWT_GBPNZD_UP_S2 || DOWW_GBPNZD_UP_S2 || DOWTH_GBPNZD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPNZD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPNZD_OCO1_UP_S2_IsReady == false ||
Base.GBPNZD_OCO2_UP_S2_IsReady == false ||
Base.GBPNZD_OCO3_UP_S2_IsReady == false ||
Base.GBPNZD_OCO4_UP_S2_IsReady == false)
{
Base.GBPNZD_OCO1_UP_S2_Monthly_IsReady = false;
Base.GBPNZD_OCO2_UP_S2_Monthly_IsReady = false;
Base.GBPNZD_OCO3_UP_S2_Monthly_IsReady = false;
Base.GBPNZD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPNZD_OCO1_UP_S2_Monthly_IsReady = true;
Base.GBPNZD_OCO2_UP_S2_Monthly_IsReady = true;
Base.GBPNZD_OCO3_UP_S2_Monthly_IsReady = true;
Base.GBPNZD_OCO4_UP_S2_Monthly_IsReady = true;
}
GBPNZD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*3
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPNZD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*3
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPNZD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*3
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (GBPNZD_Signal_Condition_UP_1)
{
GBPNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPNZD_Signal_Condition_UP_2)
{
GBPNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPNZD_Signal_Condition_UP_3)
{
GBPNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPNZD_Signal_Condition_UP_1)
{
GBPNZD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (GBPNZD_Signal_Condition_UP_2)
{
GBPNZD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (GBPNZD_Signal_Condition_UP_3)
{
GBPNZD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
GBPNZD_UP_S2_TP2 = GBPNZD_UP_S2_SL * 0;
GBPNZD_UP_S2_TP3 = GBPNZD_UP_S2_SL * 0;
GBPNZD_UP_S2_TP4 = GBPNZD_UP_S2_SL * 0;
GBPNZD_UP_S2_TP5 = GBPNZD_UP_S2_SL * 0;
GBPNZD_UP_S2_TP6 = GBPNZD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPNZD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPNZD_quantity_SL_UP_S2 = GBPNZD_quantity_UP_S2;
GBPNZD_quantity_TP1_UP_S2 = (int)Math.Floor(GBPNZD_quantity_UP_S2 * 1m);
GBPNZD_quantity_TP2_UP_S2 = (int)Math.Floor(GBPNZD_quantity_TP1_UP_S2 * 0m);
GBPNZD_quantity_TP3_UP_S2 = (int)Math.Floor(GBPNZD_quantity_TP2_UP_S2 * 0m);
GBPNZD_quantity_TP4_UP_S2 = (int)Math.Floor(GBPNZD_quantity_TP3_UP_S2 * 0m);
GBPNZD_quantity_TP5_UP_S2 = (int)Math.Floor(GBPNZD_quantity_TP4_UP_S2 * 0m);
GBPNZD_quantity_TP6_UP_S2 = (int)Math.Floor(GBPNZD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((GBPNZD_Signal_Condition_UP_1 || GBPNZD_Signal_Condition_UP_2 || GBPNZD_Signal_Condition_UP_3) &&
DOWR_GBPNZD_UP_S2 &&
Base.GBPNZD_OCO1_UP_S2_IsReady == true &&
Base.GBPNZD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.GBPNZD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP1_UP_S2, false,"GBPNZD_UP_S2_Entry_TP1_OCO1");
Base.GBPNZD_OCO1_EO1_UP_S2 = false;
Base.GBPNZD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP2_UP_S2, false,"GBPNZD_UP_S2_Entry_TP2_OCO1");
Base.GBPNZD_OCO1_EO2_UP_S2 = false;
Base.GBPNZD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP3_UP_S2, false,"GBPNZD_UP_S2_Entry_TP3_OCO1");
Base.GBPNZD_OCO1_EO3_UP_S2 = false;
Base.GBPNZD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP4_UP_S2, false,"GBPNZD_UP_S2_Entry_TP4_OCO1");
Base.GBPNZD_OCO1_EO4_UP_S2 = false;
Base.GBPNZD_OCO1_UP_S2_IsReady = false;
if (Base.GBPNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((GBPNZD_Signal_Condition_UP_1 || GBPNZD_Signal_Condition_UP_2 || GBPNZD_Signal_Condition_UP_3) &&
DOWR_GBPNZD_UP_S2 &&
Base.GBPNZD_OCO1_UP_S2_IsReady == false &&
Base.GBPNZD_OCO2_UP_S2_IsReady == true &&
Base.GBPNZD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.GBPNZD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP1_UP_S2, false,"GBPNZD_UP_S2_Entry_TP1_OCO2");
Base.GBPNZD_OCO2_EO1_UP_S2 = false;
Base.GBPNZD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP2_UP_S2, false,"GBPNZD_UP_S2_Entry_TP2_OCO2");
Base.GBPNZD_OCO2_EO2_UP_S2 = false;
Base.GBPNZD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP3_UP_S2, false,"GBPNZD_UP_S2_Entry_TP3_OCO2");
Base.GBPNZD_OCO2_EO3_UP_S2 = false;
Base.GBPNZD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP4_UP_S2, false,"GBPNZD_UP_S2_Entry_TP4_OCO2");
Base.GBPNZD_OCO2_EO4_UP_S2 = false;
Base.GBPNZD_OCO2_UP_S2_IsReady = false;
if (Base.GBPNZD_OCO2_UP_S2_IsReady == false && Base.GBPNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((GBPNZD_Signal_Condition_UP_1 || GBPNZD_Signal_Condition_UP_2 || GBPNZD_Signal_Condition_UP_3) &&
DOWR_GBPNZD_UP_S2 &&
Base.GBPNZD_OCO1_UP_S2_IsReady == false &&
Base.GBPNZD_OCO2_UP_S2_IsReady == false &&
Base.GBPNZD_OCO3_UP_S2_IsReady == true &&
Base.GBPNZD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.GBPNZD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP1_UP_S2, false,"GBPNZD_UP_S2_Entry_TP1_OCO3");
Base.GBPNZD_OCO3_EO1_UP_S2 = false;
Base.GBPNZD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP2_UP_S2, false,"GBPNZD_UP_S2_Entry_TP2_OCO3");
Base.GBPNZD_OCO3_EO2_UP_S2 = false;
Base.GBPNZD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP3_UP_S2, false,"GBPNZD_UP_S2_Entry_TP3_OCO3");
Base.GBPNZD_OCO3_EO3_UP_S2 = false;
Base.GBPNZD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP4_UP_S2, false,"GBPNZD_UP_S2_Entry_TP4_OCO3");
Base.GBPNZD_OCO3_EO4_UP_S2 = false;
Base.GBPNZD_OCO3_UP_S2_IsReady = false;
if (Base.GBPNZD_OCO3_UP_S2_IsReady == false && Base.GBPNZD_OCO2_UP_S2_IsReady == false && Base.GBPNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((GBPNZD_Signal_Condition_UP_1 || GBPNZD_Signal_Condition_UP_2 || GBPNZD_Signal_Condition_UP_3) &&
DOWR_GBPNZD_UP_S2 &&
Base.GBPNZD_OCO1_UP_S2_IsReady == false &&
Base.GBPNZD_OCO2_UP_S2_IsReady == false &&
Base.GBPNZD_OCO3_UP_S2_IsReady == false &&
Base.GBPNZD_OCO4_UP_S2_IsReady == true &&
Base.GBPNZD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.GBPNZD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP1_UP_S2, false,"GBPNZD_UP_S2_Entry_TP1_OCO4");
Base.GBPNZD_OCO4_EO1_UP_S2 = false;
Base.GBPNZD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP2_UP_S2, false,"GBPNZD_UP_S2_Entry_TP2_OCO4");
Base.GBPNZD_OCO4_EO2_UP_S2 = false;
Base.GBPNZD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP3_UP_S2, false,"GBPNZD_UP_S2_Entry_TP3_OCO4");
Base.GBPNZD_OCO4_EO3_UP_S2 = false;
Base.GBPNZD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPNZD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPNZD_quantity_TP4_UP_S2, false,"GBPNZD_UP_S2_Entry_TP4_OCO4");
Base.GBPNZD_OCO4_EO4_UP_S2 = false;
Base.GBPNZD_OCO4_UP_S2_IsReady = false;
if (Base.GBPNZD_OCO4_UP_S2_IsReady == false && Base.GBPNZD_OCO3_UP_S2_IsReady == false && Base.GBPNZD_OCO2_UP_S2_IsReady == false && Base.GBPNZD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPCHF_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPCHF_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
if (OrderID.Tag.StartsWith("GBPCHF OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPCHF OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCHF S2");
}
}
if (Base.GBPCHF_OCO1_EO1_UP_S2)
Base.GBPCHF_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO1_EO2_UP_S2)
Base.GBPCHF_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO1_EO3_UP_S2)
Base.GBPCHF_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO1_EO4_UP_S2)
Base.GBPCHF_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO1_EO5_UP_S2)
Base.GBPCHF_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO1_EO6_UP_S2)
Base.GBPCHF_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO1_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP1,"TP1_GBPCHF_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP1_GBPCHF_UP_S2_OCO1"));
};
Base.GBPCHF_UP_S2_OCO1Sets1.Add( Base.GBPCHF_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO2_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP2,"TP2_GBPCHF_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP2_GBPCHF_UP_S2_OCO1"));
};
Base.GBPCHF_UP_S2_OCO1Sets2.Add( Base.GBPCHF_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO3_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP3,"TP3_GBPCHF_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP3_GBPCHF_UP_S2_OCO1"));
};
Base.GBPCHF_UP_S2_OCO1Sets3.Add( Base.GBPCHF_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO4_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP4,"TP4_GBPCHF_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP4_GBPCHF_UP_S2_OCO1"));
};
Base.GBPCHF_UP_S2_OCO1Sets4.Add( Base.GBPCHF_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO5_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP5,"TP5_GBPCHF_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP5_GBPCHF_UP_S2_OCO1"));
};
Base.GBPCHF_UP_S2_OCO1Sets5.Add( Base.GBPCHF_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO1_EO6_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP6,"TP6_GBPCHF_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP6_GBPCHF_UP_S2_OCO1"));
};
Base.GBPCHF_UP_S2_OCO1Sets6.Add( Base.GBPCHF_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO1_EO6_UP_S2_ID = -1;
}
int GBPCHF_OCO1S1_UP_S2 = 0;
for (; GBPCHF_OCO1S1_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets1.Count; GBPCHF_OCO1S1_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets1[GBPCHF_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO1Sets1[GBPCHF_OCO1S1_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO1Sets1.RemoveAt(GBPCHF_OCO1S1_UP_S2);
GBPCHF_OCO1S1_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S2_UP_S2 = 0;
for (; GBPCHF_OCO1S2_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets2.Count; GBPCHF_OCO1S2_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets2[GBPCHF_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO1Sets2[GBPCHF_OCO1S2_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO1Sets2.RemoveAt(GBPCHF_OCO1S2_UP_S2);
GBPCHF_OCO1S2_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S3_UP_S2 = 0;
for (; GBPCHF_OCO1S3_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets3.Count; GBPCHF_OCO1S3_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets3[GBPCHF_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO1Sets3[GBPCHF_OCO1S3_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO1Sets3.RemoveAt(GBPCHF_OCO1S3_UP_S2);
GBPCHF_OCO1S3_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S4_UP_S2 = 0;
for (; GBPCHF_OCO1S4_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets4.Count; GBPCHF_OCO1S4_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets4[GBPCHF_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO1Sets4[GBPCHF_OCO1S4_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO1Sets4.RemoveAt(GBPCHF_OCO1S4_UP_S2);
GBPCHF_OCO1S4_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S5_UP_S2 = 0;
for (; GBPCHF_OCO1S5_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets5.Count; GBPCHF_OCO1S5_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets5[GBPCHF_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO1Sets5[GBPCHF_OCO1S5_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO1Sets5.RemoveAt(GBPCHF_OCO1S5_UP_S2);
GBPCHF_OCO1S5_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S6_UP_S2 = 0;
for (; GBPCHF_OCO1S6_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets6.Count; GBPCHF_OCO1S6_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets6[GBPCHF_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO1Sets6[GBPCHF_OCO1S6_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO1Sets6.RemoveAt(GBPCHF_OCO1S6_UP_S2);
GBPCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO2_EO1_UP_S2)
Base.GBPCHF_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO2_EO2_UP_S2)
Base.GBPCHF_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO2_EO3_UP_S2)
Base.GBPCHF_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO2_EO4_UP_S2)
Base.GBPCHF_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO2_EO5_UP_S2)
Base.GBPCHF_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO2_EO6_UP_S2)
Base.GBPCHF_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO1_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP1,"TP1_GBPCHF_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP1_GBPCHF_UP_S2_OCO2"));
};
Base.GBPCHF_UP_S2_OCO2Sets1.Add( Base.GBPCHF_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO2_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP2,"TP2_GBPCHF_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP2_GBPCHF_UP_S2_OCO2"));
};
Base.GBPCHF_UP_S2_OCO2Sets2.Add( Base.GBPCHF_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO3_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP3,"TP3_GBPCHF_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP3_GBPCHF_UP_S2_OCO2"));
};
Base.GBPCHF_UP_S2_OCO2Sets3.Add( Base.GBPCHF_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO4_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP4,"TP4_GBPCHF_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP4_GBPCHF_UP_S2_OCO2"));
};
Base.GBPCHF_UP_S2_OCO2Sets4.Add( Base.GBPCHF_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO5_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP5,"TP5_GBPCHF_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP5_GBPCHF_UP_S2_OCO2"));
};
Base.GBPCHF_UP_S2_OCO2Sets5.Add( Base.GBPCHF_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO2_EO6_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP6,"TP6_GBPCHF_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP6_GBPCHF_UP_S2_OCO2"));
};
Base.GBPCHF_UP_S2_OCO2Sets6.Add( Base.GBPCHF_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO2_EO6_UP_S2_ID = -1;
}
int GBPCHF_OCO2S1_UP_S2 = 0;
for (; GBPCHF_OCO2S1_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets1.Count; GBPCHF_OCO2S1_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets1[GBPCHF_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO2Sets1[GBPCHF_OCO2S1_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO2Sets1.RemoveAt(GBPCHF_OCO2S1_UP_S2);
GBPCHF_OCO2S1_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S2_UP_S2 = 0;
for (; GBPCHF_OCO2S2_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets2.Count; GBPCHF_OCO2S2_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets2[GBPCHF_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO2Sets2[GBPCHF_OCO2S2_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO2Sets2.RemoveAt(GBPCHF_OCO2S2_UP_S2);
GBPCHF_OCO2S2_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S3_UP_S2 = 0;
for (; GBPCHF_OCO2S3_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets3.Count; GBPCHF_OCO2S3_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets3[GBPCHF_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO2Sets3[GBPCHF_OCO2S3_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO2Sets3.RemoveAt(GBPCHF_OCO2S3_UP_S2);
GBPCHF_OCO2S3_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S4_UP_S2 = 0;
for (; GBPCHF_OCO2S4_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets4.Count; GBPCHF_OCO2S4_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets4[GBPCHF_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO2Sets4[GBPCHF_OCO2S4_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO2Sets4.RemoveAt(GBPCHF_OCO2S4_UP_S2);
GBPCHF_OCO2S4_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S5_UP_S2 = 0;
for (; GBPCHF_OCO2S5_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets5.Count; GBPCHF_OCO2S5_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets5[GBPCHF_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO2Sets5[GBPCHF_OCO2S5_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO2Sets5.RemoveAt(GBPCHF_OCO2S5_UP_S2);
GBPCHF_OCO2S5_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S6_UP_S2 = 0;
for (; GBPCHF_OCO2S6_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets6.Count; GBPCHF_OCO2S6_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets6[GBPCHF_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO2Sets6[GBPCHF_OCO2S6_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO2Sets6.RemoveAt(GBPCHF_OCO2S6_UP_S2);
GBPCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO3_EO1_UP_S2)
Base.GBPCHF_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO3_EO2_UP_S2)
Base.GBPCHF_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO3_EO3_UP_S2)
Base.GBPCHF_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO3_EO4_UP_S2)
Base.GBPCHF_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO3_EO5_UP_S2)
Base.GBPCHF_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO3_EO6_UP_S2)
Base.GBPCHF_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO1_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP1,"TP1_GBPCHF_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP1_GBPCHF_UP_S2_OCO3"));
};
Base.GBPCHF_UP_S2_OCO3Sets1.Add( Base.GBPCHF_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO2_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP2,"TP2_GBPCHF_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP2_GBPCHF_UP_S2_OCO3"));
};
Base.GBPCHF_UP_S2_OCO3Sets2.Add( Base.GBPCHF_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO3_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP3,"TP3_GBPCHF_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP3_GBPCHF_UP_S2_OCO3"));
};
Base.GBPCHF_UP_S2_OCO3Sets3.Add( Base.GBPCHF_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO4_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP4,"TP4_GBPCHF_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP4_GBPCHF_UP_S2_OCO3"));
};
Base.GBPCHF_UP_S2_OCO3Sets4.Add( Base.GBPCHF_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO5_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP5,"TP5_GBPCHF_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP5_GBPCHF_UP_S2_OCO3"));
};
Base.GBPCHF_UP_S2_OCO3Sets5.Add( Base.GBPCHF_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO3_EO6_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP6,"TP6_GBPCHF_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP6_GBPCHF_UP_S2_OCO3"));
};
Base.GBPCHF_UP_S2_OCO3Sets6.Add( Base.GBPCHF_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO3_EO6_UP_S2_ID = -1;
}
int GBPCHF_OCO3S1_UP_S2 = 0;
for (; GBPCHF_OCO3S1_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets1.Count; GBPCHF_OCO3S1_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets1[GBPCHF_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO3Sets1[GBPCHF_OCO3S1_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO3Sets1.RemoveAt(GBPCHF_OCO3S1_UP_S2);
GBPCHF_OCO3S1_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S2_UP_S2 = 0;
for (; GBPCHF_OCO3S2_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets2.Count; GBPCHF_OCO3S2_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets2[GBPCHF_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO3Sets2[GBPCHF_OCO3S2_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO3Sets2.RemoveAt(GBPCHF_OCO3S2_UP_S2);
GBPCHF_OCO3S2_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S3_UP_S2 = 0;
for (; GBPCHF_OCO3S3_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets3.Count; GBPCHF_OCO3S3_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets3[GBPCHF_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO3Sets3[GBPCHF_OCO3S3_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO3Sets3.RemoveAt(GBPCHF_OCO3S3_UP_S2);
GBPCHF_OCO3S3_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S4_UP_S2 = 0;
for (; GBPCHF_OCO3S4_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets4.Count; GBPCHF_OCO3S4_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets4[GBPCHF_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO3Sets4[GBPCHF_OCO3S4_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO3Sets4.RemoveAt(GBPCHF_OCO3S4_UP_S2);
GBPCHF_OCO3S4_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S5_UP_S2 = 0;
for (; GBPCHF_OCO3S5_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets5.Count; GBPCHF_OCO3S5_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets5[GBPCHF_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO3Sets5[GBPCHF_OCO3S5_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO3Sets5.RemoveAt(GBPCHF_OCO3S5_UP_S2);
GBPCHF_OCO3S5_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S6_UP_S2 = 0;
for (; GBPCHF_OCO3S6_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets6.Count; GBPCHF_OCO3S6_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets6[GBPCHF_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO3Sets6[GBPCHF_OCO3S6_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO3Sets6.RemoveAt(GBPCHF_OCO3S6_UP_S2);
GBPCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO4_EO1_UP_S2)
Base.GBPCHF_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO4_EO2_UP_S2)
Base.GBPCHF_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO4_EO3_UP_S2)
Base.GBPCHF_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO4_EO4_UP_S2)
Base.GBPCHF_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO4_EO5_UP_S2)
Base.GBPCHF_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCHF_OCO4_EO6_UP_S2)
Base.GBPCHF_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO1_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP1,"TP1_GBPCHF_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP1_GBPCHF_UP_S2_OCO4"));
};
Base.GBPCHF_UP_S2_OCO4Sets1.Add( Base.GBPCHF_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO2_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP2,"TP2_GBPCHF_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP2_GBPCHF_UP_S2_OCO4"));
};
Base.GBPCHF_UP_S2_OCO4Sets2.Add( Base.GBPCHF_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO3_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP3,"TP3_GBPCHF_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP3_GBPCHF_UP_S2_OCO4"));
};
Base.GBPCHF_UP_S2_OCO4Sets3.Add( Base.GBPCHF_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO4_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP4,"TP4_GBPCHF_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP4_GBPCHF_UP_S2_OCO4"));
};
Base.GBPCHF_UP_S2_OCO4Sets4.Add( Base.GBPCHF_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO5_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP5,"TP5_GBPCHF_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP5_GBPCHF_UP_S2_OCO4"));
};
Base.GBPCHF_UP_S2_OCO4Sets5.Add( Base.GBPCHF_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCHF_OCO4_EO6_UP_S2_ID)
{
Base.GBPCHF_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPCHF_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCHF_UP_S2_TP6,"TP6_GBPCHF_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCHF_UP_S2_SL,"SL_TP6_GBPCHF_UP_S2_OCO4"));
};
Base.GBPCHF_UP_S2_OCO4Sets6.Add( Base.GBPCHF_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCHF_OCO4_EO6_UP_S2_ID = -1;
}
int GBPCHF_OCO4S1_UP_S2 = 0;
for (; GBPCHF_OCO4S1_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets1.Count; GBPCHF_OCO4S1_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets1[GBPCHF_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO4Sets1[GBPCHF_OCO4S1_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO4Sets1.RemoveAt(GBPCHF_OCO4S1_UP_S2);
GBPCHF_OCO4S1_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S2_UP_S2 = 0;
for (; GBPCHF_OCO4S2_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets2.Count; GBPCHF_OCO4S2_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets2[GBPCHF_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO4Sets2[GBPCHF_OCO4S2_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO4Sets2.RemoveAt(GBPCHF_OCO4S2_UP_S2);
GBPCHF_OCO4S2_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S3_UP_S2 = 0;
for (; GBPCHF_OCO4S3_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets3.Count; GBPCHF_OCO4S3_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets3[GBPCHF_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO4Sets3[GBPCHF_OCO4S3_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO4Sets3.RemoveAt(GBPCHF_OCO4S3_UP_S2);
GBPCHF_OCO4S3_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S4_UP_S2 = 0;
for (; GBPCHF_OCO4S4_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets4.Count; GBPCHF_OCO4S4_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets4[GBPCHF_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO4Sets4[GBPCHF_OCO4S4_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO4Sets4.RemoveAt(GBPCHF_OCO4S4_UP_S2);
GBPCHF_OCO4S4_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S5_UP_S2 = 0;
for (; GBPCHF_OCO4S5_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets5.Count; GBPCHF_OCO4S5_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets5[GBPCHF_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO4Sets5[GBPCHF_OCO4S5_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO4Sets5.RemoveAt(GBPCHF_OCO4S5_UP_S2);
GBPCHF_OCO4S5_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S6_UP_S2 = 0;
for (; GBPCHF_OCO4S6_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets6.Count; GBPCHF_OCO4S6_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets6[GBPCHF_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCHF_UP_S2_OCO4Sets6[GBPCHF_OCO4S6_UP_S2].Filled();
Base.GBPCHF_UP_S2_OCO4Sets6.RemoveAt(GBPCHF_OCO4S6_UP_S2);
GBPCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPCAD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPCAD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
}
if (Base.GBPCAD_OCO1_EO1_DOWN_S2)
Base.GBPCAD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO1_EO2_DOWN_S2)
Base.GBPCAD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO1_EO3_DOWN_S2)
Base.GBPCAD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO1_EO4_DOWN_S2)
Base.GBPCAD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO1_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP1_GBPCAD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP1,"TP1_GBPCAD_DOWN_S2_OCO1"));
};
Base.GBPCAD_DOWN_S2_OCO1Sets1.Add( Base.GBPCAD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO2_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP2_GBPCAD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP2,"TP2_GBPCAD_DOWN_S2_OCO1"));
};
Base.GBPCAD_DOWN_S2_OCO1Sets2.Add( Base.GBPCAD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO3_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP3_GBPCAD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP3,"TP3_GBPCAD_DOWN_S2_OCO1"));
};
Base.GBPCAD_DOWN_S2_OCO1Sets3.Add( Base.GBPCAD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO4_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP4_GBPCAD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP4,"TP4_GBPCAD_DOWN_S2_OCO1"));
};
Base.GBPCAD_DOWN_S2_OCO1Sets4.Add( Base.GBPCAD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO4_DOWN_S2_ID = -1;
}
int GBPCAD_OCO1S1_DOWN_S2 = 0;
for (; GBPCAD_OCO1S1_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets1.Count; GBPCAD_OCO1S1_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets1[GBPCAD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO1Sets1[GBPCAD_OCO1S1_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO1Sets1.RemoveAt(GBPCAD_OCO1S1_DOWN_S2);
GBPCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO1S2_DOWN_S2 = 0;
for (; GBPCAD_OCO1S2_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets2.Count; GBPCAD_OCO1S2_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets2[GBPCAD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO1Sets2[GBPCAD_OCO1S2_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO1Sets2.RemoveAt(GBPCAD_OCO1S2_DOWN_S2);
GBPCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO1S3_DOWN_S2 = 0;
for (; GBPCAD_OCO1S3_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets3.Count; GBPCAD_OCO1S3_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets3[GBPCAD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO1Sets3[GBPCAD_OCO1S3_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO1Sets3.RemoveAt(GBPCAD_OCO1S3_DOWN_S2);
GBPCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO1S4_DOWN_S2 = 0;
for (; GBPCAD_OCO1S4_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets4.Count; GBPCAD_OCO1S4_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets4[GBPCAD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO1Sets4[GBPCAD_OCO1S4_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO1Sets4.RemoveAt(GBPCAD_OCO1S4_DOWN_S2);
GBPCAD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO2_EO1_DOWN_S2)
Base.GBPCAD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO2_EO2_DOWN_S2)
Base.GBPCAD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO2_EO3_DOWN_S2)
Base.GBPCAD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO2_EO4_DOWN_S2)
Base.GBPCAD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO1_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP1_GBPCAD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP1,"TP1_GBPCAD_DOWN_S2_OCO2"));
};
Base.GBPCAD_DOWN_S2_OCO2Sets1.Add( Base.GBPCAD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO2_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP2_GBPCAD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP2,"TP2_GBPCAD_DOWN_S2_OCO2"));
};
Base.GBPCAD_DOWN_S2_OCO2Sets2.Add( Base.GBPCAD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO3_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP3_GBPCAD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP3,"TP3_GBPCAD_DOWN_S2_OCO2"));
};
Base.GBPCAD_DOWN_S2_OCO2Sets3.Add( Base.GBPCAD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO4_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP4_GBPCAD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP4,"TP4_GBPCAD_DOWN_S2_OCO2"));
};
Base.GBPCAD_DOWN_S2_OCO2Sets4.Add( Base.GBPCAD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO4_DOWN_S2_ID = -1;
}
int GBPCAD_OCO2S1_DOWN_S2 = 0;
for (; GBPCAD_OCO2S1_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets1.Count; GBPCAD_OCO2S1_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets1[GBPCAD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO2Sets1[GBPCAD_OCO2S1_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO2Sets1.RemoveAt(GBPCAD_OCO2S1_DOWN_S2);
GBPCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO2S2_DOWN_S2 = 0;
for (; GBPCAD_OCO2S2_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets2.Count; GBPCAD_OCO2S2_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets2[GBPCAD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO2Sets2[GBPCAD_OCO2S2_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO2Sets2.RemoveAt(GBPCAD_OCO2S2_DOWN_S2);
GBPCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO2S3_DOWN_S2 = 0;
for (; GBPCAD_OCO2S3_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets3.Count; GBPCAD_OCO2S3_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets3[GBPCAD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO2Sets3[GBPCAD_OCO2S3_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO2Sets3.RemoveAt(GBPCAD_OCO2S3_DOWN_S2);
GBPCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO2S4_DOWN_S2 = 0;
for (; GBPCAD_OCO2S4_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets4.Count; GBPCAD_OCO2S4_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets4[GBPCAD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO2Sets4[GBPCAD_OCO2S4_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO2Sets4.RemoveAt(GBPCAD_OCO2S4_DOWN_S2);
GBPCAD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO3_EO1_DOWN_S2)
Base.GBPCAD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO3_EO2_DOWN_S2)
Base.GBPCAD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO3_EO3_DOWN_S2)
Base.GBPCAD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO3_EO4_DOWN_S2)
Base.GBPCAD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO1_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP1_GBPCAD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP1,"TP1_GBPCAD_DOWN_S2_OCO3"));
};
Base.GBPCAD_DOWN_S2_OCO3Sets1.Add( Base.GBPCAD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO2_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP2_GBPCAD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP2,"TP2_GBPCAD_DOWN_S2_OCO3"));
};
Base.GBPCAD_DOWN_S2_OCO3Sets2.Add( Base.GBPCAD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO3_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP3_GBPCAD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP3,"TP3_GBPCAD_DOWN_S2_OCO3"));
};
Base.GBPCAD_DOWN_S2_OCO3Sets3.Add( Base.GBPCAD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO4_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP4_GBPCAD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP4,"TP4_GBPCAD_DOWN_S2_OCO3"));
};
Base.GBPCAD_DOWN_S2_OCO3Sets4.Add( Base.GBPCAD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO4_DOWN_S2_ID = -1;
}
int GBPCAD_OCO3S1_DOWN_S2 = 0;
for (; GBPCAD_OCO3S1_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets1.Count; GBPCAD_OCO3S1_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets1[GBPCAD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO3Sets1[GBPCAD_OCO3S1_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO3Sets1.RemoveAt(GBPCAD_OCO3S1_DOWN_S2);
GBPCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO3S2_DOWN_S2 = 0;
for (; GBPCAD_OCO3S2_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets2.Count; GBPCAD_OCO3S2_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets2[GBPCAD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO3Sets2[GBPCAD_OCO3S2_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO3Sets2.RemoveAt(GBPCAD_OCO3S2_DOWN_S2);
GBPCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO3S3_DOWN_S2 = 0;
for (; GBPCAD_OCO3S3_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets3.Count; GBPCAD_OCO3S3_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets3[GBPCAD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO3Sets3[GBPCAD_OCO3S3_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO3Sets3.RemoveAt(GBPCAD_OCO3S3_DOWN_S2);
GBPCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO3S4_DOWN_S2 = 0;
for (; GBPCAD_OCO3S4_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets4.Count; GBPCAD_OCO3S4_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets4[GBPCAD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO3Sets4[GBPCAD_OCO3S4_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO3Sets4.RemoveAt(GBPCAD_OCO3S4_DOWN_S2);
GBPCAD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO4_EO1_DOWN_S2)
Base.GBPCAD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO4_EO2_DOWN_S2)
Base.GBPCAD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO4_EO3_DOWN_S2)
Base.GBPCAD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO4_EO4_DOWN_S2)
Base.GBPCAD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO1_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP1_GBPCAD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP1,"TP1_GBPCAD_DOWN_S2_OCO4"));
};
Base.GBPCAD_DOWN_S2_OCO4Sets1.Add( Base.GBPCAD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO2_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP2_GBPCAD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP2,"TP2_GBPCAD_DOWN_S2_OCO4"));
};
Base.GBPCAD_DOWN_S2_OCO4Sets2.Add( Base.GBPCAD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO3_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP3_GBPCAD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP3,"TP3_GBPCAD_DOWN_S2_OCO4"));
};
Base.GBPCAD_DOWN_S2_OCO4Sets3.Add( Base.GBPCAD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO4_DOWN_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_DOWN_S2_SL,"SL_TP4_GBPCAD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_DOWN_S2_TP4,"TP4_GBPCAD_DOWN_S2_OCO4"));
};
Base.GBPCAD_DOWN_S2_OCO4Sets4.Add( Base.GBPCAD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO4_DOWN_S2_ID = -1;
}
int GBPCAD_OCO4S1_DOWN_S2 = 0;
for (; GBPCAD_OCO4S1_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets1.Count; GBPCAD_OCO4S1_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets1[GBPCAD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO4Sets1[GBPCAD_OCO4S1_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO4Sets1.RemoveAt(GBPCAD_OCO4S1_DOWN_S2);
GBPCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO4S2_DOWN_S2 = 0;
for (; GBPCAD_OCO4S2_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets2.Count; GBPCAD_OCO4S2_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets2[GBPCAD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO4Sets2[GBPCAD_OCO4S2_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO4Sets2.RemoveAt(GBPCAD_OCO4S2_DOWN_S2);
GBPCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO4S3_DOWN_S2 = 0;
for (; GBPCAD_OCO4S3_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets3.Count; GBPCAD_OCO4S3_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets3[GBPCAD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO4Sets3[GBPCAD_OCO4S3_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO4Sets3.RemoveAt(GBPCAD_OCO4S3_DOWN_S2);
GBPCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO4S4_DOWN_S2 = 0;
for (; GBPCAD_OCO4S4_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets4.Count; GBPCAD_OCO4S4_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets4[GBPCAD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_DOWN_S2_OCO4Sets4[GBPCAD_OCO4S4_DOWN_S2].Filled();
Base.GBPCAD_DOWN_S2_OCO4Sets4.RemoveAt(GBPCAD_OCO4S4_DOWN_S2);
GBPCAD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct GBPCAD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public GBPCAD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
if (OrderID.Tag.StartsWith("GBPCAD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("GBPCAD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue GBPCAD S2");
}
}
if (Base.GBPCAD_OCO1_EO1_UP_S2)
Base.GBPCAD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO1_EO2_UP_S2)
Base.GBPCAD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO1_EO3_UP_S2)
Base.GBPCAD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO1_EO4_UP_S2)
Base.GBPCAD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO1_EO5_UP_S2)
Base.GBPCAD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO1_EO6_UP_S2)
Base.GBPCAD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO1_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP1,"TP1_GBPCAD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP1_GBPCAD_UP_S2_OCO1"));
};
Base.GBPCAD_UP_S2_OCO1Sets1.Add( Base.GBPCAD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO2_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP2,"TP2_GBPCAD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP2_GBPCAD_UP_S2_OCO1"));
};
Base.GBPCAD_UP_S2_OCO1Sets2.Add( Base.GBPCAD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO3_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP3,"TP3_GBPCAD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP3_GBPCAD_UP_S2_OCO1"));
};
Base.GBPCAD_UP_S2_OCO1Sets3.Add( Base.GBPCAD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO4_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP4,"TP4_GBPCAD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP4_GBPCAD_UP_S2_OCO1"));
};
Base.GBPCAD_UP_S2_OCO1Sets4.Add( Base.GBPCAD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO5_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP5,"TP5_GBPCAD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP5_GBPCAD_UP_S2_OCO1"));
};
Base.GBPCAD_UP_S2_OCO1Sets5.Add( Base.GBPCAD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO1_EO6_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP6,"TP6_GBPCAD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP6_GBPCAD_UP_S2_OCO1"));
};
Base.GBPCAD_UP_S2_OCO1Sets6.Add( Base.GBPCAD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO1_EO6_UP_S2_ID = -1;
}
int GBPCAD_OCO1S1_UP_S2 = 0;
for (; GBPCAD_OCO1S1_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets1.Count; GBPCAD_OCO1S1_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets1[GBPCAD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO1Sets1[GBPCAD_OCO1S1_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO1Sets1.RemoveAt(GBPCAD_OCO1S1_UP_S2);
GBPCAD_OCO1S1_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S2_UP_S2 = 0;
for (; GBPCAD_OCO1S2_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets2.Count; GBPCAD_OCO1S2_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets2[GBPCAD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO1Sets2[GBPCAD_OCO1S2_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO1Sets2.RemoveAt(GBPCAD_OCO1S2_UP_S2);
GBPCAD_OCO1S2_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S3_UP_S2 = 0;
for (; GBPCAD_OCO1S3_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets3.Count; GBPCAD_OCO1S3_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets3[GBPCAD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO1Sets3[GBPCAD_OCO1S3_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO1Sets3.RemoveAt(GBPCAD_OCO1S3_UP_S2);
GBPCAD_OCO1S3_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S4_UP_S2 = 0;
for (; GBPCAD_OCO1S4_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets4.Count; GBPCAD_OCO1S4_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets4[GBPCAD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO1Sets4[GBPCAD_OCO1S4_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO1Sets4.RemoveAt(GBPCAD_OCO1S4_UP_S2);
GBPCAD_OCO1S4_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S5_UP_S2 = 0;
for (; GBPCAD_OCO1S5_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets5.Count; GBPCAD_OCO1S5_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets5[GBPCAD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO1Sets5[GBPCAD_OCO1S5_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO1Sets5.RemoveAt(GBPCAD_OCO1S5_UP_S2);
GBPCAD_OCO1S5_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S6_UP_S2 = 0;
for (; GBPCAD_OCO1S6_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets6.Count; GBPCAD_OCO1S6_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets6[GBPCAD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO1Sets6[GBPCAD_OCO1S6_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO1Sets6.RemoveAt(GBPCAD_OCO1S6_UP_S2);
GBPCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO2_EO1_UP_S2)
Base.GBPCAD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO2_EO2_UP_S2)
Base.GBPCAD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO2_EO3_UP_S2)
Base.GBPCAD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO2_EO4_UP_S2)
Base.GBPCAD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO2_EO5_UP_S2)
Base.GBPCAD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO2_EO6_UP_S2)
Base.GBPCAD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO1_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP1,"TP1_GBPCAD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP1_GBPCAD_UP_S2_OCO2"));
};
Base.GBPCAD_UP_S2_OCO2Sets1.Add( Base.GBPCAD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO2_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP2,"TP2_GBPCAD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP2_GBPCAD_UP_S2_OCO2"));
};
Base.GBPCAD_UP_S2_OCO2Sets2.Add( Base.GBPCAD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO3_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP3,"TP3_GBPCAD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP3_GBPCAD_UP_S2_OCO2"));
};
Base.GBPCAD_UP_S2_OCO2Sets3.Add( Base.GBPCAD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO4_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP4,"TP4_GBPCAD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP4_GBPCAD_UP_S2_OCO2"));
};
Base.GBPCAD_UP_S2_OCO2Sets4.Add( Base.GBPCAD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO5_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP5,"TP5_GBPCAD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP5_GBPCAD_UP_S2_OCO2"));
};
Base.GBPCAD_UP_S2_OCO2Sets5.Add( Base.GBPCAD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO2_EO6_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP6,"TP6_GBPCAD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP6_GBPCAD_UP_S2_OCO2"));
};
Base.GBPCAD_UP_S2_OCO2Sets6.Add( Base.GBPCAD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO2_EO6_UP_S2_ID = -1;
}
int GBPCAD_OCO2S1_UP_S2 = 0;
for (; GBPCAD_OCO2S1_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets1.Count; GBPCAD_OCO2S1_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets1[GBPCAD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO2Sets1[GBPCAD_OCO2S1_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO2Sets1.RemoveAt(GBPCAD_OCO2S1_UP_S2);
GBPCAD_OCO2S1_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S2_UP_S2 = 0;
for (; GBPCAD_OCO2S2_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets2.Count; GBPCAD_OCO2S2_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets2[GBPCAD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO2Sets2[GBPCAD_OCO2S2_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO2Sets2.RemoveAt(GBPCAD_OCO2S2_UP_S2);
GBPCAD_OCO2S2_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S3_UP_S2 = 0;
for (; GBPCAD_OCO2S3_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets3.Count; GBPCAD_OCO2S3_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets3[GBPCAD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO2Sets3[GBPCAD_OCO2S3_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO2Sets3.RemoveAt(GBPCAD_OCO2S3_UP_S2);
GBPCAD_OCO2S3_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S4_UP_S2 = 0;
for (; GBPCAD_OCO2S4_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets4.Count; GBPCAD_OCO2S4_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets4[GBPCAD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO2Sets4[GBPCAD_OCO2S4_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO2Sets4.RemoveAt(GBPCAD_OCO2S4_UP_S2);
GBPCAD_OCO2S4_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S5_UP_S2 = 0;
for (; GBPCAD_OCO2S5_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets5.Count; GBPCAD_OCO2S5_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets5[GBPCAD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO2Sets5[GBPCAD_OCO2S5_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO2Sets5.RemoveAt(GBPCAD_OCO2S5_UP_S2);
GBPCAD_OCO2S5_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S6_UP_S2 = 0;
for (; GBPCAD_OCO2S6_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets6.Count; GBPCAD_OCO2S6_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets6[GBPCAD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO2Sets6[GBPCAD_OCO2S6_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO2Sets6.RemoveAt(GBPCAD_OCO2S6_UP_S2);
GBPCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO3_EO1_UP_S2)
Base.GBPCAD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO3_EO2_UP_S2)
Base.GBPCAD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO3_EO3_UP_S2)
Base.GBPCAD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO3_EO4_UP_S2)
Base.GBPCAD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO3_EO5_UP_S2)
Base.GBPCAD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO3_EO6_UP_S2)
Base.GBPCAD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO1_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP1,"TP1_GBPCAD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP1_GBPCAD_UP_S2_OCO3"));
};
Base.GBPCAD_UP_S2_OCO3Sets1.Add( Base.GBPCAD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO2_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP2,"TP2_GBPCAD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP2_GBPCAD_UP_S2_OCO3"));
};
Base.GBPCAD_UP_S2_OCO3Sets2.Add( Base.GBPCAD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO3_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP3,"TP3_GBPCAD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP3_GBPCAD_UP_S2_OCO3"));
};
Base.GBPCAD_UP_S2_OCO3Sets3.Add( Base.GBPCAD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO4_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP4,"TP4_GBPCAD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP4_GBPCAD_UP_S2_OCO3"));
};
Base.GBPCAD_UP_S2_OCO3Sets4.Add( Base.GBPCAD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO5_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP5,"TP5_GBPCAD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP5_GBPCAD_UP_S2_OCO3"));
};
Base.GBPCAD_UP_S2_OCO3Sets5.Add( Base.GBPCAD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO3_EO6_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP6,"TP6_GBPCAD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP6_GBPCAD_UP_S2_OCO3"));
};
Base.GBPCAD_UP_S2_OCO3Sets6.Add( Base.GBPCAD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO3_EO6_UP_S2_ID = -1;
}
int GBPCAD_OCO3S1_UP_S2 = 0;
for (; GBPCAD_OCO3S1_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets1.Count; GBPCAD_OCO3S1_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets1[GBPCAD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO3Sets1[GBPCAD_OCO3S1_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO3Sets1.RemoveAt(GBPCAD_OCO3S1_UP_S2);
GBPCAD_OCO3S1_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S2_UP_S2 = 0;
for (; GBPCAD_OCO3S2_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets2.Count; GBPCAD_OCO3S2_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets2[GBPCAD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO3Sets2[GBPCAD_OCO3S2_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO3Sets2.RemoveAt(GBPCAD_OCO3S2_UP_S2);
GBPCAD_OCO3S2_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S3_UP_S2 = 0;
for (; GBPCAD_OCO3S3_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets3.Count; GBPCAD_OCO3S3_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets3[GBPCAD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO3Sets3[GBPCAD_OCO3S3_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO3Sets3.RemoveAt(GBPCAD_OCO3S3_UP_S2);
GBPCAD_OCO3S3_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S4_UP_S2 = 0;
for (; GBPCAD_OCO3S4_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets4.Count; GBPCAD_OCO3S4_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets4[GBPCAD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO3Sets4[GBPCAD_OCO3S4_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO3Sets4.RemoveAt(GBPCAD_OCO3S4_UP_S2);
GBPCAD_OCO3S4_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S5_UP_S2 = 0;
for (; GBPCAD_OCO3S5_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets5.Count; GBPCAD_OCO3S5_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets5[GBPCAD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO3Sets5[GBPCAD_OCO3S5_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO3Sets5.RemoveAt(GBPCAD_OCO3S5_UP_S2);
GBPCAD_OCO3S5_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S6_UP_S2 = 0;
for (; GBPCAD_OCO3S6_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets6.Count; GBPCAD_OCO3S6_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets6[GBPCAD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO3Sets6[GBPCAD_OCO3S6_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO3Sets6.RemoveAt(GBPCAD_OCO3S6_UP_S2);
GBPCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO4_EO1_UP_S2)
Base.GBPCAD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO4_EO2_UP_S2)
Base.GBPCAD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO4_EO3_UP_S2)
Base.GBPCAD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO4_EO4_UP_S2)
Base.GBPCAD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO4_EO5_UP_S2)
Base.GBPCAD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.GBPCAD_OCO4_EO6_UP_S2)
Base.GBPCAD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO1_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP1,"TP1_GBPCAD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP1_GBPCAD_UP_S2_OCO4"));
};
Base.GBPCAD_UP_S2_OCO4Sets1.Add( Base.GBPCAD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO2_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP2,"TP2_GBPCAD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP2_GBPCAD_UP_S2_OCO4"));
};
Base.GBPCAD_UP_S2_OCO4Sets2.Add( Base.GBPCAD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO3_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP3,"TP3_GBPCAD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP3_GBPCAD_UP_S2_OCO4"));
};
Base.GBPCAD_UP_S2_OCO4Sets3.Add( Base.GBPCAD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO4_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP4,"TP4_GBPCAD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP4_GBPCAD_UP_S2_OCO4"));
};
Base.GBPCAD_UP_S2_OCO4Sets4.Add( Base.GBPCAD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO5_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP5,"TP5_GBPCAD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP5_GBPCAD_UP_S2_OCO4"));
};
Base.GBPCAD_UP_S2_OCO4Sets5.Add( Base.GBPCAD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.GBPCAD_OCO4_EO6_UP_S2_ID)
{
Base.GBPCAD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new GBPCAD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.GBPCAD_UP_S2_TP6,"TP6_GBPCAD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.GBPCAD_UP_S2_SL,"SL_TP6_GBPCAD_UP_S2_OCO4"));
};
Base.GBPCAD_UP_S2_OCO4Sets6.Add( Base.GBPCAD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.GBPCAD_OCO4_EO6_UP_S2_ID = -1;
}
int GBPCAD_OCO4S1_UP_S2 = 0;
for (; GBPCAD_OCO4S1_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets1.Count; GBPCAD_OCO4S1_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets1[GBPCAD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO4Sets1[GBPCAD_OCO4S1_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO4Sets1.RemoveAt(GBPCAD_OCO4S1_UP_S2);
GBPCAD_OCO4S1_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S2_UP_S2 = 0;
for (; GBPCAD_OCO4S2_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets2.Count; GBPCAD_OCO4S2_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets2[GBPCAD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO4Sets2[GBPCAD_OCO4S2_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO4Sets2.RemoveAt(GBPCAD_OCO4S2_UP_S2);
GBPCAD_OCO4S2_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S3_UP_S2 = 0;
for (; GBPCAD_OCO4S3_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets3.Count; GBPCAD_OCO4S3_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets3[GBPCAD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO4Sets3[GBPCAD_OCO4S3_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO4Sets3.RemoveAt(GBPCAD_OCO4S3_UP_S2);
GBPCAD_OCO4S3_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S4_UP_S2 = 0;
for (; GBPCAD_OCO4S4_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets4.Count; GBPCAD_OCO4S4_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets4[GBPCAD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO4Sets4[GBPCAD_OCO4S4_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO4Sets4.RemoveAt(GBPCAD_OCO4S4_UP_S2);
GBPCAD_OCO4S4_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S5_UP_S2 = 0;
for (; GBPCAD_OCO4S5_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets5.Count; GBPCAD_OCO4S5_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets5[GBPCAD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO4Sets5[GBPCAD_OCO4S5_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO4Sets5.RemoveAt(GBPCAD_OCO4S5_UP_S2);
GBPCAD_OCO4S5_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S6_UP_S2 = 0;
for (; GBPCAD_OCO4S6_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets6.Count; GBPCAD_OCO4S6_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets6[GBPCAD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.GBPCAD_UP_S2_OCO4Sets6[GBPCAD_OCO4S6_UP_S2].Filled();
Base.GBPCAD_UP_S2_OCO4Sets6.RemoveAt(GBPCAD_OCO4S6_UP_S2);
GBPCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct NZDCHF_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public NZDCHF_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
}
if (Base.NZDCHF_OCO1_EO1_UP_S2)
Base.NZDCHF_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO1_EO2_UP_S2)
Base.NZDCHF_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO1_EO3_UP_S2)
Base.NZDCHF_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO1_EO4_UP_S2)
Base.NZDCHF_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO1_EO5_UP_S2)
Base.NZDCHF_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO1_EO6_UP_S2)
Base.NZDCHF_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO1_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP1,"TP1_NZDCHF_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP1_NZDCHF_UP_S2_OCO1"));
};
Base.NZDCHF_UP_S2_OCO1Sets1.Add( Base.NZDCHF_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO2_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP2,"TP2_NZDCHF_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP2_NZDCHF_UP_S2_OCO1"));
};
Base.NZDCHF_UP_S2_OCO1Sets2.Add( Base.NZDCHF_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO3_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP3,"TP3_NZDCHF_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP3_NZDCHF_UP_S2_OCO1"));
};
Base.NZDCHF_UP_S2_OCO1Sets3.Add( Base.NZDCHF_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO4_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP4,"TP4_NZDCHF_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP4_NZDCHF_UP_S2_OCO1"));
};
Base.NZDCHF_UP_S2_OCO1Sets4.Add( Base.NZDCHF_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO5_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP5,"TP5_NZDCHF_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP5_NZDCHF_UP_S2_OCO1"));
};
Base.NZDCHF_UP_S2_OCO1Sets5.Add( Base.NZDCHF_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO6_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP6,"TP6_NZDCHF_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP6_NZDCHF_UP_S2_OCO1"));
};
Base.NZDCHF_UP_S2_OCO1Sets6.Add( Base.NZDCHF_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO6_UP_S2_ID = -1;
}
int NZDCHF_OCO1S1_UP_S2 = 0;
for (; NZDCHF_OCO1S1_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets1.Count; NZDCHF_OCO1S1_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets1[NZDCHF_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO1Sets1[NZDCHF_OCO1S1_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO1Sets1.RemoveAt(NZDCHF_OCO1S1_UP_S2);
NZDCHF_OCO1S1_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S2_UP_S2 = 0;
for (; NZDCHF_OCO1S2_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets2.Count; NZDCHF_OCO1S2_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets2[NZDCHF_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO1Sets2[NZDCHF_OCO1S2_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO1Sets2.RemoveAt(NZDCHF_OCO1S2_UP_S2);
NZDCHF_OCO1S2_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S3_UP_S2 = 0;
for (; NZDCHF_OCO1S3_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets3.Count; NZDCHF_OCO1S3_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets3[NZDCHF_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO1Sets3[NZDCHF_OCO1S3_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO1Sets3.RemoveAt(NZDCHF_OCO1S3_UP_S2);
NZDCHF_OCO1S3_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S4_UP_S2 = 0;
for (; NZDCHF_OCO1S4_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets4.Count; NZDCHF_OCO1S4_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets4[NZDCHF_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO1Sets4[NZDCHF_OCO1S4_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO1Sets4.RemoveAt(NZDCHF_OCO1S4_UP_S2);
NZDCHF_OCO1S4_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S5_UP_S2 = 0;
for (; NZDCHF_OCO1S5_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets5.Count; NZDCHF_OCO1S5_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets5[NZDCHF_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO1Sets5[NZDCHF_OCO1S5_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO1Sets5.RemoveAt(NZDCHF_OCO1S5_UP_S2);
NZDCHF_OCO1S5_UP_S2 = 0;
break;
}
int NZDCHF_OCO1S6_UP_S2 = 0;
for (; NZDCHF_OCO1S6_UP_S2 < Base.NZDCHF_UP_S2_OCO1Sets6.Count; NZDCHF_OCO1S6_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO1Sets6[NZDCHF_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO1Sets6[NZDCHF_OCO1S6_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO1Sets6.RemoveAt(NZDCHF_OCO1S6_UP_S2);
NZDCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO2_EO1_UP_S2)
Base.NZDCHF_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO2_EO2_UP_S2)
Base.NZDCHF_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO2_EO3_UP_S2)
Base.NZDCHF_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO2_EO4_UP_S2)
Base.NZDCHF_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO2_EO5_UP_S2)
Base.NZDCHF_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO2_EO6_UP_S2)
Base.NZDCHF_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO1_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP1,"TP1_NZDCHF_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP1_NZDCHF_UP_S2_OCO2"));
};
Base.NZDCHF_UP_S2_OCO2Sets1.Add( Base.NZDCHF_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO2_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP2,"TP2_NZDCHF_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP2_NZDCHF_UP_S2_OCO2"));
};
Base.NZDCHF_UP_S2_OCO2Sets2.Add( Base.NZDCHF_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO3_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP3,"TP3_NZDCHF_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP3_NZDCHF_UP_S2_OCO2"));
};
Base.NZDCHF_UP_S2_OCO2Sets3.Add( Base.NZDCHF_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO4_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP4,"TP4_NZDCHF_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP4_NZDCHF_UP_S2_OCO2"));
};
Base.NZDCHF_UP_S2_OCO2Sets4.Add( Base.NZDCHF_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO5_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP5,"TP5_NZDCHF_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP5_NZDCHF_UP_S2_OCO2"));
};
Base.NZDCHF_UP_S2_OCO2Sets5.Add( Base.NZDCHF_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO6_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP6,"TP6_NZDCHF_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP6_NZDCHF_UP_S2_OCO2"));
};
Base.NZDCHF_UP_S2_OCO2Sets6.Add( Base.NZDCHF_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO6_UP_S2_ID = -1;
}
int NZDCHF_OCO2S1_UP_S2 = 0;
for (; NZDCHF_OCO2S1_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets1.Count; NZDCHF_OCO2S1_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets1[NZDCHF_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO2Sets1[NZDCHF_OCO2S1_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO2Sets1.RemoveAt(NZDCHF_OCO2S1_UP_S2);
NZDCHF_OCO2S1_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S2_UP_S2 = 0;
for (; NZDCHF_OCO2S2_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets2.Count; NZDCHF_OCO2S2_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets2[NZDCHF_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO2Sets2[NZDCHF_OCO2S2_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO2Sets2.RemoveAt(NZDCHF_OCO2S2_UP_S2);
NZDCHF_OCO2S2_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S3_UP_S2 = 0;
for (; NZDCHF_OCO2S3_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets3.Count; NZDCHF_OCO2S3_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets3[NZDCHF_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO2Sets3[NZDCHF_OCO2S3_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO2Sets3.RemoveAt(NZDCHF_OCO2S3_UP_S2);
NZDCHF_OCO2S3_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S4_UP_S2 = 0;
for (; NZDCHF_OCO2S4_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets4.Count; NZDCHF_OCO2S4_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets4[NZDCHF_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO2Sets4[NZDCHF_OCO2S4_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO2Sets4.RemoveAt(NZDCHF_OCO2S4_UP_S2);
NZDCHF_OCO2S4_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S5_UP_S2 = 0;
for (; NZDCHF_OCO2S5_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets5.Count; NZDCHF_OCO2S5_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets5[NZDCHF_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO2Sets5[NZDCHF_OCO2S5_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO2Sets5.RemoveAt(NZDCHF_OCO2S5_UP_S2);
NZDCHF_OCO2S5_UP_S2 = 0;
break;
}
int NZDCHF_OCO2S6_UP_S2 = 0;
for (; NZDCHF_OCO2S6_UP_S2 < Base.NZDCHF_UP_S2_OCO2Sets6.Count; NZDCHF_OCO2S6_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO2Sets6[NZDCHF_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO2Sets6[NZDCHF_OCO2S6_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO2Sets6.RemoveAt(NZDCHF_OCO2S6_UP_S2);
NZDCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO3_EO1_UP_S2)
Base.NZDCHF_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO3_EO2_UP_S2)
Base.NZDCHF_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO3_EO3_UP_S2)
Base.NZDCHF_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO3_EO4_UP_S2)
Base.NZDCHF_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO3_EO5_UP_S2)
Base.NZDCHF_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO3_EO6_UP_S2)
Base.NZDCHF_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO1_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP1,"TP1_NZDCHF_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP1_NZDCHF_UP_S2_OCO3"));
};
Base.NZDCHF_UP_S2_OCO3Sets1.Add( Base.NZDCHF_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO2_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP2,"TP2_NZDCHF_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP2_NZDCHF_UP_S2_OCO3"));
};
Base.NZDCHF_UP_S2_OCO3Sets2.Add( Base.NZDCHF_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO3_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP3,"TP3_NZDCHF_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP3_NZDCHF_UP_S2_OCO3"));
};
Base.NZDCHF_UP_S2_OCO3Sets3.Add( Base.NZDCHF_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO4_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP4,"TP4_NZDCHF_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP4_NZDCHF_UP_S2_OCO3"));
};
Base.NZDCHF_UP_S2_OCO3Sets4.Add( Base.NZDCHF_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO5_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP5,"TP5_NZDCHF_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP5_NZDCHF_UP_S2_OCO3"));
};
Base.NZDCHF_UP_S2_OCO3Sets5.Add( Base.NZDCHF_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO6_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP6,"TP6_NZDCHF_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP6_NZDCHF_UP_S2_OCO3"));
};
Base.NZDCHF_UP_S2_OCO3Sets6.Add( Base.NZDCHF_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO6_UP_S2_ID = -1;
}
int NZDCHF_OCO3S1_UP_S2 = 0;
for (; NZDCHF_OCO3S1_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets1.Count; NZDCHF_OCO3S1_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets1[NZDCHF_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO3Sets1[NZDCHF_OCO3S1_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO3Sets1.RemoveAt(NZDCHF_OCO3S1_UP_S2);
NZDCHF_OCO3S1_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S2_UP_S2 = 0;
for (; NZDCHF_OCO3S2_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets2.Count; NZDCHF_OCO3S2_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets2[NZDCHF_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO3Sets2[NZDCHF_OCO3S2_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO3Sets2.RemoveAt(NZDCHF_OCO3S2_UP_S2);
NZDCHF_OCO3S2_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S3_UP_S2 = 0;
for (; NZDCHF_OCO3S3_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets3.Count; NZDCHF_OCO3S3_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets3[NZDCHF_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO3Sets3[NZDCHF_OCO3S3_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO3Sets3.RemoveAt(NZDCHF_OCO3S3_UP_S2);
NZDCHF_OCO3S3_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S4_UP_S2 = 0;
for (; NZDCHF_OCO3S4_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets4.Count; NZDCHF_OCO3S4_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets4[NZDCHF_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO3Sets4[NZDCHF_OCO3S4_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO3Sets4.RemoveAt(NZDCHF_OCO3S4_UP_S2);
NZDCHF_OCO3S4_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S5_UP_S2 = 0;
for (; NZDCHF_OCO3S5_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets5.Count; NZDCHF_OCO3S5_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets5[NZDCHF_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO3Sets5[NZDCHF_OCO3S5_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO3Sets5.RemoveAt(NZDCHF_OCO3S5_UP_S2);
NZDCHF_OCO3S5_UP_S2 = 0;
break;
}
int NZDCHF_OCO3S6_UP_S2 = 0;
for (; NZDCHF_OCO3S6_UP_S2 < Base.NZDCHF_UP_S2_OCO3Sets6.Count; NZDCHF_OCO3S6_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO3Sets6[NZDCHF_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO3Sets6[NZDCHF_OCO3S6_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO3Sets6.RemoveAt(NZDCHF_OCO3S6_UP_S2);
NZDCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO4_EO1_UP_S2)
Base.NZDCHF_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO4_EO2_UP_S2)
Base.NZDCHF_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO4_EO3_UP_S2)
Base.NZDCHF_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO4_EO4_UP_S2)
Base.NZDCHF_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO4_EO5_UP_S2)
Base.NZDCHF_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO4_EO6_UP_S2)
Base.NZDCHF_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO1_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP1,"TP1_NZDCHF_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP1_NZDCHF_UP_S2_OCO4"));
};
Base.NZDCHF_UP_S2_OCO4Sets1.Add( Base.NZDCHF_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO2_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP2,"TP2_NZDCHF_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP2_NZDCHF_UP_S2_OCO4"));
};
Base.NZDCHF_UP_S2_OCO4Sets2.Add( Base.NZDCHF_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO3_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP3,"TP3_NZDCHF_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP3_NZDCHF_UP_S2_OCO4"));
};
Base.NZDCHF_UP_S2_OCO4Sets3.Add( Base.NZDCHF_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO4_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP4,"TP4_NZDCHF_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP4_NZDCHF_UP_S2_OCO4"));
};
Base.NZDCHF_UP_S2_OCO4Sets4.Add( Base.NZDCHF_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO5_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP5,"TP5_NZDCHF_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP5_NZDCHF_UP_S2_OCO4"));
};
Base.NZDCHF_UP_S2_OCO4Sets5.Add( Base.NZDCHF_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO6_UP_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_UP_S2_TP6,"TP6_NZDCHF_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_UP_S2_SL,"SL_TP6_NZDCHF_UP_S2_OCO4"));
};
Base.NZDCHF_UP_S2_OCO4Sets6.Add( Base.NZDCHF_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO6_UP_S2_ID = -1;
}
int NZDCHF_OCO4S1_UP_S2 = 0;
for (; NZDCHF_OCO4S1_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets1.Count; NZDCHF_OCO4S1_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets1[NZDCHF_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO4Sets1[NZDCHF_OCO4S1_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO4Sets1.RemoveAt(NZDCHF_OCO4S1_UP_S2);
NZDCHF_OCO4S1_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S2_UP_S2 = 0;
for (; NZDCHF_OCO4S2_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets2.Count; NZDCHF_OCO4S2_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets2[NZDCHF_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO4Sets2[NZDCHF_OCO4S2_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO4Sets2.RemoveAt(NZDCHF_OCO4S2_UP_S2);
NZDCHF_OCO4S2_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S3_UP_S2 = 0;
for (; NZDCHF_OCO4S3_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets3.Count; NZDCHF_OCO4S3_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets3[NZDCHF_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO4Sets3[NZDCHF_OCO4S3_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO4Sets3.RemoveAt(NZDCHF_OCO4S3_UP_S2);
NZDCHF_OCO4S3_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S4_UP_S2 = 0;
for (; NZDCHF_OCO4S4_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets4.Count; NZDCHF_OCO4S4_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets4[NZDCHF_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO4Sets4[NZDCHF_OCO4S4_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO4Sets4.RemoveAt(NZDCHF_OCO4S4_UP_S2);
NZDCHF_OCO4S4_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S5_UP_S2 = 0;
for (; NZDCHF_OCO4S5_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets5.Count; NZDCHF_OCO4S5_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets5[NZDCHF_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO4Sets5[NZDCHF_OCO4S5_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO4Sets5.RemoveAt(NZDCHF_OCO4S5_UP_S2);
NZDCHF_OCO4S5_UP_S2 = 0;
break;
}
int NZDCHF_OCO4S6_UP_S2 = 0;
for (; NZDCHF_OCO4S6_UP_S2 < Base.NZDCHF_UP_S2_OCO4Sets6.Count; NZDCHF_OCO4S6_UP_S2++)
if (Base.NZDCHF_UP_S2_OCO4Sets6[NZDCHF_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_UP_S2_OCO4Sets6[NZDCHF_OCO4S6_UP_S2].Filled();
Base.NZDCHF_UP_S2_OCO4Sets6.RemoveAt(NZDCHF_OCO4S6_UP_S2);
NZDCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPJPY_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPJPY_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPJPY_DOWN_S2_OCO1")))
{
Base.GBPJPY_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPJPY_DOWN_S2_OCO2")))
{
Base.GBPJPY_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPJPY_DOWN_S2_OCO3")))
{
Base.GBPJPY_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPJPY_DOWN_S2_OCO4")))
{
Base.GBPJPY_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPJPY_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPJPY_OCO1_EO1_DOWN_S2)
Base.GBPJPY_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO2_DOWN_S2)
Base.GBPJPY_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO3_DOWN_S2)
Base.GBPJPY_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO4_DOWN_S2)
Base.GBPJPY_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO5_DOWN_S2)
Base.GBPJPY_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO6_DOWN_S2)
Base.GBPJPY_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPJPY_OCO1S1_DOWN_S2 = 0;
for (; GBPJPY_OCO1S1_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets1.Count; GBPJPY_OCO1S1_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets1[GBPJPY_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO1Sets1[GBPJPY_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_1__Time out_OCO1");
Base.GBPJPY_DOWN_S2_OCO1Sets1.Clear();
GBPJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO1S2_DOWN_S2 = 0;
for (; GBPJPY_OCO1S2_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets2.Count; GBPJPY_OCO1S2_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets2[GBPJPY_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO1Sets2[GBPJPY_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_2__Time out_OCO1");
Base.GBPJPY_DOWN_S2_OCO1Sets2.Clear();
GBPJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO1S3_DOWN_S2 = 0;
for (; GBPJPY_OCO1S3_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets3.Count; GBPJPY_OCO1S3_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets3[GBPJPY_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO1Sets3[GBPJPY_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_3__Time out_OCO1");
Base.GBPJPY_DOWN_S2_OCO1Sets3.Clear();
GBPJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO1S4_DOWN_S2 = 0;
for (; GBPJPY_OCO1S4_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets4.Count; GBPJPY_OCO1S4_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets4[GBPJPY_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO1Sets4[GBPJPY_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_4__Time out_OCO1");
Base.GBPJPY_DOWN_S2_OCO1Sets4.Clear();
GBPJPY_OCO1S4_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO1S5_DOWN_S2 = 0;
for (; GBPJPY_OCO1S5_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets5.Count; GBPJPY_OCO1S5_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets5[GBPJPY_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO1Sets5[GBPJPY_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_5__Time out_OCO1");
Base.GBPJPY_DOWN_S2_OCO1Sets5.Clear();
GBPJPY_OCO1S5_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO1S6_DOWN_S2 = 0;
for (; GBPJPY_OCO1S6_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO1Sets6.Count; GBPJPY_OCO1S6_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO1Sets6[GBPJPY_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO1Sets6[GBPJPY_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_6__Time out_OCO1");
Base.GBPJPY_DOWN_S2_OCO1Sets6.Clear();
GBPJPY_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO2_EO1_DOWN_S2)
Base.GBPJPY_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO2_DOWN_S2)
Base.GBPJPY_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO3_DOWN_S2)
Base.GBPJPY_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO4_DOWN_S2)
Base.GBPJPY_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO5_DOWN_S2)
Base.GBPJPY_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO6_DOWN_S2)
Base.GBPJPY_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPJPY_OCO2S1_DOWN_S2 = 0;
for (; GBPJPY_OCO2S1_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets1.Count; GBPJPY_OCO2S1_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets1[GBPJPY_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO2Sets1[GBPJPY_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_1__Time out_OCO2");
Base.GBPJPY_DOWN_S2_OCO2Sets1.Clear();
GBPJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO2S2_DOWN_S2 = 0;
for (; GBPJPY_OCO2S2_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets2.Count; GBPJPY_OCO2S2_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets2[GBPJPY_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO2Sets2[GBPJPY_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_2__Time out_OCO2");
Base.GBPJPY_DOWN_S2_OCO2Sets2.Clear();
GBPJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO2S3_DOWN_S2 = 0;
for (; GBPJPY_OCO2S3_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets3.Count; GBPJPY_OCO2S3_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets3[GBPJPY_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO2Sets3[GBPJPY_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_3__Time out_OCO2");
Base.GBPJPY_DOWN_S2_OCO2Sets3.Clear();
GBPJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO2S4_DOWN_S2 = 0;
for (; GBPJPY_OCO2S4_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets4.Count; GBPJPY_OCO2S4_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets4[GBPJPY_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO2Sets4[GBPJPY_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_4__Time out_OCO2");
Base.GBPJPY_DOWN_S2_OCO2Sets4.Clear();
GBPJPY_OCO2S4_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO2S5_DOWN_S2 = 0;
for (; GBPJPY_OCO2S5_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets5.Count; GBPJPY_OCO2S5_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets5[GBPJPY_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO2Sets5[GBPJPY_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_5__Time out_OCO2");
Base.GBPJPY_DOWN_S2_OCO2Sets5.Clear();
GBPJPY_OCO2S5_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO2S6_DOWN_S2 = 0;
for (; GBPJPY_OCO2S6_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO2Sets6.Count; GBPJPY_OCO2S6_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO2Sets6[GBPJPY_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO2Sets6[GBPJPY_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_6__Time out_OCO2");
Base.GBPJPY_DOWN_S2_OCO2Sets6.Clear();
GBPJPY_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO3_EO1_DOWN_S2)
Base.GBPJPY_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO2_DOWN_S2)
Base.GBPJPY_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO3_DOWN_S2)
Base.GBPJPY_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO4_DOWN_S2)
Base.GBPJPY_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO5_DOWN_S2)
Base.GBPJPY_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO6_DOWN_S2)
Base.GBPJPY_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPJPY_OCO3S1_DOWN_S2 = 0;
for (; GBPJPY_OCO3S1_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets1.Count; GBPJPY_OCO3S1_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets1[GBPJPY_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO3Sets1[GBPJPY_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_1__Time out_OCO3");
Base.GBPJPY_DOWN_S2_OCO3Sets1.Clear();
GBPJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO3S2_DOWN_S2 = 0;
for (; GBPJPY_OCO3S2_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets2.Count; GBPJPY_OCO3S2_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets2[GBPJPY_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO3Sets2[GBPJPY_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_2__Time out_OCO3");
Base.GBPJPY_DOWN_S2_OCO3Sets2.Clear();
GBPJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO3S3_DOWN_S2 = 0;
for (; GBPJPY_OCO3S3_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets3.Count; GBPJPY_OCO3S3_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets3[GBPJPY_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO3Sets3[GBPJPY_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_3__Time out_OCO3");
Base.GBPJPY_DOWN_S2_OCO3Sets3.Clear();
GBPJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO3S4_DOWN_S2 = 0;
for (; GBPJPY_OCO3S4_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets4.Count; GBPJPY_OCO3S4_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets4[GBPJPY_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO3Sets4[GBPJPY_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_4__Time out_OCO3");
Base.GBPJPY_DOWN_S2_OCO3Sets4.Clear();
GBPJPY_OCO3S4_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO3S5_DOWN_S2 = 0;
for (; GBPJPY_OCO3S5_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets5.Count; GBPJPY_OCO3S5_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets5[GBPJPY_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO3Sets5[GBPJPY_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_5__Time out_OCO3");
Base.GBPJPY_DOWN_S2_OCO3Sets5.Clear();
GBPJPY_OCO3S5_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO3S6_DOWN_S2 = 0;
for (; GBPJPY_OCO3S6_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO3Sets6.Count; GBPJPY_OCO3S6_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO3Sets6[GBPJPY_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO3Sets6[GBPJPY_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_6__Time out_OCO3");
Base.GBPJPY_DOWN_S2_OCO3Sets6.Clear();
GBPJPY_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO4_EO1_DOWN_S2)
Base.GBPJPY_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO2_DOWN_S2)
Base.GBPJPY_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO3_DOWN_S2)
Base.GBPJPY_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO4_DOWN_S2)
Base.GBPJPY_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO5_DOWN_S2)
Base.GBPJPY_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO6_DOWN_S2)
Base.GBPJPY_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPJPY_OCO4S1_DOWN_S2 = 0;
for (; GBPJPY_OCO4S1_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets1.Count; GBPJPY_OCO4S1_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets1[GBPJPY_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO4Sets1[GBPJPY_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_1__Time out_OCO4");
Base.GBPJPY_DOWN_S2_OCO4Sets1.Clear();
GBPJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO4S2_DOWN_S2 = 0;
for (; GBPJPY_OCO4S2_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets2.Count; GBPJPY_OCO4S2_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets2[GBPJPY_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO4Sets2[GBPJPY_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_2__Time out_OCO4");
Base.GBPJPY_DOWN_S2_OCO4Sets2.Clear();
GBPJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO4S3_DOWN_S2 = 0;
for (; GBPJPY_OCO4S3_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets3.Count; GBPJPY_OCO4S3_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets3[GBPJPY_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO4Sets3[GBPJPY_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_3__Time out_OCO4");
Base.GBPJPY_DOWN_S2_OCO4Sets3.Clear();
GBPJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO4S4_DOWN_S2 = 0;
for (; GBPJPY_OCO4S4_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets4.Count; GBPJPY_OCO4S4_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets4[GBPJPY_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO4Sets4[GBPJPY_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_4__Time out_OCO4");
Base.GBPJPY_DOWN_S2_OCO4Sets4.Clear();
GBPJPY_OCO4S4_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO4S5_DOWN_S2 = 0;
for (; GBPJPY_OCO4S5_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets5.Count; GBPJPY_OCO4S5_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets5[GBPJPY_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO4Sets5[GBPJPY_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_5__Time out_OCO4");
Base.GBPJPY_DOWN_S2_OCO4Sets5.Clear();
GBPJPY_OCO4S5_DOWN_S2 = 0;
break;
}
int GBPJPY_OCO4S6_DOWN_S2 = 0;
for (; GBPJPY_OCO4S6_DOWN_S2 < Base.GBPJPY_DOWN_S2_OCO4Sets6.Count; GBPJPY_OCO4S6_DOWN_S2++)
if (Base.GBPJPY_DOWN_S2_OCO4Sets6[GBPJPY_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPJPY_DOWN_S2_OCO4Sets6[GBPJPY_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_DOWN_S2_Entry_6__Time out_OCO4");
Base.GBPJPY_DOWN_S2_OCO4Sets6.Clear();
GBPJPY_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPJPY_DOWN_S2 = DOWM_GBPJPY_DOWN_S2 || DOWT_GBPJPY_DOWN_S2 || DOWW_GBPJPY_DOWN_S2 || DOWTH_GBPJPY_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPJPY"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPJPY_OCO1_DOWN_S2_IsReady == false ||
Base.GBPJPY_OCO2_DOWN_S2_IsReady == false ||
Base.GBPJPY_OCO3_DOWN_S2_IsReady == false ||
Base.GBPJPY_OCO4_DOWN_S2_IsReady == false)
{
Base.GBPJPY_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.GBPJPY_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.GBPJPY_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.GBPJPY_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.GBPJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.GBPJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.GBPJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
}
GBPJPY_Signal_Condition_DOWN_S2 =
(
pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.004m &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.02m
);
GBPJPY_DOWN_S2_SL = 1m;
GBPJPY_DOWN_S2_TP1 = 0.05m;
GBPJPY_DOWN_S2_TP2 = GBPJPY_DOWN_S2_SL * 0;
GBPJPY_DOWN_S2_TP3 = GBPJPY_DOWN_S2_SL * 0;
GBPJPY_DOWN_S2_TP4 = GBPJPY_DOWN_S2_SL * 0;
GBPJPY_DOWN_S2_TP5 = GBPJPY_DOWN_S2_SL * 0;
GBPJPY_DOWN_S2_TP6 = GBPJPY_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPJPY_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPJPY_quantity_SL_DOWN_S2 = GBPJPY_quantity_DOWN_S2;
GBPJPY_quantity_TP1_DOWN_S2 = (int)Math.Floor(GBPJPY_quantity_DOWN_S2 * 1m);
GBPJPY_quantity_TP2_DOWN_S2 = (int)Math.Floor(GBPJPY_quantity_TP1_DOWN_S2 * 0m);
GBPJPY_quantity_TP3_DOWN_S2 = (int)Math.Floor(GBPJPY_quantity_TP2_DOWN_S2 * 0m);
GBPJPY_quantity_TP4_DOWN_S2 = (int)Math.Floor(GBPJPY_quantity_TP3_DOWN_S2 * 0m);
GBPJPY_quantity_TP5_DOWN_S2 = (int)Math.Floor(GBPJPY_quantity_TP4_DOWN_S2 * 0m);
GBPJPY_quantity_TP6_DOWN_S2 = (int)Math.Floor(GBPJPY_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (GBPJPY_Signal_Condition_DOWN_S2 &&
DOWR_GBPJPY_DOWN_S2 &&
Base.GBPJPY_OCO1_DOWN_S2_IsReady == true &&
Base.GBPJPY_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPJPY_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP1_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP1_OCO1");
Base.GBPJPY_OCO1_EO1_DOWN_S2 = false;
Base.GBPJPY_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP2_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP2_OCO1");
Base.GBPJPY_OCO1_EO2_DOWN_S2 = false;
Base.GBPJPY_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP3_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP3_OCO1");
Base.GBPJPY_OCO1_EO3_DOWN_S2 = false;
Base.GBPJPY_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP4_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP4_OCO1");
Base.GBPJPY_OCO1_EO4_DOWN_S2 = false;
Base.GBPJPY_OCO1_DOWN_S2_IsReady = false;
if (Base.GBPJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (GBPJPY_Signal_Condition_DOWN_S2 &&
DOWR_GBPJPY_DOWN_S2 &&
Base.GBPJPY_OCO2_DOWN_S2_IsReady == true &&
Base.GBPJPY_OCO1_DOWN_S2_IsReady == false &&
Base.GBPJPY_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPJPY_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP1_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP1_OCO2");
Base.GBPJPY_OCO2_EO1_DOWN_S2 = false;
Base.GBPJPY_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP2_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP2_OCO2");
Base.GBPJPY_OCO2_EO2_DOWN_S2 = false;
Base.GBPJPY_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP3_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP3_OCO2");
Base.GBPJPY_OCO2_EO3_DOWN_S2 = false;
Base.GBPJPY_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP4_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP4_OCO2");
Base.GBPJPY_OCO2_EO4_DOWN_S2 = false;
Base.GBPJPY_OCO2_DOWN_S2_IsReady = false;
if (Base.GBPJPY_OCO2_DOWN_S2_IsReady == false && Base.GBPJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (GBPJPY_Signal_Condition_DOWN_S2 &&
DOWR_GBPJPY_DOWN_S2 &&
Base.GBPJPY_OCO3_DOWN_S2_IsReady == true &&
Base.GBPJPY_OCO1_DOWN_S2_IsReady == false &&
Base.GBPJPY_OCO2_DOWN_S2_IsReady == false &&
Base.GBPJPY_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPJPY_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP1_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP1_OCO3");
Base.GBPJPY_OCO3_EO1_DOWN_S2 = false;
Base.GBPJPY_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP2_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP2_OCO3");
Base.GBPJPY_OCO3_EO2_DOWN_S2 = false;
Base.GBPJPY_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP3_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP3_OCO3");
Base.GBPJPY_OCO3_EO3_DOWN_S2 = false;
Base.GBPJPY_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP4_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP4_OCO3");
Base.GBPJPY_OCO3_EO4_DOWN_S2 = false;
Base.GBPJPY_OCO3_DOWN_S2_IsReady = false;
if (Base.GBPJPY_OCO3_DOWN_S2_IsReady == false && Base.GBPJPY_OCO2_DOWN_S2_IsReady == false && Base.GBPJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (GBPJPY_Signal_Condition_DOWN_S2 &&
DOWR_GBPJPY_DOWN_S2 &&
Base.GBPJPY_OCO4_DOWN_S2_IsReady == true &&
Base.GBPJPY_OCO1_DOWN_S2_IsReady == false &&
Base.GBPJPY_OCO2_DOWN_S2_IsReady == false &&
Base.GBPJPY_OCO3_DOWN_S2_IsReady == false &&
Base.GBPJPY_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPJPY_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP1_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP1_OCO4");
Base.GBPJPY_OCO4_EO1_DOWN_S2 = false;
Base.GBPJPY_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP2_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP2_OCO4");
Base.GBPJPY_OCO4_EO2_DOWN_S2 = false;
Base.GBPJPY_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP3_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP3_OCO4");
Base.GBPJPY_OCO4_EO3_DOWN_S2 = false;
Base.GBPJPY_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPJPY_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP4_DOWN_S2, false,"GBPJPY_DOWN_S2_Entry_TP4_OCO4");
Base.GBPJPY_OCO4_EO4_DOWN_S2 = false;
Base.GBPJPY_OCO4_DOWN_S2_IsReady = false;
if (Base.GBPJPY_OCO4_DOWN_S2_IsReady == false && Base.GBPJPY_OCO3_DOWN_S2_IsReady == false && Base.GBPJPY_OCO2_DOWN_S2_IsReady == false && Base.GBPJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct USDJPY_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public USDJPY_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
}
if (Base.USDJPY_OCO1_EO1_DOWN_S2)
Base.USDJPY_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO1_EO2_DOWN_S2)
Base.USDJPY_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO1_EO3_DOWN_S2)
Base.USDJPY_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO1_EO4_DOWN_S2)
Base.USDJPY_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO1_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP1_USDJPY_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP1,"TP1_USDJPY_DOWN_S2_OCO1"));
};
Base.USDJPY_DOWN_S2_OCO1Sets1.Add( Base.USDJPY_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO2_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP2_USDJPY_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP2,"TP2_USDJPY_DOWN_S2_OCO1"));
};
Base.USDJPY_DOWN_S2_OCO1Sets2.Add( Base.USDJPY_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO3_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP3_USDJPY_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP3,"TP3_USDJPY_DOWN_S2_OCO1"));
};
Base.USDJPY_DOWN_S2_OCO1Sets3.Add( Base.USDJPY_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO4_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP4_USDJPY_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP4,"TP4_USDJPY_DOWN_S2_OCO1"));
};
Base.USDJPY_DOWN_S2_OCO1Sets4.Add( Base.USDJPY_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO4_DOWN_S2_ID = -1;
}
int USDJPY_OCO1S1_DOWN_S2 = 0;
for (; USDJPY_OCO1S1_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets1.Count; USDJPY_OCO1S1_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets1[USDJPY_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO1Sets1[USDJPY_OCO1S1_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO1Sets1.RemoveAt(USDJPY_OCO1S1_DOWN_S2);
USDJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int USDJPY_OCO1S2_DOWN_S2 = 0;
for (; USDJPY_OCO1S2_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets2.Count; USDJPY_OCO1S2_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets2[USDJPY_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO1Sets2[USDJPY_OCO1S2_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO1Sets2.RemoveAt(USDJPY_OCO1S2_DOWN_S2);
USDJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int USDJPY_OCO1S3_DOWN_S2 = 0;
for (; USDJPY_OCO1S3_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets3.Count; USDJPY_OCO1S3_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets3[USDJPY_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO1Sets3[USDJPY_OCO1S3_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO1Sets3.RemoveAt(USDJPY_OCO1S3_DOWN_S2);
USDJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int USDJPY_OCO1S4_DOWN_S2 = 0;
for (; USDJPY_OCO1S4_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets4.Count; USDJPY_OCO1S4_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets4[USDJPY_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO1Sets4[USDJPY_OCO1S4_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO1Sets4.RemoveAt(USDJPY_OCO1S4_DOWN_S2);
USDJPY_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO2_EO1_DOWN_S2)
Base.USDJPY_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO2_EO2_DOWN_S2)
Base.USDJPY_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO2_EO3_DOWN_S2)
Base.USDJPY_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO2_EO4_DOWN_S2)
Base.USDJPY_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO1_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP1_USDJPY_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP1,"TP1_USDJPY_DOWN_S2_OCO2"));
};
Base.USDJPY_DOWN_S2_OCO2Sets1.Add( Base.USDJPY_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO2_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP2_USDJPY_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP2,"TP2_USDJPY_DOWN_S2_OCO2"));
};
Base.USDJPY_DOWN_S2_OCO2Sets2.Add( Base.USDJPY_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO3_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP3_USDJPY_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP3,"TP3_USDJPY_DOWN_S2_OCO2"));
};
Base.USDJPY_DOWN_S2_OCO2Sets3.Add( Base.USDJPY_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO4_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP4_USDJPY_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP4,"TP4_USDJPY_DOWN_S2_OCO2"));
};
Base.USDJPY_DOWN_S2_OCO2Sets4.Add( Base.USDJPY_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO4_DOWN_S2_ID = -1;
}
int USDJPY_OCO2S1_DOWN_S2 = 0;
for (; USDJPY_OCO2S1_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets1.Count; USDJPY_OCO2S1_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets1[USDJPY_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO2Sets1[USDJPY_OCO2S1_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO2Sets1.RemoveAt(USDJPY_OCO2S1_DOWN_S2);
USDJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int USDJPY_OCO2S2_DOWN_S2 = 0;
for (; USDJPY_OCO2S2_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets2.Count; USDJPY_OCO2S2_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets2[USDJPY_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO2Sets2[USDJPY_OCO2S2_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO2Sets2.RemoveAt(USDJPY_OCO2S2_DOWN_S2);
USDJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int USDJPY_OCO2S3_DOWN_S2 = 0;
for (; USDJPY_OCO2S3_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets3.Count; USDJPY_OCO2S3_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets3[USDJPY_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO2Sets3[USDJPY_OCO2S3_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO2Sets3.RemoveAt(USDJPY_OCO2S3_DOWN_S2);
USDJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int USDJPY_OCO2S4_DOWN_S2 = 0;
for (; USDJPY_OCO2S4_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets4.Count; USDJPY_OCO2S4_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets4[USDJPY_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO2Sets4[USDJPY_OCO2S4_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO2Sets4.RemoveAt(USDJPY_OCO2S4_DOWN_S2);
USDJPY_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO3_EO1_DOWN_S2)
Base.USDJPY_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO3_EO2_DOWN_S2)
Base.USDJPY_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO3_EO3_DOWN_S2)
Base.USDJPY_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO3_EO4_DOWN_S2)
Base.USDJPY_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO1_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP1_USDJPY_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP1,"TP1_USDJPY_DOWN_S2_OCO3"));
};
Base.USDJPY_DOWN_S2_OCO3Sets1.Add( Base.USDJPY_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO2_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP2_USDJPY_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP2,"TP2_USDJPY_DOWN_S2_OCO3"));
};
Base.USDJPY_DOWN_S2_OCO3Sets2.Add( Base.USDJPY_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO3_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP3_USDJPY_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP3,"TP3_USDJPY_DOWN_S2_OCO3"));
};
Base.USDJPY_DOWN_S2_OCO3Sets3.Add( Base.USDJPY_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO4_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP4_USDJPY_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP4,"TP4_USDJPY_DOWN_S2_OCO3"));
};
Base.USDJPY_DOWN_S2_OCO3Sets4.Add( Base.USDJPY_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO4_DOWN_S2_ID = -1;
}
int USDJPY_OCO3S1_DOWN_S2 = 0;
for (; USDJPY_OCO3S1_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets1.Count; USDJPY_OCO3S1_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets1[USDJPY_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO3Sets1[USDJPY_OCO3S1_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO3Sets1.RemoveAt(USDJPY_OCO3S1_DOWN_S2);
USDJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int USDJPY_OCO3S2_DOWN_S2 = 0;
for (; USDJPY_OCO3S2_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets2.Count; USDJPY_OCO3S2_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets2[USDJPY_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO3Sets2[USDJPY_OCO3S2_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO3Sets2.RemoveAt(USDJPY_OCO3S2_DOWN_S2);
USDJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int USDJPY_OCO3S3_DOWN_S2 = 0;
for (; USDJPY_OCO3S3_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets3.Count; USDJPY_OCO3S3_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets3[USDJPY_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO3Sets3[USDJPY_OCO3S3_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO3Sets3.RemoveAt(USDJPY_OCO3S3_DOWN_S2);
USDJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int USDJPY_OCO3S4_DOWN_S2 = 0;
for (; USDJPY_OCO3S4_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets4.Count; USDJPY_OCO3S4_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets4[USDJPY_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO3Sets4[USDJPY_OCO3S4_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO3Sets4.RemoveAt(USDJPY_OCO3S4_DOWN_S2);
USDJPY_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO4_EO1_DOWN_S2)
Base.USDJPY_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO4_EO2_DOWN_S2)
Base.USDJPY_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO4_EO3_DOWN_S2)
Base.USDJPY_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO4_EO4_DOWN_S2)
Base.USDJPY_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO1_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP1_USDJPY_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP1,"TP1_USDJPY_DOWN_S2_OCO4"));
};
Base.USDJPY_DOWN_S2_OCO4Sets1.Add( Base.USDJPY_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO2_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP2_USDJPY_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP2,"TP2_USDJPY_DOWN_S2_OCO4"));
};
Base.USDJPY_DOWN_S2_OCO4Sets2.Add( Base.USDJPY_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO3_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP3_USDJPY_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP3,"TP3_USDJPY_DOWN_S2_OCO4"));
};
Base.USDJPY_DOWN_S2_OCO4Sets3.Add( Base.USDJPY_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO4_DOWN_S2_ID)
{
Base.USDJPY_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_DOWN_S2_SL,"SL_TP4_USDJPY_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_DOWN_S2_TP4,"TP4_USDJPY_DOWN_S2_OCO4"));
};
Base.USDJPY_DOWN_S2_OCO4Sets4.Add( Base.USDJPY_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO4_DOWN_S2_ID = -1;
}
int USDJPY_OCO4S1_DOWN_S2 = 0;
for (; USDJPY_OCO4S1_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets1.Count; USDJPY_OCO4S1_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets1[USDJPY_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO4Sets1[USDJPY_OCO4S1_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO4Sets1.RemoveAt(USDJPY_OCO4S1_DOWN_S2);
USDJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int USDJPY_OCO4S2_DOWN_S2 = 0;
for (; USDJPY_OCO4S2_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets2.Count; USDJPY_OCO4S2_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets2[USDJPY_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO4Sets2[USDJPY_OCO4S2_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO4Sets2.RemoveAt(USDJPY_OCO4S2_DOWN_S2);
USDJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int USDJPY_OCO4S3_DOWN_S2 = 0;
for (; USDJPY_OCO4S3_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets3.Count; USDJPY_OCO4S3_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets3[USDJPY_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO4Sets3[USDJPY_OCO4S3_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO4Sets3.RemoveAt(USDJPY_OCO4S3_DOWN_S2);
USDJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int USDJPY_OCO4S4_DOWN_S2 = 0;
for (; USDJPY_OCO4S4_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets4.Count; USDJPY_OCO4S4_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets4[USDJPY_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_DOWN_S2_OCO4Sets4[USDJPY_OCO4S4_DOWN_S2].Filled();
Base.USDJPY_DOWN_S2_OCO4Sets4.RemoveAt(USDJPY_OCO4S4_DOWN_S2);
USDJPY_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct AUDCAD_OCO1_DOWN_S2
{
public AUDCAD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCAD_OCO1_UP_S2
{
public AUDCAD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_AUDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_AUDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_AUDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_AUDCAD_UP_S2_OCO1")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCAD_OCO2_DOWN_S2
{
public AUDCAD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCAD_OCO2_UP_S2
{
public AUDCAD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_AUDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_AUDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_AUDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_AUDCAD_UP_S2_OCO2")
{
orderTicket.Cancel("AUDCAD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCAD_OCO3_DOWN_S2
{
public AUDCAD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCAD_OCO3_UP_S2
{
public AUDCAD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_AUDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_AUDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_AUDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_AUDCAD_UP_S2_OCO3")
{
orderTicket.Cancel("AUDCAD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCAD_OCO4_DOWN_S2
{
public AUDCAD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_AUDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_AUDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_AUDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct AUDCAD_OCO4_UP_S2
{
public AUDCAD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_AUDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_AUDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_AUDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_AUDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_AUDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_AUDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_AUDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_AUDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_AUDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_AUDCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_AUDCAD_UP_S2_OCO4")
{
orderTicket.Cancel("AUDCAD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_USDCHF_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_USDCHF_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("USDCHF_DOWN_S2_OCO1")))
{
Base.USDCHF_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCHF_DOWN_S2_OCO2")))
{
Base.USDCHF_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCHF_DOWN_S2_OCO3")))
{
Base.USDCHF_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCHF_DOWN_S2_OCO4")))
{
Base.USDCHF_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("USDCHF_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.USDCHF_OCO1_EO1_DOWN_S2)
Base.USDCHF_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO2_DOWN_S2)
Base.USDCHF_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO3_DOWN_S2)
Base.USDCHF_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO4_DOWN_S2)
Base.USDCHF_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO5_DOWN_S2)
Base.USDCHF_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO6_DOWN_S2)
Base.USDCHF_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int USDCHF_OCO1S1_DOWN_S2 = 0;
for (; USDCHF_OCO1S1_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets1.Count; USDCHF_OCO1S1_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets1[USDCHF_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO1Sets1[USDCHF_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_1__Time out_OCO1");
Base.USDCHF_DOWN_S2_OCO1Sets1.Clear();
USDCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int USDCHF_OCO1S2_DOWN_S2 = 0;
for (; USDCHF_OCO1S2_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets2.Count; USDCHF_OCO1S2_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets2[USDCHF_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO1Sets2[USDCHF_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_2__Time out_OCO1");
Base.USDCHF_DOWN_S2_OCO1Sets2.Clear();
USDCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int USDCHF_OCO1S3_DOWN_S2 = 0;
for (; USDCHF_OCO1S3_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets3.Count; USDCHF_OCO1S3_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets3[USDCHF_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO1Sets3[USDCHF_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_3__Time out_OCO1");
Base.USDCHF_DOWN_S2_OCO1Sets3.Clear();
USDCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int USDCHF_OCO1S4_DOWN_S2 = 0;
for (; USDCHF_OCO1S4_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets4.Count; USDCHF_OCO1S4_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets4[USDCHF_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO1Sets4[USDCHF_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_4__Time out_OCO1");
Base.USDCHF_DOWN_S2_OCO1Sets4.Clear();
USDCHF_OCO1S4_DOWN_S2 = 0;
break;
}
int USDCHF_OCO1S5_DOWN_S2 = 0;
for (; USDCHF_OCO1S5_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets5.Count; USDCHF_OCO1S5_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets5[USDCHF_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO1Sets5[USDCHF_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_5__Time out_OCO1");
Base.USDCHF_DOWN_S2_OCO1Sets5.Clear();
USDCHF_OCO1S5_DOWN_S2 = 0;
break;
}
int USDCHF_OCO1S6_DOWN_S2 = 0;
for (; USDCHF_OCO1S6_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO1Sets6.Count; USDCHF_OCO1S6_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO1Sets6[USDCHF_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO1Sets6[USDCHF_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_6__Time out_OCO1");
Base.USDCHF_DOWN_S2_OCO1Sets6.Clear();
USDCHF_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO2_EO1_DOWN_S2)
Base.USDCHF_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO2_DOWN_S2)
Base.USDCHF_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO3_DOWN_S2)
Base.USDCHF_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO4_DOWN_S2)
Base.USDCHF_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO5_DOWN_S2)
Base.USDCHF_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO6_DOWN_S2)
Base.USDCHF_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int USDCHF_OCO2S1_DOWN_S2 = 0;
for (; USDCHF_OCO2S1_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets1.Count; USDCHF_OCO2S1_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets1[USDCHF_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO2Sets1[USDCHF_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_1__Time out_OCO2");
Base.USDCHF_DOWN_S2_OCO2Sets1.Clear();
USDCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int USDCHF_OCO2S2_DOWN_S2 = 0;
for (; USDCHF_OCO2S2_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets2.Count; USDCHF_OCO2S2_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets2[USDCHF_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO2Sets2[USDCHF_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_2__Time out_OCO2");
Base.USDCHF_DOWN_S2_OCO2Sets2.Clear();
USDCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int USDCHF_OCO2S3_DOWN_S2 = 0;
for (; USDCHF_OCO2S3_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets3.Count; USDCHF_OCO2S3_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets3[USDCHF_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO2Sets3[USDCHF_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_3__Time out_OCO2");
Base.USDCHF_DOWN_S2_OCO2Sets3.Clear();
USDCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int USDCHF_OCO2S4_DOWN_S2 = 0;
for (; USDCHF_OCO2S4_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets4.Count; USDCHF_OCO2S4_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets4[USDCHF_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO2Sets4[USDCHF_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_4__Time out_OCO2");
Base.USDCHF_DOWN_S2_OCO2Sets4.Clear();
USDCHF_OCO2S4_DOWN_S2 = 0;
break;
}
int USDCHF_OCO2S5_DOWN_S2 = 0;
for (; USDCHF_OCO2S5_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets5.Count; USDCHF_OCO2S5_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets5[USDCHF_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO2Sets5[USDCHF_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_5__Time out_OCO2");
Base.USDCHF_DOWN_S2_OCO2Sets5.Clear();
USDCHF_OCO2S5_DOWN_S2 = 0;
break;
}
int USDCHF_OCO2S6_DOWN_S2 = 0;
for (; USDCHF_OCO2S6_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO2Sets6.Count; USDCHF_OCO2S6_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO2Sets6[USDCHF_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO2Sets6[USDCHF_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_6__Time out_OCO2");
Base.USDCHF_DOWN_S2_OCO2Sets6.Clear();
USDCHF_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO3_EO1_DOWN_S2)
Base.USDCHF_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO2_DOWN_S2)
Base.USDCHF_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO3_DOWN_S2)
Base.USDCHF_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO4_DOWN_S2)
Base.USDCHF_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO5_DOWN_S2)
Base.USDCHF_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO6_DOWN_S2)
Base.USDCHF_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int USDCHF_OCO3S1_DOWN_S2 = 0;
for (; USDCHF_OCO3S1_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets1.Count; USDCHF_OCO3S1_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets1[USDCHF_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO3Sets1[USDCHF_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_1__Time out_OCO3");
Base.USDCHF_DOWN_S2_OCO3Sets1.Clear();
USDCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int USDCHF_OCO3S2_DOWN_S2 = 0;
for (; USDCHF_OCO3S2_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets2.Count; USDCHF_OCO3S2_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets2[USDCHF_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO3Sets2[USDCHF_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_2__Time out_OCO3");
Base.USDCHF_DOWN_S2_OCO3Sets2.Clear();
USDCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int USDCHF_OCO3S3_DOWN_S2 = 0;
for (; USDCHF_OCO3S3_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets3.Count; USDCHF_OCO3S3_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets3[USDCHF_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO3Sets3[USDCHF_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_3__Time out_OCO3");
Base.USDCHF_DOWN_S2_OCO3Sets3.Clear();
USDCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int USDCHF_OCO3S4_DOWN_S2 = 0;
for (; USDCHF_OCO3S4_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets4.Count; USDCHF_OCO3S4_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets4[USDCHF_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO3Sets4[USDCHF_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_4__Time out_OCO3");
Base.USDCHF_DOWN_S2_OCO3Sets4.Clear();
USDCHF_OCO3S4_DOWN_S2 = 0;
break;
}
int USDCHF_OCO3S5_DOWN_S2 = 0;
for (; USDCHF_OCO3S5_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets5.Count; USDCHF_OCO3S5_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets5[USDCHF_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO3Sets5[USDCHF_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_5__Time out_OCO3");
Base.USDCHF_DOWN_S2_OCO3Sets5.Clear();
USDCHF_OCO3S5_DOWN_S2 = 0;
break;
}
int USDCHF_OCO3S6_DOWN_S2 = 0;
for (; USDCHF_OCO3S6_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO3Sets6.Count; USDCHF_OCO3S6_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO3Sets6[USDCHF_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO3Sets6[USDCHF_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_6__Time out_OCO3");
Base.USDCHF_DOWN_S2_OCO3Sets6.Clear();
USDCHF_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO4_EO1_DOWN_S2)
Base.USDCHF_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO2_DOWN_S2)
Base.USDCHF_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO3_DOWN_S2)
Base.USDCHF_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO4_DOWN_S2)
Base.USDCHF_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO5_DOWN_S2)
Base.USDCHF_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO6_DOWN_S2)
Base.USDCHF_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int USDCHF_OCO4S1_DOWN_S2 = 0;
for (; USDCHF_OCO4S1_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets1.Count; USDCHF_OCO4S1_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets1[USDCHF_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO4Sets1[USDCHF_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_1__Time out_OCO4");
Base.USDCHF_DOWN_S2_OCO4Sets1.Clear();
USDCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int USDCHF_OCO4S2_DOWN_S2 = 0;
for (; USDCHF_OCO4S2_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets2.Count; USDCHF_OCO4S2_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets2[USDCHF_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO4Sets2[USDCHF_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_2__Time out_OCO4");
Base.USDCHF_DOWN_S2_OCO4Sets2.Clear();
USDCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int USDCHF_OCO4S3_DOWN_S2 = 0;
for (; USDCHF_OCO4S3_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets3.Count; USDCHF_OCO4S3_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets3[USDCHF_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO4Sets3[USDCHF_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_3__Time out_OCO4");
Base.USDCHF_DOWN_S2_OCO4Sets3.Clear();
USDCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int USDCHF_OCO4S4_DOWN_S2 = 0;
for (; USDCHF_OCO4S4_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets4.Count; USDCHF_OCO4S4_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets4[USDCHF_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO4Sets4[USDCHF_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_4__Time out_OCO4");
Base.USDCHF_DOWN_S2_OCO4Sets4.Clear();
USDCHF_OCO4S4_DOWN_S2 = 0;
break;
}
int USDCHF_OCO4S5_DOWN_S2 = 0;
for (; USDCHF_OCO4S5_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets5.Count; USDCHF_OCO4S5_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets5[USDCHF_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO4Sets5[USDCHF_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_5__Time out_OCO4");
Base.USDCHF_DOWN_S2_OCO4Sets5.Clear();
USDCHF_OCO4S5_DOWN_S2 = 0;
break;
}
int USDCHF_OCO4S6_DOWN_S2 = 0;
for (; USDCHF_OCO4S6_DOWN_S2 < Base.USDCHF_DOWN_S2_OCO4Sets6.Count; USDCHF_OCO4S6_DOWN_S2++)
if (Base.USDCHF_DOWN_S2_OCO4Sets6[USDCHF_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.USDCHF_DOWN_S2_OCO4Sets6[USDCHF_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_DOWN_S2_Entry_6__Time out_OCO4");
Base.USDCHF_DOWN_S2_OCO4Sets6.Clear();
USDCHF_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_USDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_USDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_USDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_USDCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_USDCHF_DOWN_S2 = DOWM_USDCHF_DOWN_S2 || DOWT_USDCHF_DOWN_S2 || DOWW_USDCHF_DOWN_S2 || DOWTH_USDCHF_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("USDCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.USDCHF_OCO1_DOWN_S2_IsReady == false ||
Base.USDCHF_OCO2_DOWN_S2_IsReady == false ||
Base.USDCHF_OCO3_DOWN_S2_IsReady == false ||
Base.USDCHF_OCO4_DOWN_S2_IsReady == false)
{
Base.USDCHF_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.USDCHF_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.USDCHF_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.USDCHF_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.USDCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.USDCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.USDCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.USDCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
}
USDCHF_Signal_Condition_DOWN_S2 =
(
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//prices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.001m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.0002m
);
USDCHF_DOWN_S2_SL = 0.01m;
USDCHF_DOWN_S2_TP1 = 0.01m;
USDCHF_DOWN_S2_TP2 = USDCHF_DOWN_S2_SL * 0;
USDCHF_DOWN_S2_TP3 = USDCHF_DOWN_S2_SL * 0;
USDCHF_DOWN_S2_TP4 = USDCHF_DOWN_S2_SL * 0;
USDCHF_DOWN_S2_TP5 = USDCHF_DOWN_S2_SL * 0;
USDCHF_DOWN_S2_TP6 = USDCHF_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
USDCHF_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
USDCHF_quantity_SL_DOWN_S2 = USDCHF_quantity_DOWN_S2;
USDCHF_quantity_TP1_DOWN_S2 = (int)Math.Floor(USDCHF_quantity_DOWN_S2 * 1m);
USDCHF_quantity_TP2_DOWN_S2 = (int)Math.Floor(USDCHF_quantity_TP1_DOWN_S2 * 0m);
USDCHF_quantity_TP3_DOWN_S2 = (int)Math.Floor(USDCHF_quantity_TP2_DOWN_S2 * 0m);
USDCHF_quantity_TP4_DOWN_S2 = (int)Math.Floor(USDCHF_quantity_TP3_DOWN_S2 * 0m);
USDCHF_quantity_TP5_DOWN_S2 = (int)Math.Floor(USDCHF_quantity_TP4_DOWN_S2 * 0m);
USDCHF_quantity_TP6_DOWN_S2 = (int)Math.Floor(USDCHF_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (USDCHF_Signal_Condition_DOWN_S2 &&
DOWR_USDCHF_DOWN_S2 &&
Base.USDCHF_OCO1_DOWN_S2_IsReady == true &&
Base.USDCHF_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.USDCHF_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP1_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP1_OCO1");
Base.USDCHF_OCO1_EO1_DOWN_S2 = false;
Base.USDCHF_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP2_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP2_OCO1");
Base.USDCHF_OCO1_EO2_DOWN_S2 = false;
Base.USDCHF_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP3_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP3_OCO1");
Base.USDCHF_OCO1_EO3_DOWN_S2 = false;
Base.USDCHF_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP4_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP4_OCO1");
Base.USDCHF_OCO1_EO4_DOWN_S2 = false;
Base.USDCHF_OCO1_DOWN_S2_IsReady = false;
if (Base.USDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (USDCHF_Signal_Condition_DOWN_S2 &&
DOWR_USDCHF_DOWN_S2 &&
Base.USDCHF_OCO2_DOWN_S2_IsReady == true &&
Base.USDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.USDCHF_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.USDCHF_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP1_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP1_OCO2");
Base.USDCHF_OCO2_EO1_DOWN_S2 = false;
Base.USDCHF_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP2_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP2_OCO2");
Base.USDCHF_OCO2_EO2_DOWN_S2 = false;
Base.USDCHF_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP3_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP3_OCO2");
Base.USDCHF_OCO2_EO3_DOWN_S2 = false;
Base.USDCHF_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP4_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP4_OCO2");
Base.USDCHF_OCO2_EO4_DOWN_S2 = false;
Base.USDCHF_OCO2_DOWN_S2_IsReady = false;
if (Base.USDCHF_OCO2_DOWN_S2_IsReady == false && Base.USDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (USDCHF_Signal_Condition_DOWN_S2 &&
DOWR_USDCHF_DOWN_S2 &&
Base.USDCHF_OCO3_DOWN_S2_IsReady == true &&
Base.USDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.USDCHF_OCO2_DOWN_S2_IsReady == false &&
Base.USDCHF_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.USDCHF_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP1_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP1_OCO3");
Base.USDCHF_OCO3_EO1_DOWN_S2 = false;
Base.USDCHF_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP2_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP2_OCO3");
Base.USDCHF_OCO3_EO2_DOWN_S2 = false;
Base.USDCHF_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP3_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP3_OCO3");
Base.USDCHF_OCO3_EO3_DOWN_S2 = false;
Base.USDCHF_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP4_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP4_OCO3");
Base.USDCHF_OCO3_EO4_DOWN_S2 = false;
Base.USDCHF_OCO3_DOWN_S2_IsReady = false;
if (Base.USDCHF_OCO3_DOWN_S2_IsReady == false && Base.USDCHF_OCO2_DOWN_S2_IsReady == false && Base.USDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (USDCHF_Signal_Condition_DOWN_S2 &&
DOWR_USDCHF_DOWN_S2 &&
Base.USDCHF_OCO4_DOWN_S2_IsReady == true &&
Base.USDCHF_OCO1_DOWN_S2_IsReady == false &&
Base.USDCHF_OCO2_DOWN_S2_IsReady == false &&
Base.USDCHF_OCO3_DOWN_S2_IsReady == false &&
Base.USDCHF_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.USDCHF_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP1_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP1_OCO4");
Base.USDCHF_OCO4_EO1_DOWN_S2 = false;
Base.USDCHF_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP2_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP2_OCO4");
Base.USDCHF_OCO4_EO2_DOWN_S2 = false;
Base.USDCHF_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP3_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP3_OCO4");
Base.USDCHF_OCO4_EO3_DOWN_S2 = false;
Base.USDCHF_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDCHF_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP4_DOWN_S2, false,"USDCHF_DOWN_S2_Entry_TP4_OCO4");
Base.USDCHF_OCO4_EO4_DOWN_S2 = false;
Base.USDCHF_OCO4_DOWN_S2_IsReady = false;
if (Base.USDCHF_OCO4_DOWN_S2_IsReady == false && Base.USDCHF_OCO3_DOWN_S2_IsReady == false && Base.USDCHF_OCO2_DOWN_S2_IsReady == false && Base.USDCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct NZDCHF_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public NZDCHF_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
if (OrderID.Tag.StartsWith("NZDCHF OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDCHF OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDCHF S2");
}
}
if (Base.NZDCHF_OCO1_EO1_DOWN_S2)
Base.NZDCHF_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO1_EO2_DOWN_S2)
Base.NZDCHF_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO1_EO3_DOWN_S2)
Base.NZDCHF_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO1_EO4_DOWN_S2)
Base.NZDCHF_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO1_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP1_NZDCHF_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP1,"TP1_NZDCHF_DOWN_S2_OCO1"));
};
Base.NZDCHF_DOWN_S2_OCO1Sets1.Add( Base.NZDCHF_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO2_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP2_NZDCHF_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP2,"TP2_NZDCHF_DOWN_S2_OCO1"));
};
Base.NZDCHF_DOWN_S2_OCO1Sets2.Add( Base.NZDCHF_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO3_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP3_NZDCHF_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP3,"TP3_NZDCHF_DOWN_S2_OCO1"));
};
Base.NZDCHF_DOWN_S2_OCO1Sets3.Add( Base.NZDCHF_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO1_EO4_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP4_NZDCHF_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP4,"TP4_NZDCHF_DOWN_S2_OCO1"));
};
Base.NZDCHF_DOWN_S2_OCO1Sets4.Add( Base.NZDCHF_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO1_EO4_DOWN_S2_ID = -1;
}
int NZDCHF_OCO1S1_DOWN_S2 = 0;
for (; NZDCHF_OCO1S1_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets1.Count; NZDCHF_OCO1S1_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets1[NZDCHF_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO1Sets1[NZDCHF_OCO1S1_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO1Sets1.RemoveAt(NZDCHF_OCO1S1_DOWN_S2);
NZDCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO1S2_DOWN_S2 = 0;
for (; NZDCHF_OCO1S2_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets2.Count; NZDCHF_OCO1S2_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets2[NZDCHF_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO1Sets2[NZDCHF_OCO1S2_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO1Sets2.RemoveAt(NZDCHF_OCO1S2_DOWN_S2);
NZDCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO1S3_DOWN_S2 = 0;
for (; NZDCHF_OCO1S3_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets3.Count; NZDCHF_OCO1S3_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets3[NZDCHF_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO1Sets3[NZDCHF_OCO1S3_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO1Sets3.RemoveAt(NZDCHF_OCO1S3_DOWN_S2);
NZDCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO1S4_DOWN_S2 = 0;
for (; NZDCHF_OCO1S4_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO1Sets4.Count; NZDCHF_OCO1S4_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO1Sets4[NZDCHF_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO1Sets4[NZDCHF_OCO1S4_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO1Sets4.RemoveAt(NZDCHF_OCO1S4_DOWN_S2);
NZDCHF_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO2_EO1_DOWN_S2)
Base.NZDCHF_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO2_EO2_DOWN_S2)
Base.NZDCHF_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO2_EO3_DOWN_S2)
Base.NZDCHF_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO2_EO4_DOWN_S2)
Base.NZDCHF_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO1_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP1_NZDCHF_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP1,"TP1_NZDCHF_DOWN_S2_OCO2"));
};
Base.NZDCHF_DOWN_S2_OCO2Sets1.Add( Base.NZDCHF_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO2_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP2_NZDCHF_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP2,"TP2_NZDCHF_DOWN_S2_OCO2"));
};
Base.NZDCHF_DOWN_S2_OCO2Sets2.Add( Base.NZDCHF_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO3_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP3_NZDCHF_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP3,"TP3_NZDCHF_DOWN_S2_OCO2"));
};
Base.NZDCHF_DOWN_S2_OCO2Sets3.Add( Base.NZDCHF_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO2_EO4_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP4_NZDCHF_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP4,"TP4_NZDCHF_DOWN_S2_OCO2"));
};
Base.NZDCHF_DOWN_S2_OCO2Sets4.Add( Base.NZDCHF_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO2_EO4_DOWN_S2_ID = -1;
}
int NZDCHF_OCO2S1_DOWN_S2 = 0;
for (; NZDCHF_OCO2S1_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets1.Count; NZDCHF_OCO2S1_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets1[NZDCHF_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO2Sets1[NZDCHF_OCO2S1_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO2Sets1.RemoveAt(NZDCHF_OCO2S1_DOWN_S2);
NZDCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO2S2_DOWN_S2 = 0;
for (; NZDCHF_OCO2S2_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets2.Count; NZDCHF_OCO2S2_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets2[NZDCHF_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO2Sets2[NZDCHF_OCO2S2_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO2Sets2.RemoveAt(NZDCHF_OCO2S2_DOWN_S2);
NZDCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO2S3_DOWN_S2 = 0;
for (; NZDCHF_OCO2S3_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets3.Count; NZDCHF_OCO2S3_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets3[NZDCHF_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO2Sets3[NZDCHF_OCO2S3_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO2Sets3.RemoveAt(NZDCHF_OCO2S3_DOWN_S2);
NZDCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO2S4_DOWN_S2 = 0;
for (; NZDCHF_OCO2S4_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO2Sets4.Count; NZDCHF_OCO2S4_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO2Sets4[NZDCHF_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO2Sets4[NZDCHF_OCO2S4_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO2Sets4.RemoveAt(NZDCHF_OCO2S4_DOWN_S2);
NZDCHF_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO3_EO1_DOWN_S2)
Base.NZDCHF_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO3_EO2_DOWN_S2)
Base.NZDCHF_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO3_EO3_DOWN_S2)
Base.NZDCHF_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO3_EO4_DOWN_S2)
Base.NZDCHF_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO1_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP1_NZDCHF_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP1,"TP1_NZDCHF_DOWN_S2_OCO3"));
};
Base.NZDCHF_DOWN_S2_OCO3Sets1.Add( Base.NZDCHF_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO2_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP2_NZDCHF_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP2,"TP2_NZDCHF_DOWN_S2_OCO3"));
};
Base.NZDCHF_DOWN_S2_OCO3Sets2.Add( Base.NZDCHF_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO3_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP3_NZDCHF_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP3,"TP3_NZDCHF_DOWN_S2_OCO3"));
};
Base.NZDCHF_DOWN_S2_OCO3Sets3.Add( Base.NZDCHF_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO3_EO4_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP4_NZDCHF_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP4,"TP4_NZDCHF_DOWN_S2_OCO3"));
};
Base.NZDCHF_DOWN_S2_OCO3Sets4.Add( Base.NZDCHF_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO3_EO4_DOWN_S2_ID = -1;
}
int NZDCHF_OCO3S1_DOWN_S2 = 0;
for (; NZDCHF_OCO3S1_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets1.Count; NZDCHF_OCO3S1_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets1[NZDCHF_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO3Sets1[NZDCHF_OCO3S1_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO3Sets1.RemoveAt(NZDCHF_OCO3S1_DOWN_S2);
NZDCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO3S2_DOWN_S2 = 0;
for (; NZDCHF_OCO3S2_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets2.Count; NZDCHF_OCO3S2_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets2[NZDCHF_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO3Sets2[NZDCHF_OCO3S2_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO3Sets2.RemoveAt(NZDCHF_OCO3S2_DOWN_S2);
NZDCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO3S3_DOWN_S2 = 0;
for (; NZDCHF_OCO3S3_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets3.Count; NZDCHF_OCO3S3_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets3[NZDCHF_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO3Sets3[NZDCHF_OCO3S3_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO3Sets3.RemoveAt(NZDCHF_OCO3S3_DOWN_S2);
NZDCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO3S4_DOWN_S2 = 0;
for (; NZDCHF_OCO3S4_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO3Sets4.Count; NZDCHF_OCO3S4_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO3Sets4[NZDCHF_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO3Sets4[NZDCHF_OCO3S4_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO3Sets4.RemoveAt(NZDCHF_OCO3S4_DOWN_S2);
NZDCHF_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDCHF_OCO4_EO1_DOWN_S2)
Base.NZDCHF_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO4_EO2_DOWN_S2)
Base.NZDCHF_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO4_EO3_DOWN_S2)
Base.NZDCHF_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDCHF_OCO4_EO4_DOWN_S2)
Base.NZDCHF_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO1_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP1_NZDCHF_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP1,"TP1_NZDCHF_DOWN_S2_OCO4"));
};
Base.NZDCHF_DOWN_S2_OCO4Sets1.Add( Base.NZDCHF_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO2_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP2_NZDCHF_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP2,"TP2_NZDCHF_DOWN_S2_OCO4"));
};
Base.NZDCHF_DOWN_S2_OCO4Sets2.Add( Base.NZDCHF_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO3_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP3_NZDCHF_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP3,"TP3_NZDCHF_DOWN_S2_OCO4"));
};
Base.NZDCHF_DOWN_S2_OCO4Sets3.Add( Base.NZDCHF_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDCHF_OCO4_EO4_DOWN_S2_ID)
{
Base.NZDCHF_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDCHF_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDCHF_DOWN_S2_SL,"SL_TP4_NZDCHF_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDCHF_DOWN_S2_TP4,"TP4_NZDCHF_DOWN_S2_OCO4"));
};
Base.NZDCHF_DOWN_S2_OCO4Sets4.Add( Base.NZDCHF_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDCHF_OCO4_EO4_DOWN_S2_ID = -1;
}
int NZDCHF_OCO4S1_DOWN_S2 = 0;
for (; NZDCHF_OCO4S1_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets1.Count; NZDCHF_OCO4S1_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets1[NZDCHF_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO4Sets1[NZDCHF_OCO4S1_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO4Sets1.RemoveAt(NZDCHF_OCO4S1_DOWN_S2);
NZDCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO4S2_DOWN_S2 = 0;
for (; NZDCHF_OCO4S2_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets2.Count; NZDCHF_OCO4S2_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets2[NZDCHF_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO4Sets2[NZDCHF_OCO4S2_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO4Sets2.RemoveAt(NZDCHF_OCO4S2_DOWN_S2);
NZDCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO4S3_DOWN_S2 = 0;
for (; NZDCHF_OCO4S3_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets3.Count; NZDCHF_OCO4S3_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets3[NZDCHF_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO4Sets3[NZDCHF_OCO4S3_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO4Sets3.RemoveAt(NZDCHF_OCO4S3_DOWN_S2);
NZDCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int NZDCHF_OCO4S4_DOWN_S2 = 0;
for (; NZDCHF_OCO4S4_DOWN_S2 < Base.NZDCHF_DOWN_S2_OCO4Sets4.Count; NZDCHF_OCO4S4_DOWN_S2++)
if (Base.NZDCHF_DOWN_S2_OCO4Sets4[NZDCHF_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDCHF_DOWN_S2_OCO4Sets4[NZDCHF_OCO4S4_DOWN_S2].Filled();
Base.NZDCHF_DOWN_S2_OCO4Sets4.RemoveAt(NZDCHF_OCO4S4_DOWN_S2);
NZDCHF_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _EURCAD;
///oco1 up
public static OrderTicket EURCAD_OCO1_MO1_UP_S2;
public static OrderTicket EURCAD_OCO1_MO2_UP_S2;
public static OrderTicket EURCAD_OCO1_MO3_UP_S2;
public static OrderTicket EURCAD_OCO1_MO4_UP_S2;
public static OrderTicket EURCAD_OCO1_MO5_UP_S2;
public static OrderTicket EURCAD_OCO1_MO6_UP_S2;
public static int EURCAD_OCO1_EO1_UP_S2_ID ;
public static int EURCAD_OCO1_EO2_UP_S2_ID ;
public static int EURCAD_OCO1_EO3_UP_S2_ID ;
public static int EURCAD_OCO1_EO4_UP_S2_ID ;
public static int EURCAD_OCO1_EO5_UP_S2_ID ;
public static int EURCAD_OCO1_EO6_UP_S2_ID ;
public static bool EURCAD_OCO1_EO1_UP_S2 ;
public static bool EURCAD_OCO1_EO2_UP_S2 ;
public static bool EURCAD_OCO1_EO3_UP_S2 ;
public static bool EURCAD_OCO1_EO4_UP_S2 ;
public static bool EURCAD_OCO1_EO5_UP_S2 ;
public static bool EURCAD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_UP_S2> EURCAD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_UP_S2> EURCAD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_UP_S2> EURCAD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_UP_S2> EURCAD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_UP_S2> EURCAD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_UP_S2> EURCAD_OOFE_OCO1_UP_S2_6 ;
public static EURCAD_OCO1_UP_S2 EURCAD_PFO_OCO1_UP_S2_1 ;
public static EURCAD_OCO1_UP_S2 EURCAD_PFO_OCO1_UP_S2_2 ;
public static EURCAD_OCO1_UP_S2 EURCAD_PFO_OCO1_UP_S2_3 ;
public static EURCAD_OCO1_UP_S2 EURCAD_PFO_OCO1_UP_S2_4 ;
public static EURCAD_OCO1_UP_S2 EURCAD_PFO_OCO1_UP_S2_5 ;
public static EURCAD_OCO1_UP_S2 EURCAD_PFO_OCO1_UP_S2_6 ;
public static List<EURCAD_OCO1_UP_S2> EURCAD_UP_S2_OCO1Sets1 = new List<EURCAD_OCO1_UP_S2>();
public static List<EURCAD_OCO1_UP_S2> EURCAD_UP_S2_OCO1Sets2 = new List<EURCAD_OCO1_UP_S2>();
public static List<EURCAD_OCO1_UP_S2> EURCAD_UP_S2_OCO1Sets3 = new List<EURCAD_OCO1_UP_S2>();
public static List<EURCAD_OCO1_UP_S2> EURCAD_UP_S2_OCO1Sets4 = new List<EURCAD_OCO1_UP_S2>();
public static List<EURCAD_OCO1_UP_S2> EURCAD_UP_S2_OCO1Sets5 = new List<EURCAD_OCO1_UP_S2>();
public static List<EURCAD_OCO1_UP_S2> EURCAD_UP_S2_OCO1Sets6 = new List<EURCAD_OCO1_UP_S2>();
public static bool EURCAD_OCO1_UP_S2_IsReady = true;
public static bool EURCAD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket EURCAD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket EURCAD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket EURCAD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket EURCAD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket EURCAD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket EURCAD_OCO1_MO6_DOWN_S2 ;
public static int EURCAD_OCO1_EO1_DOWN_S2_ID ;
public static int EURCAD_OCO1_EO2_DOWN_S2_ID ;
public static int EURCAD_OCO1_EO3_DOWN_S2_ID ;
public static int EURCAD_OCO1_EO4_DOWN_S2_ID ;
public static int EURCAD_OCO1_EO5_DOWN_S2_ID ;
public static int EURCAD_OCO1_EO6_DOWN_S2_ID ;
public static bool EURCAD_OCO1_EO1_DOWN_S2 ;
public static bool EURCAD_OCO1_EO2_DOWN_S2 ;
public static bool EURCAD_OCO1_EO3_DOWN_S2 ;
public static bool EURCAD_OCO1_EO4_DOWN_S2 ;
public static bool EURCAD_OCO1_EO5_DOWN_S2 ;
public static bool EURCAD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_DOWN_S2> EURCAD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_DOWN_S2> EURCAD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_DOWN_S2> EURCAD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_DOWN_S2> EURCAD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_DOWN_S2> EURCAD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO1_DOWN_S2> EURCAD_OOFE_OCO1_DOWN_S2_6 ;
public static EURCAD_OCO1_DOWN_S2 EURCAD_PFO_OCO1_DOWN_S2_1 ;
public static EURCAD_OCO1_DOWN_S2 EURCAD_PFO_OCO1_DOWN_S2_2 ;
public static EURCAD_OCO1_DOWN_S2 EURCAD_PFO_OCO1_DOWN_S2_3 ;
public static EURCAD_OCO1_DOWN_S2 EURCAD_PFO_OCO1_DOWN_S2_4 ;
public static EURCAD_OCO1_DOWN_S2 EURCAD_PFO_OCO1_DOWN_S2_5 ;
public static EURCAD_OCO1_DOWN_S2 EURCAD_PFO_OCO1_DOWN_S2_6 ;
public static List<EURCAD_OCO1_DOWN_S2> EURCAD_DOWN_S2_OCO1Sets1 = new List<EURCAD_OCO1_DOWN_S2>();
public static List<EURCAD_OCO1_DOWN_S2> EURCAD_DOWN_S2_OCO1Sets2 = new List<EURCAD_OCO1_DOWN_S2>();
public static List<EURCAD_OCO1_DOWN_S2> EURCAD_DOWN_S2_OCO1Sets3 = new List<EURCAD_OCO1_DOWN_S2>();
public static List<EURCAD_OCO1_DOWN_S2> EURCAD_DOWN_S2_OCO1Sets4 = new List<EURCAD_OCO1_DOWN_S2>();
public static List<EURCAD_OCO1_DOWN_S2> EURCAD_DOWN_S2_OCO1Sets5 = new List<EURCAD_OCO1_DOWN_S2>();
public static List<EURCAD_OCO1_DOWN_S2> EURCAD_DOWN_S2_OCO1Sets6 = new List<EURCAD_OCO1_DOWN_S2>();
public static bool EURCAD_OCO1_DOWN_S2_IsReady = true;
public static bool EURCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket EURCAD_OCO2_MO1_UP_S2 ;
public static OrderTicket EURCAD_OCO2_MO2_UP_S2 ;
public static OrderTicket EURCAD_OCO2_MO3_UP_S2 ;
public static OrderTicket EURCAD_OCO2_MO4_UP_S2 ;
public static OrderTicket EURCAD_OCO2_MO5_UP_S2 ;
public static OrderTicket EURCAD_OCO2_MO6_UP_S2 ;
public static int EURCAD_OCO2_EO1_UP_S2_ID ;
public static int EURCAD_OCO2_EO2_UP_S2_ID ;
public static int EURCAD_OCO2_EO3_UP_S2_ID ;
public static int EURCAD_OCO2_EO4_UP_S2_ID ;
public static int EURCAD_OCO2_EO5_UP_S2_ID ;
public static int EURCAD_OCO2_EO6_UP_S2_ID ;
public static bool EURCAD_OCO2_EO1_UP_S2 ;
public static bool EURCAD_OCO2_EO2_UP_S2 ;
public static bool EURCAD_OCO2_EO3_UP_S2 ;
public static bool EURCAD_OCO2_EO4_UP_S2 ;
public static bool EURCAD_OCO2_EO5_UP_S2 ;
public static bool EURCAD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_UP_S2> EURCAD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_UP_S2> EURCAD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_UP_S2> EURCAD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_UP_S2> EURCAD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_UP_S2> EURCAD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_UP_S2> EURCAD_OOFE_OCO2_UP_S2_6 ;
public static EURCAD_OCO2_UP_S2 EURCAD_PFO_OCO2_UP_S2_1 ;
public static EURCAD_OCO2_UP_S2 EURCAD_PFO_OCO2_UP_S2_2 ;
public static EURCAD_OCO2_UP_S2 EURCAD_PFO_OCO2_UP_S2_3 ;
public static EURCAD_OCO2_UP_S2 EURCAD_PFO_OCO2_UP_S2_4 ;
public static EURCAD_OCO2_UP_S2 EURCAD_PFO_OCO2_UP_S2_5 ;
public static EURCAD_OCO2_UP_S2 EURCAD_PFO_OCO2_UP_S2_6 ;
public static List<EURCAD_OCO2_UP_S2> EURCAD_UP_S2_OCO2Sets1 = new List<EURCAD_OCO2_UP_S2>();
public static List<EURCAD_OCO2_UP_S2> EURCAD_UP_S2_OCO2Sets2 = new List<EURCAD_OCO2_UP_S2>();
public static List<EURCAD_OCO2_UP_S2> EURCAD_UP_S2_OCO2Sets3 = new List<EURCAD_OCO2_UP_S2>();
public static List<EURCAD_OCO2_UP_S2> EURCAD_UP_S2_OCO2Sets4 = new List<EURCAD_OCO2_UP_S2>();
public static List<EURCAD_OCO2_UP_S2> EURCAD_UP_S2_OCO2Sets5 = new List<EURCAD_OCO2_UP_S2>();
public static List<EURCAD_OCO2_UP_S2> EURCAD_UP_S2_OCO2Sets6 = new List<EURCAD_OCO2_UP_S2>();
public static bool EURCAD_OCO2_UP_S2_IsReady = true;
public static bool EURCAD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket EURCAD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket EURCAD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket EURCAD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket EURCAD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket EURCAD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket EURCAD_OCO2_MO6_DOWN_S2 ;
public static int EURCAD_OCO2_EO1_DOWN_S2_ID ;
public static int EURCAD_OCO2_EO2_DOWN_S2_ID ;
public static int EURCAD_OCO2_EO3_DOWN_S2_ID ;
public static int EURCAD_OCO2_EO4_DOWN_S2_ID ;
public static int EURCAD_OCO2_EO5_DOWN_S2_ID ;
public static int EURCAD_OCO2_EO6_DOWN_S2_ID ;
public static bool EURCAD_OCO2_EO1_DOWN_S2 ;
public static bool EURCAD_OCO2_EO2_DOWN_S2 ;
public static bool EURCAD_OCO2_EO3_DOWN_S2 ;
public static bool EURCAD_OCO2_EO4_DOWN_S2 ;
public static bool EURCAD_OCO2_EO5_DOWN_S2 ;
public static bool EURCAD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_DOWN_S2> EURCAD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_DOWN_S2> EURCAD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_DOWN_S2> EURCAD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_DOWN_S2> EURCAD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_DOWN_S2> EURCAD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO2_DOWN_S2> EURCAD_OOFE_OCO2_DOWN_S2_6 ;
public static EURCAD_OCO2_DOWN_S2 EURCAD_PFO_OCO2_DOWN_S2_1 ;
public static EURCAD_OCO2_DOWN_S2 EURCAD_PFO_OCO2_DOWN_S2_2 ;
public static EURCAD_OCO2_DOWN_S2 EURCAD_PFO_OCO2_DOWN_S2_3 ;
public static EURCAD_OCO2_DOWN_S2 EURCAD_PFO_OCO2_DOWN_S2_4 ;
public static EURCAD_OCO2_DOWN_S2 EURCAD_PFO_OCO2_DOWN_S2_5 ;
public static EURCAD_OCO2_DOWN_S2 EURCAD_PFO_OCO2_DOWN_S2_6 ;
public static List<EURCAD_OCO2_DOWN_S2> EURCAD_DOWN_S2_OCO2Sets1 = new List<EURCAD_OCO2_DOWN_S2>();
public static List<EURCAD_OCO2_DOWN_S2> EURCAD_DOWN_S2_OCO2Sets2 = new List<EURCAD_OCO2_DOWN_S2>();
public static List<EURCAD_OCO2_DOWN_S2> EURCAD_DOWN_S2_OCO2Sets3 = new List<EURCAD_OCO2_DOWN_S2>();
public static List<EURCAD_OCO2_DOWN_S2> EURCAD_DOWN_S2_OCO2Sets4 = new List<EURCAD_OCO2_DOWN_S2>();
public static List<EURCAD_OCO2_DOWN_S2> EURCAD_DOWN_S2_OCO2Sets5 = new List<EURCAD_OCO2_DOWN_S2>();
public static List<EURCAD_OCO2_DOWN_S2> EURCAD_DOWN_S2_OCO2Sets6 = new List<EURCAD_OCO2_DOWN_S2>();
public static bool EURCAD_OCO2_DOWN_S2_IsReady = true;
public static bool EURCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket EURCAD_OCO3_MO1_UP_S2 ;
public static OrderTicket EURCAD_OCO3_MO2_UP_S2 ;
public static OrderTicket EURCAD_OCO3_MO3_UP_S2 ;
public static OrderTicket EURCAD_OCO3_MO4_UP_S2 ;
public static OrderTicket EURCAD_OCO3_MO5_UP_S2 ;
public static OrderTicket EURCAD_OCO3_MO6_UP_S2 ;
public static int EURCAD_OCO3_EO1_UP_S2_ID ;
public static int EURCAD_OCO3_EO2_UP_S2_ID ;
public static int EURCAD_OCO3_EO3_UP_S2_ID ;
public static int EURCAD_OCO3_EO4_UP_S2_ID ;
public static int EURCAD_OCO3_EO5_UP_S2_ID ;
public static int EURCAD_OCO3_EO6_UP_S2_ID ;
public static bool EURCAD_OCO3_EO1_UP_S2 ;
public static bool EURCAD_OCO3_EO2_UP_S2 ;
public static bool EURCAD_OCO3_EO3_UP_S2 ;
public static bool EURCAD_OCO3_EO4_UP_S2 ;
public static bool EURCAD_OCO3_EO5_UP_S2 ;
public static bool EURCAD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_UP_S2> EURCAD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_UP_S2> EURCAD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_UP_S2> EURCAD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_UP_S2> EURCAD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_UP_S2> EURCAD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_UP_S2> EURCAD_OOFE_OCO3_UP_S2_6 ;
public static EURCAD_OCO3_UP_S2 EURCAD_PFO_OCO3_UP_S2_1 ;
public static EURCAD_OCO3_UP_S2 EURCAD_PFO_OCO3_UP_S2_2 ;
public static EURCAD_OCO3_UP_S2 EURCAD_PFO_OCO3_UP_S2_3 ;
public static EURCAD_OCO3_UP_S2 EURCAD_PFO_OCO3_UP_S2_4 ;
public static EURCAD_OCO3_UP_S2 EURCAD_PFO_OCO3_UP_S2_5 ;
public static EURCAD_OCO3_UP_S2 EURCAD_PFO_OCO3_UP_S2_6 ;
public static List<EURCAD_OCO3_UP_S2> EURCAD_UP_S2_OCO3Sets1 = new List<EURCAD_OCO3_UP_S2>();
public static List<EURCAD_OCO3_UP_S2> EURCAD_UP_S2_OCO3Sets2 = new List<EURCAD_OCO3_UP_S2>();
public static List<EURCAD_OCO3_UP_S2> EURCAD_UP_S2_OCO3Sets3 = new List<EURCAD_OCO3_UP_S2>();
public static List<EURCAD_OCO3_UP_S2> EURCAD_UP_S2_OCO3Sets4 = new List<EURCAD_OCO3_UP_S2>();
public static List<EURCAD_OCO3_UP_S2> EURCAD_UP_S2_OCO3Sets5 = new List<EURCAD_OCO3_UP_S2>();
public static List<EURCAD_OCO3_UP_S2> EURCAD_UP_S2_OCO3Sets6 = new List<EURCAD_OCO3_UP_S2>();
public static bool EURCAD_OCO3_UP_S2_IsReady = true;
public static bool EURCAD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket EURCAD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket EURCAD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket EURCAD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket EURCAD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket EURCAD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket EURCAD_OCO3_MO6_DOWN_S2 ;
public static int EURCAD_OCO3_EO1_DOWN_S2_ID ;
public static int EURCAD_OCO3_EO2_DOWN_S2_ID ;
public static int EURCAD_OCO3_EO3_DOWN_S2_ID ;
public static int EURCAD_OCO3_EO4_DOWN_S2_ID ;
public static int EURCAD_OCO3_EO5_DOWN_S2_ID ;
public static int EURCAD_OCO3_EO6_DOWN_S2_ID ;
public static bool EURCAD_OCO3_EO1_DOWN_S2 ;
public static bool EURCAD_OCO3_EO2_DOWN_S2 ;
public static bool EURCAD_OCO3_EO3_DOWN_S2 ;
public static bool EURCAD_OCO3_EO4_DOWN_S2 ;
public static bool EURCAD_OCO3_EO5_DOWN_S2 ;
public static bool EURCAD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_DOWN_S2> EURCAD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_DOWN_S2> EURCAD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_DOWN_S2> EURCAD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_DOWN_S2> EURCAD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_DOWN_S2> EURCAD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO3_DOWN_S2> EURCAD_OOFE_OCO3_DOWN_S2_6 ;
public static EURCAD_OCO3_DOWN_S2 EURCAD_PFO_OCO3_DOWN_S2_1 ;
public static EURCAD_OCO3_DOWN_S2 EURCAD_PFO_OCO3_DOWN_S2_2 ;
public static EURCAD_OCO3_DOWN_S2 EURCAD_PFO_OCO3_DOWN_S2_3 ;
public static EURCAD_OCO3_DOWN_S2 EURCAD_PFO_OCO3_DOWN_S2_4 ;
public static EURCAD_OCO3_DOWN_S2 EURCAD_PFO_OCO3_DOWN_S2_5 ;
public static EURCAD_OCO3_DOWN_S2 EURCAD_PFO_OCO3_DOWN_S2_6 ;
public static List<EURCAD_OCO3_DOWN_S2> EURCAD_DOWN_S2_OCO3Sets1 = new List<EURCAD_OCO3_DOWN_S2>();
public static List<EURCAD_OCO3_DOWN_S2> EURCAD_DOWN_S2_OCO3Sets2 = new List<EURCAD_OCO3_DOWN_S2>();
public static List<EURCAD_OCO3_DOWN_S2> EURCAD_DOWN_S2_OCO3Sets3 = new List<EURCAD_OCO3_DOWN_S2>();
public static List<EURCAD_OCO3_DOWN_S2> EURCAD_DOWN_S2_OCO3Sets4 = new List<EURCAD_OCO3_DOWN_S2>();
public static List<EURCAD_OCO3_DOWN_S2> EURCAD_DOWN_S2_OCO3Sets5 = new List<EURCAD_OCO3_DOWN_S2>();
public static List<EURCAD_OCO3_DOWN_S2> EURCAD_DOWN_S2_OCO3Sets6 = new List<EURCAD_OCO3_DOWN_S2>();
public static bool EURCAD_OCO3_DOWN_S2_IsReady = true;
public static bool EURCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket EURCAD_OCO4_MO1_UP_S2 ;
public static OrderTicket EURCAD_OCO4_MO2_UP_S2 ;
public static OrderTicket EURCAD_OCO4_MO3_UP_S2 ;
public static OrderTicket EURCAD_OCO4_MO4_UP_S2 ;
public static OrderTicket EURCAD_OCO4_MO5_UP_S2 ;
public static OrderTicket EURCAD_OCO4_MO6_UP_S2 ;
public static int EURCAD_OCO4_EO1_UP_S2_ID ;
public static int EURCAD_OCO4_EO2_UP_S2_ID ;
public static int EURCAD_OCO4_EO3_UP_S2_ID ;
public static int EURCAD_OCO4_EO4_UP_S2_ID ;
public static int EURCAD_OCO4_EO5_UP_S2_ID ;
public static int EURCAD_OCO4_EO6_UP_S2_ID ;
public static bool EURCAD_OCO4_EO1_UP_S2 ;
public static bool EURCAD_OCO4_EO2_UP_S2 ;
public static bool EURCAD_OCO4_EO3_UP_S2 ;
public static bool EURCAD_OCO4_EO4_UP_S2 ;
public static bool EURCAD_OCO4_EO5_UP_S2 ;
public static bool EURCAD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_UP_S2> EURCAD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_UP_S2> EURCAD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_UP_S2> EURCAD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_UP_S2> EURCAD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_UP_S2> EURCAD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_UP_S2> EURCAD_OOFE_OCO4_UP_S2_6 ;
public static EURCAD_OCO4_UP_S2 EURCAD_PFO_OCO4_UP_S2_1 ;
public static EURCAD_OCO4_UP_S2 EURCAD_PFO_OCO4_UP_S2_2 ;
public static EURCAD_OCO4_UP_S2 EURCAD_PFO_OCO4_UP_S2_3 ;
public static EURCAD_OCO4_UP_S2 EURCAD_PFO_OCO4_UP_S2_4 ;
public static EURCAD_OCO4_UP_S2 EURCAD_PFO_OCO4_UP_S2_5 ;
public static EURCAD_OCO4_UP_S2 EURCAD_PFO_OCO4_UP_S2_6 ;
public static List<EURCAD_OCO4_UP_S2> EURCAD_UP_S2_OCO4Sets1 = new List<EURCAD_OCO4_UP_S2>();
public static List<EURCAD_OCO4_UP_S2> EURCAD_UP_S2_OCO4Sets2 = new List<EURCAD_OCO4_UP_S2>();
public static List<EURCAD_OCO4_UP_S2> EURCAD_UP_S2_OCO4Sets3 = new List<EURCAD_OCO4_UP_S2>();
public static List<EURCAD_OCO4_UP_S2> EURCAD_UP_S2_OCO4Sets4 = new List<EURCAD_OCO4_UP_S2>();
public static List<EURCAD_OCO4_UP_S2> EURCAD_UP_S2_OCO4Sets5 = new List<EURCAD_OCO4_UP_S2>();
public static List<EURCAD_OCO4_UP_S2> EURCAD_UP_S2_OCO4Sets6 = new List<EURCAD_OCO4_UP_S2>();
public static bool EURCAD_OCO4_UP_S2_IsReady = true;
public static bool EURCAD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket EURCAD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket EURCAD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket EURCAD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket EURCAD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket EURCAD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket EURCAD_OCO4_MO6_DOWN_S2 ;
public static int EURCAD_OCO4_EO1_DOWN_S2_ID ;
public static int EURCAD_OCO4_EO2_DOWN_S2_ID ;
public static int EURCAD_OCO4_EO3_DOWN_S2_ID ;
public static int EURCAD_OCO4_EO4_DOWN_S2_ID ;
public static int EURCAD_OCO4_EO5_DOWN_S2_ID ;
public static int EURCAD_OCO4_EO6_DOWN_S2_ID ;
public static bool EURCAD_OCO4_EO1_DOWN_S2 ;
public static bool EURCAD_OCO4_EO2_DOWN_S2 ;
public static bool EURCAD_OCO4_EO3_DOWN_S2 ;
public static bool EURCAD_OCO4_EO4_DOWN_S2 ;
public static bool EURCAD_OCO4_EO5_DOWN_S2 ;
public static bool EURCAD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_DOWN_S2> EURCAD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_DOWN_S2> EURCAD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_DOWN_S2> EURCAD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_DOWN_S2> EURCAD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_DOWN_S2> EURCAD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCAD_OCO4_DOWN_S2> EURCAD_OOFE_OCO4_DOWN_S2_6 ;
public static EURCAD_OCO4_DOWN_S2 EURCAD_PFO_OCO4_DOWN_S2_1 ;
public static EURCAD_OCO4_DOWN_S2 EURCAD_PFO_OCO4_DOWN_S2_2 ;
public static EURCAD_OCO4_DOWN_S2 EURCAD_PFO_OCO4_DOWN_S2_3 ;
public static EURCAD_OCO4_DOWN_S2 EURCAD_PFO_OCO4_DOWN_S2_4 ;
public static EURCAD_OCO4_DOWN_S2 EURCAD_PFO_OCO4_DOWN_S2_5 ;
public static EURCAD_OCO4_DOWN_S2 EURCAD_PFO_OCO4_DOWN_S2_6 ;
public static List<EURCAD_OCO4_DOWN_S2> EURCAD_DOWN_S2_OCO4Sets1 = new List<EURCAD_OCO4_DOWN_S2>();
public static List<EURCAD_OCO4_DOWN_S2> EURCAD_DOWN_S2_OCO4Sets2 = new List<EURCAD_OCO4_DOWN_S2>();
public static List<EURCAD_OCO4_DOWN_S2> EURCAD_DOWN_S2_OCO4Sets3 = new List<EURCAD_OCO4_DOWN_S2>();
public static List<EURCAD_OCO4_DOWN_S2> EURCAD_DOWN_S2_OCO4Sets4 = new List<EURCAD_OCO4_DOWN_S2>();
public static List<EURCAD_OCO4_DOWN_S2> EURCAD_DOWN_S2_OCO4Sets5 = new List<EURCAD_OCO4_DOWN_S2>();
public static List<EURCAD_OCO4_DOWN_S2> EURCAD_DOWN_S2_OCO4Sets6 = new List<EURCAD_OCO4_DOWN_S2>();
public static bool EURCAD_OCO4_DOWN_S2_IsReady = true;
public static bool EURCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal EURCAD_UP_S2_SL {get; set;}
public static decimal EURCAD_UP_S2_TP1 {get; set;}
public static decimal EURCAD_UP_S2_TP2 {get; set;}
public static decimal EURCAD_UP_S2_TP3 {get; set;}
public static decimal EURCAD_UP_S2_TP4 {get; set;}
public static decimal EURCAD_UP_S2_TP5 {get; set;}
public static decimal EURCAD_UP_S2_TP6 {get; set;}
public static decimal EURCAD_DOWN_S2_SL {get; set;}
public static decimal EURCAD_DOWN_S2_TP1 {get; set;}
public static decimal EURCAD_DOWN_S2_TP2 {get; set;}
public static decimal EURCAD_DOWN_S2_TP3 {get; set;}
public static decimal EURCAD_DOWN_S2_TP4 {get; set;}
public static decimal EURCAD_DOWN_S2_TP5 {get; set;}
public static decimal EURCAD_DOWN_S2_TP6 {get; set;}
public static bool EURCAD_Signal_Condition_UP_1 ;
public static bool EURCAD_Signal_Condition_UP_2 ;
public static bool EURCAD_Signal_Condition_UP_3 ;
public static bool EURCAD_Signal_Condition_DOWN_S2 ;
public static int EURCAD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int EURCAD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int EURCAD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int EURCAD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int EURCAD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int EURCAD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int EURCAD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int EURCAD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int EURCAD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int EURCAD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_EURCAD_UP_S2 ;
public static bool DOWM_EURCAD_UP_S2 ;
public static bool DOWT_EURCAD_UP_S2 ;
public static bool DOWW_EURCAD_UP_S2 ;
public static bool DOWTH_EURCAD_UP_S2 ;
public static bool DOWR_EURCAD_DOWN_S2 ;
public static bool DOWM_EURCAD_DOWN_S2 ;
public static bool DOWT_EURCAD_DOWN_S2 ;
public static bool DOWW_EURCAD_DOWN_S2 ;
public static bool DOWTH_EURCAD_DOWN_S2 ;
public static int EURCAD_quantity_UP_S2 ;
public static int EURCAD_quantity_SL_UP_S2 ;
public static int EURCAD_quantity_TP1_UP_S2 ;
public static int EURCAD_quantity_TP2_UP_S2 ;
public static int EURCAD_quantity_TP3_UP_S2 ;
public static int EURCAD_quantity_TP4_UP_S2 ;
public static int EURCAD_quantity_TP5_UP_S2;
public static int EURCAD_quantity_TP6_UP_S2 ;
public static int EURCAD_quantity_DOWN_S2 ;
public static int EURCAD_quantity_SL_DOWN_S2 ;
public static int EURCAD_quantity_TP1_DOWN_S2 ;
public static int EURCAD_quantity_TP2_DOWN_S2 ;
public static int EURCAD_quantity_TP3_DOWN_S2 ;
public static int EURCAD_quantity_TP4_DOWN_S2 ;
public static int EURCAD_quantity_TP5_DOWN_S2;
public static int EURCAD_quantity_TP6_DOWN_S2 ;
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct CHFJPY_OCO1_DOWN_S2
{
public CHFJPY_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_CHFJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_CHFJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_CHFJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_CHFJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_CHFJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_CHFJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_CHFJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_CHFJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CHFJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_CHFJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CHFJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_CHFJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CHFJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_CHFJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CHFJPY_OCO1_UP_S2
{
public CHFJPY_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_CHFJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_CHFJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_CHFJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_CHFJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_CHFJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_CHFJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_CHFJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_CHFJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CHFJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_CHFJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CHFJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_CHFJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CHFJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_CHFJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CHFJPY_OCO2_DOWN_S2
{
public CHFJPY_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_CHFJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_CHFJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_CHFJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_CHFJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_CHFJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_CHFJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_CHFJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_CHFJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CHFJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_CHFJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CHFJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_CHFJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CHFJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_CHFJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CHFJPY_OCO2_UP_S2
{
public CHFJPY_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_CHFJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_CHFJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_CHFJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_CHFJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_CHFJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_CHFJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_CHFJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_CHFJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CHFJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_CHFJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CHFJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_CHFJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CHFJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_CHFJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CHFJPY OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CHFJPY_OCO3_DOWN_S2
{
public CHFJPY_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_CHFJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_CHFJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_CHFJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_CHFJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_CHFJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_CHFJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_CHFJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_CHFJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CHFJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_CHFJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CHFJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_CHFJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CHFJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_CHFJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CHFJPY_OCO3_UP_S2
{
public CHFJPY_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_CHFJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_CHFJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_CHFJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_CHFJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_CHFJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_CHFJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_CHFJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_CHFJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CHFJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_CHFJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CHFJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_CHFJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CHFJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_CHFJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CHFJPY OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CHFJPY_OCO4_DOWN_S2
{
public CHFJPY_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_CHFJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_CHFJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_CHFJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_CHFJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_CHFJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_CHFJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_CHFJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_CHFJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CHFJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_CHFJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CHFJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_CHFJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CHFJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_CHFJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CHFJPY_OCO4_UP_S2
{
public CHFJPY_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_CHFJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_CHFJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_CHFJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_CHFJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_CHFJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_CHFJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_CHFJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CHFJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_CHFJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CHFJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_CHFJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CHFJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_CHFJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CHFJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_CHFJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CHFJPY OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_USDCHF_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_USDCHF_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("USDCHF_UP_S2_OCO1")))
{
Base.USDCHF_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCHF_UP_S2_OCO2")))
{
Base.USDCHF_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCHF_UP_S2_OCO3")))
{
Base.USDCHF_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDCHF_UP_S2_OCO4")))
{
Base.USDCHF_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("USDCHF_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.USDCHF_OCO1_EO1_UP_S2)
Base.USDCHF_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO2_UP_S2)
Base.USDCHF_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO3_UP_S2)
Base.USDCHF_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO4_UP_S2)
Base.USDCHF_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO5_UP_S2)
Base.USDCHF_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO1_EO6_UP_S2)
Base.USDCHF_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCHF_UP_S2_OCO_DELAY_7DAY))
{
int USDCHF_OCO1S1_UP_S2 = 0;
for (; USDCHF_OCO1S1_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets1.Count; USDCHF_OCO1S1_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets1[USDCHF_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO1Sets1[USDCHF_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_1__Time out_OCO1");
Base.USDCHF_UP_S2_OCO1Sets1.Clear();
USDCHF_OCO1S1_UP_S2 = 0;
break;
}
int USDCHF_OCO1S2_UP_S2 = 0;
for (; USDCHF_OCO1S2_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets2.Count; USDCHF_OCO1S2_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets2[USDCHF_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO1Sets2[USDCHF_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_2__Time out_OCO1");
Base.USDCHF_UP_S2_OCO1Sets2.Clear();
USDCHF_OCO1S2_UP_S2 = 0;
break;
}
int USDCHF_OCO1S3_UP_S2 = 0;
for (; USDCHF_OCO1S3_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets3.Count; USDCHF_OCO1S3_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets3[USDCHF_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO1Sets3[USDCHF_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_3__Time out_OCO1");
Base.USDCHF_UP_S2_OCO1Sets3.Clear();
USDCHF_OCO1S3_UP_S2 = 0;
break;
}
int USDCHF_OCO1S4_UP_S2 = 0;
for (; USDCHF_OCO1S4_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets4.Count; USDCHF_OCO1S4_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets4[USDCHF_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO1Sets4[USDCHF_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_4__Time out_OCO1");
Base.USDCHF_UP_S2_OCO1Sets4.Clear();
USDCHF_OCO1S4_UP_S2 = 0;
break;
}
int USDCHF_OCO1S5_UP_S2 = 0;
for (; USDCHF_OCO1S5_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets5.Count; USDCHF_OCO1S5_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets5[USDCHF_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO1Sets5[USDCHF_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_5__Time out_OCO1");
Base.USDCHF_UP_S2_OCO1Sets5.Clear();
USDCHF_OCO1S5_UP_S2 = 0;
break;
}
int USDCHF_OCO1S6_UP_S2 = 0;
for (; USDCHF_OCO1S6_UP_S2 < Base.USDCHF_UP_S2_OCO1Sets6.Count; USDCHF_OCO1S6_UP_S2++)
if (Base.USDCHF_UP_S2_OCO1Sets6[USDCHF_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO1Sets6[USDCHF_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_6__Time out_OCO1");
Base.USDCHF_UP_S2_OCO1Sets6.Clear();
USDCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO2_EO1_UP_S2)
Base.USDCHF_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO2_UP_S2)
Base.USDCHF_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO3_UP_S2)
Base.USDCHF_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO4_UP_S2)
Base.USDCHF_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO5_UP_S2)
Base.USDCHF_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO2_EO6_UP_S2)
Base.USDCHF_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCHF_UP_S2_OCO_DELAY_7DAY))
{
int USDCHF_OCO2S1_UP_S2 = 0;
for (; USDCHF_OCO2S1_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets1.Count; USDCHF_OCO2S1_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets1[USDCHF_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO2Sets1[USDCHF_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_1__Time out_OCO2");
Base.USDCHF_UP_S2_OCO2Sets1.Clear();
USDCHF_OCO2S1_UP_S2 = 0;
break;
}
int USDCHF_OCO2S2_UP_S2 = 0;
for (; USDCHF_OCO2S2_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets2.Count; USDCHF_OCO2S2_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets2[USDCHF_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO2Sets2[USDCHF_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_2__Time out_OCO2");
Base.USDCHF_UP_S2_OCO2Sets2.Clear();
USDCHF_OCO2S2_UP_S2 = 0;
break;
}
int USDCHF_OCO2S3_UP_S2 = 0;
for (; USDCHF_OCO2S3_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets3.Count; USDCHF_OCO2S3_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets3[USDCHF_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO2Sets3[USDCHF_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_3__Time out_OCO2");
Base.USDCHF_UP_S2_OCO2Sets3.Clear();
USDCHF_OCO2S3_UP_S2 = 0;
break;
}
int USDCHF_OCO2S4_UP_S2 = 0;
for (; USDCHF_OCO2S4_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets4.Count; USDCHF_OCO2S4_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets4[USDCHF_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO2Sets4[USDCHF_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_4__Time out_OCO2");
Base.USDCHF_UP_S2_OCO2Sets4.Clear();
USDCHF_OCO2S4_UP_S2 = 0;
break;
}
int USDCHF_OCO2S5_UP_S2 = 0;
for (; USDCHF_OCO2S5_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets5.Count; USDCHF_OCO2S5_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets5[USDCHF_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO2Sets5[USDCHF_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_5__Time out_OCO2");
Base.USDCHF_UP_S2_OCO2Sets5.Clear();
USDCHF_OCO2S5_UP_S2 = 0;
break;
}
int USDCHF_OCO2S6_UP_S2 = 0;
for (; USDCHF_OCO2S6_UP_S2 < Base.USDCHF_UP_S2_OCO2Sets6.Count; USDCHF_OCO2S6_UP_S2++)
if (Base.USDCHF_UP_S2_OCO2Sets6[USDCHF_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO2Sets6[USDCHF_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_6__Time out_OCO2");
Base.USDCHF_UP_S2_OCO2Sets6.Clear();
USDCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO3_EO1_UP_S2)
Base.USDCHF_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO2_UP_S2)
Base.USDCHF_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO3_UP_S2)
Base.USDCHF_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO4_UP_S2)
Base.USDCHF_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO5_UP_S2)
Base.USDCHF_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO3_EO6_UP_S2)
Base.USDCHF_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCHF_UP_S2_OCO_DELAY_7DAY))
{
int USDCHF_OCO3S1_UP_S2 = 0;
for (; USDCHF_OCO3S1_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets1.Count; USDCHF_OCO3S1_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets1[USDCHF_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO3Sets1[USDCHF_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_1__Time out_OCO3");
Base.USDCHF_UP_S2_OCO3Sets1.Clear();
USDCHF_OCO3S1_UP_S2 = 0;
break;
}
int USDCHF_OCO3S2_UP_S2 = 0;
for (; USDCHF_OCO3S2_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets2.Count; USDCHF_OCO3S2_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets2[USDCHF_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO3Sets2[USDCHF_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_2__Time out_OCO3");
Base.USDCHF_UP_S2_OCO3Sets2.Clear();
USDCHF_OCO3S2_UP_S2 = 0;
break;
}
int USDCHF_OCO3S3_UP_S2 = 0;
for (; USDCHF_OCO3S3_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets3.Count; USDCHF_OCO3S3_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets3[USDCHF_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO3Sets3[USDCHF_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_3__Time out_OCO3");
Base.USDCHF_UP_S2_OCO3Sets3.Clear();
USDCHF_OCO3S3_UP_S2 = 0;
break;
}
int USDCHF_OCO3S4_UP_S2 = 0;
for (; USDCHF_OCO3S4_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets4.Count; USDCHF_OCO3S4_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets4[USDCHF_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO3Sets4[USDCHF_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_4__Time out_OCO3");
Base.USDCHF_UP_S2_OCO3Sets4.Clear();
USDCHF_OCO3S4_UP_S2 = 0;
break;
}
int USDCHF_OCO3S5_UP_S2 = 0;
for (; USDCHF_OCO3S5_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets5.Count; USDCHF_OCO3S5_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets5[USDCHF_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO3Sets5[USDCHF_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_5__Time out_OCO3");
Base.USDCHF_UP_S2_OCO3Sets5.Clear();
USDCHF_OCO3S5_UP_S2 = 0;
break;
}
int USDCHF_OCO3S6_UP_S2 = 0;
for (; USDCHF_OCO3S6_UP_S2 < Base.USDCHF_UP_S2_OCO3Sets6.Count; USDCHF_OCO3S6_UP_S2++)
if (Base.USDCHF_UP_S2_OCO3Sets6[USDCHF_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO3Sets6[USDCHF_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_6__Time out_OCO3");
Base.USDCHF_UP_S2_OCO3Sets6.Clear();
USDCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.USDCHF_OCO4_EO1_UP_S2)
Base.USDCHF_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO2_UP_S2)
Base.USDCHF_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO3_UP_S2)
Base.USDCHF_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO4_UP_S2)
Base.USDCHF_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO5_UP_S2)
Base.USDCHF_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.USDCHF_OCO4_EO6_UP_S2)
Base.USDCHF_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDCHF_UP_S2_OCO_DELAY_7DAY))
{
int USDCHF_OCO4S1_UP_S2 = 0;
for (; USDCHF_OCO4S1_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets1.Count; USDCHF_OCO4S1_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets1[USDCHF_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO4Sets1[USDCHF_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_1__Time out_OCO4");
Base.USDCHF_UP_S2_OCO4Sets1.Clear();
USDCHF_OCO4S1_UP_S2 = 0;
break;
}
int USDCHF_OCO4S2_UP_S2 = 0;
for (; USDCHF_OCO4S2_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets2.Count; USDCHF_OCO4S2_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets2[USDCHF_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO4Sets2[USDCHF_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_2__Time out_OCO4");
Base.USDCHF_UP_S2_OCO4Sets2.Clear();
USDCHF_OCO4S2_UP_S2 = 0;
break;
}
int USDCHF_OCO4S3_UP_S2 = 0;
for (; USDCHF_OCO4S3_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets3.Count; USDCHF_OCO4S3_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets3[USDCHF_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO4Sets3[USDCHF_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_3__Time out_OCO4");
Base.USDCHF_UP_S2_OCO4Sets3.Clear();
USDCHF_OCO4S3_UP_S2 = 0;
break;
}
int USDCHF_OCO4S4_UP_S2 = 0;
for (; USDCHF_OCO4S4_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets4.Count; USDCHF_OCO4S4_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets4[USDCHF_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO4Sets4[USDCHF_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_4__Time out_OCO4");
Base.USDCHF_UP_S2_OCO4Sets4.Clear();
USDCHF_OCO4S4_UP_S2 = 0;
break;
}
int USDCHF_OCO4S5_UP_S2 = 0;
for (; USDCHF_OCO4S5_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets5.Count; USDCHF_OCO4S5_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets5[USDCHF_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO4Sets5[USDCHF_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_5__Time out_OCO4");
Base.USDCHF_UP_S2_OCO4Sets5.Clear();
USDCHF_OCO4S5_UP_S2 = 0;
break;
}
int USDCHF_OCO4S6_UP_S2 = 0;
for (; USDCHF_OCO4S6_UP_S2 < Base.USDCHF_UP_S2_OCO4Sets6.Count; USDCHF_OCO4S6_UP_S2++)
if (Base.USDCHF_UP_S2_OCO4Sets6[USDCHF_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.USDCHF_UP_S2_OCO4Sets6[USDCHF_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("USDCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("USDCHF", order.Quantity, false, "USDCHF_UP_S2_Entry_6__Time out_OCO4");
Base.USDCHF_UP_S2_OCO4Sets6.Clear();
USDCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_USDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_USDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_USDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_USDCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_USDCHF_UP_S2 = DOWM_USDCHF_UP_S2 || DOWT_USDCHF_UP_S2 || DOWW_USDCHF_UP_S2 || DOWTH_USDCHF_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("USDCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.USDCHF_OCO1_UP_S2_IsReady == false ||
Base.USDCHF_OCO2_UP_S2_IsReady == false ||
Base.USDCHF_OCO3_UP_S2_IsReady == false ||
Base.USDCHF_OCO4_UP_S2_IsReady == false)
{
Base.USDCHF_OCO1_UP_S2_Monthly_IsReady = false;
Base.USDCHF_OCO2_UP_S2_Monthly_IsReady = false;
Base.USDCHF_OCO3_UP_S2_Monthly_IsReady = false;
Base.USDCHF_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.USDCHF_OCO1_UP_S2_Monthly_IsReady = true;
Base.USDCHF_OCO2_UP_S2_Monthly_IsReady = true;
Base.USDCHF_OCO3_UP_S2_Monthly_IsReady = true;
Base.USDCHF_OCO4_UP_S2_Monthly_IsReady = true;
}
USDCHF_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
USDCHF_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
USDCHF_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (USDCHF_Signal_Condition_UP_1)
{
USDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDCHF_Signal_Condition_UP_2)
{
USDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDCHF_Signal_Condition_UP_3)
{
USDCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDCHF_Signal_Condition_UP_1)
{
USDCHF_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (USDCHF_Signal_Condition_UP_2)
{
USDCHF_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (USDCHF_Signal_Condition_UP_3)
{
USDCHF_UP_S2_TP1 = Base.Oth_TP_3 ;
}
USDCHF_UP_S2_TP2 = USDCHF_UP_S2_SL * 0;
USDCHF_UP_S2_TP3 = USDCHF_UP_S2_SL * 0;
USDCHF_UP_S2_TP4 = USDCHF_UP_S2_SL * 0;
USDCHF_UP_S2_TP5 = USDCHF_UP_S2_SL * 0;
USDCHF_UP_S2_TP6 = USDCHF_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
USDCHF_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
USDCHF_quantity_SL_UP_S2 = USDCHF_quantity_UP_S2;
USDCHF_quantity_TP1_UP_S2 = (int)Math.Floor(USDCHF_quantity_UP_S2 * 1m);
USDCHF_quantity_TP2_UP_S2 = (int)Math.Floor(USDCHF_quantity_TP1_UP_S2 * 0m);
USDCHF_quantity_TP3_UP_S2 = (int)Math.Floor(USDCHF_quantity_TP2_UP_S2 * 0m);
USDCHF_quantity_TP4_UP_S2 = (int)Math.Floor(USDCHF_quantity_TP3_UP_S2 * 0m);
USDCHF_quantity_TP5_UP_S2 = (int)Math.Floor(USDCHF_quantity_TP4_UP_S2 * 0m);
USDCHF_quantity_TP6_UP_S2 = (int)Math.Floor(USDCHF_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((USDCHF_Signal_Condition_UP_1 || USDCHF_Signal_Condition_UP_2 || USDCHF_Signal_Condition_UP_3) &&
DOWR_USDCHF_UP_S2 &&
Base.USDCHF_OCO1_UP_S2_IsReady == true &&
Base.USDCHF_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.USDCHF_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP1_UP_S2, false,"USDCHF_UP_S2_Entry_TP1_OCO1");
Base.USDCHF_OCO1_EO1_UP_S2 = false;
Base.USDCHF_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP2_UP_S2, false,"USDCHF_UP_S2_Entry_TP2_OCO1");
Base.USDCHF_OCO1_EO2_UP_S2 = false;
Base.USDCHF_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP3_UP_S2, false,"USDCHF_UP_S2_Entry_TP3_OCO1");
Base.USDCHF_OCO1_EO3_UP_S2 = false;
Base.USDCHF_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP4_UP_S2, false,"USDCHF_UP_S2_Entry_TP4_OCO1");
Base.USDCHF_OCO1_EO4_UP_S2 = false;
Base.USDCHF_OCO1_UP_S2_IsReady = false;
if (Base.USDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((USDCHF_Signal_Condition_UP_1 || USDCHF_Signal_Condition_UP_2 || USDCHF_Signal_Condition_UP_3) &&
DOWR_USDCHF_UP_S2 &&
Base.USDCHF_OCO1_UP_S2_IsReady == false &&
Base.USDCHF_OCO2_UP_S2_IsReady == true &&
Base.USDCHF_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.USDCHF_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP1_UP_S2, false,"USDCHF_UP_S2_Entry_TP1_OCO2");
Base.USDCHF_OCO2_EO1_UP_S2 = false;
Base.USDCHF_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP2_UP_S2, false,"USDCHF_UP_S2_Entry_TP2_OCO2");
Base.USDCHF_OCO2_EO2_UP_S2 = false;
Base.USDCHF_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP3_UP_S2, false,"USDCHF_UP_S2_Entry_TP3_OCO2");
Base.USDCHF_OCO2_EO3_UP_S2 = false;
Base.USDCHF_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP4_UP_S2, false,"USDCHF_UP_S2_Entry_TP4_OCO2");
Base.USDCHF_OCO2_EO4_UP_S2 = false;
Base.USDCHF_OCO2_UP_S2_IsReady = false;
if (Base.USDCHF_OCO2_UP_S2_IsReady == false && Base.USDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((USDCHF_Signal_Condition_UP_1 || USDCHF_Signal_Condition_UP_2 || USDCHF_Signal_Condition_UP_3) &&
DOWR_USDCHF_UP_S2 &&
Base.USDCHF_OCO1_UP_S2_IsReady == false &&
Base.USDCHF_OCO2_UP_S2_IsReady == false &&
Base.USDCHF_OCO3_UP_S2_IsReady == true &&
Base.USDCHF_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.USDCHF_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP1_UP_S2, false,"USDCHF_UP_S2_Entry_TP1_OCO3");
Base.USDCHF_OCO3_EO1_UP_S2 = false;
Base.USDCHF_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP2_UP_S2, false,"USDCHF_UP_S2_Entry_TP2_OCO3");
Base.USDCHF_OCO3_EO2_UP_S2 = false;
Base.USDCHF_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP3_UP_S2, false,"USDCHF_UP_S2_Entry_TP3_OCO3");
Base.USDCHF_OCO3_EO3_UP_S2 = false;
Base.USDCHF_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP4_UP_S2, false,"USDCHF_UP_S2_Entry_TP4_OCO3");
Base.USDCHF_OCO3_EO4_UP_S2 = false;
Base.USDCHF_OCO3_UP_S2_IsReady = false;
if (Base.USDCHF_OCO3_UP_S2_IsReady == false && Base.USDCHF_OCO2_UP_S2_IsReady == false && Base.USDCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((USDCHF_Signal_Condition_UP_1 || USDCHF_Signal_Condition_UP_2 || USDCHF_Signal_Condition_UP_3) &&
DOWR_USDCHF_UP_S2 &&
Base.USDCHF_OCO1_UP_S2_IsReady == false &&
Base.USDCHF_OCO2_UP_S2_IsReady == false &&
Base.USDCHF_OCO3_UP_S2_IsReady == false &&
Base.USDCHF_OCO4_UP_S2_IsReady == true &&
Base.USDCHF_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.USDCHF_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP1_UP_S2, false,"USDCHF_UP_S2_Entry_TP1_OCO4");
Base.USDCHF_OCO4_EO1_UP_S2 = false;
Base.USDCHF_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP2_UP_S2, false,"USDCHF_UP_S2_Entry_TP2_OCO4");
Base.USDCHF_OCO4_EO2_UP_S2 = false;
Base.USDCHF_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP3_UP_S2, false,"USDCHF_UP_S2_Entry_TP3_OCO4");
Base.USDCHF_OCO4_EO3_UP_S2 = false;
Base.USDCHF_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDCHF_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDCHF_quantity_TP4_UP_S2, false,"USDCHF_UP_S2_Entry_TP4_OCO4");
Base.USDCHF_OCO4_EO4_UP_S2 = false;
Base.USDCHF_OCO4_UP_S2_IsReady = false;
if (Base.USDCHF_OCO4_UP_S2_IsReady == false && Base.USDCHF_OCO3_UP_S2_IsReady == false && Base.USDCHF_OCO2_UP_S2_IsReady == false && Base.USDCHF_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct USDJPY_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public USDJPY_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
if (OrderID.Tag.StartsWith("USDJPY OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDJPY OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDJPY S2");
}
}
if (Base.USDJPY_OCO1_EO1_UP_S2)
Base.USDJPY_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO1_EO2_UP_S2)
Base.USDJPY_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO1_EO3_UP_S2)
Base.USDJPY_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO1_EO4_UP_S2)
Base.USDJPY_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO1_EO5_UP_S2)
Base.USDJPY_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO1_EO6_UP_S2)
Base.USDJPY_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO1_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP1,"TP1_USDJPY_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP1_USDJPY_UP_S2_OCO1"));
};
Base.USDJPY_UP_S2_OCO1Sets1.Add( Base.USDJPY_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO2_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP2,"TP2_USDJPY_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP2_USDJPY_UP_S2_OCO1"));
};
Base.USDJPY_UP_S2_OCO1Sets2.Add( Base.USDJPY_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO3_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP3,"TP3_USDJPY_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP3_USDJPY_UP_S2_OCO1"));
};
Base.USDJPY_UP_S2_OCO1Sets3.Add( Base.USDJPY_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO4_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP4,"TP4_USDJPY_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP4_USDJPY_UP_S2_OCO1"));
};
Base.USDJPY_UP_S2_OCO1Sets4.Add( Base.USDJPY_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO5_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP5,"TP5_USDJPY_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP5_USDJPY_UP_S2_OCO1"));
};
Base.USDJPY_UP_S2_OCO1Sets5.Add( Base.USDJPY_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO1_EO6_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP6,"TP6_USDJPY_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP6_USDJPY_UP_S2_OCO1"));
};
Base.USDJPY_UP_S2_OCO1Sets6.Add( Base.USDJPY_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO1_EO6_UP_S2_ID = -1;
}
int USDJPY_OCO1S1_UP_S2 = 0;
for (; USDJPY_OCO1S1_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets1.Count; USDJPY_OCO1S1_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets1[USDJPY_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO1Sets1[USDJPY_OCO1S1_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO1Sets1.RemoveAt(USDJPY_OCO1S1_UP_S2);
USDJPY_OCO1S1_UP_S2 = 0;
break;
}
int USDJPY_OCO1S2_UP_S2 = 0;
for (; USDJPY_OCO1S2_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets2.Count; USDJPY_OCO1S2_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets2[USDJPY_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO1Sets2[USDJPY_OCO1S2_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO1Sets2.RemoveAt(USDJPY_OCO1S2_UP_S2);
USDJPY_OCO1S2_UP_S2 = 0;
break;
}
int USDJPY_OCO1S3_UP_S2 = 0;
for (; USDJPY_OCO1S3_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets3.Count; USDJPY_OCO1S3_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets3[USDJPY_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO1Sets3[USDJPY_OCO1S3_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO1Sets3.RemoveAt(USDJPY_OCO1S3_UP_S2);
USDJPY_OCO1S3_UP_S2 = 0;
break;
}
int USDJPY_OCO1S4_UP_S2 = 0;
for (; USDJPY_OCO1S4_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets4.Count; USDJPY_OCO1S4_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets4[USDJPY_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO1Sets4[USDJPY_OCO1S4_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO1Sets4.RemoveAt(USDJPY_OCO1S4_UP_S2);
USDJPY_OCO1S4_UP_S2 = 0;
break;
}
int USDJPY_OCO1S5_UP_S2 = 0;
for (; USDJPY_OCO1S5_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets5.Count; USDJPY_OCO1S5_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets5[USDJPY_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO1Sets5[USDJPY_OCO1S5_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO1Sets5.RemoveAt(USDJPY_OCO1S5_UP_S2);
USDJPY_OCO1S5_UP_S2 = 0;
break;
}
int USDJPY_OCO1S6_UP_S2 = 0;
for (; USDJPY_OCO1S6_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets6.Count; USDJPY_OCO1S6_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets6[USDJPY_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO1Sets6[USDJPY_OCO1S6_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO1Sets6.RemoveAt(USDJPY_OCO1S6_UP_S2);
USDJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO2_EO1_UP_S2)
Base.USDJPY_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO2_EO2_UP_S2)
Base.USDJPY_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO2_EO3_UP_S2)
Base.USDJPY_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO2_EO4_UP_S2)
Base.USDJPY_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO2_EO5_UP_S2)
Base.USDJPY_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO2_EO6_UP_S2)
Base.USDJPY_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO1_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP1,"TP1_USDJPY_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP1_USDJPY_UP_S2_OCO2"));
};
Base.USDJPY_UP_S2_OCO2Sets1.Add( Base.USDJPY_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO2_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP2,"TP2_USDJPY_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP2_USDJPY_UP_S2_OCO2"));
};
Base.USDJPY_UP_S2_OCO2Sets2.Add( Base.USDJPY_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO3_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP3,"TP3_USDJPY_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP3_USDJPY_UP_S2_OCO2"));
};
Base.USDJPY_UP_S2_OCO2Sets3.Add( Base.USDJPY_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO4_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP4,"TP4_USDJPY_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP4_USDJPY_UP_S2_OCO2"));
};
Base.USDJPY_UP_S2_OCO2Sets4.Add( Base.USDJPY_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO5_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP5,"TP5_USDJPY_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP5_USDJPY_UP_S2_OCO2"));
};
Base.USDJPY_UP_S2_OCO2Sets5.Add( Base.USDJPY_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO2_EO6_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP6,"TP6_USDJPY_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP6_USDJPY_UP_S2_OCO2"));
};
Base.USDJPY_UP_S2_OCO2Sets6.Add( Base.USDJPY_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO2_EO6_UP_S2_ID = -1;
}
int USDJPY_OCO2S1_UP_S2 = 0;
for (; USDJPY_OCO2S1_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets1.Count; USDJPY_OCO2S1_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets1[USDJPY_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO2Sets1[USDJPY_OCO2S1_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO2Sets1.RemoveAt(USDJPY_OCO2S1_UP_S2);
USDJPY_OCO2S1_UP_S2 = 0;
break;
}
int USDJPY_OCO2S2_UP_S2 = 0;
for (; USDJPY_OCO2S2_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets2.Count; USDJPY_OCO2S2_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets2[USDJPY_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO2Sets2[USDJPY_OCO2S2_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO2Sets2.RemoveAt(USDJPY_OCO2S2_UP_S2);
USDJPY_OCO2S2_UP_S2 = 0;
break;
}
int USDJPY_OCO2S3_UP_S2 = 0;
for (; USDJPY_OCO2S3_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets3.Count; USDJPY_OCO2S3_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets3[USDJPY_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO2Sets3[USDJPY_OCO2S3_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO2Sets3.RemoveAt(USDJPY_OCO2S3_UP_S2);
USDJPY_OCO2S3_UP_S2 = 0;
break;
}
int USDJPY_OCO2S4_UP_S2 = 0;
for (; USDJPY_OCO2S4_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets4.Count; USDJPY_OCO2S4_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets4[USDJPY_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO2Sets4[USDJPY_OCO2S4_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO2Sets4.RemoveAt(USDJPY_OCO2S4_UP_S2);
USDJPY_OCO2S4_UP_S2 = 0;
break;
}
int USDJPY_OCO2S5_UP_S2 = 0;
for (; USDJPY_OCO2S5_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets5.Count; USDJPY_OCO2S5_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets5[USDJPY_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO2Sets5[USDJPY_OCO2S5_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO2Sets5.RemoveAt(USDJPY_OCO2S5_UP_S2);
USDJPY_OCO2S5_UP_S2 = 0;
break;
}
int USDJPY_OCO2S6_UP_S2 = 0;
for (; USDJPY_OCO2S6_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets6.Count; USDJPY_OCO2S6_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets6[USDJPY_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO2Sets6[USDJPY_OCO2S6_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO2Sets6.RemoveAt(USDJPY_OCO2S6_UP_S2);
USDJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO3_EO1_UP_S2)
Base.USDJPY_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO3_EO2_UP_S2)
Base.USDJPY_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO3_EO3_UP_S2)
Base.USDJPY_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO3_EO4_UP_S2)
Base.USDJPY_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO3_EO5_UP_S2)
Base.USDJPY_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO3_EO6_UP_S2)
Base.USDJPY_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO1_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP1,"TP1_USDJPY_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP1_USDJPY_UP_S2_OCO3"));
};
Base.USDJPY_UP_S2_OCO3Sets1.Add( Base.USDJPY_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO2_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP2,"TP2_USDJPY_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP2_USDJPY_UP_S2_OCO3"));
};
Base.USDJPY_UP_S2_OCO3Sets2.Add( Base.USDJPY_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO3_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP3,"TP3_USDJPY_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP3_USDJPY_UP_S2_OCO3"));
};
Base.USDJPY_UP_S2_OCO3Sets3.Add( Base.USDJPY_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO4_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP4,"TP4_USDJPY_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP4_USDJPY_UP_S2_OCO3"));
};
Base.USDJPY_UP_S2_OCO3Sets4.Add( Base.USDJPY_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO5_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP5,"TP5_USDJPY_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP5_USDJPY_UP_S2_OCO3"));
};
Base.USDJPY_UP_S2_OCO3Sets5.Add( Base.USDJPY_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO3_EO6_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP6,"TP6_USDJPY_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP6_USDJPY_UP_S2_OCO3"));
};
Base.USDJPY_UP_S2_OCO3Sets6.Add( Base.USDJPY_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO3_EO6_UP_S2_ID = -1;
}
int USDJPY_OCO3S1_UP_S2 = 0;
for (; USDJPY_OCO3S1_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets1.Count; USDJPY_OCO3S1_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets1[USDJPY_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO3Sets1[USDJPY_OCO3S1_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO3Sets1.RemoveAt(USDJPY_OCO3S1_UP_S2);
USDJPY_OCO3S1_UP_S2 = 0;
break;
}
int USDJPY_OCO3S2_UP_S2 = 0;
for (; USDJPY_OCO3S2_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets2.Count; USDJPY_OCO3S2_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets2[USDJPY_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO3Sets2[USDJPY_OCO3S2_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO3Sets2.RemoveAt(USDJPY_OCO3S2_UP_S2);
USDJPY_OCO3S2_UP_S2 = 0;
break;
}
int USDJPY_OCO3S3_UP_S2 = 0;
for (; USDJPY_OCO3S3_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets3.Count; USDJPY_OCO3S3_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets3[USDJPY_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO3Sets3[USDJPY_OCO3S3_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO3Sets3.RemoveAt(USDJPY_OCO3S3_UP_S2);
USDJPY_OCO3S3_UP_S2 = 0;
break;
}
int USDJPY_OCO3S4_UP_S2 = 0;
for (; USDJPY_OCO3S4_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets4.Count; USDJPY_OCO3S4_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets4[USDJPY_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO3Sets4[USDJPY_OCO3S4_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO3Sets4.RemoveAt(USDJPY_OCO3S4_UP_S2);
USDJPY_OCO3S4_UP_S2 = 0;
break;
}
int USDJPY_OCO3S5_UP_S2 = 0;
for (; USDJPY_OCO3S5_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets5.Count; USDJPY_OCO3S5_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets5[USDJPY_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO3Sets5[USDJPY_OCO3S5_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO3Sets5.RemoveAt(USDJPY_OCO3S5_UP_S2);
USDJPY_OCO3S5_UP_S2 = 0;
break;
}
int USDJPY_OCO3S6_UP_S2 = 0;
for (; USDJPY_OCO3S6_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets6.Count; USDJPY_OCO3S6_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets6[USDJPY_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO3Sets6[USDJPY_OCO3S6_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO3Sets6.RemoveAt(USDJPY_OCO3S6_UP_S2);
USDJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO4_EO1_UP_S2)
Base.USDJPY_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO4_EO2_UP_S2)
Base.USDJPY_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO4_EO3_UP_S2)
Base.USDJPY_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO4_EO4_UP_S2)
Base.USDJPY_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO4_EO5_UP_S2)
Base.USDJPY_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDJPY_OCO4_EO6_UP_S2)
Base.USDJPY_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO1_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP1,"TP1_USDJPY_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP1_USDJPY_UP_S2_OCO4"));
};
Base.USDJPY_UP_S2_OCO4Sets1.Add( Base.USDJPY_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO2_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP2,"TP2_USDJPY_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP2_USDJPY_UP_S2_OCO4"));
};
Base.USDJPY_UP_S2_OCO4Sets2.Add( Base.USDJPY_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO3_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP3,"TP3_USDJPY_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP3_USDJPY_UP_S2_OCO4"));
};
Base.USDJPY_UP_S2_OCO4Sets3.Add( Base.USDJPY_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO4_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP4,"TP4_USDJPY_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP4_USDJPY_UP_S2_OCO4"));
};
Base.USDJPY_UP_S2_OCO4Sets4.Add( Base.USDJPY_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO5_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP5,"TP5_USDJPY_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP5_USDJPY_UP_S2_OCO4"));
};
Base.USDJPY_UP_S2_OCO4Sets5.Add( Base.USDJPY_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDJPY_OCO4_EO6_UP_S2_ID)
{
Base.USDJPY_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDJPY_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDJPY_UP_S2_TP6,"TP6_USDJPY_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDJPY_UP_S2_SL,"SL_TP6_USDJPY_UP_S2_OCO4"));
};
Base.USDJPY_UP_S2_OCO4Sets6.Add( Base.USDJPY_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDJPY_OCO4_EO6_UP_S2_ID = -1;
}
int USDJPY_OCO4S1_UP_S2 = 0;
for (; USDJPY_OCO4S1_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets1.Count; USDJPY_OCO4S1_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets1[USDJPY_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO4Sets1[USDJPY_OCO4S1_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO4Sets1.RemoveAt(USDJPY_OCO4S1_UP_S2);
USDJPY_OCO4S1_UP_S2 = 0;
break;
}
int USDJPY_OCO4S2_UP_S2 = 0;
for (; USDJPY_OCO4S2_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets2.Count; USDJPY_OCO4S2_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets2[USDJPY_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO4Sets2[USDJPY_OCO4S2_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO4Sets2.RemoveAt(USDJPY_OCO4S2_UP_S2);
USDJPY_OCO4S2_UP_S2 = 0;
break;
}
int USDJPY_OCO4S3_UP_S2 = 0;
for (; USDJPY_OCO4S3_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets3.Count; USDJPY_OCO4S3_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets3[USDJPY_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO4Sets3[USDJPY_OCO4S3_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO4Sets3.RemoveAt(USDJPY_OCO4S3_UP_S2);
USDJPY_OCO4S3_UP_S2 = 0;
break;
}
int USDJPY_OCO4S4_UP_S2 = 0;
for (; USDJPY_OCO4S4_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets4.Count; USDJPY_OCO4S4_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets4[USDJPY_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO4Sets4[USDJPY_OCO4S4_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO4Sets4.RemoveAt(USDJPY_OCO4S4_UP_S2);
USDJPY_OCO4S4_UP_S2 = 0;
break;
}
int USDJPY_OCO4S5_UP_S2 = 0;
for (; USDJPY_OCO4S5_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets5.Count; USDJPY_OCO4S5_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets5[USDJPY_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO4Sets5[USDJPY_OCO4S5_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO4Sets5.RemoveAt(USDJPY_OCO4S5_UP_S2);
USDJPY_OCO4S5_UP_S2 = 0;
break;
}
int USDJPY_OCO4S6_UP_S2 = 0;
for (; USDJPY_OCO4S6_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets6.Count; USDJPY_OCO4S6_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets6[USDJPY_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDJPY_UP_S2_OCO4Sets6[USDJPY_OCO4S6_UP_S2].Filled();
Base.USDJPY_UP_S2_OCO4Sets6.RemoveAt(USDJPY_OCO4S6_UP_S2);
USDJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct USDCAD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public USDCAD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
}
if (Base.USDCAD_OCO1_EO1_UP_S2)
Base.USDCAD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO1_EO2_UP_S2)
Base.USDCAD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO1_EO3_UP_S2)
Base.USDCAD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO1_EO4_UP_S2)
Base.USDCAD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO1_EO5_UP_S2)
Base.USDCAD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO1_EO6_UP_S2)
Base.USDCAD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO1_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP1,"TP1_USDCAD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP1_USDCAD_UP_S2_OCO1"));
};
Base.USDCAD_UP_S2_OCO1Sets1.Add( Base.USDCAD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO2_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP2,"TP2_USDCAD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP2_USDCAD_UP_S2_OCO1"));
};
Base.USDCAD_UP_S2_OCO1Sets2.Add( Base.USDCAD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO3_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP3,"TP3_USDCAD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP3_USDCAD_UP_S2_OCO1"));
};
Base.USDCAD_UP_S2_OCO1Sets3.Add( Base.USDCAD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO4_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP4,"TP4_USDCAD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP4_USDCAD_UP_S2_OCO1"));
};
Base.USDCAD_UP_S2_OCO1Sets4.Add( Base.USDCAD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO5_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP5,"TP5_USDCAD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP5_USDCAD_UP_S2_OCO1"));
};
Base.USDCAD_UP_S2_OCO1Sets5.Add( Base.USDCAD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO6_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP6,"TP6_USDCAD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP6_USDCAD_UP_S2_OCO1"));
};
Base.USDCAD_UP_S2_OCO1Sets6.Add( Base.USDCAD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO6_UP_S2_ID = -1;
}
int USDCAD_OCO1S1_UP_S2 = 0;
for (; USDCAD_OCO1S1_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets1.Count; USDCAD_OCO1S1_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets1[USDCAD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO1Sets1[USDCAD_OCO1S1_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO1Sets1.RemoveAt(USDCAD_OCO1S1_UP_S2);
USDCAD_OCO1S1_UP_S2 = 0;
break;
}
int USDCAD_OCO1S2_UP_S2 = 0;
for (; USDCAD_OCO1S2_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets2.Count; USDCAD_OCO1S2_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets2[USDCAD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO1Sets2[USDCAD_OCO1S2_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO1Sets2.RemoveAt(USDCAD_OCO1S2_UP_S2);
USDCAD_OCO1S2_UP_S2 = 0;
break;
}
int USDCAD_OCO1S3_UP_S2 = 0;
for (; USDCAD_OCO1S3_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets3.Count; USDCAD_OCO1S3_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets3[USDCAD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO1Sets3[USDCAD_OCO1S3_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO1Sets3.RemoveAt(USDCAD_OCO1S3_UP_S2);
USDCAD_OCO1S3_UP_S2 = 0;
break;
}
int USDCAD_OCO1S4_UP_S2 = 0;
for (; USDCAD_OCO1S4_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets4.Count; USDCAD_OCO1S4_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets4[USDCAD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO1Sets4[USDCAD_OCO1S4_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO1Sets4.RemoveAt(USDCAD_OCO1S4_UP_S2);
USDCAD_OCO1S4_UP_S2 = 0;
break;
}
int USDCAD_OCO1S5_UP_S2 = 0;
for (; USDCAD_OCO1S5_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets5.Count; USDCAD_OCO1S5_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets5[USDCAD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO1Sets5[USDCAD_OCO1S5_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO1Sets5.RemoveAt(USDCAD_OCO1S5_UP_S2);
USDCAD_OCO1S5_UP_S2 = 0;
break;
}
int USDCAD_OCO1S6_UP_S2 = 0;
for (; USDCAD_OCO1S6_UP_S2 < Base.USDCAD_UP_S2_OCO1Sets6.Count; USDCAD_OCO1S6_UP_S2++)
if (Base.USDCAD_UP_S2_OCO1Sets6[USDCAD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO1Sets6[USDCAD_OCO1S6_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO1Sets6.RemoveAt(USDCAD_OCO1S6_UP_S2);
USDCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO2_EO1_UP_S2)
Base.USDCAD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO2_EO2_UP_S2)
Base.USDCAD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO2_EO3_UP_S2)
Base.USDCAD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO2_EO4_UP_S2)
Base.USDCAD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO2_EO5_UP_S2)
Base.USDCAD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO2_EO6_UP_S2)
Base.USDCAD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO1_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP1,"TP1_USDCAD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP1_USDCAD_UP_S2_OCO2"));
};
Base.USDCAD_UP_S2_OCO2Sets1.Add( Base.USDCAD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO2_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP2,"TP2_USDCAD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP2_USDCAD_UP_S2_OCO2"));
};
Base.USDCAD_UP_S2_OCO2Sets2.Add( Base.USDCAD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO3_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP3,"TP3_USDCAD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP3_USDCAD_UP_S2_OCO2"));
};
Base.USDCAD_UP_S2_OCO2Sets3.Add( Base.USDCAD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO4_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP4,"TP4_USDCAD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP4_USDCAD_UP_S2_OCO2"));
};
Base.USDCAD_UP_S2_OCO2Sets4.Add( Base.USDCAD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO5_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP5,"TP5_USDCAD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP5_USDCAD_UP_S2_OCO2"));
};
Base.USDCAD_UP_S2_OCO2Sets5.Add( Base.USDCAD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO6_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP6,"TP6_USDCAD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP6_USDCAD_UP_S2_OCO2"));
};
Base.USDCAD_UP_S2_OCO2Sets6.Add( Base.USDCAD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO6_UP_S2_ID = -1;
}
int USDCAD_OCO2S1_UP_S2 = 0;
for (; USDCAD_OCO2S1_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets1.Count; USDCAD_OCO2S1_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets1[USDCAD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO2Sets1[USDCAD_OCO2S1_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO2Sets1.RemoveAt(USDCAD_OCO2S1_UP_S2);
USDCAD_OCO2S1_UP_S2 = 0;
break;
}
int USDCAD_OCO2S2_UP_S2 = 0;
for (; USDCAD_OCO2S2_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets2.Count; USDCAD_OCO2S2_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets2[USDCAD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO2Sets2[USDCAD_OCO2S2_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO2Sets2.RemoveAt(USDCAD_OCO2S2_UP_S2);
USDCAD_OCO2S2_UP_S2 = 0;
break;
}
int USDCAD_OCO2S3_UP_S2 = 0;
for (; USDCAD_OCO2S3_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets3.Count; USDCAD_OCO2S3_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets3[USDCAD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO2Sets3[USDCAD_OCO2S3_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO2Sets3.RemoveAt(USDCAD_OCO2S3_UP_S2);
USDCAD_OCO2S3_UP_S2 = 0;
break;
}
int USDCAD_OCO2S4_UP_S2 = 0;
for (; USDCAD_OCO2S4_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets4.Count; USDCAD_OCO2S4_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets4[USDCAD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO2Sets4[USDCAD_OCO2S4_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO2Sets4.RemoveAt(USDCAD_OCO2S4_UP_S2);
USDCAD_OCO2S4_UP_S2 = 0;
break;
}
int USDCAD_OCO2S5_UP_S2 = 0;
for (; USDCAD_OCO2S5_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets5.Count; USDCAD_OCO2S5_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets5[USDCAD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO2Sets5[USDCAD_OCO2S5_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO2Sets5.RemoveAt(USDCAD_OCO2S5_UP_S2);
USDCAD_OCO2S5_UP_S2 = 0;
break;
}
int USDCAD_OCO2S6_UP_S2 = 0;
for (; USDCAD_OCO2S6_UP_S2 < Base.USDCAD_UP_S2_OCO2Sets6.Count; USDCAD_OCO2S6_UP_S2++)
if (Base.USDCAD_UP_S2_OCO2Sets6[USDCAD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO2Sets6[USDCAD_OCO2S6_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO2Sets6.RemoveAt(USDCAD_OCO2S6_UP_S2);
USDCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO3_EO1_UP_S2)
Base.USDCAD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO3_EO2_UP_S2)
Base.USDCAD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO3_EO3_UP_S2)
Base.USDCAD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO3_EO4_UP_S2)
Base.USDCAD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO3_EO5_UP_S2)
Base.USDCAD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO3_EO6_UP_S2)
Base.USDCAD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO1_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP1,"TP1_USDCAD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP1_USDCAD_UP_S2_OCO3"));
};
Base.USDCAD_UP_S2_OCO3Sets1.Add( Base.USDCAD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO2_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP2,"TP2_USDCAD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP2_USDCAD_UP_S2_OCO3"));
};
Base.USDCAD_UP_S2_OCO3Sets2.Add( Base.USDCAD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO3_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP3,"TP3_USDCAD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP3_USDCAD_UP_S2_OCO3"));
};
Base.USDCAD_UP_S2_OCO3Sets3.Add( Base.USDCAD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO4_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP4,"TP4_USDCAD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP4_USDCAD_UP_S2_OCO3"));
};
Base.USDCAD_UP_S2_OCO3Sets4.Add( Base.USDCAD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO5_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP5,"TP5_USDCAD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP5_USDCAD_UP_S2_OCO3"));
};
Base.USDCAD_UP_S2_OCO3Sets5.Add( Base.USDCAD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO6_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP6,"TP6_USDCAD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP6_USDCAD_UP_S2_OCO3"));
};
Base.USDCAD_UP_S2_OCO3Sets6.Add( Base.USDCAD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO6_UP_S2_ID = -1;
}
int USDCAD_OCO3S1_UP_S2 = 0;
for (; USDCAD_OCO3S1_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets1.Count; USDCAD_OCO3S1_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets1[USDCAD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO3Sets1[USDCAD_OCO3S1_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO3Sets1.RemoveAt(USDCAD_OCO3S1_UP_S2);
USDCAD_OCO3S1_UP_S2 = 0;
break;
}
int USDCAD_OCO3S2_UP_S2 = 0;
for (; USDCAD_OCO3S2_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets2.Count; USDCAD_OCO3S2_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets2[USDCAD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO3Sets2[USDCAD_OCO3S2_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO3Sets2.RemoveAt(USDCAD_OCO3S2_UP_S2);
USDCAD_OCO3S2_UP_S2 = 0;
break;
}
int USDCAD_OCO3S3_UP_S2 = 0;
for (; USDCAD_OCO3S3_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets3.Count; USDCAD_OCO3S3_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets3[USDCAD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO3Sets3[USDCAD_OCO3S3_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO3Sets3.RemoveAt(USDCAD_OCO3S3_UP_S2);
USDCAD_OCO3S3_UP_S2 = 0;
break;
}
int USDCAD_OCO3S4_UP_S2 = 0;
for (; USDCAD_OCO3S4_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets4.Count; USDCAD_OCO3S4_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets4[USDCAD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO3Sets4[USDCAD_OCO3S4_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO3Sets4.RemoveAt(USDCAD_OCO3S4_UP_S2);
USDCAD_OCO3S4_UP_S2 = 0;
break;
}
int USDCAD_OCO3S5_UP_S2 = 0;
for (; USDCAD_OCO3S5_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets5.Count; USDCAD_OCO3S5_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets5[USDCAD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO3Sets5[USDCAD_OCO3S5_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO3Sets5.RemoveAt(USDCAD_OCO3S5_UP_S2);
USDCAD_OCO3S5_UP_S2 = 0;
break;
}
int USDCAD_OCO3S6_UP_S2 = 0;
for (; USDCAD_OCO3S6_UP_S2 < Base.USDCAD_UP_S2_OCO3Sets6.Count; USDCAD_OCO3S6_UP_S2++)
if (Base.USDCAD_UP_S2_OCO3Sets6[USDCAD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO3Sets6[USDCAD_OCO3S6_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO3Sets6.RemoveAt(USDCAD_OCO3S6_UP_S2);
USDCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO4_EO1_UP_S2)
Base.USDCAD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO4_EO2_UP_S2)
Base.USDCAD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO4_EO3_UP_S2)
Base.USDCAD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO4_EO4_UP_S2)
Base.USDCAD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO4_EO5_UP_S2)
Base.USDCAD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO4_EO6_UP_S2)
Base.USDCAD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO1_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP1,"TP1_USDCAD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP1_USDCAD_UP_S2_OCO4"));
};
Base.USDCAD_UP_S2_OCO4Sets1.Add( Base.USDCAD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO2_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP2,"TP2_USDCAD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP2_USDCAD_UP_S2_OCO4"));
};
Base.USDCAD_UP_S2_OCO4Sets2.Add( Base.USDCAD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO3_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP3,"TP3_USDCAD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP3_USDCAD_UP_S2_OCO4"));
};
Base.USDCAD_UP_S2_OCO4Sets3.Add( Base.USDCAD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO4_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP4,"TP4_USDCAD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP4_USDCAD_UP_S2_OCO4"));
};
Base.USDCAD_UP_S2_OCO4Sets4.Add( Base.USDCAD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO5_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP5,"TP5_USDCAD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP5_USDCAD_UP_S2_OCO4"));
};
Base.USDCAD_UP_S2_OCO4Sets5.Add( Base.USDCAD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO6_UP_S2_ID)
{
Base.USDCAD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_UP_S2_TP6,"TP6_USDCAD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_UP_S2_SL,"SL_TP6_USDCAD_UP_S2_OCO4"));
};
Base.USDCAD_UP_S2_OCO4Sets6.Add( Base.USDCAD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO6_UP_S2_ID = -1;
}
int USDCAD_OCO4S1_UP_S2 = 0;
for (; USDCAD_OCO4S1_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets1.Count; USDCAD_OCO4S1_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets1[USDCAD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO4Sets1[USDCAD_OCO4S1_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO4Sets1.RemoveAt(USDCAD_OCO4S1_UP_S2);
USDCAD_OCO4S1_UP_S2 = 0;
break;
}
int USDCAD_OCO4S2_UP_S2 = 0;
for (; USDCAD_OCO4S2_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets2.Count; USDCAD_OCO4S2_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets2[USDCAD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO4Sets2[USDCAD_OCO4S2_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO4Sets2.RemoveAt(USDCAD_OCO4S2_UP_S2);
USDCAD_OCO4S2_UP_S2 = 0;
break;
}
int USDCAD_OCO4S3_UP_S2 = 0;
for (; USDCAD_OCO4S3_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets3.Count; USDCAD_OCO4S3_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets3[USDCAD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO4Sets3[USDCAD_OCO4S3_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO4Sets3.RemoveAt(USDCAD_OCO4S3_UP_S2);
USDCAD_OCO4S3_UP_S2 = 0;
break;
}
int USDCAD_OCO4S4_UP_S2 = 0;
for (; USDCAD_OCO4S4_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets4.Count; USDCAD_OCO4S4_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets4[USDCAD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO4Sets4[USDCAD_OCO4S4_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO4Sets4.RemoveAt(USDCAD_OCO4S4_UP_S2);
USDCAD_OCO4S4_UP_S2 = 0;
break;
}
int USDCAD_OCO4S5_UP_S2 = 0;
for (; USDCAD_OCO4S5_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets5.Count; USDCAD_OCO4S5_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets5[USDCAD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO4Sets5[USDCAD_OCO4S5_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO4Sets5.RemoveAt(USDCAD_OCO4S5_UP_S2);
USDCAD_OCO4S5_UP_S2 = 0;
break;
}
int USDCAD_OCO4S6_UP_S2 = 0;
for (; USDCAD_OCO4S6_UP_S2 < Base.USDCAD_UP_S2_OCO4Sets6.Count; USDCAD_OCO4S6_UP_S2++)
if (Base.USDCAD_UP_S2_OCO4Sets6[USDCAD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_UP_S2_OCO4Sets6[USDCAD_OCO4S6_UP_S2].Filled();
Base.USDCAD_UP_S2_OCO4Sets6.RemoveAt(USDCAD_OCO4S6_UP_S2);
USDCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct GBPCHF_OCO1_DOWN_S2
{
public GBPCHF_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCHF_OCO1_UP_S2
{
public GBPCHF_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPCHF_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPCHF_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPCHF_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPCHF_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPCHF_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPCHF_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPCHF_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPCHF_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCHF_OCO2_DOWN_S2
{
public GBPCHF_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCHF_OCO2_UP_S2
{
public GBPCHF_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPCHF_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPCHF_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPCHF_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPCHF_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPCHF_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPCHF_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPCHF_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPCHF_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCHF OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCHF_OCO3_DOWN_S2
{
public GBPCHF_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCHF_OCO3_UP_S2
{
public GBPCHF_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPCHF_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPCHF_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPCHF_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPCHF_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPCHF_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPCHF_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPCHF_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPCHF_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCHF OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCHF_OCO4_DOWN_S2
{
public GBPCHF_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCHF_OCO4_UP_S2
{
public GBPCHF_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPCHF_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPCHF_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPCHF_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPCHF_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPCHF_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPCHF_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPCHF_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPCHF_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCHF OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _EURCHF;
///oco1 up
public static OrderTicket EURCHF_OCO1_MO1_UP_S2;
public static OrderTicket EURCHF_OCO1_MO2_UP_S2;
public static OrderTicket EURCHF_OCO1_MO3_UP_S2;
public static OrderTicket EURCHF_OCO1_MO4_UP_S2;
public static OrderTicket EURCHF_OCO1_MO5_UP_S2;
public static OrderTicket EURCHF_OCO1_MO6_UP_S2;
public static int EURCHF_OCO1_EO1_UP_S2_ID ;
public static int EURCHF_OCO1_EO2_UP_S2_ID ;
public static int EURCHF_OCO1_EO3_UP_S2_ID ;
public static int EURCHF_OCO1_EO4_UP_S2_ID ;
public static int EURCHF_OCO1_EO5_UP_S2_ID ;
public static int EURCHF_OCO1_EO6_UP_S2_ID ;
public static bool EURCHF_OCO1_EO1_UP_S2 ;
public static bool EURCHF_OCO1_EO2_UP_S2 ;
public static bool EURCHF_OCO1_EO3_UP_S2 ;
public static bool EURCHF_OCO1_EO4_UP_S2 ;
public static bool EURCHF_OCO1_EO5_UP_S2 ;
public static bool EURCHF_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_UP_S2> EURCHF_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_UP_S2> EURCHF_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_UP_S2> EURCHF_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_UP_S2> EURCHF_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_UP_S2> EURCHF_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_UP_S2> EURCHF_OOFE_OCO1_UP_S2_6 ;
public static EURCHF_OCO1_UP_S2 EURCHF_PFO_OCO1_UP_S2_1 ;
public static EURCHF_OCO1_UP_S2 EURCHF_PFO_OCO1_UP_S2_2 ;
public static EURCHF_OCO1_UP_S2 EURCHF_PFO_OCO1_UP_S2_3 ;
public static EURCHF_OCO1_UP_S2 EURCHF_PFO_OCO1_UP_S2_4 ;
public static EURCHF_OCO1_UP_S2 EURCHF_PFO_OCO1_UP_S2_5 ;
public static EURCHF_OCO1_UP_S2 EURCHF_PFO_OCO1_UP_S2_6 ;
public static List<EURCHF_OCO1_UP_S2> EURCHF_UP_S2_OCO1Sets1 = new List<EURCHF_OCO1_UP_S2>();
public static List<EURCHF_OCO1_UP_S2> EURCHF_UP_S2_OCO1Sets2 = new List<EURCHF_OCO1_UP_S2>();
public static List<EURCHF_OCO1_UP_S2> EURCHF_UP_S2_OCO1Sets3 = new List<EURCHF_OCO1_UP_S2>();
public static List<EURCHF_OCO1_UP_S2> EURCHF_UP_S2_OCO1Sets4 = new List<EURCHF_OCO1_UP_S2>();
public static List<EURCHF_OCO1_UP_S2> EURCHF_UP_S2_OCO1Sets5 = new List<EURCHF_OCO1_UP_S2>();
public static List<EURCHF_OCO1_UP_S2> EURCHF_UP_S2_OCO1Sets6 = new List<EURCHF_OCO1_UP_S2>();
public static bool EURCHF_OCO1_UP_S2_IsReady = true;
public static bool EURCHF_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket EURCHF_OCO1_MO1_DOWN_S2 ;
public static OrderTicket EURCHF_OCO1_MO2_DOWN_S2 ;
public static OrderTicket EURCHF_OCO1_MO3_DOWN_S2 ;
public static OrderTicket EURCHF_OCO1_MO4_DOWN_S2 ;
public static OrderTicket EURCHF_OCO1_MO5_DOWN_S2 ;
public static OrderTicket EURCHF_OCO1_MO6_DOWN_S2 ;
public static int EURCHF_OCO1_EO1_DOWN_S2_ID ;
public static int EURCHF_OCO1_EO2_DOWN_S2_ID ;
public static int EURCHF_OCO1_EO3_DOWN_S2_ID ;
public static int EURCHF_OCO1_EO4_DOWN_S2_ID ;
public static int EURCHF_OCO1_EO5_DOWN_S2_ID ;
public static int EURCHF_OCO1_EO6_DOWN_S2_ID ;
public static bool EURCHF_OCO1_EO1_DOWN_S2 ;
public static bool EURCHF_OCO1_EO2_DOWN_S2 ;
public static bool EURCHF_OCO1_EO3_DOWN_S2 ;
public static bool EURCHF_OCO1_EO4_DOWN_S2 ;
public static bool EURCHF_OCO1_EO5_DOWN_S2 ;
public static bool EURCHF_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_DOWN_S2> EURCHF_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_DOWN_S2> EURCHF_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_DOWN_S2> EURCHF_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_DOWN_S2> EURCHF_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_DOWN_S2> EURCHF_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO1_DOWN_S2> EURCHF_OOFE_OCO1_DOWN_S2_6 ;
public static EURCHF_OCO1_DOWN_S2 EURCHF_PFO_OCO1_DOWN_S2_1 ;
public static EURCHF_OCO1_DOWN_S2 EURCHF_PFO_OCO1_DOWN_S2_2 ;
public static EURCHF_OCO1_DOWN_S2 EURCHF_PFO_OCO1_DOWN_S2_3 ;
public static EURCHF_OCO1_DOWN_S2 EURCHF_PFO_OCO1_DOWN_S2_4 ;
public static EURCHF_OCO1_DOWN_S2 EURCHF_PFO_OCO1_DOWN_S2_5 ;
public static EURCHF_OCO1_DOWN_S2 EURCHF_PFO_OCO1_DOWN_S2_6 ;
public static List<EURCHF_OCO1_DOWN_S2> EURCHF_DOWN_S2_OCO1Sets1 = new List<EURCHF_OCO1_DOWN_S2>();
public static List<EURCHF_OCO1_DOWN_S2> EURCHF_DOWN_S2_OCO1Sets2 = new List<EURCHF_OCO1_DOWN_S2>();
public static List<EURCHF_OCO1_DOWN_S2> EURCHF_DOWN_S2_OCO1Sets3 = new List<EURCHF_OCO1_DOWN_S2>();
public static List<EURCHF_OCO1_DOWN_S2> EURCHF_DOWN_S2_OCO1Sets4 = new List<EURCHF_OCO1_DOWN_S2>();
public static List<EURCHF_OCO1_DOWN_S2> EURCHF_DOWN_S2_OCO1Sets5 = new List<EURCHF_OCO1_DOWN_S2>();
public static List<EURCHF_OCO1_DOWN_S2> EURCHF_DOWN_S2_OCO1Sets6 = new List<EURCHF_OCO1_DOWN_S2>();
public static bool EURCHF_OCO1_DOWN_S2_IsReady = true;
public static bool EURCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket EURCHF_OCO2_MO1_UP_S2 ;
public static OrderTicket EURCHF_OCO2_MO2_UP_S2 ;
public static OrderTicket EURCHF_OCO2_MO3_UP_S2 ;
public static OrderTicket EURCHF_OCO2_MO4_UP_S2 ;
public static OrderTicket EURCHF_OCO2_MO5_UP_S2 ;
public static OrderTicket EURCHF_OCO2_MO6_UP_S2 ;
public static int EURCHF_OCO2_EO1_UP_S2_ID ;
public static int EURCHF_OCO2_EO2_UP_S2_ID ;
public static int EURCHF_OCO2_EO3_UP_S2_ID ;
public static int EURCHF_OCO2_EO4_UP_S2_ID ;
public static int EURCHF_OCO2_EO5_UP_S2_ID ;
public static int EURCHF_OCO2_EO6_UP_S2_ID ;
public static bool EURCHF_OCO2_EO1_UP_S2 ;
public static bool EURCHF_OCO2_EO2_UP_S2 ;
public static bool EURCHF_OCO2_EO3_UP_S2 ;
public static bool EURCHF_OCO2_EO4_UP_S2 ;
public static bool EURCHF_OCO2_EO5_UP_S2 ;
public static bool EURCHF_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_UP_S2> EURCHF_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_UP_S2> EURCHF_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_UP_S2> EURCHF_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_UP_S2> EURCHF_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_UP_S2> EURCHF_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_UP_S2> EURCHF_OOFE_OCO2_UP_S2_6 ;
public static EURCHF_OCO2_UP_S2 EURCHF_PFO_OCO2_UP_S2_1 ;
public static EURCHF_OCO2_UP_S2 EURCHF_PFO_OCO2_UP_S2_2 ;
public static EURCHF_OCO2_UP_S2 EURCHF_PFO_OCO2_UP_S2_3 ;
public static EURCHF_OCO2_UP_S2 EURCHF_PFO_OCO2_UP_S2_4 ;
public static EURCHF_OCO2_UP_S2 EURCHF_PFO_OCO2_UP_S2_5 ;
public static EURCHF_OCO2_UP_S2 EURCHF_PFO_OCO2_UP_S2_6 ;
public static List<EURCHF_OCO2_UP_S2> EURCHF_UP_S2_OCO2Sets1 = new List<EURCHF_OCO2_UP_S2>();
public static List<EURCHF_OCO2_UP_S2> EURCHF_UP_S2_OCO2Sets2 = new List<EURCHF_OCO2_UP_S2>();
public static List<EURCHF_OCO2_UP_S2> EURCHF_UP_S2_OCO2Sets3 = new List<EURCHF_OCO2_UP_S2>();
public static List<EURCHF_OCO2_UP_S2> EURCHF_UP_S2_OCO2Sets4 = new List<EURCHF_OCO2_UP_S2>();
public static List<EURCHF_OCO2_UP_S2> EURCHF_UP_S2_OCO2Sets5 = new List<EURCHF_OCO2_UP_S2>();
public static List<EURCHF_OCO2_UP_S2> EURCHF_UP_S2_OCO2Sets6 = new List<EURCHF_OCO2_UP_S2>();
public static bool EURCHF_OCO2_UP_S2_IsReady = true;
public static bool EURCHF_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket EURCHF_OCO2_MO1_DOWN_S2 ;
public static OrderTicket EURCHF_OCO2_MO2_DOWN_S2 ;
public static OrderTicket EURCHF_OCO2_MO3_DOWN_S2 ;
public static OrderTicket EURCHF_OCO2_MO4_DOWN_S2 ;
public static OrderTicket EURCHF_OCO2_MO5_DOWN_S2 ;
public static OrderTicket EURCHF_OCO2_MO6_DOWN_S2 ;
public static int EURCHF_OCO2_EO1_DOWN_S2_ID ;
public static int EURCHF_OCO2_EO2_DOWN_S2_ID ;
public static int EURCHF_OCO2_EO3_DOWN_S2_ID ;
public static int EURCHF_OCO2_EO4_DOWN_S2_ID ;
public static int EURCHF_OCO2_EO5_DOWN_S2_ID ;
public static int EURCHF_OCO2_EO6_DOWN_S2_ID ;
public static bool EURCHF_OCO2_EO1_DOWN_S2 ;
public static bool EURCHF_OCO2_EO2_DOWN_S2 ;
public static bool EURCHF_OCO2_EO3_DOWN_S2 ;
public static bool EURCHF_OCO2_EO4_DOWN_S2 ;
public static bool EURCHF_OCO2_EO5_DOWN_S2 ;
public static bool EURCHF_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_DOWN_S2> EURCHF_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_DOWN_S2> EURCHF_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_DOWN_S2> EURCHF_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_DOWN_S2> EURCHF_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_DOWN_S2> EURCHF_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO2_DOWN_S2> EURCHF_OOFE_OCO2_DOWN_S2_6 ;
public static EURCHF_OCO2_DOWN_S2 EURCHF_PFO_OCO2_DOWN_S2_1 ;
public static EURCHF_OCO2_DOWN_S2 EURCHF_PFO_OCO2_DOWN_S2_2 ;
public static EURCHF_OCO2_DOWN_S2 EURCHF_PFO_OCO2_DOWN_S2_3 ;
public static EURCHF_OCO2_DOWN_S2 EURCHF_PFO_OCO2_DOWN_S2_4 ;
public static EURCHF_OCO2_DOWN_S2 EURCHF_PFO_OCO2_DOWN_S2_5 ;
public static EURCHF_OCO2_DOWN_S2 EURCHF_PFO_OCO2_DOWN_S2_6 ;
public static List<EURCHF_OCO2_DOWN_S2> EURCHF_DOWN_S2_OCO2Sets1 = new List<EURCHF_OCO2_DOWN_S2>();
public static List<EURCHF_OCO2_DOWN_S2> EURCHF_DOWN_S2_OCO2Sets2 = new List<EURCHF_OCO2_DOWN_S2>();
public static List<EURCHF_OCO2_DOWN_S2> EURCHF_DOWN_S2_OCO2Sets3 = new List<EURCHF_OCO2_DOWN_S2>();
public static List<EURCHF_OCO2_DOWN_S2> EURCHF_DOWN_S2_OCO2Sets4 = new List<EURCHF_OCO2_DOWN_S2>();
public static List<EURCHF_OCO2_DOWN_S2> EURCHF_DOWN_S2_OCO2Sets5 = new List<EURCHF_OCO2_DOWN_S2>();
public static List<EURCHF_OCO2_DOWN_S2> EURCHF_DOWN_S2_OCO2Sets6 = new List<EURCHF_OCO2_DOWN_S2>();
public static bool EURCHF_OCO2_DOWN_S2_IsReady = true;
public static bool EURCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket EURCHF_OCO3_MO1_UP_S2 ;
public static OrderTicket EURCHF_OCO3_MO2_UP_S2 ;
public static OrderTicket EURCHF_OCO3_MO3_UP_S2 ;
public static OrderTicket EURCHF_OCO3_MO4_UP_S2 ;
public static OrderTicket EURCHF_OCO3_MO5_UP_S2 ;
public static OrderTicket EURCHF_OCO3_MO6_UP_S2 ;
public static int EURCHF_OCO3_EO1_UP_S2_ID ;
public static int EURCHF_OCO3_EO2_UP_S2_ID ;
public static int EURCHF_OCO3_EO3_UP_S2_ID ;
public static int EURCHF_OCO3_EO4_UP_S2_ID ;
public static int EURCHF_OCO3_EO5_UP_S2_ID ;
public static int EURCHF_OCO3_EO6_UP_S2_ID ;
public static bool EURCHF_OCO3_EO1_UP_S2 ;
public static bool EURCHF_OCO3_EO2_UP_S2 ;
public static bool EURCHF_OCO3_EO3_UP_S2 ;
public static bool EURCHF_OCO3_EO4_UP_S2 ;
public static bool EURCHF_OCO3_EO5_UP_S2 ;
public static bool EURCHF_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_UP_S2> EURCHF_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_UP_S2> EURCHF_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_UP_S2> EURCHF_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_UP_S2> EURCHF_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_UP_S2> EURCHF_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_UP_S2> EURCHF_OOFE_OCO3_UP_S2_6 ;
public static EURCHF_OCO3_UP_S2 EURCHF_PFO_OCO3_UP_S2_1 ;
public static EURCHF_OCO3_UP_S2 EURCHF_PFO_OCO3_UP_S2_2 ;
public static EURCHF_OCO3_UP_S2 EURCHF_PFO_OCO3_UP_S2_3 ;
public static EURCHF_OCO3_UP_S2 EURCHF_PFO_OCO3_UP_S2_4 ;
public static EURCHF_OCO3_UP_S2 EURCHF_PFO_OCO3_UP_S2_5 ;
public static EURCHF_OCO3_UP_S2 EURCHF_PFO_OCO3_UP_S2_6 ;
public static List<EURCHF_OCO3_UP_S2> EURCHF_UP_S2_OCO3Sets1 = new List<EURCHF_OCO3_UP_S2>();
public static List<EURCHF_OCO3_UP_S2> EURCHF_UP_S2_OCO3Sets2 = new List<EURCHF_OCO3_UP_S2>();
public static List<EURCHF_OCO3_UP_S2> EURCHF_UP_S2_OCO3Sets3 = new List<EURCHF_OCO3_UP_S2>();
public static List<EURCHF_OCO3_UP_S2> EURCHF_UP_S2_OCO3Sets4 = new List<EURCHF_OCO3_UP_S2>();
public static List<EURCHF_OCO3_UP_S2> EURCHF_UP_S2_OCO3Sets5 = new List<EURCHF_OCO3_UP_S2>();
public static List<EURCHF_OCO3_UP_S2> EURCHF_UP_S2_OCO3Sets6 = new List<EURCHF_OCO3_UP_S2>();
public static bool EURCHF_OCO3_UP_S2_IsReady = true;
public static bool EURCHF_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket EURCHF_OCO3_MO1_DOWN_S2 ;
public static OrderTicket EURCHF_OCO3_MO2_DOWN_S2 ;
public static OrderTicket EURCHF_OCO3_MO3_DOWN_S2 ;
public static OrderTicket EURCHF_OCO3_MO4_DOWN_S2 ;
public static OrderTicket EURCHF_OCO3_MO5_DOWN_S2 ;
public static OrderTicket EURCHF_OCO3_MO6_DOWN_S2 ;
public static int EURCHF_OCO3_EO1_DOWN_S2_ID ;
public static int EURCHF_OCO3_EO2_DOWN_S2_ID ;
public static int EURCHF_OCO3_EO3_DOWN_S2_ID ;
public static int EURCHF_OCO3_EO4_DOWN_S2_ID ;
public static int EURCHF_OCO3_EO5_DOWN_S2_ID ;
public static int EURCHF_OCO3_EO6_DOWN_S2_ID ;
public static bool EURCHF_OCO3_EO1_DOWN_S2 ;
public static bool EURCHF_OCO3_EO2_DOWN_S2 ;
public static bool EURCHF_OCO3_EO3_DOWN_S2 ;
public static bool EURCHF_OCO3_EO4_DOWN_S2 ;
public static bool EURCHF_OCO3_EO5_DOWN_S2 ;
public static bool EURCHF_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_DOWN_S2> EURCHF_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_DOWN_S2> EURCHF_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_DOWN_S2> EURCHF_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_DOWN_S2> EURCHF_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_DOWN_S2> EURCHF_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO3_DOWN_S2> EURCHF_OOFE_OCO3_DOWN_S2_6 ;
public static EURCHF_OCO3_DOWN_S2 EURCHF_PFO_OCO3_DOWN_S2_1 ;
public static EURCHF_OCO3_DOWN_S2 EURCHF_PFO_OCO3_DOWN_S2_2 ;
public static EURCHF_OCO3_DOWN_S2 EURCHF_PFO_OCO3_DOWN_S2_3 ;
public static EURCHF_OCO3_DOWN_S2 EURCHF_PFO_OCO3_DOWN_S2_4 ;
public static EURCHF_OCO3_DOWN_S2 EURCHF_PFO_OCO3_DOWN_S2_5 ;
public static EURCHF_OCO3_DOWN_S2 EURCHF_PFO_OCO3_DOWN_S2_6 ;
public static List<EURCHF_OCO3_DOWN_S2> EURCHF_DOWN_S2_OCO3Sets1 = new List<EURCHF_OCO3_DOWN_S2>();
public static List<EURCHF_OCO3_DOWN_S2> EURCHF_DOWN_S2_OCO3Sets2 = new List<EURCHF_OCO3_DOWN_S2>();
public static List<EURCHF_OCO3_DOWN_S2> EURCHF_DOWN_S2_OCO3Sets3 = new List<EURCHF_OCO3_DOWN_S2>();
public static List<EURCHF_OCO3_DOWN_S2> EURCHF_DOWN_S2_OCO3Sets4 = new List<EURCHF_OCO3_DOWN_S2>();
public static List<EURCHF_OCO3_DOWN_S2> EURCHF_DOWN_S2_OCO3Sets5 = new List<EURCHF_OCO3_DOWN_S2>();
public static List<EURCHF_OCO3_DOWN_S2> EURCHF_DOWN_S2_OCO3Sets6 = new List<EURCHF_OCO3_DOWN_S2>();
public static bool EURCHF_OCO3_DOWN_S2_IsReady = true;
public static bool EURCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket EURCHF_OCO4_MO1_UP_S2 ;
public static OrderTicket EURCHF_OCO4_MO2_UP_S2 ;
public static OrderTicket EURCHF_OCO4_MO3_UP_S2 ;
public static OrderTicket EURCHF_OCO4_MO4_UP_S2 ;
public static OrderTicket EURCHF_OCO4_MO5_UP_S2 ;
public static OrderTicket EURCHF_OCO4_MO6_UP_S2 ;
public static int EURCHF_OCO4_EO1_UP_S2_ID ;
public static int EURCHF_OCO4_EO2_UP_S2_ID ;
public static int EURCHF_OCO4_EO3_UP_S2_ID ;
public static int EURCHF_OCO4_EO4_UP_S2_ID ;
public static int EURCHF_OCO4_EO5_UP_S2_ID ;
public static int EURCHF_OCO4_EO6_UP_S2_ID ;
public static bool EURCHF_OCO4_EO1_UP_S2 ;
public static bool EURCHF_OCO4_EO2_UP_S2 ;
public static bool EURCHF_OCO4_EO3_UP_S2 ;
public static bool EURCHF_OCO4_EO4_UP_S2 ;
public static bool EURCHF_OCO4_EO5_UP_S2 ;
public static bool EURCHF_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_UP_S2> EURCHF_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_UP_S2> EURCHF_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_UP_S2> EURCHF_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_UP_S2> EURCHF_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_UP_S2> EURCHF_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_UP_S2> EURCHF_OOFE_OCO4_UP_S2_6 ;
public static EURCHF_OCO4_UP_S2 EURCHF_PFO_OCO4_UP_S2_1 ;
public static EURCHF_OCO4_UP_S2 EURCHF_PFO_OCO4_UP_S2_2 ;
public static EURCHF_OCO4_UP_S2 EURCHF_PFO_OCO4_UP_S2_3 ;
public static EURCHF_OCO4_UP_S2 EURCHF_PFO_OCO4_UP_S2_4 ;
public static EURCHF_OCO4_UP_S2 EURCHF_PFO_OCO4_UP_S2_5 ;
public static EURCHF_OCO4_UP_S2 EURCHF_PFO_OCO4_UP_S2_6 ;
public static List<EURCHF_OCO4_UP_S2> EURCHF_UP_S2_OCO4Sets1 = new List<EURCHF_OCO4_UP_S2>();
public static List<EURCHF_OCO4_UP_S2> EURCHF_UP_S2_OCO4Sets2 = new List<EURCHF_OCO4_UP_S2>();
public static List<EURCHF_OCO4_UP_S2> EURCHF_UP_S2_OCO4Sets3 = new List<EURCHF_OCO4_UP_S2>();
public static List<EURCHF_OCO4_UP_S2> EURCHF_UP_S2_OCO4Sets4 = new List<EURCHF_OCO4_UP_S2>();
public static List<EURCHF_OCO4_UP_S2> EURCHF_UP_S2_OCO4Sets5 = new List<EURCHF_OCO4_UP_S2>();
public static List<EURCHF_OCO4_UP_S2> EURCHF_UP_S2_OCO4Sets6 = new List<EURCHF_OCO4_UP_S2>();
public static bool EURCHF_OCO4_UP_S2_IsReady = true;
public static bool EURCHF_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket EURCHF_OCO4_MO1_DOWN_S2 ;
public static OrderTicket EURCHF_OCO4_MO2_DOWN_S2 ;
public static OrderTicket EURCHF_OCO4_MO3_DOWN_S2 ;
public static OrderTicket EURCHF_OCO4_MO4_DOWN_S2 ;
public static OrderTicket EURCHF_OCO4_MO5_DOWN_S2 ;
public static OrderTicket EURCHF_OCO4_MO6_DOWN_S2 ;
public static int EURCHF_OCO4_EO1_DOWN_S2_ID ;
public static int EURCHF_OCO4_EO2_DOWN_S2_ID ;
public static int EURCHF_OCO4_EO3_DOWN_S2_ID ;
public static int EURCHF_OCO4_EO4_DOWN_S2_ID ;
public static int EURCHF_OCO4_EO5_DOWN_S2_ID ;
public static int EURCHF_OCO4_EO6_DOWN_S2_ID ;
public static bool EURCHF_OCO4_EO1_DOWN_S2 ;
public static bool EURCHF_OCO4_EO2_DOWN_S2 ;
public static bool EURCHF_OCO4_EO3_DOWN_S2 ;
public static bool EURCHF_OCO4_EO4_DOWN_S2 ;
public static bool EURCHF_OCO4_EO5_DOWN_S2 ;
public static bool EURCHF_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_DOWN_S2> EURCHF_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_DOWN_S2> EURCHF_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_DOWN_S2> EURCHF_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_DOWN_S2> EURCHF_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_DOWN_S2> EURCHF_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURCHF_OCO4_DOWN_S2> EURCHF_OOFE_OCO4_DOWN_S2_6 ;
public static EURCHF_OCO4_DOWN_S2 EURCHF_PFO_OCO4_DOWN_S2_1 ;
public static EURCHF_OCO4_DOWN_S2 EURCHF_PFO_OCO4_DOWN_S2_2 ;
public static EURCHF_OCO4_DOWN_S2 EURCHF_PFO_OCO4_DOWN_S2_3 ;
public static EURCHF_OCO4_DOWN_S2 EURCHF_PFO_OCO4_DOWN_S2_4 ;
public static EURCHF_OCO4_DOWN_S2 EURCHF_PFO_OCO4_DOWN_S2_5 ;
public static EURCHF_OCO4_DOWN_S2 EURCHF_PFO_OCO4_DOWN_S2_6 ;
public static List<EURCHF_OCO4_DOWN_S2> EURCHF_DOWN_S2_OCO4Sets1 = new List<EURCHF_OCO4_DOWN_S2>();
public static List<EURCHF_OCO4_DOWN_S2> EURCHF_DOWN_S2_OCO4Sets2 = new List<EURCHF_OCO4_DOWN_S2>();
public static List<EURCHF_OCO4_DOWN_S2> EURCHF_DOWN_S2_OCO4Sets3 = new List<EURCHF_OCO4_DOWN_S2>();
public static List<EURCHF_OCO4_DOWN_S2> EURCHF_DOWN_S2_OCO4Sets4 = new List<EURCHF_OCO4_DOWN_S2>();
public static List<EURCHF_OCO4_DOWN_S2> EURCHF_DOWN_S2_OCO4Sets5 = new List<EURCHF_OCO4_DOWN_S2>();
public static List<EURCHF_OCO4_DOWN_S2> EURCHF_DOWN_S2_OCO4Sets6 = new List<EURCHF_OCO4_DOWN_S2>();
public static bool EURCHF_OCO4_DOWN_S2_IsReady = true;
public static bool EURCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal EURCHF_UP_S2_SL {get; set;}
public static decimal EURCHF_UP_S2_TP1 {get; set;}
public static decimal EURCHF_UP_S2_TP2 {get; set;}
public static decimal EURCHF_UP_S2_TP3 {get; set;}
public static decimal EURCHF_UP_S2_TP4 {get; set;}
public static decimal EURCHF_UP_S2_TP5 {get; set;}
public static decimal EURCHF_UP_S2_TP6 {get; set;}
public static decimal EURCHF_DOWN_S2_SL {get; set;}
public static decimal EURCHF_DOWN_S2_TP1 {get; set;}
public static decimal EURCHF_DOWN_S2_TP2 {get; set;}
public static decimal EURCHF_DOWN_S2_TP3 {get; set;}
public static decimal EURCHF_DOWN_S2_TP4 {get; set;}
public static decimal EURCHF_DOWN_S2_TP5 {get; set;}
public static decimal EURCHF_DOWN_S2_TP6 {get; set;}
public static bool EURCHF_Signal_Condition_UP_1 ;
public static bool EURCHF_Signal_Condition_UP_2 ;
public static bool EURCHF_Signal_Condition_UP_3 ;
public static bool EURCHF_Signal_Condition_DOWN_S2 ;
public static int EURCHF_UP_S2_OCO_DELAY_7DAY = 10080;
public static int EURCHF_UP_S2_OCOM_DELAY_DAY = 4320;
public static int EURCHF_UP_S2_OCOT_DELAY_DAY = 2880;
public static int EURCHF_UP_S2_OCOW_DELAY_DAY = 1440;
public static int EURCHF_UP_S2_OCOTH_DELAY_DAY = 720;
public static int EURCHF_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int EURCHF_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int EURCHF_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int EURCHF_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int EURCHF_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_EURCHF_UP_S2 ;
public static bool DOWM_EURCHF_UP_S2 ;
public static bool DOWT_EURCHF_UP_S2 ;
public static bool DOWW_EURCHF_UP_S2 ;
public static bool DOWTH_EURCHF_UP_S2 ;
public static bool DOWR_EURCHF_DOWN_S2 ;
public static bool DOWM_EURCHF_DOWN_S2 ;
public static bool DOWT_EURCHF_DOWN_S2 ;
public static bool DOWW_EURCHF_DOWN_S2 ;
public static bool DOWTH_EURCHF_DOWN_S2 ;
public static int EURCHF_quantity_UP_S2 ;
public static int EURCHF_quantity_SL_UP_S2 ;
public static int EURCHF_quantity_TP1_UP_S2 ;
public static int EURCHF_quantity_TP2_UP_S2 ;
public static int EURCHF_quantity_TP3_UP_S2 ;
public static int EURCHF_quantity_TP4_UP_S2 ;
public static int EURCHF_quantity_TP5_UP_S2;
public static int EURCHF_quantity_TP6_UP_S2 ;
public static int EURCHF_quantity_DOWN_S2 ;
public static int EURCHF_quantity_SL_DOWN_S2 ;
public static int EURCHF_quantity_TP1_DOWN_S2 ;
public static int EURCHF_quantity_TP2_DOWN_S2 ;
public static int EURCHF_quantity_TP3_DOWN_S2 ;
public static int EURCHF_quantity_TP4_DOWN_S2 ;
public static int EURCHF_quantity_TP5_DOWN_S2;
public static int EURCHF_quantity_TP6_DOWN_S2 ;
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct GBPJPY_OCO1_DOWN_S2
{
public GBPJPY_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPJPY_OCO1_UP_S2
{
public GBPJPY_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPJPY_UP_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPJPY_UP_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPJPY_UP_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPJPY_UP_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPJPY_UP_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPJPY_UP_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPJPY_UP_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPJPY_UP_S2_OCO1")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPJPY_OCO2_DOWN_S2
{
public GBPJPY_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPJPY_OCO2_UP_S2
{
public GBPJPY_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPJPY_UP_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPJPY_UP_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPJPY_UP_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPJPY_UP_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPJPY_UP_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPJPY_UP_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPJPY_UP_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPJPY_UP_S2_OCO2")
{
orderTicket.Cancel("GBPJPY OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPJPY_OCO3_DOWN_S2
{
public GBPJPY_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPJPY_OCO3_UP_S2
{
public GBPJPY_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPJPY_UP_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPJPY_UP_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPJPY_UP_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPJPY_UP_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPJPY_UP_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPJPY_UP_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPJPY_UP_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPJPY_UP_S2_OCO3")
{
orderTicket.Cancel("GBPJPY OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPJPY_OCO4_DOWN_S2
{
public GBPJPY_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPJPY_OCO4_UP_S2
{
public GBPJPY_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPJPY_UP_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPJPY_UP_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPJPY_UP_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPJPY_UP_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPJPY_UP_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPJPY_UP_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPJPY_UP_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPJPY_UP_S2_OCO4")
{
orderTicket.Cancel("GBPJPY OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct NZDUSD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public NZDUSD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
}
if (Base.NZDUSD_OCO1_EO1_UP_S2)
Base.NZDUSD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO1_EO2_UP_S2)
Base.NZDUSD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO1_EO3_UP_S2)
Base.NZDUSD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO1_EO4_UP_S2)
Base.NZDUSD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO1_EO5_UP_S2)
Base.NZDUSD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO1_EO6_UP_S2)
Base.NZDUSD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO1_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP1,"TP1_NZDUSD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP1_NZDUSD_UP_S2_OCO1"));
};
Base.NZDUSD_UP_S2_OCO1Sets1.Add( Base.NZDUSD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO2_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP2,"TP2_NZDUSD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP2_NZDUSD_UP_S2_OCO1"));
};
Base.NZDUSD_UP_S2_OCO1Sets2.Add( Base.NZDUSD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO3_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP3,"TP3_NZDUSD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP3_NZDUSD_UP_S2_OCO1"));
};
Base.NZDUSD_UP_S2_OCO1Sets3.Add( Base.NZDUSD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO4_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP4,"TP4_NZDUSD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP4_NZDUSD_UP_S2_OCO1"));
};
Base.NZDUSD_UP_S2_OCO1Sets4.Add( Base.NZDUSD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO5_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP5,"TP5_NZDUSD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP5_NZDUSD_UP_S2_OCO1"));
};
Base.NZDUSD_UP_S2_OCO1Sets5.Add( Base.NZDUSD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO6_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP6,"TP6_NZDUSD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP6_NZDUSD_UP_S2_OCO1"));
};
Base.NZDUSD_UP_S2_OCO1Sets6.Add( Base.NZDUSD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO6_UP_S2_ID = -1;
}
int NZDUSD_OCO1S1_UP_S2 = 0;
for (; NZDUSD_OCO1S1_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets1.Count; NZDUSD_OCO1S1_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets1[NZDUSD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO1Sets1[NZDUSD_OCO1S1_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO1Sets1.RemoveAt(NZDUSD_OCO1S1_UP_S2);
NZDUSD_OCO1S1_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S2_UP_S2 = 0;
for (; NZDUSD_OCO1S2_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets2.Count; NZDUSD_OCO1S2_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets2[NZDUSD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO1Sets2[NZDUSD_OCO1S2_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO1Sets2.RemoveAt(NZDUSD_OCO1S2_UP_S2);
NZDUSD_OCO1S2_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S3_UP_S2 = 0;
for (; NZDUSD_OCO1S3_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets3.Count; NZDUSD_OCO1S3_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets3[NZDUSD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO1Sets3[NZDUSD_OCO1S3_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO1Sets3.RemoveAt(NZDUSD_OCO1S3_UP_S2);
NZDUSD_OCO1S3_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S4_UP_S2 = 0;
for (; NZDUSD_OCO1S4_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets4.Count; NZDUSD_OCO1S4_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets4[NZDUSD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO1Sets4[NZDUSD_OCO1S4_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO1Sets4.RemoveAt(NZDUSD_OCO1S4_UP_S2);
NZDUSD_OCO1S4_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S5_UP_S2 = 0;
for (; NZDUSD_OCO1S5_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets5.Count; NZDUSD_OCO1S5_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets5[NZDUSD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO1Sets5[NZDUSD_OCO1S5_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO1Sets5.RemoveAt(NZDUSD_OCO1S5_UP_S2);
NZDUSD_OCO1S5_UP_S2 = 0;
break;
}
int NZDUSD_OCO1S6_UP_S2 = 0;
for (; NZDUSD_OCO1S6_UP_S2 < Base.NZDUSD_UP_S2_OCO1Sets6.Count; NZDUSD_OCO1S6_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO1Sets6[NZDUSD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO1Sets6[NZDUSD_OCO1S6_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO1Sets6.RemoveAt(NZDUSD_OCO1S6_UP_S2);
NZDUSD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO2_EO1_UP_S2)
Base.NZDUSD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO2_EO2_UP_S2)
Base.NZDUSD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO2_EO3_UP_S2)
Base.NZDUSD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO2_EO4_UP_S2)
Base.NZDUSD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO2_EO5_UP_S2)
Base.NZDUSD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO2_EO6_UP_S2)
Base.NZDUSD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO1_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP1,"TP1_NZDUSD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP1_NZDUSD_UP_S2_OCO2"));
};
Base.NZDUSD_UP_S2_OCO2Sets1.Add( Base.NZDUSD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO2_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP2,"TP2_NZDUSD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP2_NZDUSD_UP_S2_OCO2"));
};
Base.NZDUSD_UP_S2_OCO2Sets2.Add( Base.NZDUSD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO3_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP3,"TP3_NZDUSD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP3_NZDUSD_UP_S2_OCO2"));
};
Base.NZDUSD_UP_S2_OCO2Sets3.Add( Base.NZDUSD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO4_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP4,"TP4_NZDUSD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP4_NZDUSD_UP_S2_OCO2"));
};
Base.NZDUSD_UP_S2_OCO2Sets4.Add( Base.NZDUSD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO5_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP5,"TP5_NZDUSD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP5_NZDUSD_UP_S2_OCO2"));
};
Base.NZDUSD_UP_S2_OCO2Sets5.Add( Base.NZDUSD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO6_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP6,"TP6_NZDUSD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP6_NZDUSD_UP_S2_OCO2"));
};
Base.NZDUSD_UP_S2_OCO2Sets6.Add( Base.NZDUSD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO6_UP_S2_ID = -1;
}
int NZDUSD_OCO2S1_UP_S2 = 0;
for (; NZDUSD_OCO2S1_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets1.Count; NZDUSD_OCO2S1_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets1[NZDUSD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO2Sets1[NZDUSD_OCO2S1_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO2Sets1.RemoveAt(NZDUSD_OCO2S1_UP_S2);
NZDUSD_OCO2S1_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S2_UP_S2 = 0;
for (; NZDUSD_OCO2S2_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets2.Count; NZDUSD_OCO2S2_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets2[NZDUSD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO2Sets2[NZDUSD_OCO2S2_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO2Sets2.RemoveAt(NZDUSD_OCO2S2_UP_S2);
NZDUSD_OCO2S2_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S3_UP_S2 = 0;
for (; NZDUSD_OCO2S3_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets3.Count; NZDUSD_OCO2S3_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets3[NZDUSD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO2Sets3[NZDUSD_OCO2S3_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO2Sets3.RemoveAt(NZDUSD_OCO2S3_UP_S2);
NZDUSD_OCO2S3_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S4_UP_S2 = 0;
for (; NZDUSD_OCO2S4_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets4.Count; NZDUSD_OCO2S4_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets4[NZDUSD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO2Sets4[NZDUSD_OCO2S4_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO2Sets4.RemoveAt(NZDUSD_OCO2S4_UP_S2);
NZDUSD_OCO2S4_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S5_UP_S2 = 0;
for (; NZDUSD_OCO2S5_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets5.Count; NZDUSD_OCO2S5_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets5[NZDUSD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO2Sets5[NZDUSD_OCO2S5_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO2Sets5.RemoveAt(NZDUSD_OCO2S5_UP_S2);
NZDUSD_OCO2S5_UP_S2 = 0;
break;
}
int NZDUSD_OCO2S6_UP_S2 = 0;
for (; NZDUSD_OCO2S6_UP_S2 < Base.NZDUSD_UP_S2_OCO2Sets6.Count; NZDUSD_OCO2S6_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO2Sets6[NZDUSD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO2Sets6[NZDUSD_OCO2S6_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO2Sets6.RemoveAt(NZDUSD_OCO2S6_UP_S2);
NZDUSD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO3_EO1_UP_S2)
Base.NZDUSD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO3_EO2_UP_S2)
Base.NZDUSD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO3_EO3_UP_S2)
Base.NZDUSD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO3_EO4_UP_S2)
Base.NZDUSD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO3_EO5_UP_S2)
Base.NZDUSD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO3_EO6_UP_S2)
Base.NZDUSD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO1_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP1,"TP1_NZDUSD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP1_NZDUSD_UP_S2_OCO3"));
};
Base.NZDUSD_UP_S2_OCO3Sets1.Add( Base.NZDUSD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO2_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP2,"TP2_NZDUSD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP2_NZDUSD_UP_S2_OCO3"));
};
Base.NZDUSD_UP_S2_OCO3Sets2.Add( Base.NZDUSD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO3_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP3,"TP3_NZDUSD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP3_NZDUSD_UP_S2_OCO3"));
};
Base.NZDUSD_UP_S2_OCO3Sets3.Add( Base.NZDUSD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO4_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP4,"TP4_NZDUSD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP4_NZDUSD_UP_S2_OCO3"));
};
Base.NZDUSD_UP_S2_OCO3Sets4.Add( Base.NZDUSD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO5_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP5,"TP5_NZDUSD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP5_NZDUSD_UP_S2_OCO3"));
};
Base.NZDUSD_UP_S2_OCO3Sets5.Add( Base.NZDUSD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO6_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP6,"TP6_NZDUSD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP6_NZDUSD_UP_S2_OCO3"));
};
Base.NZDUSD_UP_S2_OCO3Sets6.Add( Base.NZDUSD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO6_UP_S2_ID = -1;
}
int NZDUSD_OCO3S1_UP_S2 = 0;
for (; NZDUSD_OCO3S1_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets1.Count; NZDUSD_OCO3S1_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets1[NZDUSD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO3Sets1[NZDUSD_OCO3S1_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO3Sets1.RemoveAt(NZDUSD_OCO3S1_UP_S2);
NZDUSD_OCO3S1_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S2_UP_S2 = 0;
for (; NZDUSD_OCO3S2_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets2.Count; NZDUSD_OCO3S2_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets2[NZDUSD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO3Sets2[NZDUSD_OCO3S2_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO3Sets2.RemoveAt(NZDUSD_OCO3S2_UP_S2);
NZDUSD_OCO3S2_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S3_UP_S2 = 0;
for (; NZDUSD_OCO3S3_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets3.Count; NZDUSD_OCO3S3_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets3[NZDUSD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO3Sets3[NZDUSD_OCO3S3_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO3Sets3.RemoveAt(NZDUSD_OCO3S3_UP_S2);
NZDUSD_OCO3S3_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S4_UP_S2 = 0;
for (; NZDUSD_OCO3S4_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets4.Count; NZDUSD_OCO3S4_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets4[NZDUSD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO3Sets4[NZDUSD_OCO3S4_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO3Sets4.RemoveAt(NZDUSD_OCO3S4_UP_S2);
NZDUSD_OCO3S4_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S5_UP_S2 = 0;
for (; NZDUSD_OCO3S5_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets5.Count; NZDUSD_OCO3S5_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets5[NZDUSD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO3Sets5[NZDUSD_OCO3S5_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO3Sets5.RemoveAt(NZDUSD_OCO3S5_UP_S2);
NZDUSD_OCO3S5_UP_S2 = 0;
break;
}
int NZDUSD_OCO3S6_UP_S2 = 0;
for (; NZDUSD_OCO3S6_UP_S2 < Base.NZDUSD_UP_S2_OCO3Sets6.Count; NZDUSD_OCO3S6_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO3Sets6[NZDUSD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO3Sets6[NZDUSD_OCO3S6_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO3Sets6.RemoveAt(NZDUSD_OCO3S6_UP_S2);
NZDUSD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO4_EO1_UP_S2)
Base.NZDUSD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO4_EO2_UP_S2)
Base.NZDUSD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO4_EO3_UP_S2)
Base.NZDUSD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO4_EO4_UP_S2)
Base.NZDUSD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO4_EO5_UP_S2)
Base.NZDUSD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO4_EO6_UP_S2)
Base.NZDUSD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO1_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP1,"TP1_NZDUSD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP1_NZDUSD_UP_S2_OCO4"));
};
Base.NZDUSD_UP_S2_OCO4Sets1.Add( Base.NZDUSD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO2_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP2,"TP2_NZDUSD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP2_NZDUSD_UP_S2_OCO4"));
};
Base.NZDUSD_UP_S2_OCO4Sets2.Add( Base.NZDUSD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO3_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP3,"TP3_NZDUSD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP3_NZDUSD_UP_S2_OCO4"));
};
Base.NZDUSD_UP_S2_OCO4Sets3.Add( Base.NZDUSD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO4_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP4,"TP4_NZDUSD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP4_NZDUSD_UP_S2_OCO4"));
};
Base.NZDUSD_UP_S2_OCO4Sets4.Add( Base.NZDUSD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO5_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP5,"TP5_NZDUSD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP5_NZDUSD_UP_S2_OCO4"));
};
Base.NZDUSD_UP_S2_OCO4Sets5.Add( Base.NZDUSD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO6_UP_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_UP_S2_TP6,"TP6_NZDUSD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_UP_S2_SL,"SL_TP6_NZDUSD_UP_S2_OCO4"));
};
Base.NZDUSD_UP_S2_OCO4Sets6.Add( Base.NZDUSD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO6_UP_S2_ID = -1;
}
int NZDUSD_OCO4S1_UP_S2 = 0;
for (; NZDUSD_OCO4S1_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets1.Count; NZDUSD_OCO4S1_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets1[NZDUSD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO4Sets1[NZDUSD_OCO4S1_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO4Sets1.RemoveAt(NZDUSD_OCO4S1_UP_S2);
NZDUSD_OCO4S1_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S2_UP_S2 = 0;
for (; NZDUSD_OCO4S2_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets2.Count; NZDUSD_OCO4S2_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets2[NZDUSD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO4Sets2[NZDUSD_OCO4S2_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO4Sets2.RemoveAt(NZDUSD_OCO4S2_UP_S2);
NZDUSD_OCO4S2_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S3_UP_S2 = 0;
for (; NZDUSD_OCO4S3_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets3.Count; NZDUSD_OCO4S3_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets3[NZDUSD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO4Sets3[NZDUSD_OCO4S3_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO4Sets3.RemoveAt(NZDUSD_OCO4S3_UP_S2);
NZDUSD_OCO4S3_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S4_UP_S2 = 0;
for (; NZDUSD_OCO4S4_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets4.Count; NZDUSD_OCO4S4_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets4[NZDUSD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO4Sets4[NZDUSD_OCO4S4_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO4Sets4.RemoveAt(NZDUSD_OCO4S4_UP_S2);
NZDUSD_OCO4S4_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S5_UP_S2 = 0;
for (; NZDUSD_OCO4S5_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets5.Count; NZDUSD_OCO4S5_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets5[NZDUSD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO4Sets5[NZDUSD_OCO4S5_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO4Sets5.RemoveAt(NZDUSD_OCO4S5_UP_S2);
NZDUSD_OCO4S5_UP_S2 = 0;
break;
}
int NZDUSD_OCO4S6_UP_S2 = 0;
for (; NZDUSD_OCO4S6_UP_S2 < Base.NZDUSD_UP_S2_OCO4Sets6.Count; NZDUSD_OCO4S6_UP_S2++)
if (Base.NZDUSD_UP_S2_OCO4Sets6[NZDUSD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_UP_S2_OCO4Sets6[NZDUSD_OCO4S6_UP_S2].Filled();
Base.NZDUSD_UP_S2_OCO4Sets6.RemoveAt(NZDUSD_OCO4S6_UP_S2);
NZDUSD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct USDJPY_OCO1_DOWN_S2
{
public USDJPY_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDJPY_OCO1_UP_S2
{
public USDJPY_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_USDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_USDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_USDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_USDJPY_UP_S2_OCO1")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDJPY_OCO2_DOWN_S2
{
public USDJPY_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDJPY_OCO2_UP_S2
{
public USDJPY_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_USDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_USDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_USDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_USDJPY_UP_S2_OCO2")
{
orderTicket.Cancel("USDJPY OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDJPY_OCO3_DOWN_S2
{
public USDJPY_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDJPY_OCO3_UP_S2
{
public USDJPY_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_USDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_USDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_USDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_USDJPY_UP_S2_OCO3")
{
orderTicket.Cancel("USDJPY OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDJPY_OCO4_DOWN_S2
{
public USDJPY_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_USDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_USDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_USDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct USDJPY_OCO4_UP_S2
{
public USDJPY_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_USDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_USDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_USDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_USDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_USDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_USDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_USDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_USDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_USDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_USDJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_USDJPY_UP_S2_OCO4")
{
orderTicket.Cancel("USDJPY OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct GBPCAD_OCO1_DOWN_S2
{
public GBPCAD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCAD_OCO1_UP_S2
{
public GBPCAD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPCAD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPCAD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPCAD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPCAD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPCAD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPCAD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPCAD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPCAD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCAD_OCO2_DOWN_S2
{
public GBPCAD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCAD_OCO2_UP_S2
{
public GBPCAD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPCAD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPCAD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPCAD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPCAD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPCAD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPCAD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPCAD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPCAD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPCAD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCAD_OCO3_DOWN_S2
{
public GBPCAD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCAD_OCO3_UP_S2
{
public GBPCAD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPCAD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPCAD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPCAD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPCAD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPCAD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPCAD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPCAD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPCAD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPCAD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCAD_OCO4_DOWN_S2
{
public GBPCAD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPCAD_OCO4_UP_S2
{
public GBPCAD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPCAD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPCAD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPCAD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPCAD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPCAD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPCAD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPCAD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPCAD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPCAD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_USDJPY_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_USDJPY_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("USDJPY_DOWN_S2_OCO1")))
{
Base.USDJPY_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDJPY_DOWN_S2_OCO2")))
{
Base.USDJPY_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDJPY_DOWN_S2_OCO3")))
{
Base.USDJPY_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDJPY_DOWN_S2_OCO4")))
{
Base.USDJPY_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("USDJPY_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.USDJPY_OCO1_EO1_DOWN_S2)
Base.USDJPY_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO2_DOWN_S2)
Base.USDJPY_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO3_DOWN_S2)
Base.USDJPY_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO4_DOWN_S2)
Base.USDJPY_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO5_DOWN_S2)
Base.USDJPY_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO6_DOWN_S2)
Base.USDJPY_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int USDJPY_OCO1S1_DOWN_S2 = 0;
for (; USDJPY_OCO1S1_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets1.Count; USDJPY_OCO1S1_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets1[USDJPY_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO1Sets1[USDJPY_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_1__Time out_OCO1");
Base.USDJPY_DOWN_S2_OCO1Sets1.Clear();
USDJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int USDJPY_OCO1S2_DOWN_S2 = 0;
for (; USDJPY_OCO1S2_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets2.Count; USDJPY_OCO1S2_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets2[USDJPY_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO1Sets2[USDJPY_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_2__Time out_OCO1");
Base.USDJPY_DOWN_S2_OCO1Sets2.Clear();
USDJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int USDJPY_OCO1S3_DOWN_S2 = 0;
for (; USDJPY_OCO1S3_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets3.Count; USDJPY_OCO1S3_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets3[USDJPY_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO1Sets3[USDJPY_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_3__Time out_OCO1");
Base.USDJPY_DOWN_S2_OCO1Sets3.Clear();
USDJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int USDJPY_OCO1S4_DOWN_S2 = 0;
for (; USDJPY_OCO1S4_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets4.Count; USDJPY_OCO1S4_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets4[USDJPY_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO1Sets4[USDJPY_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_4__Time out_OCO1");
Base.USDJPY_DOWN_S2_OCO1Sets4.Clear();
USDJPY_OCO1S4_DOWN_S2 = 0;
break;
}
int USDJPY_OCO1S5_DOWN_S2 = 0;
for (; USDJPY_OCO1S5_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets5.Count; USDJPY_OCO1S5_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets5[USDJPY_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO1Sets5[USDJPY_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_5__Time out_OCO1");
Base.USDJPY_DOWN_S2_OCO1Sets5.Clear();
USDJPY_OCO1S5_DOWN_S2 = 0;
break;
}
int USDJPY_OCO1S6_DOWN_S2 = 0;
for (; USDJPY_OCO1S6_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO1Sets6.Count; USDJPY_OCO1S6_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO1Sets6[USDJPY_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO1Sets6[USDJPY_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_6__Time out_OCO1");
Base.USDJPY_DOWN_S2_OCO1Sets6.Clear();
USDJPY_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO2_EO1_DOWN_S2)
Base.USDJPY_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO2_DOWN_S2)
Base.USDJPY_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO3_DOWN_S2)
Base.USDJPY_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO4_DOWN_S2)
Base.USDJPY_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO5_DOWN_S2)
Base.USDJPY_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO6_DOWN_S2)
Base.USDJPY_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int USDJPY_OCO2S1_DOWN_S2 = 0;
for (; USDJPY_OCO2S1_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets1.Count; USDJPY_OCO2S1_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets1[USDJPY_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO2Sets1[USDJPY_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_1__Time out_OCO2");
Base.USDJPY_DOWN_S2_OCO2Sets1.Clear();
USDJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int USDJPY_OCO2S2_DOWN_S2 = 0;
for (; USDJPY_OCO2S2_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets2.Count; USDJPY_OCO2S2_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets2[USDJPY_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO2Sets2[USDJPY_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_2__Time out_OCO2");
Base.USDJPY_DOWN_S2_OCO2Sets2.Clear();
USDJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int USDJPY_OCO2S3_DOWN_S2 = 0;
for (; USDJPY_OCO2S3_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets3.Count; USDJPY_OCO2S3_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets3[USDJPY_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO2Sets3[USDJPY_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_3__Time out_OCO2");
Base.USDJPY_DOWN_S2_OCO2Sets3.Clear();
USDJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int USDJPY_OCO2S4_DOWN_S2 = 0;
for (; USDJPY_OCO2S4_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets4.Count; USDJPY_OCO2S4_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets4[USDJPY_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO2Sets4[USDJPY_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_4__Time out_OCO2");
Base.USDJPY_DOWN_S2_OCO2Sets4.Clear();
USDJPY_OCO2S4_DOWN_S2 = 0;
break;
}
int USDJPY_OCO2S5_DOWN_S2 = 0;
for (; USDJPY_OCO2S5_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets5.Count; USDJPY_OCO2S5_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets5[USDJPY_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO2Sets5[USDJPY_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_5__Time out_OCO2");
Base.USDJPY_DOWN_S2_OCO2Sets5.Clear();
USDJPY_OCO2S5_DOWN_S2 = 0;
break;
}
int USDJPY_OCO2S6_DOWN_S2 = 0;
for (; USDJPY_OCO2S6_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO2Sets6.Count; USDJPY_OCO2S6_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO2Sets6[USDJPY_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO2Sets6[USDJPY_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_6__Time out_OCO2");
Base.USDJPY_DOWN_S2_OCO2Sets6.Clear();
USDJPY_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO3_EO1_DOWN_S2)
Base.USDJPY_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO2_DOWN_S2)
Base.USDJPY_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO3_DOWN_S2)
Base.USDJPY_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO4_DOWN_S2)
Base.USDJPY_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO5_DOWN_S2)
Base.USDJPY_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO6_DOWN_S2)
Base.USDJPY_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int USDJPY_OCO3S1_DOWN_S2 = 0;
for (; USDJPY_OCO3S1_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets1.Count; USDJPY_OCO3S1_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets1[USDJPY_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO3Sets1[USDJPY_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_1__Time out_OCO3");
Base.USDJPY_DOWN_S2_OCO3Sets1.Clear();
USDJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int USDJPY_OCO3S2_DOWN_S2 = 0;
for (; USDJPY_OCO3S2_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets2.Count; USDJPY_OCO3S2_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets2[USDJPY_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO3Sets2[USDJPY_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_2__Time out_OCO3");
Base.USDJPY_DOWN_S2_OCO3Sets2.Clear();
USDJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int USDJPY_OCO3S3_DOWN_S2 = 0;
for (; USDJPY_OCO3S3_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets3.Count; USDJPY_OCO3S3_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets3[USDJPY_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO3Sets3[USDJPY_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_3__Time out_OCO3");
Base.USDJPY_DOWN_S2_OCO3Sets3.Clear();
USDJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int USDJPY_OCO3S4_DOWN_S2 = 0;
for (; USDJPY_OCO3S4_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets4.Count; USDJPY_OCO3S4_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets4[USDJPY_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO3Sets4[USDJPY_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_4__Time out_OCO3");
Base.USDJPY_DOWN_S2_OCO3Sets4.Clear();
USDJPY_OCO3S4_DOWN_S2 = 0;
break;
}
int USDJPY_OCO3S5_DOWN_S2 = 0;
for (; USDJPY_OCO3S5_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets5.Count; USDJPY_OCO3S5_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets5[USDJPY_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO3Sets5[USDJPY_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_5__Time out_OCO3");
Base.USDJPY_DOWN_S2_OCO3Sets5.Clear();
USDJPY_OCO3S5_DOWN_S2 = 0;
break;
}
int USDJPY_OCO3S6_DOWN_S2 = 0;
for (; USDJPY_OCO3S6_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO3Sets6.Count; USDJPY_OCO3S6_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO3Sets6[USDJPY_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO3Sets6[USDJPY_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_6__Time out_OCO3");
Base.USDJPY_DOWN_S2_OCO3Sets6.Clear();
USDJPY_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO4_EO1_DOWN_S2)
Base.USDJPY_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO2_DOWN_S2)
Base.USDJPY_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO3_DOWN_S2)
Base.USDJPY_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO4_DOWN_S2)
Base.USDJPY_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO5_DOWN_S2)
Base.USDJPY_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO6_DOWN_S2)
Base.USDJPY_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int USDJPY_OCO4S1_DOWN_S2 = 0;
for (; USDJPY_OCO4S1_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets1.Count; USDJPY_OCO4S1_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets1[USDJPY_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO4Sets1[USDJPY_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_1__Time out_OCO4");
Base.USDJPY_DOWN_S2_OCO4Sets1.Clear();
USDJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int USDJPY_OCO4S2_DOWN_S2 = 0;
for (; USDJPY_OCO4S2_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets2.Count; USDJPY_OCO4S2_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets2[USDJPY_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO4Sets2[USDJPY_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_2__Time out_OCO4");
Base.USDJPY_DOWN_S2_OCO4Sets2.Clear();
USDJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int USDJPY_OCO4S3_DOWN_S2 = 0;
for (; USDJPY_OCO4S3_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets3.Count; USDJPY_OCO4S3_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets3[USDJPY_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO4Sets3[USDJPY_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_3__Time out_OCO4");
Base.USDJPY_DOWN_S2_OCO4Sets3.Clear();
USDJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int USDJPY_OCO4S4_DOWN_S2 = 0;
for (; USDJPY_OCO4S4_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets4.Count; USDJPY_OCO4S4_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets4[USDJPY_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO4Sets4[USDJPY_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_4__Time out_OCO4");
Base.USDJPY_DOWN_S2_OCO4Sets4.Clear();
USDJPY_OCO4S4_DOWN_S2 = 0;
break;
}
int USDJPY_OCO4S5_DOWN_S2 = 0;
for (; USDJPY_OCO4S5_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets5.Count; USDJPY_OCO4S5_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets5[USDJPY_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO4Sets5[USDJPY_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_5__Time out_OCO4");
Base.USDJPY_DOWN_S2_OCO4Sets5.Clear();
USDJPY_OCO4S5_DOWN_S2 = 0;
break;
}
int USDJPY_OCO4S6_DOWN_S2 = 0;
for (; USDJPY_OCO4S6_DOWN_S2 < Base.USDJPY_DOWN_S2_OCO4Sets6.Count; USDJPY_OCO4S6_DOWN_S2++)
if (Base.USDJPY_DOWN_S2_OCO4Sets6[USDJPY_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.USDJPY_DOWN_S2_OCO4Sets6[USDJPY_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_DOWN_S2_Entry_6__Time out_OCO4");
Base.USDJPY_DOWN_S2_OCO4Sets6.Clear();
USDJPY_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_USDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_USDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_USDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_USDJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_USDJPY_DOWN_S2 = DOWM_USDJPY_DOWN_S2 || DOWT_USDJPY_DOWN_S2 || DOWW_USDJPY_DOWN_S2 || DOWTH_USDJPY_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("USDJPY"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.USDJPY_OCO1_DOWN_S2_IsReady == false ||
Base.USDJPY_OCO2_DOWN_S2_IsReady == false ||
Base.USDJPY_OCO3_DOWN_S2_IsReady == false ||
Base.USDJPY_OCO4_DOWN_S2_IsReady == false)
{
Base.USDJPY_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.USDJPY_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.USDJPY_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.USDJPY_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.USDJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.USDJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.USDJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.USDJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
}
USDJPY_Signal_Condition_DOWN_S2 =
(
//ricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.02m &&
pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
//prices_BID_Close[0] - prices_ASK_Open[0] > 0 &&
//prices_BID_Open[0] > pricesM_ASK_High[0] &&
//prices_ASK_Close[0] < pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.1m
);
USDJPY_DOWN_S2_SL = 0.5m;
USDJPY_DOWN_S2_TP1 = 1m;
USDJPY_DOWN_S2_TP2 = USDJPY_DOWN_S2_TP1 * 1m;
USDJPY_DOWN_S2_TP3 = USDJPY_DOWN_S2_TP1 * 0;
USDJPY_DOWN_S2_TP4 = USDJPY_DOWN_S2_TP1 * 0;
USDJPY_DOWN_S2_TP5 = USDJPY_DOWN_S2_SL * 0;
USDJPY_DOWN_S2_TP6 = USDJPY_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
USDJPY_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
USDJPY_quantity_SL_DOWN_S2 = USDJPY_quantity_DOWN_S2;
USDJPY_quantity_TP1_DOWN_S2 = (int)Math.Floor(USDJPY_quantity_DOWN_S2 * 1m);
USDJPY_quantity_TP2_DOWN_S2 = (int)Math.Floor(USDJPY_quantity_TP1_DOWN_S2 * 0m);
USDJPY_quantity_TP3_DOWN_S2 = (int)Math.Floor(USDJPY_quantity_TP2_DOWN_S2 * 0m);
USDJPY_quantity_TP4_DOWN_S2 = (int)Math.Floor(USDJPY_quantity_TP3_DOWN_S2 * 0m);
USDJPY_quantity_TP5_DOWN_S2 = (int)Math.Floor(USDJPY_quantity_TP4_DOWN_S2 * 0m);
USDJPY_quantity_TP6_DOWN_S2 = (int)Math.Floor(USDJPY_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (USDJPY_Signal_Condition_DOWN_S2 &&
DOWR_USDJPY_DOWN_S2 &&
Base.USDJPY_OCO1_DOWN_S2_IsReady == true &&
Base.USDJPY_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.USDJPY_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP1_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP1_OCO1");
Base.USDJPY_OCO1_EO1_DOWN_S2 = false;
Base.USDJPY_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP2_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP2_OCO1");
Base.USDJPY_OCO1_EO2_DOWN_S2 = false;
Base.USDJPY_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP3_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP3_OCO1");
Base.USDJPY_OCO1_EO3_DOWN_S2 = false;
Base.USDJPY_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP4_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP4_OCO1");
Base.USDJPY_OCO1_EO4_DOWN_S2 = false;
Base.USDJPY_OCO1_DOWN_S2_IsReady = false;
if (Base.USDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (USDJPY_Signal_Condition_DOWN_S2 &&
DOWR_USDJPY_DOWN_S2 &&
Base.USDJPY_OCO2_DOWN_S2_IsReady == true &&
Base.USDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.USDJPY_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.USDJPY_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP1_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP1_OCO2");
Base.USDJPY_OCO2_EO1_DOWN_S2 = false;
Base.USDJPY_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP2_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP2_OCO2");
Base.USDJPY_OCO2_EO2_DOWN_S2 = false;
Base.USDJPY_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP3_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP3_OCO2");
Base.USDJPY_OCO2_EO3_DOWN_S2 = false;
Base.USDJPY_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP4_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP4_OCO2");
Base.USDJPY_OCO2_EO4_DOWN_S2 = false;
Base.USDJPY_OCO2_DOWN_S2_IsReady = false;
if (Base.USDJPY_OCO2_DOWN_S2_IsReady == false && Base.USDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (USDJPY_Signal_Condition_DOWN_S2 &&
DOWR_USDJPY_DOWN_S2 &&
Base.USDJPY_OCO3_DOWN_S2_IsReady == true &&
Base.USDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.USDJPY_OCO2_DOWN_S2_IsReady == false &&
Base.USDJPY_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.USDJPY_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP1_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP1_OCO3");
Base.USDJPY_OCO3_EO1_DOWN_S2 = false;
Base.USDJPY_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP2_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP2_OCO3");
Base.USDJPY_OCO3_EO2_DOWN_S2 = false;
Base.USDJPY_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP3_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP3_OCO3");
Base.USDJPY_OCO3_EO3_DOWN_S2 = false;
Base.USDJPY_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP4_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP4_OCO3");
Base.USDJPY_OCO3_EO4_DOWN_S2 = false;
Base.USDJPY_OCO3_DOWN_S2_IsReady = false;
if (Base.USDJPY_OCO3_DOWN_S2_IsReady == false && Base.USDJPY_OCO2_DOWN_S2_IsReady == false && Base.USDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (USDJPY_Signal_Condition_DOWN_S2 &&
DOWR_USDJPY_DOWN_S2 &&
Base.USDJPY_OCO4_DOWN_S2_IsReady == true &&
Base.USDJPY_OCO1_DOWN_S2_IsReady == false &&
Base.USDJPY_OCO2_DOWN_S2_IsReady == false &&
Base.USDJPY_OCO3_DOWN_S2_IsReady == false &&
Base.USDJPY_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.USDJPY_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP1_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP1_OCO4");
Base.USDJPY_OCO4_EO1_DOWN_S2 = false;
Base.USDJPY_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP2_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP2_OCO4");
Base.USDJPY_OCO4_EO2_DOWN_S2 = false;
Base.USDJPY_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP3_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP3_OCO4");
Base.USDJPY_OCO4_EO3_DOWN_S2 = false;
Base.USDJPY_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
USDJPY_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP4_DOWN_S2, false,"USDJPY_DOWN_S2_Entry_TP4_OCO4");
Base.USDJPY_OCO4_EO4_DOWN_S2 = false;
Base.USDJPY_OCO4_DOWN_S2_IsReady = false;
if (Base.USDJPY_OCO4_DOWN_S2_IsReady == false && Base.USDJPY_OCO3_DOWN_S2_IsReady == false && Base.USDJPY_OCO2_DOWN_S2_IsReady == false && Base.USDJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct CADJPY_OCO1_DOWN_S2
{
public CADJPY_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_CADJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_CADJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_CADJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_CADJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_CADJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_CADJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_CADJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_CADJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CADJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_CADJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CADJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_CADJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CADJPY_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_CADJPY_DOWN_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CADJPY_OCO1_UP_S2
{
public CADJPY_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_CADJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_CADJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_CADJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_CADJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_CADJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_CADJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_CADJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_CADJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CADJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_CADJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CADJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_CADJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CADJPY_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_CADJPY_UP_S2_OCO1")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CADJPY_OCO2_DOWN_S2
{
public CADJPY_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_CADJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_CADJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_CADJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_CADJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_CADJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_CADJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_CADJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_CADJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CADJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_CADJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CADJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_CADJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CADJPY_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_CADJPY_DOWN_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CADJPY_OCO2_UP_S2
{
public CADJPY_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_CADJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_CADJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_CADJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_CADJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_CADJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_CADJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_CADJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_CADJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CADJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_CADJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CADJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_CADJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CADJPY_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_CADJPY_UP_S2_OCO2")
{
orderTicket.Cancel("CADJPY OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CADJPY_OCO3_DOWN_S2
{
public CADJPY_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_CADJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_CADJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_CADJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_CADJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_CADJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_CADJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_CADJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_CADJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CADJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_CADJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CADJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_CADJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CADJPY_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_CADJPY_DOWN_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CADJPY_OCO3_UP_S2
{
public CADJPY_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_CADJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_CADJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_CADJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_CADJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_CADJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_CADJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_CADJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_CADJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CADJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_CADJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CADJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_CADJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CADJPY_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_CADJPY_UP_S2_OCO3")
{
orderTicket.Cancel("CADJPY OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CADJPY_OCO4_DOWN_S2
{
public CADJPY_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_CADJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_CADJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_CADJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_CADJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_CADJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_CADJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_CADJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_CADJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CADJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_CADJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CADJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_CADJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CADJPY_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_CADJPY_DOWN_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct CADJPY_OCO4_UP_S2
{
public CADJPY_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_CADJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_CADJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_CADJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_CADJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_CADJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_CADJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_CADJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_CADJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_CADJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_CADJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_CADJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_CADJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_CADJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_CADJPY_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_CADJPY_UP_S2_OCO4")
{
orderTicket.Cancel("CADJPY OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct GBPAUD_OCO1_DOWN_S2
{
public GBPAUD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPAUD_OCO1_UP_S2
{
public GBPAUD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPAUD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPAUD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPAUD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPAUD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_GBPAUD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_GBPAUD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_GBPAUD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_GBPAUD_UP_S2_OCO1")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPAUD_OCO2_DOWN_S2
{
public GBPAUD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPAUD_OCO2_UP_S2
{
public GBPAUD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPAUD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPAUD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPAUD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPAUD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_GBPAUD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_GBPAUD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_GBPAUD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_GBPAUD_UP_S2_OCO2")
{
orderTicket.Cancel("GBPAUD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPAUD_OCO3_DOWN_S2
{
public GBPAUD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPAUD_OCO3_UP_S2
{
public GBPAUD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPAUD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPAUD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPAUD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPAUD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_GBPAUD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_GBPAUD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_GBPAUD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_GBPAUD_UP_S2_OCO3")
{
orderTicket.Cancel("GBPAUD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPAUD_OCO4_DOWN_S2
{
public GBPAUD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_GBPAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_GBPAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_GBPAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct GBPAUD_OCO4_UP_S2
{
public GBPAUD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPAUD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_GBPAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPAUD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_GBPAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPAUD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_GBPAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPAUD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_GBPAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_GBPAUD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_GBPAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_GBPAUD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_GBPAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_GBPAUD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_GBPAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_GBPAUD_UP_S2_OCO4")
{
orderTicket.Cancel("GBPAUD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPJPY_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPJPY_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPJPY_UP_S2_OCO1")))
{
Base.GBPJPY_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPJPY_UP_S2_OCO2")))
{
Base.GBPJPY_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPJPY_UP_S2_OCO3")))
{
Base.GBPJPY_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPJPY_UP_S2_OCO4")))
{
Base.GBPJPY_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPJPY_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPJPY_OCO1_EO1_UP_S2)
Base.GBPJPY_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO2_UP_S2)
Base.GBPJPY_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO3_UP_S2)
Base.GBPJPY_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO4_UP_S2)
Base.GBPJPY_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO5_UP_S2)
Base.GBPJPY_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO1_EO6_UP_S2)
Base.GBPJPY_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPJPY_UP_S2_OCO_DELAY_7DAY))
{
int GBPJPY_OCO1S1_UP_S2 = 0;
for (; GBPJPY_OCO1S1_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets1.Count; GBPJPY_OCO1S1_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets1[GBPJPY_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO1Sets1[GBPJPY_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_1__Time out_OCO1");
Base.GBPJPY_UP_S2_OCO1Sets1.Clear();
GBPJPY_OCO1S1_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S2_UP_S2 = 0;
for (; GBPJPY_OCO1S2_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets2.Count; GBPJPY_OCO1S2_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets2[GBPJPY_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO1Sets2[GBPJPY_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_2__Time out_OCO1");
Base.GBPJPY_UP_S2_OCO1Sets2.Clear();
GBPJPY_OCO1S2_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S3_UP_S2 = 0;
for (; GBPJPY_OCO1S3_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets3.Count; GBPJPY_OCO1S3_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets3[GBPJPY_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO1Sets3[GBPJPY_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_3__Time out_OCO1");
Base.GBPJPY_UP_S2_OCO1Sets3.Clear();
GBPJPY_OCO1S3_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S4_UP_S2 = 0;
for (; GBPJPY_OCO1S4_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets4.Count; GBPJPY_OCO1S4_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets4[GBPJPY_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO1Sets4[GBPJPY_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_4__Time out_OCO1");
Base.GBPJPY_UP_S2_OCO1Sets4.Clear();
GBPJPY_OCO1S4_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S5_UP_S2 = 0;
for (; GBPJPY_OCO1S5_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets5.Count; GBPJPY_OCO1S5_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets5[GBPJPY_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO1Sets5[GBPJPY_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_5__Time out_OCO1");
Base.GBPJPY_UP_S2_OCO1Sets5.Clear();
GBPJPY_OCO1S5_UP_S2 = 0;
break;
}
int GBPJPY_OCO1S6_UP_S2 = 0;
for (; GBPJPY_OCO1S6_UP_S2 < Base.GBPJPY_UP_S2_OCO1Sets6.Count; GBPJPY_OCO1S6_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO1Sets6[GBPJPY_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO1Sets6[GBPJPY_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_6__Time out_OCO1");
Base.GBPJPY_UP_S2_OCO1Sets6.Clear();
GBPJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO2_EO1_UP_S2)
Base.GBPJPY_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO2_UP_S2)
Base.GBPJPY_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO3_UP_S2)
Base.GBPJPY_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO4_UP_S2)
Base.GBPJPY_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO5_UP_S2)
Base.GBPJPY_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO2_EO6_UP_S2)
Base.GBPJPY_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPJPY_UP_S2_OCO_DELAY_7DAY))
{
int GBPJPY_OCO2S1_UP_S2 = 0;
for (; GBPJPY_OCO2S1_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets1.Count; GBPJPY_OCO2S1_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets1[GBPJPY_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO2Sets1[GBPJPY_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_1__Time out_OCO2");
Base.GBPJPY_UP_S2_OCO2Sets1.Clear();
GBPJPY_OCO2S1_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S2_UP_S2 = 0;
for (; GBPJPY_OCO2S2_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets2.Count; GBPJPY_OCO2S2_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets2[GBPJPY_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO2Sets2[GBPJPY_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_2__Time out_OCO2");
Base.GBPJPY_UP_S2_OCO2Sets2.Clear();
GBPJPY_OCO2S2_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S3_UP_S2 = 0;
for (; GBPJPY_OCO2S3_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets3.Count; GBPJPY_OCO2S3_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets3[GBPJPY_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO2Sets3[GBPJPY_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_3__Time out_OCO2");
Base.GBPJPY_UP_S2_OCO2Sets3.Clear();
GBPJPY_OCO2S3_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S4_UP_S2 = 0;
for (; GBPJPY_OCO2S4_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets4.Count; GBPJPY_OCO2S4_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets4[GBPJPY_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO2Sets4[GBPJPY_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_4__Time out_OCO2");
Base.GBPJPY_UP_S2_OCO2Sets4.Clear();
GBPJPY_OCO2S4_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S5_UP_S2 = 0;
for (; GBPJPY_OCO2S5_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets5.Count; GBPJPY_OCO2S5_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets5[GBPJPY_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO2Sets5[GBPJPY_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_5__Time out_OCO2");
Base.GBPJPY_UP_S2_OCO2Sets5.Clear();
GBPJPY_OCO2S5_UP_S2 = 0;
break;
}
int GBPJPY_OCO2S6_UP_S2 = 0;
for (; GBPJPY_OCO2S6_UP_S2 < Base.GBPJPY_UP_S2_OCO2Sets6.Count; GBPJPY_OCO2S6_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO2Sets6[GBPJPY_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO2Sets6[GBPJPY_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_6__Time out_OCO2");
Base.GBPJPY_UP_S2_OCO2Sets6.Clear();
GBPJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO3_EO1_UP_S2)
Base.GBPJPY_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO2_UP_S2)
Base.GBPJPY_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO3_UP_S2)
Base.GBPJPY_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO4_UP_S2)
Base.GBPJPY_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO5_UP_S2)
Base.GBPJPY_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO3_EO6_UP_S2)
Base.GBPJPY_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPJPY_UP_S2_OCO_DELAY_7DAY))
{
int GBPJPY_OCO3S1_UP_S2 = 0;
for (; GBPJPY_OCO3S1_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets1.Count; GBPJPY_OCO3S1_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets1[GBPJPY_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO3Sets1[GBPJPY_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_1__Time out_OCO3");
Base.GBPJPY_UP_S2_OCO3Sets1.Clear();
GBPJPY_OCO3S1_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S2_UP_S2 = 0;
for (; GBPJPY_OCO3S2_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets2.Count; GBPJPY_OCO3S2_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets2[GBPJPY_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO3Sets2[GBPJPY_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_2__Time out_OCO3");
Base.GBPJPY_UP_S2_OCO3Sets2.Clear();
GBPJPY_OCO3S2_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S3_UP_S2 = 0;
for (; GBPJPY_OCO3S3_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets3.Count; GBPJPY_OCO3S3_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets3[GBPJPY_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO3Sets3[GBPJPY_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_3__Time out_OCO3");
Base.GBPJPY_UP_S2_OCO3Sets3.Clear();
GBPJPY_OCO3S3_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S4_UP_S2 = 0;
for (; GBPJPY_OCO3S4_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets4.Count; GBPJPY_OCO3S4_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets4[GBPJPY_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO3Sets4[GBPJPY_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_4__Time out_OCO3");
Base.GBPJPY_UP_S2_OCO3Sets4.Clear();
GBPJPY_OCO3S4_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S5_UP_S2 = 0;
for (; GBPJPY_OCO3S5_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets5.Count; GBPJPY_OCO3S5_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets5[GBPJPY_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO3Sets5[GBPJPY_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_5__Time out_OCO3");
Base.GBPJPY_UP_S2_OCO3Sets5.Clear();
GBPJPY_OCO3S5_UP_S2 = 0;
break;
}
int GBPJPY_OCO3S6_UP_S2 = 0;
for (; GBPJPY_OCO3S6_UP_S2 < Base.GBPJPY_UP_S2_OCO3Sets6.Count; GBPJPY_OCO3S6_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO3Sets6[GBPJPY_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO3Sets6[GBPJPY_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_6__Time out_OCO3");
Base.GBPJPY_UP_S2_OCO3Sets6.Clear();
GBPJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPJPY_OCO4_EO1_UP_S2)
Base.GBPJPY_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO2_UP_S2)
Base.GBPJPY_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO3_UP_S2)
Base.GBPJPY_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO4_UP_S2)
Base.GBPJPY_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO5_UP_S2)
Base.GBPJPY_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.GBPJPY_OCO4_EO6_UP_S2)
Base.GBPJPY_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPJPY_UP_S2_OCO_DELAY_7DAY))
{
int GBPJPY_OCO4S1_UP_S2 = 0;
for (; GBPJPY_OCO4S1_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets1.Count; GBPJPY_OCO4S1_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets1[GBPJPY_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO4Sets1[GBPJPY_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_1__Time out_OCO4");
Base.GBPJPY_UP_S2_OCO4Sets1.Clear();
GBPJPY_OCO4S1_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S2_UP_S2 = 0;
for (; GBPJPY_OCO4S2_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets2.Count; GBPJPY_OCO4S2_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets2[GBPJPY_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO4Sets2[GBPJPY_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_2__Time out_OCO4");
Base.GBPJPY_UP_S2_OCO4Sets2.Clear();
GBPJPY_OCO4S2_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S3_UP_S2 = 0;
for (; GBPJPY_OCO4S3_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets3.Count; GBPJPY_OCO4S3_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets3[GBPJPY_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO4Sets3[GBPJPY_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_3__Time out_OCO4");
Base.GBPJPY_UP_S2_OCO4Sets3.Clear();
GBPJPY_OCO4S3_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S4_UP_S2 = 0;
for (; GBPJPY_OCO4S4_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets4.Count; GBPJPY_OCO4S4_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets4[GBPJPY_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO4Sets4[GBPJPY_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_4__Time out_OCO4");
Base.GBPJPY_UP_S2_OCO4Sets4.Clear();
GBPJPY_OCO4S4_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S5_UP_S2 = 0;
for (; GBPJPY_OCO4S5_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets5.Count; GBPJPY_OCO4S5_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets5[GBPJPY_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO4Sets5[GBPJPY_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_5__Time out_OCO4");
Base.GBPJPY_UP_S2_OCO4Sets5.Clear();
GBPJPY_OCO4S5_UP_S2 = 0;
break;
}
int GBPJPY_OCO4S6_UP_S2 = 0;
for (; GBPJPY_OCO4S6_UP_S2 < Base.GBPJPY_UP_S2_OCO4Sets6.Count; GBPJPY_OCO4S6_UP_S2++)
if (Base.GBPJPY_UP_S2_OCO4Sets6[GBPJPY_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.GBPJPY_UP_S2_OCO4Sets6[GBPJPY_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("GBPJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("GBPJPY", order.Quantity, false, "GBPJPY_UP_S2_Entry_6__Time out_OCO4");
Base.GBPJPY_UP_S2_OCO4Sets6.Clear();
GBPJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPJPY_UP_S2 = DOWM_GBPJPY_UP_S2 || DOWT_GBPJPY_UP_S2 || DOWW_GBPJPY_UP_S2 || DOWTH_GBPJPY_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPJPY") && SY1D.Symbol.ID.Market == Market.FXCM)
{
if(SY1D.BQ[0].Open != 0)
{
algorithm.Debug("ID : " + SY1D.Symbol.ID.Market);
}
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPJPY_OCO1_UP_S2_IsReady == false ||
Base.GBPJPY_OCO2_UP_S2_IsReady == false ||
Base.GBPJPY_OCO3_UP_S2_IsReady == false ||
Base.GBPJPY_OCO4_UP_S2_IsReady == false)
{
Base.GBPJPY_OCO1_UP_S2_Monthly_IsReady = false;
Base.GBPJPY_OCO2_UP_S2_Monthly_IsReady = false;
Base.GBPJPY_OCO3_UP_S2_Monthly_IsReady = false;
Base.GBPJPY_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPJPY_OCO1_UP_S2_Monthly_IsReady = true;
Base.GBPJPY_OCO2_UP_S2_Monthly_IsReady = true;
Base.GBPJPY_OCO3_UP_S2_Monthly_IsReady = true;
Base.GBPJPY_OCO4_UP_S2_Monthly_IsReady = true;
}
GBPJPY_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
GBPJPY_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
GBPJPY_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (GBPJPY_Signal_Condition_UP_1)
{
GBPJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPJPY_Signal_Condition_UP_2)
{
GBPJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPJPY_Signal_Condition_UP_3)
{
GBPJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPJPY_Signal_Condition_UP_1)
{
GBPJPY_UP_S2_TP1 = Base.Yen_TP_1 ;
}
if (GBPJPY_Signal_Condition_UP_2)
{
GBPJPY_UP_S2_TP1 = Base.Yen_TP_2 ;
}
if (GBPJPY_Signal_Condition_UP_3)
{
GBPJPY_UP_S2_TP1 = Base.Yen_TP_3 ;
}
GBPJPY_UP_S2_TP2 = GBPJPY_UP_S2_SL * 0;
GBPJPY_UP_S2_TP3 = GBPJPY_UP_S2_SL * 0;
GBPJPY_UP_S2_TP4 = GBPJPY_UP_S2_SL * 0;
GBPJPY_UP_S2_TP5 = GBPJPY_UP_S2_SL * 0;
GBPJPY_UP_S2_TP6 = GBPJPY_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPJPY_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPJPY_quantity_SL_UP_S2 = GBPJPY_quantity_UP_S2;
GBPJPY_quantity_TP1_UP_S2 = (int)Math.Floor(GBPJPY_quantity_UP_S2 * 1m);
GBPJPY_quantity_TP2_UP_S2 = (int)Math.Floor(GBPJPY_quantity_TP1_UP_S2 * 0m);
GBPJPY_quantity_TP3_UP_S2 = (int)Math.Floor(GBPJPY_quantity_TP2_UP_S2 * 0m);
GBPJPY_quantity_TP4_UP_S2 = (int)Math.Floor(GBPJPY_quantity_TP3_UP_S2 * 0m);
GBPJPY_quantity_TP5_UP_S2 = (int)Math.Floor(GBPJPY_quantity_TP4_UP_S2 * 0m);
GBPJPY_quantity_TP6_UP_S2 = (int)Math.Floor(GBPJPY_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((GBPJPY_Signal_Condition_UP_1 || GBPJPY_Signal_Condition_UP_2 || GBPJPY_Signal_Condition_UP_3) &&
DOWR_GBPJPY_UP_S2 &&
Base.GBPJPY_OCO1_UP_S2_IsReady == true &&
Base.GBPJPY_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.GBPJPY_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP1_UP_S2, false,"GBPJPY_UP_S2_Entry_TP1_OCO1");
Base.GBPJPY_OCO1_EO1_UP_S2 = false;
Base.GBPJPY_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP2_UP_S2, false,"GBPJPY_UP_S2_Entry_TP2_OCO1");
Base.GBPJPY_OCO1_EO2_UP_S2 = false;
Base.GBPJPY_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP3_UP_S2, false,"GBPJPY_UP_S2_Entry_TP3_OCO1");
Base.GBPJPY_OCO1_EO3_UP_S2 = false;
Base.GBPJPY_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP4_UP_S2, false,"GBPJPY_UP_S2_Entry_TP4_OCO1");
Base.GBPJPY_OCO1_EO4_UP_S2 = false;
Base.GBPJPY_OCO1_UP_S2_IsReady = false;
if (Base.GBPJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((GBPJPY_Signal_Condition_UP_1 || GBPJPY_Signal_Condition_UP_2 || GBPJPY_Signal_Condition_UP_3) &&
DOWR_GBPJPY_UP_S2 &&
Base.GBPJPY_OCO1_UP_S2_IsReady == false &&
Base.GBPJPY_OCO2_UP_S2_IsReady == true &&
Base.GBPJPY_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.GBPJPY_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP1_UP_S2, false,"GBPJPY_UP_S2_Entry_TP1_OCO2");
Base.GBPJPY_OCO2_EO1_UP_S2 = false;
Base.GBPJPY_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP2_UP_S2, false,"GBPJPY_UP_S2_Entry_TP2_OCO2");
Base.GBPJPY_OCO2_EO2_UP_S2 = false;
Base.GBPJPY_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP3_UP_S2, false,"GBPJPY_UP_S2_Entry_TP3_OCO2");
Base.GBPJPY_OCO2_EO3_UP_S2 = false;
Base.GBPJPY_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP4_UP_S2, false,"GBPJPY_UP_S2_Entry_TP4_OCO2");
Base.GBPJPY_OCO2_EO4_UP_S2 = false;
Base.GBPJPY_OCO2_UP_S2_IsReady = false;
if (Base.GBPJPY_OCO2_UP_S2_IsReady == false && Base.GBPJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((GBPJPY_Signal_Condition_UP_1 || GBPJPY_Signal_Condition_UP_2 || GBPJPY_Signal_Condition_UP_3) &&
DOWR_GBPJPY_UP_S2 &&
Base.GBPJPY_OCO1_UP_S2_IsReady == false &&
Base.GBPJPY_OCO2_UP_S2_IsReady == false &&
Base.GBPJPY_OCO3_UP_S2_IsReady == true &&
Base.GBPJPY_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.GBPJPY_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP1_UP_S2, false,"GBPJPY_UP_S2_Entry_TP1_OCO3");
Base.GBPJPY_OCO3_EO1_UP_S2 = false;
Base.GBPJPY_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP2_UP_S2, false,"GBPJPY_UP_S2_Entry_TP2_OCO3");
Base.GBPJPY_OCO3_EO2_UP_S2 = false;
Base.GBPJPY_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP3_UP_S2, false,"GBPJPY_UP_S2_Entry_TP3_OCO3");
Base.GBPJPY_OCO3_EO3_UP_S2 = false;
Base.GBPJPY_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP4_UP_S2, false,"GBPJPY_UP_S2_Entry_TP4_OCO3");
Base.GBPJPY_OCO3_EO4_UP_S2 = false;
Base.GBPJPY_OCO3_UP_S2_IsReady = false;
if (Base.GBPJPY_OCO3_UP_S2_IsReady == false && Base.GBPJPY_OCO2_UP_S2_IsReady == false && Base.GBPJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((GBPJPY_Signal_Condition_UP_1 || GBPJPY_Signal_Condition_UP_2 || GBPJPY_Signal_Condition_UP_3) &&
DOWR_GBPJPY_UP_S2 &&
Base.GBPJPY_OCO1_UP_S2_IsReady == false &&
Base.GBPJPY_OCO2_UP_S2_IsReady == false &&
Base.GBPJPY_OCO3_UP_S2_IsReady == false &&
Base.GBPJPY_OCO4_UP_S2_IsReady == true &&
Base.GBPJPY_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.GBPJPY_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP1_UP_S2, false,"GBPJPY_UP_S2_Entry_TP1_OCO4");
Base.GBPJPY_OCO4_EO1_UP_S2 = false;
Base.GBPJPY_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP2_UP_S2, false,"GBPJPY_UP_S2_Entry_TP2_OCO4");
Base.GBPJPY_OCO4_EO2_UP_S2 = false;
Base.GBPJPY_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP3_UP_S2, false,"GBPJPY_UP_S2_Entry_TP3_OCO4");
Base.GBPJPY_OCO4_EO3_UP_S2 = false;
Base.GBPJPY_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPJPY_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPJPY_quantity_TP4_UP_S2, false,"GBPJPY_UP_S2_Entry_TP4_OCO4");
Base.GBPJPY_OCO4_EO4_UP_S2 = false;
Base.GBPJPY_OCO4_UP_S2_IsReady = false;
if (Base.GBPJPY_OCO4_UP_S2_IsReady == false && Base.GBPJPY_OCO3_UP_S2_IsReady == false && Base.GBPJPY_OCO2_UP_S2_IsReady == false && Base.GBPJPY_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURCAD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURCAD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURCAD_UP_S2_OCO1")))
{
Base.EURCAD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCAD_UP_S2_OCO2")))
{
Base.EURCAD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCAD_UP_S2_OCO3")))
{
Base.EURCAD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCAD_UP_S2_OCO4")))
{
Base.EURCAD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURCAD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURCAD_OCO1_EO1_UP_S2)
Base.EURCAD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO2_UP_S2)
Base.EURCAD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO3_UP_S2)
Base.EURCAD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO4_UP_S2)
Base.EURCAD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO5_UP_S2)
Base.EURCAD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO6_UP_S2)
Base.EURCAD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCAD_UP_S2_OCO_DELAY_7DAY))
{
int EURCAD_OCO1S1_UP_S2 = 0;
for (; EURCAD_OCO1S1_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets1.Count; EURCAD_OCO1S1_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets1[EURCAD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO1Sets1[EURCAD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_1__Time out_OCO1");
Base.EURCAD_UP_S2_OCO1Sets1.Clear();
EURCAD_OCO1S1_UP_S2 = 0;
break;
}
int EURCAD_OCO1S2_UP_S2 = 0;
for (; EURCAD_OCO1S2_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets2.Count; EURCAD_OCO1S2_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets2[EURCAD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO1Sets2[EURCAD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_2__Time out_OCO1");
Base.EURCAD_UP_S2_OCO1Sets2.Clear();
EURCAD_OCO1S2_UP_S2 = 0;
break;
}
int EURCAD_OCO1S3_UP_S2 = 0;
for (; EURCAD_OCO1S3_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets3.Count; EURCAD_OCO1S3_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets3[EURCAD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO1Sets3[EURCAD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_3__Time out_OCO1");
Base.EURCAD_UP_S2_OCO1Sets3.Clear();
EURCAD_OCO1S3_UP_S2 = 0;
break;
}
int EURCAD_OCO1S4_UP_S2 = 0;
for (; EURCAD_OCO1S4_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets4.Count; EURCAD_OCO1S4_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets4[EURCAD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO1Sets4[EURCAD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_4__Time out_OCO1");
Base.EURCAD_UP_S2_OCO1Sets4.Clear();
EURCAD_OCO1S4_UP_S2 = 0;
break;
}
int EURCAD_OCO1S5_UP_S2 = 0;
for (; EURCAD_OCO1S5_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets5.Count; EURCAD_OCO1S5_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets5[EURCAD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO1Sets5[EURCAD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_5__Time out_OCO1");
Base.EURCAD_UP_S2_OCO1Sets5.Clear();
EURCAD_OCO1S5_UP_S2 = 0;
break;
}
int EURCAD_OCO1S6_UP_S2 = 0;
for (; EURCAD_OCO1S6_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets6.Count; EURCAD_OCO1S6_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets6[EURCAD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO1Sets6[EURCAD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_6__Time out_OCO1");
Base.EURCAD_UP_S2_OCO1Sets6.Clear();
EURCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO2_EO1_UP_S2)
Base.EURCAD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO2_UP_S2)
Base.EURCAD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO3_UP_S2)
Base.EURCAD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO4_UP_S2)
Base.EURCAD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO5_UP_S2)
Base.EURCAD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO6_UP_S2)
Base.EURCAD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCAD_UP_S2_OCO_DELAY_7DAY))
{
int EURCAD_OCO2S1_UP_S2 = 0;
for (; EURCAD_OCO2S1_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets1.Count; EURCAD_OCO2S1_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets1[EURCAD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO2Sets1[EURCAD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_1__Time out_OCO2");
Base.EURCAD_UP_S2_OCO2Sets1.Clear();
EURCAD_OCO2S1_UP_S2 = 0;
break;
}
int EURCAD_OCO2S2_UP_S2 = 0;
for (; EURCAD_OCO2S2_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets2.Count; EURCAD_OCO2S2_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets2[EURCAD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO2Sets2[EURCAD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_2__Time out_OCO2");
Base.EURCAD_UP_S2_OCO2Sets2.Clear();
EURCAD_OCO2S2_UP_S2 = 0;
break;
}
int EURCAD_OCO2S3_UP_S2 = 0;
for (; EURCAD_OCO2S3_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets3.Count; EURCAD_OCO2S3_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets3[EURCAD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO2Sets3[EURCAD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_3__Time out_OCO2");
Base.EURCAD_UP_S2_OCO2Sets3.Clear();
EURCAD_OCO2S3_UP_S2 = 0;
break;
}
int EURCAD_OCO2S4_UP_S2 = 0;
for (; EURCAD_OCO2S4_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets4.Count; EURCAD_OCO2S4_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets4[EURCAD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO2Sets4[EURCAD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_4__Time out_OCO2");
Base.EURCAD_UP_S2_OCO2Sets4.Clear();
EURCAD_OCO2S4_UP_S2 = 0;
break;
}
int EURCAD_OCO2S5_UP_S2 = 0;
for (; EURCAD_OCO2S5_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets5.Count; EURCAD_OCO2S5_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets5[EURCAD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO2Sets5[EURCAD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_5__Time out_OCO2");
Base.EURCAD_UP_S2_OCO2Sets5.Clear();
EURCAD_OCO2S5_UP_S2 = 0;
break;
}
int EURCAD_OCO2S6_UP_S2 = 0;
for (; EURCAD_OCO2S6_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets6.Count; EURCAD_OCO2S6_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets6[EURCAD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO2Sets6[EURCAD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_6__Time out_OCO2");
Base.EURCAD_UP_S2_OCO2Sets6.Clear();
EURCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO3_EO1_UP_S2)
Base.EURCAD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO2_UP_S2)
Base.EURCAD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO3_UP_S2)
Base.EURCAD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO4_UP_S2)
Base.EURCAD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO5_UP_S2)
Base.EURCAD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO6_UP_S2)
Base.EURCAD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCAD_UP_S2_OCO_DELAY_7DAY))
{
int EURCAD_OCO3S1_UP_S2 = 0;
for (; EURCAD_OCO3S1_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets1.Count; EURCAD_OCO3S1_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets1[EURCAD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO3Sets1[EURCAD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_1__Time out_OCO3");
Base.EURCAD_UP_S2_OCO3Sets1.Clear();
EURCAD_OCO3S1_UP_S2 = 0;
break;
}
int EURCAD_OCO3S2_UP_S2 = 0;
for (; EURCAD_OCO3S2_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets2.Count; EURCAD_OCO3S2_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets2[EURCAD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO3Sets2[EURCAD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_2__Time out_OCO3");
Base.EURCAD_UP_S2_OCO3Sets2.Clear();
EURCAD_OCO3S2_UP_S2 = 0;
break;
}
int EURCAD_OCO3S3_UP_S2 = 0;
for (; EURCAD_OCO3S3_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets3.Count; EURCAD_OCO3S3_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets3[EURCAD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO3Sets3[EURCAD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_3__Time out_OCO3");
Base.EURCAD_UP_S2_OCO3Sets3.Clear();
EURCAD_OCO3S3_UP_S2 = 0;
break;
}
int EURCAD_OCO3S4_UP_S2 = 0;
for (; EURCAD_OCO3S4_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets4.Count; EURCAD_OCO3S4_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets4[EURCAD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO3Sets4[EURCAD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_4__Time out_OCO3");
Base.EURCAD_UP_S2_OCO3Sets4.Clear();
EURCAD_OCO3S4_UP_S2 = 0;
break;
}
int EURCAD_OCO3S5_UP_S2 = 0;
for (; EURCAD_OCO3S5_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets5.Count; EURCAD_OCO3S5_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets5[EURCAD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO3Sets5[EURCAD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_5__Time out_OCO3");
Base.EURCAD_UP_S2_OCO3Sets5.Clear();
EURCAD_OCO3S5_UP_S2 = 0;
break;
}
int EURCAD_OCO3S6_UP_S2 = 0;
for (; EURCAD_OCO3S6_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets6.Count; EURCAD_OCO3S6_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets6[EURCAD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO3Sets6[EURCAD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_6__Time out_OCO3");
Base.EURCAD_UP_S2_OCO3Sets6.Clear();
EURCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO4_EO1_UP_S2)
Base.EURCAD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO2_UP_S2)
Base.EURCAD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO3_UP_S2)
Base.EURCAD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO4_UP_S2)
Base.EURCAD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO5_UP_S2)
Base.EURCAD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO6_UP_S2)
Base.EURCAD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCAD_UP_S2_OCO_DELAY_7DAY))
{
int EURCAD_OCO4S1_UP_S2 = 0;
for (; EURCAD_OCO4S1_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets1.Count; EURCAD_OCO4S1_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets1[EURCAD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO4Sets1[EURCAD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_1__Time out_OCO4");
Base.EURCAD_UP_S2_OCO4Sets1.Clear();
EURCAD_OCO4S1_UP_S2 = 0;
break;
}
int EURCAD_OCO4S2_UP_S2 = 0;
for (; EURCAD_OCO4S2_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets2.Count; EURCAD_OCO4S2_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets2[EURCAD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO4Sets2[EURCAD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_2__Time out_OCO4");
Base.EURCAD_UP_S2_OCO4Sets2.Clear();
EURCAD_OCO4S2_UP_S2 = 0;
break;
}
int EURCAD_OCO4S3_UP_S2 = 0;
for (; EURCAD_OCO4S3_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets3.Count; EURCAD_OCO4S3_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets3[EURCAD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO4Sets3[EURCAD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_3__Time out_OCO4");
Base.EURCAD_UP_S2_OCO4Sets3.Clear();
EURCAD_OCO4S3_UP_S2 = 0;
break;
}
int EURCAD_OCO4S4_UP_S2 = 0;
for (; EURCAD_OCO4S4_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets4.Count; EURCAD_OCO4S4_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets4[EURCAD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO4Sets4[EURCAD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_4__Time out_OCO4");
Base.EURCAD_UP_S2_OCO4Sets4.Clear();
EURCAD_OCO4S4_UP_S2 = 0;
break;
}
int EURCAD_OCO4S5_UP_S2 = 0;
for (; EURCAD_OCO4S5_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets5.Count; EURCAD_OCO4S5_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets5[EURCAD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO4Sets5[EURCAD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_5__Time out_OCO4");
Base.EURCAD_UP_S2_OCO4Sets5.Clear();
EURCAD_OCO4S5_UP_S2 = 0;
break;
}
int EURCAD_OCO4S6_UP_S2 = 0;
for (; EURCAD_OCO4S6_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets6.Count; EURCAD_OCO4S6_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets6[EURCAD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.EURCAD_UP_S2_OCO4Sets6[EURCAD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_UP_S2_Entry_6__Time out_OCO4");
Base.EURCAD_UP_S2_OCO4Sets6.Clear();
EURCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURCAD_UP_S2 = DOWM_EURCAD_UP_S2 || DOWT_EURCAD_UP_S2 || DOWW_EURCAD_UP_S2 || DOWTH_EURCAD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURCAD_OCO1_UP_S2_IsReady == false ||
Base.EURCAD_OCO2_UP_S2_IsReady == false ||
Base.EURCAD_OCO3_UP_S2_IsReady == false ||
Base.EURCAD_OCO4_UP_S2_IsReady == false)
{
Base.EURCAD_OCO1_UP_S2_Monthly_IsReady = false;
Base.EURCAD_OCO2_UP_S2_Monthly_IsReady = false;
Base.EURCAD_OCO3_UP_S2_Monthly_IsReady = false;
Base.EURCAD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURCAD_OCO1_UP_S2_Monthly_IsReady = true;
Base.EURCAD_OCO2_UP_S2_Monthly_IsReady = true;
Base.EURCAD_OCO3_UP_S2_Monthly_IsReady = true;
Base.EURCAD_OCO4_UP_S2_Monthly_IsReady = true;
}
EURCAD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURCAD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURCAD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (EURCAD_Signal_Condition_UP_1)
{
EURCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURCAD_Signal_Condition_UP_2)
{
EURCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURCAD_Signal_Condition_UP_3)
{
EURCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURCAD_Signal_Condition_UP_1)
{
EURCAD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (EURCAD_Signal_Condition_UP_2)
{
EURCAD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (EURCAD_Signal_Condition_UP_3)
{
EURCAD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
EURCAD_UP_S2_TP2 = EURCAD_UP_S2_SL * 0;
EURCAD_UP_S2_TP3 = EURCAD_UP_S2_SL * 0;
EURCAD_UP_S2_TP4 = EURCAD_UP_S2_SL * 0;
EURCAD_UP_S2_TP5 = EURCAD_UP_S2_SL * 0;
EURCAD_UP_S2_TP6 = EURCAD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
EURCAD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURCAD_quantity_SL_UP_S2 = EURCAD_quantity_UP_S2;
EURCAD_quantity_TP1_UP_S2 = (int)Math.Floor(EURCAD_quantity_UP_S2 * 1m);
EURCAD_quantity_TP2_UP_S2 = (int)Math.Floor(EURCAD_quantity_TP1_UP_S2 * 0m);
EURCAD_quantity_TP3_UP_S2 = (int)Math.Floor(EURCAD_quantity_TP2_UP_S2 * 0m);
EURCAD_quantity_TP4_UP_S2 = (int)Math.Floor(EURCAD_quantity_TP3_UP_S2 * 0m);
EURCAD_quantity_TP5_UP_S2 = (int)Math.Floor(EURCAD_quantity_TP4_UP_S2 * 0m);
EURCAD_quantity_TP6_UP_S2 = (int)Math.Floor(EURCAD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((EURCAD_Signal_Condition_UP_1 || EURCAD_Signal_Condition_UP_2 || EURCAD_Signal_Condition_UP_3) &&
DOWR_EURCAD_UP_S2 &&
Base.EURCAD_OCO1_UP_S2_IsReady == true &&
Base.EURCAD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.EURCAD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP1_UP_S2, false,"EURCAD_UP_S2_Entry_TP1_OCO1");
Base.EURCAD_OCO1_EO1_UP_S2 = false;
Base.EURCAD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP2_UP_S2, false,"EURCAD_UP_S2_Entry_TP2_OCO1");
Base.EURCAD_OCO1_EO2_UP_S2 = false;
Base.EURCAD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP3_UP_S2, false,"EURCAD_UP_S2_Entry_TP3_OCO1");
Base.EURCAD_OCO1_EO3_UP_S2 = false;
Base.EURCAD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP4_UP_S2, false,"EURCAD_UP_S2_Entry_TP4_OCO1");
Base.EURCAD_OCO1_EO4_UP_S2 = false;
Base.EURCAD_OCO1_UP_S2_IsReady = false;
if (Base.EURCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((EURCAD_Signal_Condition_UP_1 || EURCAD_Signal_Condition_UP_2 || EURCAD_Signal_Condition_UP_3) &&
DOWR_EURCAD_UP_S2 &&
Base.EURCAD_OCO1_UP_S2_IsReady == false &&
Base.EURCAD_OCO2_UP_S2_IsReady == true &&
Base.EURCAD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.EURCAD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP1_UP_S2, false,"EURCAD_UP_S2_Entry_TP1_OCO2");
Base.EURCAD_OCO2_EO1_UP_S2 = false;
Base.EURCAD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP2_UP_S2, false,"EURCAD_UP_S2_Entry_TP2_OCO2");
Base.EURCAD_OCO2_EO2_UP_S2 = false;
Base.EURCAD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP3_UP_S2, false,"EURCAD_UP_S2_Entry_TP3_OCO2");
Base.EURCAD_OCO2_EO3_UP_S2 = false;
Base.EURCAD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP4_UP_S2, false,"EURCAD_UP_S2_Entry_TP4_OCO2");
Base.EURCAD_OCO2_EO4_UP_S2 = false;
Base.EURCAD_OCO2_UP_S2_IsReady = false;
if (Base.EURCAD_OCO2_UP_S2_IsReady == false && Base.EURCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((EURCAD_Signal_Condition_UP_1 || EURCAD_Signal_Condition_UP_2 || EURCAD_Signal_Condition_UP_3) &&
DOWR_EURCAD_UP_S2 &&
Base.EURCAD_OCO1_UP_S2_IsReady == false &&
Base.EURCAD_OCO2_UP_S2_IsReady == false &&
Base.EURCAD_OCO3_UP_S2_IsReady == true &&
Base.EURCAD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.EURCAD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP1_UP_S2, false,"EURCAD_UP_S2_Entry_TP1_OCO3");
Base.EURCAD_OCO3_EO1_UP_S2 = false;
Base.EURCAD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP2_UP_S2, false,"EURCAD_UP_S2_Entry_TP2_OCO3");
Base.EURCAD_OCO3_EO2_UP_S2 = false;
Base.EURCAD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP3_UP_S2, false,"EURCAD_UP_S2_Entry_TP3_OCO3");
Base.EURCAD_OCO3_EO3_UP_S2 = false;
Base.EURCAD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP4_UP_S2, false,"EURCAD_UP_S2_Entry_TP4_OCO3");
Base.EURCAD_OCO3_EO4_UP_S2 = false;
Base.EURCAD_OCO3_UP_S2_IsReady = false;
if (Base.EURCAD_OCO3_UP_S2_IsReady == false && Base.EURCAD_OCO2_UP_S2_IsReady == false && Base.EURCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((EURCAD_Signal_Condition_UP_1 || EURCAD_Signal_Condition_UP_2 || EURCAD_Signal_Condition_UP_3) &&
DOWR_EURCAD_UP_S2 &&
Base.EURCAD_OCO1_UP_S2_IsReady == false &&
Base.EURCAD_OCO2_UP_S2_IsReady == false &&
Base.EURCAD_OCO3_UP_S2_IsReady == false &&
Base.EURCAD_OCO4_UP_S2_IsReady == true &&
Base.EURCAD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.EURCAD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP1_UP_S2, false,"EURCAD_UP_S2_Entry_TP1_OCO4");
Base.EURCAD_OCO4_EO1_UP_S2 = false;
Base.EURCAD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP2_UP_S2, false,"EURCAD_UP_S2_Entry_TP2_OCO4");
Base.EURCAD_OCO4_EO2_UP_S2 = false;
Base.EURCAD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP3_UP_S2, false,"EURCAD_UP_S2_Entry_TP3_OCO4");
Base.EURCAD_OCO4_EO3_UP_S2 = false;
Base.EURCAD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCAD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP4_UP_S2, false,"EURCAD_UP_S2_Entry_TP4_OCO4");
Base.EURCAD_OCO4_EO4_UP_S2 = false;
Base.EURCAD_OCO4_UP_S2_IsReady = false;
if (Base.EURCAD_OCO4_UP_S2_IsReady == false && Base.EURCAD_OCO3_UP_S2_IsReady == false && Base.EURCAD_OCO2_UP_S2_IsReady == false && Base.EURCAD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURCAD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURCAD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURCAD_DOWN_S2_OCO1")))
{
Base.EURCAD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCAD_DOWN_S2_OCO2")))
{
Base.EURCAD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCAD_DOWN_S2_OCO3")))
{
Base.EURCAD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCAD_DOWN_S2_OCO4")))
{
Base.EURCAD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURCAD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURCAD_OCO1_EO1_DOWN_S2)
Base.EURCAD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO2_DOWN_S2)
Base.EURCAD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO3_DOWN_S2)
Base.EURCAD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO4_DOWN_S2)
Base.EURCAD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO5_DOWN_S2)
Base.EURCAD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO1_EO6_DOWN_S2)
Base.EURCAD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURCAD_OCO1S1_DOWN_S2 = 0;
for (; EURCAD_OCO1S1_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets1.Count; EURCAD_OCO1S1_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets1[EURCAD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO1Sets1[EURCAD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_1__Time out_OCO1");
Base.EURCAD_DOWN_S2_OCO1Sets1.Clear();
EURCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int EURCAD_OCO1S2_DOWN_S2 = 0;
for (; EURCAD_OCO1S2_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets2.Count; EURCAD_OCO1S2_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets2[EURCAD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO1Sets2[EURCAD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_2__Time out_OCO1");
Base.EURCAD_DOWN_S2_OCO1Sets2.Clear();
EURCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int EURCAD_OCO1S3_DOWN_S2 = 0;
for (; EURCAD_OCO1S3_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets3.Count; EURCAD_OCO1S3_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets3[EURCAD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO1Sets3[EURCAD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_3__Time out_OCO1");
Base.EURCAD_DOWN_S2_OCO1Sets3.Clear();
EURCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int EURCAD_OCO1S4_DOWN_S2 = 0;
for (; EURCAD_OCO1S4_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets4.Count; EURCAD_OCO1S4_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets4[EURCAD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO1Sets4[EURCAD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_4__Time out_OCO1");
Base.EURCAD_DOWN_S2_OCO1Sets4.Clear();
EURCAD_OCO1S4_DOWN_S2 = 0;
break;
}
int EURCAD_OCO1S5_DOWN_S2 = 0;
for (; EURCAD_OCO1S5_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets5.Count; EURCAD_OCO1S5_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets5[EURCAD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO1Sets5[EURCAD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_5__Time out_OCO1");
Base.EURCAD_DOWN_S2_OCO1Sets5.Clear();
EURCAD_OCO1S5_DOWN_S2 = 0;
break;
}
int EURCAD_OCO1S6_DOWN_S2 = 0;
for (; EURCAD_OCO1S6_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets6.Count; EURCAD_OCO1S6_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets6[EURCAD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO1Sets6[EURCAD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_6__Time out_OCO1");
Base.EURCAD_DOWN_S2_OCO1Sets6.Clear();
EURCAD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO2_EO1_DOWN_S2)
Base.EURCAD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO2_DOWN_S2)
Base.EURCAD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO3_DOWN_S2)
Base.EURCAD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO4_DOWN_S2)
Base.EURCAD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO5_DOWN_S2)
Base.EURCAD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO2_EO6_DOWN_S2)
Base.EURCAD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURCAD_OCO2S1_DOWN_S2 = 0;
for (; EURCAD_OCO2S1_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets1.Count; EURCAD_OCO2S1_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets1[EURCAD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO2Sets1[EURCAD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_1__Time out_OCO2");
Base.EURCAD_DOWN_S2_OCO2Sets1.Clear();
EURCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int EURCAD_OCO2S2_DOWN_S2 = 0;
for (; EURCAD_OCO2S2_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets2.Count; EURCAD_OCO2S2_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets2[EURCAD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO2Sets2[EURCAD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_2__Time out_OCO2");
Base.EURCAD_DOWN_S2_OCO2Sets2.Clear();
EURCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int EURCAD_OCO2S3_DOWN_S2 = 0;
for (; EURCAD_OCO2S3_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets3.Count; EURCAD_OCO2S3_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets3[EURCAD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO2Sets3[EURCAD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_3__Time out_OCO2");
Base.EURCAD_DOWN_S2_OCO2Sets3.Clear();
EURCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int EURCAD_OCO2S4_DOWN_S2 = 0;
for (; EURCAD_OCO2S4_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets4.Count; EURCAD_OCO2S4_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets4[EURCAD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO2Sets4[EURCAD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_4__Time out_OCO2");
Base.EURCAD_DOWN_S2_OCO2Sets4.Clear();
EURCAD_OCO2S4_DOWN_S2 = 0;
break;
}
int EURCAD_OCO2S5_DOWN_S2 = 0;
for (; EURCAD_OCO2S5_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets5.Count; EURCAD_OCO2S5_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets5[EURCAD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO2Sets5[EURCAD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_5__Time out_OCO2");
Base.EURCAD_DOWN_S2_OCO2Sets5.Clear();
EURCAD_OCO2S5_DOWN_S2 = 0;
break;
}
int EURCAD_OCO2S6_DOWN_S2 = 0;
for (; EURCAD_OCO2S6_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets6.Count; EURCAD_OCO2S6_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets6[EURCAD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO2Sets6[EURCAD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_6__Time out_OCO2");
Base.EURCAD_DOWN_S2_OCO2Sets6.Clear();
EURCAD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO3_EO1_DOWN_S2)
Base.EURCAD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO2_DOWN_S2)
Base.EURCAD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO3_DOWN_S2)
Base.EURCAD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO4_DOWN_S2)
Base.EURCAD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO5_DOWN_S2)
Base.EURCAD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO3_EO6_DOWN_S2)
Base.EURCAD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURCAD_OCO3S1_DOWN_S2 = 0;
for (; EURCAD_OCO3S1_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets1.Count; EURCAD_OCO3S1_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets1[EURCAD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO3Sets1[EURCAD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_1__Time out_OCO3");
Base.EURCAD_DOWN_S2_OCO3Sets1.Clear();
EURCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int EURCAD_OCO3S2_DOWN_S2 = 0;
for (; EURCAD_OCO3S2_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets2.Count; EURCAD_OCO3S2_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets2[EURCAD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO3Sets2[EURCAD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_2__Time out_OCO3");
Base.EURCAD_DOWN_S2_OCO3Sets2.Clear();
EURCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int EURCAD_OCO3S3_DOWN_S2 = 0;
for (; EURCAD_OCO3S3_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets3.Count; EURCAD_OCO3S3_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets3[EURCAD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO3Sets3[EURCAD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_3__Time out_OCO3");
Base.EURCAD_DOWN_S2_OCO3Sets3.Clear();
EURCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int EURCAD_OCO3S4_DOWN_S2 = 0;
for (; EURCAD_OCO3S4_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets4.Count; EURCAD_OCO3S4_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets4[EURCAD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO3Sets4[EURCAD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_4__Time out_OCO3");
Base.EURCAD_DOWN_S2_OCO3Sets4.Clear();
EURCAD_OCO3S4_DOWN_S2 = 0;
break;
}
int EURCAD_OCO3S5_DOWN_S2 = 0;
for (; EURCAD_OCO3S5_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets5.Count; EURCAD_OCO3S5_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets5[EURCAD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO3Sets5[EURCAD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_5__Time out_OCO3");
Base.EURCAD_DOWN_S2_OCO3Sets5.Clear();
EURCAD_OCO3S5_DOWN_S2 = 0;
break;
}
int EURCAD_OCO3S6_DOWN_S2 = 0;
for (; EURCAD_OCO3S6_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets6.Count; EURCAD_OCO3S6_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets6[EURCAD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO3Sets6[EURCAD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_6__Time out_OCO3");
Base.EURCAD_DOWN_S2_OCO3Sets6.Clear();
EURCAD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO4_EO1_DOWN_S2)
Base.EURCAD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO2_DOWN_S2)
Base.EURCAD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO3_DOWN_S2)
Base.EURCAD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO4_DOWN_S2)
Base.EURCAD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO5_DOWN_S2)
Base.EURCAD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.EURCAD_OCO4_EO6_DOWN_S2)
Base.EURCAD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURCAD_OCO4S1_DOWN_S2 = 0;
for (; EURCAD_OCO4S1_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets1.Count; EURCAD_OCO4S1_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets1[EURCAD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO4Sets1[EURCAD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_1__Time out_OCO4");
Base.EURCAD_DOWN_S2_OCO4Sets1.Clear();
EURCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int EURCAD_OCO4S2_DOWN_S2 = 0;
for (; EURCAD_OCO4S2_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets2.Count; EURCAD_OCO4S2_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets2[EURCAD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO4Sets2[EURCAD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_2__Time out_OCO4");
Base.EURCAD_DOWN_S2_OCO4Sets2.Clear();
EURCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int EURCAD_OCO4S3_DOWN_S2 = 0;
for (; EURCAD_OCO4S3_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets3.Count; EURCAD_OCO4S3_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets3[EURCAD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO4Sets3[EURCAD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_3__Time out_OCO4");
Base.EURCAD_DOWN_S2_OCO4Sets3.Clear();
EURCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int EURCAD_OCO4S4_DOWN_S2 = 0;
for (; EURCAD_OCO4S4_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets4.Count; EURCAD_OCO4S4_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets4[EURCAD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO4Sets4[EURCAD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_4__Time out_OCO4");
Base.EURCAD_DOWN_S2_OCO4Sets4.Clear();
EURCAD_OCO4S4_DOWN_S2 = 0;
break;
}
int EURCAD_OCO4S5_DOWN_S2 = 0;
for (; EURCAD_OCO4S5_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets5.Count; EURCAD_OCO4S5_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets5[EURCAD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO4Sets5[EURCAD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_5__Time out_OCO4");
Base.EURCAD_DOWN_S2_OCO4Sets5.Clear();
EURCAD_OCO4S5_DOWN_S2 = 0;
break;
}
int EURCAD_OCO4S6_DOWN_S2 = 0;
for (; EURCAD_OCO4S6_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets6.Count; EURCAD_OCO4S6_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets6[EURCAD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.EURCAD_DOWN_S2_OCO4Sets6[EURCAD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCAD", order.Quantity, false, "EURCAD_DOWN_S2_Entry_6__Time out_OCO4");
Base.EURCAD_DOWN_S2_OCO4Sets6.Clear();
EURCAD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURCAD_DOWN_S2 = DOWM_EURCAD_DOWN_S2 || DOWT_EURCAD_DOWN_S2 || DOWW_EURCAD_DOWN_S2 || DOWTH_EURCAD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURCAD_OCO1_DOWN_S2_IsReady == false ||
Base.EURCAD_OCO2_DOWN_S2_IsReady == false ||
Base.EURCAD_OCO3_DOWN_S2_IsReady == false ||
Base.EURCAD_OCO4_DOWN_S2_IsReady == false)
{
Base.EURCAD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.EURCAD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.EURCAD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.EURCAD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.EURCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.EURCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.EURCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
EURCAD_Signal_Condition_DOWN_S2 =
(
//pricesM_ASK_OpenpricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_OpenpricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//pricesM_ASK_Openprices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//pricesM_ASK_Openprices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.02m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 && //yuhukj
//prices_BID_Close[0] - prices_ASK_Open[0] > 0 &&
//prices_BID_Close[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
//pricesM_BID_Open[1] - pricesM_ASK_Close[1] > 0 &&
//pricesM_BID_High[0] - pricesM_ASK_Open[0] > pricesM_BID_High[1] - pricesM_ASK_Open[1] &&
//pricesM_BID_High[0] > pricesM_BID_High[1] &&
//prices_BID_Close[0] > prices_ASK_Close[0]
prices_BID_Close[0] - prices_ASK_Open[0] > prices_ASK_Open[0] * 0.00025m &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
prices_BID_Close[0] < pricesM_BID_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.001m
);
EURCAD_DOWN_S2_SL = 0.002m;
EURCAD_DOWN_S2_TP1 = 0.005m;
EURCAD_DOWN_S2_TP2 = EURCAD_DOWN_S2_SL * 0;
EURCAD_DOWN_S2_TP3 = EURCAD_DOWN_S2_SL * 0;
EURCAD_DOWN_S2_TP4 = EURCAD_DOWN_S2_SL * 0;
EURCAD_DOWN_S2_TP5 = EURCAD_DOWN_S2_SL * 0;
EURCAD_DOWN_S2_TP6 = EURCAD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
EURCAD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURCAD_quantity_SL_DOWN_S2 = EURCAD_quantity_DOWN_S2;
EURCAD_quantity_TP1_DOWN_S2 = (int)Math.Floor(EURCAD_quantity_DOWN_S2 * 1m);
EURCAD_quantity_TP2_DOWN_S2 = (int)Math.Floor(EURCAD_quantity_TP1_DOWN_S2 * 0m);
EURCAD_quantity_TP3_DOWN_S2 = (int)Math.Floor(EURCAD_quantity_TP2_DOWN_S2 * 0m);
EURCAD_quantity_TP4_DOWN_S2 = (int)Math.Floor(EURCAD_quantity_TP3_DOWN_S2 * 0m);
EURCAD_quantity_TP5_DOWN_S2 = (int)Math.Floor(EURCAD_quantity_TP4_DOWN_S2 * 0m);
EURCAD_quantity_TP6_DOWN_S2 = (int)Math.Floor(EURCAD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (EURCAD_Signal_Condition_DOWN_S2 &&
DOWR_EURCAD_DOWN_S2 &&
Base.EURCAD_OCO1_DOWN_S2_IsReady == true &&
Base.EURCAD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.EURCAD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP1_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP1_OCO1");
Base.EURCAD_OCO1_EO1_DOWN_S2 = false;
Base.EURCAD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP2_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP2_OCO1");
Base.EURCAD_OCO1_EO2_DOWN_S2 = false;
Base.EURCAD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP3_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP3_OCO1");
Base.EURCAD_OCO1_EO3_DOWN_S2 = false;
Base.EURCAD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP4_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP4_OCO1");
Base.EURCAD_OCO1_EO4_DOWN_S2 = false;
Base.EURCAD_OCO1_DOWN_S2_IsReady = false;
if (Base.EURCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (EURCAD_Signal_Condition_DOWN_S2 &&
DOWR_EURCAD_DOWN_S2 &&
Base.EURCAD_OCO2_DOWN_S2_IsReady == true &&
Base.EURCAD_OCO1_DOWN_S2_IsReady == false &&
Base.EURCAD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.EURCAD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP1_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP1_OCO2");
Base.EURCAD_OCO2_EO1_DOWN_S2 = false;
Base.EURCAD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP2_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP2_OCO2");
Base.EURCAD_OCO2_EO2_DOWN_S2 = false;
Base.EURCAD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP3_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP3_OCO2");
Base.EURCAD_OCO2_EO3_DOWN_S2 = false;
Base.EURCAD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP4_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP4_OCO2");
Base.EURCAD_OCO2_EO4_DOWN_S2 = false;
Base.EURCAD_OCO2_DOWN_S2_IsReady = false;
if (Base.EURCAD_OCO2_DOWN_S2_IsReady == false && Base.EURCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (EURCAD_Signal_Condition_DOWN_S2 &&
DOWR_EURCAD_DOWN_S2 &&
Base.EURCAD_OCO3_DOWN_S2_IsReady == true &&
Base.EURCAD_OCO1_DOWN_S2_IsReady == false &&
Base.EURCAD_OCO2_DOWN_S2_IsReady == false &&
Base.EURCAD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.EURCAD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP1_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP1_OCO3");
Base.EURCAD_OCO3_EO1_DOWN_S2 = false;
Base.EURCAD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP2_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP2_OCO3");
Base.EURCAD_OCO3_EO2_DOWN_S2 = false;
Base.EURCAD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP3_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP3_OCO3");
Base.EURCAD_OCO3_EO3_DOWN_S2 = false;
Base.EURCAD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP4_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP4_OCO3");
Base.EURCAD_OCO3_EO4_DOWN_S2 = false;
Base.EURCAD_OCO3_DOWN_S2_IsReady = false;
if (Base.EURCAD_OCO3_DOWN_S2_IsReady == false && Base.EURCAD_OCO2_DOWN_S2_IsReady == false && Base.EURCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (EURCAD_Signal_Condition_DOWN_S2 &&
DOWR_EURCAD_DOWN_S2 &&
Base.EURCAD_OCO4_DOWN_S2_IsReady == true &&
Base.EURCAD_OCO1_DOWN_S2_IsReady == false &&
Base.EURCAD_OCO2_DOWN_S2_IsReady == false &&
Base.EURCAD_OCO3_DOWN_S2_IsReady == false &&
Base.EURCAD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.EURCAD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP1_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP1_OCO4");
Base.EURCAD_OCO4_EO1_DOWN_S2 = false;
Base.EURCAD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP2_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP2_OCO4");
Base.EURCAD_OCO4_EO2_DOWN_S2 = false;
Base.EURCAD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP3_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP3_OCO4");
Base.EURCAD_OCO4_EO3_DOWN_S2 = false;
Base.EURCAD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCAD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCAD_quantity_TP4_DOWN_S2, false,"EURCAD_DOWN_S2_Entry_TP4_OCO4");
Base.EURCAD_OCO4_EO4_DOWN_S2 = false;
Base.EURCAD_OCO4_DOWN_S2_IsReady = false;
if (Base.EURCAD_OCO4_DOWN_S2_IsReady == false && Base.EURCAD_OCO3_DOWN_S2_IsReady == false && Base.EURCAD_OCO2_DOWN_S2_IsReady == false && Base.EURCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _EURAUD;
///oco1 up
public static OrderTicket EURAUD_OCO1_MO1_UP_S2;
public static OrderTicket EURAUD_OCO1_MO2_UP_S2;
public static OrderTicket EURAUD_OCO1_MO3_UP_S2;
public static OrderTicket EURAUD_OCO1_MO4_UP_S2;
public static OrderTicket EURAUD_OCO1_MO5_UP_S2;
public static OrderTicket EURAUD_OCO1_MO6_UP_S2;
public static int EURAUD_OCO1_EO1_UP_S2_ID ;
public static int EURAUD_OCO1_EO2_UP_S2_ID ;
public static int EURAUD_OCO1_EO3_UP_S2_ID ;
public static int EURAUD_OCO1_EO4_UP_S2_ID ;
public static int EURAUD_OCO1_EO5_UP_S2_ID ;
public static int EURAUD_OCO1_EO6_UP_S2_ID ;
public static bool EURAUD_OCO1_EO1_UP_S2 ;
public static bool EURAUD_OCO1_EO2_UP_S2 ;
public static bool EURAUD_OCO1_EO3_UP_S2 ;
public static bool EURAUD_OCO1_EO4_UP_S2 ;
public static bool EURAUD_OCO1_EO5_UP_S2 ;
public static bool EURAUD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_UP_S2> EURAUD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_UP_S2> EURAUD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_UP_S2> EURAUD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_UP_S2> EURAUD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_UP_S2> EURAUD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_UP_S2> EURAUD_OOFE_OCO1_UP_S2_6 ;
public static EURAUD_OCO1_UP_S2 EURAUD_PFO_OCO1_UP_S2_1 ;
public static EURAUD_OCO1_UP_S2 EURAUD_PFO_OCO1_UP_S2_2 ;
public static EURAUD_OCO1_UP_S2 EURAUD_PFO_OCO1_UP_S2_3 ;
public static EURAUD_OCO1_UP_S2 EURAUD_PFO_OCO1_UP_S2_4 ;
public static EURAUD_OCO1_UP_S2 EURAUD_PFO_OCO1_UP_S2_5 ;
public static EURAUD_OCO1_UP_S2 EURAUD_PFO_OCO1_UP_S2_6 ;
public static List<EURAUD_OCO1_UP_S2> EURAUD_UP_S2_OCO1Sets1 = new List<EURAUD_OCO1_UP_S2>();
public static List<EURAUD_OCO1_UP_S2> EURAUD_UP_S2_OCO1Sets2 = new List<EURAUD_OCO1_UP_S2>();
public static List<EURAUD_OCO1_UP_S2> EURAUD_UP_S2_OCO1Sets3 = new List<EURAUD_OCO1_UP_S2>();
public static List<EURAUD_OCO1_UP_S2> EURAUD_UP_S2_OCO1Sets4 = new List<EURAUD_OCO1_UP_S2>();
public static List<EURAUD_OCO1_UP_S2> EURAUD_UP_S2_OCO1Sets5 = new List<EURAUD_OCO1_UP_S2>();
public static List<EURAUD_OCO1_UP_S2> EURAUD_UP_S2_OCO1Sets6 = new List<EURAUD_OCO1_UP_S2>();
public static bool EURAUD_OCO1_UP_S2_IsReady = true;
public static bool EURAUD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket EURAUD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket EURAUD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket EURAUD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket EURAUD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket EURAUD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket EURAUD_OCO1_MO6_DOWN_S2 ;
public static int EURAUD_OCO1_EO1_DOWN_S2_ID ;
public static int EURAUD_OCO1_EO2_DOWN_S2_ID ;
public static int EURAUD_OCO1_EO3_DOWN_S2_ID ;
public static int EURAUD_OCO1_EO4_DOWN_S2_ID ;
public static int EURAUD_OCO1_EO5_DOWN_S2_ID ;
public static int EURAUD_OCO1_EO6_DOWN_S2_ID ;
public static bool EURAUD_OCO1_EO1_DOWN_S2 ;
public static bool EURAUD_OCO1_EO2_DOWN_S2 ;
public static bool EURAUD_OCO1_EO3_DOWN_S2 ;
public static bool EURAUD_OCO1_EO4_DOWN_S2 ;
public static bool EURAUD_OCO1_EO5_DOWN_S2 ;
public static bool EURAUD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_DOWN_S2> EURAUD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_DOWN_S2> EURAUD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_DOWN_S2> EURAUD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_DOWN_S2> EURAUD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_DOWN_S2> EURAUD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO1_DOWN_S2> EURAUD_OOFE_OCO1_DOWN_S2_6 ;
public static EURAUD_OCO1_DOWN_S2 EURAUD_PFO_OCO1_DOWN_S2_1 ;
public static EURAUD_OCO1_DOWN_S2 EURAUD_PFO_OCO1_DOWN_S2_2 ;
public static EURAUD_OCO1_DOWN_S2 EURAUD_PFO_OCO1_DOWN_S2_3 ;
public static EURAUD_OCO1_DOWN_S2 EURAUD_PFO_OCO1_DOWN_S2_4 ;
public static EURAUD_OCO1_DOWN_S2 EURAUD_PFO_OCO1_DOWN_S2_5 ;
public static EURAUD_OCO1_DOWN_S2 EURAUD_PFO_OCO1_DOWN_S2_6 ;
public static List<EURAUD_OCO1_DOWN_S2> EURAUD_DOWN_S2_OCO1Sets1 = new List<EURAUD_OCO1_DOWN_S2>();
public static List<EURAUD_OCO1_DOWN_S2> EURAUD_DOWN_S2_OCO1Sets2 = new List<EURAUD_OCO1_DOWN_S2>();
public static List<EURAUD_OCO1_DOWN_S2> EURAUD_DOWN_S2_OCO1Sets3 = new List<EURAUD_OCO1_DOWN_S2>();
public static List<EURAUD_OCO1_DOWN_S2> EURAUD_DOWN_S2_OCO1Sets4 = new List<EURAUD_OCO1_DOWN_S2>();
public static List<EURAUD_OCO1_DOWN_S2> EURAUD_DOWN_S2_OCO1Sets5 = new List<EURAUD_OCO1_DOWN_S2>();
public static List<EURAUD_OCO1_DOWN_S2> EURAUD_DOWN_S2_OCO1Sets6 = new List<EURAUD_OCO1_DOWN_S2>();
public static bool EURAUD_OCO1_DOWN_S2_IsReady = true;
public static bool EURAUD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket EURAUD_OCO2_MO1_UP_S2 ;
public static OrderTicket EURAUD_OCO2_MO2_UP_S2 ;
public static OrderTicket EURAUD_OCO2_MO3_UP_S2 ;
public static OrderTicket EURAUD_OCO2_MO4_UP_S2 ;
public static OrderTicket EURAUD_OCO2_MO5_UP_S2 ;
public static OrderTicket EURAUD_OCO2_MO6_UP_S2 ;
public static int EURAUD_OCO2_EO1_UP_S2_ID ;
public static int EURAUD_OCO2_EO2_UP_S2_ID ;
public static int EURAUD_OCO2_EO3_UP_S2_ID ;
public static int EURAUD_OCO2_EO4_UP_S2_ID ;
public static int EURAUD_OCO2_EO5_UP_S2_ID ;
public static int EURAUD_OCO2_EO6_UP_S2_ID ;
public static bool EURAUD_OCO2_EO1_UP_S2 ;
public static bool EURAUD_OCO2_EO2_UP_S2 ;
public static bool EURAUD_OCO2_EO3_UP_S2 ;
public static bool EURAUD_OCO2_EO4_UP_S2 ;
public static bool EURAUD_OCO2_EO5_UP_S2 ;
public static bool EURAUD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_UP_S2> EURAUD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_UP_S2> EURAUD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_UP_S2> EURAUD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_UP_S2> EURAUD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_UP_S2> EURAUD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_UP_S2> EURAUD_OOFE_OCO2_UP_S2_6 ;
public static EURAUD_OCO2_UP_S2 EURAUD_PFO_OCO2_UP_S2_1 ;
public static EURAUD_OCO2_UP_S2 EURAUD_PFO_OCO2_UP_S2_2 ;
public static EURAUD_OCO2_UP_S2 EURAUD_PFO_OCO2_UP_S2_3 ;
public static EURAUD_OCO2_UP_S2 EURAUD_PFO_OCO2_UP_S2_4 ;
public static EURAUD_OCO2_UP_S2 EURAUD_PFO_OCO2_UP_S2_5 ;
public static EURAUD_OCO2_UP_S2 EURAUD_PFO_OCO2_UP_S2_6 ;
public static List<EURAUD_OCO2_UP_S2> EURAUD_UP_S2_OCO2Sets1 = new List<EURAUD_OCO2_UP_S2>();
public static List<EURAUD_OCO2_UP_S2> EURAUD_UP_S2_OCO2Sets2 = new List<EURAUD_OCO2_UP_S2>();
public static List<EURAUD_OCO2_UP_S2> EURAUD_UP_S2_OCO2Sets3 = new List<EURAUD_OCO2_UP_S2>();
public static List<EURAUD_OCO2_UP_S2> EURAUD_UP_S2_OCO2Sets4 = new List<EURAUD_OCO2_UP_S2>();
public static List<EURAUD_OCO2_UP_S2> EURAUD_UP_S2_OCO2Sets5 = new List<EURAUD_OCO2_UP_S2>();
public static List<EURAUD_OCO2_UP_S2> EURAUD_UP_S2_OCO2Sets6 = new List<EURAUD_OCO2_UP_S2>();
public static bool EURAUD_OCO2_UP_S2_IsReady = true;
public static bool EURAUD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket EURAUD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket EURAUD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket EURAUD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket EURAUD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket EURAUD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket EURAUD_OCO2_MO6_DOWN_S2 ;
public static int EURAUD_OCO2_EO1_DOWN_S2_ID ;
public static int EURAUD_OCO2_EO2_DOWN_S2_ID ;
public static int EURAUD_OCO2_EO3_DOWN_S2_ID ;
public static int EURAUD_OCO2_EO4_DOWN_S2_ID ;
public static int EURAUD_OCO2_EO5_DOWN_S2_ID ;
public static int EURAUD_OCO2_EO6_DOWN_S2_ID ;
public static bool EURAUD_OCO2_EO1_DOWN_S2 ;
public static bool EURAUD_OCO2_EO2_DOWN_S2 ;
public static bool EURAUD_OCO2_EO3_DOWN_S2 ;
public static bool EURAUD_OCO2_EO4_DOWN_S2 ;
public static bool EURAUD_OCO2_EO5_DOWN_S2 ;
public static bool EURAUD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_DOWN_S2> EURAUD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_DOWN_S2> EURAUD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_DOWN_S2> EURAUD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_DOWN_S2> EURAUD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_DOWN_S2> EURAUD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO2_DOWN_S2> EURAUD_OOFE_OCO2_DOWN_S2_6 ;
public static EURAUD_OCO2_DOWN_S2 EURAUD_PFO_OCO2_DOWN_S2_1 ;
public static EURAUD_OCO2_DOWN_S2 EURAUD_PFO_OCO2_DOWN_S2_2 ;
public static EURAUD_OCO2_DOWN_S2 EURAUD_PFO_OCO2_DOWN_S2_3 ;
public static EURAUD_OCO2_DOWN_S2 EURAUD_PFO_OCO2_DOWN_S2_4 ;
public static EURAUD_OCO2_DOWN_S2 EURAUD_PFO_OCO2_DOWN_S2_5 ;
public static EURAUD_OCO2_DOWN_S2 EURAUD_PFO_OCO2_DOWN_S2_6 ;
public static List<EURAUD_OCO2_DOWN_S2> EURAUD_DOWN_S2_OCO2Sets1 = new List<EURAUD_OCO2_DOWN_S2>();
public static List<EURAUD_OCO2_DOWN_S2> EURAUD_DOWN_S2_OCO2Sets2 = new List<EURAUD_OCO2_DOWN_S2>();
public static List<EURAUD_OCO2_DOWN_S2> EURAUD_DOWN_S2_OCO2Sets3 = new List<EURAUD_OCO2_DOWN_S2>();
public static List<EURAUD_OCO2_DOWN_S2> EURAUD_DOWN_S2_OCO2Sets4 = new List<EURAUD_OCO2_DOWN_S2>();
public static List<EURAUD_OCO2_DOWN_S2> EURAUD_DOWN_S2_OCO2Sets5 = new List<EURAUD_OCO2_DOWN_S2>();
public static List<EURAUD_OCO2_DOWN_S2> EURAUD_DOWN_S2_OCO2Sets6 = new List<EURAUD_OCO2_DOWN_S2>();
public static bool EURAUD_OCO2_DOWN_S2_IsReady = true;
public static bool EURAUD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket EURAUD_OCO3_MO1_UP_S2 ;
public static OrderTicket EURAUD_OCO3_MO2_UP_S2 ;
public static OrderTicket EURAUD_OCO3_MO3_UP_S2 ;
public static OrderTicket EURAUD_OCO3_MO4_UP_S2 ;
public static OrderTicket EURAUD_OCO3_MO5_UP_S2 ;
public static OrderTicket EURAUD_OCO3_MO6_UP_S2 ;
public static int EURAUD_OCO3_EO1_UP_S2_ID ;
public static int EURAUD_OCO3_EO2_UP_S2_ID ;
public static int EURAUD_OCO3_EO3_UP_S2_ID ;
public static int EURAUD_OCO3_EO4_UP_S2_ID ;
public static int EURAUD_OCO3_EO5_UP_S2_ID ;
public static int EURAUD_OCO3_EO6_UP_S2_ID ;
public static bool EURAUD_OCO3_EO1_UP_S2 ;
public static bool EURAUD_OCO3_EO2_UP_S2 ;
public static bool EURAUD_OCO3_EO3_UP_S2 ;
public static bool EURAUD_OCO3_EO4_UP_S2 ;
public static bool EURAUD_OCO3_EO5_UP_S2 ;
public static bool EURAUD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_UP_S2> EURAUD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_UP_S2> EURAUD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_UP_S2> EURAUD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_UP_S2> EURAUD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_UP_S2> EURAUD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_UP_S2> EURAUD_OOFE_OCO3_UP_S2_6 ;
public static EURAUD_OCO3_UP_S2 EURAUD_PFO_OCO3_UP_S2_1 ;
public static EURAUD_OCO3_UP_S2 EURAUD_PFO_OCO3_UP_S2_2 ;
public static EURAUD_OCO3_UP_S2 EURAUD_PFO_OCO3_UP_S2_3 ;
public static EURAUD_OCO3_UP_S2 EURAUD_PFO_OCO3_UP_S2_4 ;
public static EURAUD_OCO3_UP_S2 EURAUD_PFO_OCO3_UP_S2_5 ;
public static EURAUD_OCO3_UP_S2 EURAUD_PFO_OCO3_UP_S2_6 ;
public static List<EURAUD_OCO3_UP_S2> EURAUD_UP_S2_OCO3Sets1 = new List<EURAUD_OCO3_UP_S2>();
public static List<EURAUD_OCO3_UP_S2> EURAUD_UP_S2_OCO3Sets2 = new List<EURAUD_OCO3_UP_S2>();
public static List<EURAUD_OCO3_UP_S2> EURAUD_UP_S2_OCO3Sets3 = new List<EURAUD_OCO3_UP_S2>();
public static List<EURAUD_OCO3_UP_S2> EURAUD_UP_S2_OCO3Sets4 = new List<EURAUD_OCO3_UP_S2>();
public static List<EURAUD_OCO3_UP_S2> EURAUD_UP_S2_OCO3Sets5 = new List<EURAUD_OCO3_UP_S2>();
public static List<EURAUD_OCO3_UP_S2> EURAUD_UP_S2_OCO3Sets6 = new List<EURAUD_OCO3_UP_S2>();
public static bool EURAUD_OCO3_UP_S2_IsReady = true;
public static bool EURAUD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket EURAUD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket EURAUD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket EURAUD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket EURAUD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket EURAUD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket EURAUD_OCO3_MO6_DOWN_S2 ;
public static int EURAUD_OCO3_EO1_DOWN_S2_ID ;
public static int EURAUD_OCO3_EO2_DOWN_S2_ID ;
public static int EURAUD_OCO3_EO3_DOWN_S2_ID ;
public static int EURAUD_OCO3_EO4_DOWN_S2_ID ;
public static int EURAUD_OCO3_EO5_DOWN_S2_ID ;
public static int EURAUD_OCO3_EO6_DOWN_S2_ID ;
public static bool EURAUD_OCO3_EO1_DOWN_S2 ;
public static bool EURAUD_OCO3_EO2_DOWN_S2 ;
public static bool EURAUD_OCO3_EO3_DOWN_S2 ;
public static bool EURAUD_OCO3_EO4_DOWN_S2 ;
public static bool EURAUD_OCO3_EO5_DOWN_S2 ;
public static bool EURAUD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_DOWN_S2> EURAUD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_DOWN_S2> EURAUD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_DOWN_S2> EURAUD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_DOWN_S2> EURAUD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_DOWN_S2> EURAUD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO3_DOWN_S2> EURAUD_OOFE_OCO3_DOWN_S2_6 ;
public static EURAUD_OCO3_DOWN_S2 EURAUD_PFO_OCO3_DOWN_S2_1 ;
public static EURAUD_OCO3_DOWN_S2 EURAUD_PFO_OCO3_DOWN_S2_2 ;
public static EURAUD_OCO3_DOWN_S2 EURAUD_PFO_OCO3_DOWN_S2_3 ;
public static EURAUD_OCO3_DOWN_S2 EURAUD_PFO_OCO3_DOWN_S2_4 ;
public static EURAUD_OCO3_DOWN_S2 EURAUD_PFO_OCO3_DOWN_S2_5 ;
public static EURAUD_OCO3_DOWN_S2 EURAUD_PFO_OCO3_DOWN_S2_6 ;
public static List<EURAUD_OCO3_DOWN_S2> EURAUD_DOWN_S2_OCO3Sets1 = new List<EURAUD_OCO3_DOWN_S2>();
public static List<EURAUD_OCO3_DOWN_S2> EURAUD_DOWN_S2_OCO3Sets2 = new List<EURAUD_OCO3_DOWN_S2>();
public static List<EURAUD_OCO3_DOWN_S2> EURAUD_DOWN_S2_OCO3Sets3 = new List<EURAUD_OCO3_DOWN_S2>();
public static List<EURAUD_OCO3_DOWN_S2> EURAUD_DOWN_S2_OCO3Sets4 = new List<EURAUD_OCO3_DOWN_S2>();
public static List<EURAUD_OCO3_DOWN_S2> EURAUD_DOWN_S2_OCO3Sets5 = new List<EURAUD_OCO3_DOWN_S2>();
public static List<EURAUD_OCO3_DOWN_S2> EURAUD_DOWN_S2_OCO3Sets6 = new List<EURAUD_OCO3_DOWN_S2>();
public static bool EURAUD_OCO3_DOWN_S2_IsReady = true;
public static bool EURAUD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket EURAUD_OCO4_MO1_UP_S2 ;
public static OrderTicket EURAUD_OCO4_MO2_UP_S2 ;
public static OrderTicket EURAUD_OCO4_MO3_UP_S2 ;
public static OrderTicket EURAUD_OCO4_MO4_UP_S2 ;
public static OrderTicket EURAUD_OCO4_MO5_UP_S2 ;
public static OrderTicket EURAUD_OCO4_MO6_UP_S2 ;
public static int EURAUD_OCO4_EO1_UP_S2_ID ;
public static int EURAUD_OCO4_EO2_UP_S2_ID ;
public static int EURAUD_OCO4_EO3_UP_S2_ID ;
public static int EURAUD_OCO4_EO4_UP_S2_ID ;
public static int EURAUD_OCO4_EO5_UP_S2_ID ;
public static int EURAUD_OCO4_EO6_UP_S2_ID ;
public static bool EURAUD_OCO4_EO1_UP_S2 ;
public static bool EURAUD_OCO4_EO2_UP_S2 ;
public static bool EURAUD_OCO4_EO3_UP_S2 ;
public static bool EURAUD_OCO4_EO4_UP_S2 ;
public static bool EURAUD_OCO4_EO5_UP_S2 ;
public static bool EURAUD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_UP_S2> EURAUD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_UP_S2> EURAUD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_UP_S2> EURAUD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_UP_S2> EURAUD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_UP_S2> EURAUD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_UP_S2> EURAUD_OOFE_OCO4_UP_S2_6 ;
public static EURAUD_OCO4_UP_S2 EURAUD_PFO_OCO4_UP_S2_1 ;
public static EURAUD_OCO4_UP_S2 EURAUD_PFO_OCO4_UP_S2_2 ;
public static EURAUD_OCO4_UP_S2 EURAUD_PFO_OCO4_UP_S2_3 ;
public static EURAUD_OCO4_UP_S2 EURAUD_PFO_OCO4_UP_S2_4 ;
public static EURAUD_OCO4_UP_S2 EURAUD_PFO_OCO4_UP_S2_5 ;
public static EURAUD_OCO4_UP_S2 EURAUD_PFO_OCO4_UP_S2_6 ;
public static List<EURAUD_OCO4_UP_S2> EURAUD_UP_S2_OCO4Sets1 = new List<EURAUD_OCO4_UP_S2>();
public static List<EURAUD_OCO4_UP_S2> EURAUD_UP_S2_OCO4Sets2 = new List<EURAUD_OCO4_UP_S2>();
public static List<EURAUD_OCO4_UP_S2> EURAUD_UP_S2_OCO4Sets3 = new List<EURAUD_OCO4_UP_S2>();
public static List<EURAUD_OCO4_UP_S2> EURAUD_UP_S2_OCO4Sets4 = new List<EURAUD_OCO4_UP_S2>();
public static List<EURAUD_OCO4_UP_S2> EURAUD_UP_S2_OCO4Sets5 = new List<EURAUD_OCO4_UP_S2>();
public static List<EURAUD_OCO4_UP_S2> EURAUD_UP_S2_OCO4Sets6 = new List<EURAUD_OCO4_UP_S2>();
public static bool EURAUD_OCO4_UP_S2_IsReady = true;
public static bool EURAUD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket EURAUD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket EURAUD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket EURAUD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket EURAUD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket EURAUD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket EURAUD_OCO4_MO6_DOWN_S2 ;
public static int EURAUD_OCO4_EO1_DOWN_S2_ID ;
public static int EURAUD_OCO4_EO2_DOWN_S2_ID ;
public static int EURAUD_OCO4_EO3_DOWN_S2_ID ;
public static int EURAUD_OCO4_EO4_DOWN_S2_ID ;
public static int EURAUD_OCO4_EO5_DOWN_S2_ID ;
public static int EURAUD_OCO4_EO6_DOWN_S2_ID ;
public static bool EURAUD_OCO4_EO1_DOWN_S2 ;
public static bool EURAUD_OCO4_EO2_DOWN_S2 ;
public static bool EURAUD_OCO4_EO3_DOWN_S2 ;
public static bool EURAUD_OCO4_EO4_DOWN_S2 ;
public static bool EURAUD_OCO4_EO5_DOWN_S2 ;
public static bool EURAUD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_DOWN_S2> EURAUD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_DOWN_S2> EURAUD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_DOWN_S2> EURAUD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_DOWN_S2> EURAUD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_DOWN_S2> EURAUD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURAUD_OCO4_DOWN_S2> EURAUD_OOFE_OCO4_DOWN_S2_6 ;
public static EURAUD_OCO4_DOWN_S2 EURAUD_PFO_OCO4_DOWN_S2_1 ;
public static EURAUD_OCO4_DOWN_S2 EURAUD_PFO_OCO4_DOWN_S2_2 ;
public static EURAUD_OCO4_DOWN_S2 EURAUD_PFO_OCO4_DOWN_S2_3 ;
public static EURAUD_OCO4_DOWN_S2 EURAUD_PFO_OCO4_DOWN_S2_4 ;
public static EURAUD_OCO4_DOWN_S2 EURAUD_PFO_OCO4_DOWN_S2_5 ;
public static EURAUD_OCO4_DOWN_S2 EURAUD_PFO_OCO4_DOWN_S2_6 ;
public static List<EURAUD_OCO4_DOWN_S2> EURAUD_DOWN_S2_OCO4Sets1 = new List<EURAUD_OCO4_DOWN_S2>();
public static List<EURAUD_OCO4_DOWN_S2> EURAUD_DOWN_S2_OCO4Sets2 = new List<EURAUD_OCO4_DOWN_S2>();
public static List<EURAUD_OCO4_DOWN_S2> EURAUD_DOWN_S2_OCO4Sets3 = new List<EURAUD_OCO4_DOWN_S2>();
public static List<EURAUD_OCO4_DOWN_S2> EURAUD_DOWN_S2_OCO4Sets4 = new List<EURAUD_OCO4_DOWN_S2>();
public static List<EURAUD_OCO4_DOWN_S2> EURAUD_DOWN_S2_OCO4Sets5 = new List<EURAUD_OCO4_DOWN_S2>();
public static List<EURAUD_OCO4_DOWN_S2> EURAUD_DOWN_S2_OCO4Sets6 = new List<EURAUD_OCO4_DOWN_S2>();
public static bool EURAUD_OCO4_DOWN_S2_IsReady = true;
public static bool EURAUD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal EURAUD_UP_S2_SL {get; set;}
public static decimal EURAUD_UP_S2_TP1 {get; set;}
public static decimal EURAUD_UP_S2_TP2 {get; set;}
public static decimal EURAUD_UP_S2_TP3 {get; set;}
public static decimal EURAUD_UP_S2_TP4 {get; set;}
public static decimal EURAUD_UP_S2_TP5 {get; set;}
public static decimal EURAUD_UP_S2_TP6 {get; set;}
public static decimal EURAUD_DOWN_S2_SL {get; set;}
public static decimal EURAUD_DOWN_S2_TP1 {get; set;}
public static decimal EURAUD_DOWN_S2_TP2 {get; set;}
public static decimal EURAUD_DOWN_S2_TP3 {get; set;}
public static decimal EURAUD_DOWN_S2_TP4 {get; set;}
public static decimal EURAUD_DOWN_S2_TP5 {get; set;}
public static decimal EURAUD_DOWN_S2_TP6 {get; set;}
public static bool EURAUD_Signal_Condition_UP_1 ;
public static bool EURAUD_Signal_Condition_UP_2 ;
public static bool EURAUD_Signal_Condition_UP_3 ;
public static bool EURAUD_Signal_Condition_DOWN_S2 ;
public static int EURAUD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int EURAUD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int EURAUD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int EURAUD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int EURAUD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int EURAUD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int EURAUD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int EURAUD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int EURAUD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int EURAUD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_EURAUD_UP_S2 ;
public static bool DOWM_EURAUD_UP_S2 ;
public static bool DOWT_EURAUD_UP_S2 ;
public static bool DOWW_EURAUD_UP_S2 ;
public static bool DOWTH_EURAUD_UP_S2 ;
public static bool DOWR_EURAUD_DOWN_S2 ;
public static bool DOWM_EURAUD_DOWN_S2 ;
public static bool DOWT_EURAUD_DOWN_S2 ;
public static bool DOWW_EURAUD_DOWN_S2 ;
public static bool DOWTH_EURAUD_DOWN_S2 ;
public static int EURAUD_quantity_UP_S2 ;
public static int EURAUD_quantity_SL_UP_S2 ;
public static int EURAUD_quantity_TP1_UP_S2 ;
public static int EURAUD_quantity_TP2_UP_S2 ;
public static int EURAUD_quantity_TP3_UP_S2 ;
public static int EURAUD_quantity_TP4_UP_S2 ;
public static int EURAUD_quantity_TP5_UP_S2;
public static int EURAUD_quantity_TP6_UP_S2 ;
public static int EURAUD_quantity_DOWN_S2 ;
public static int EURAUD_quantity_SL_DOWN_S2 ;
public static int EURAUD_quantity_TP1_DOWN_S2 ;
public static int EURAUD_quantity_TP2_DOWN_S2 ;
public static int EURAUD_quantity_TP3_DOWN_S2 ;
public static int EURAUD_quantity_TP4_DOWN_S2 ;
public static int EURAUD_quantity_TP5_DOWN_S2;
public static int EURAUD_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct NZDUSD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public NZDUSD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
if (OrderID.Tag.StartsWith("NZDUSD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("NZDUSD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue NZDUSD S2");
}
}
if (Base.NZDUSD_OCO1_EO1_DOWN_S2)
Base.NZDUSD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO1_EO2_DOWN_S2)
Base.NZDUSD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO1_EO3_DOWN_S2)
Base.NZDUSD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO1_EO4_DOWN_S2)
Base.NZDUSD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO1_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP1_NZDUSD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP1,"TP1_NZDUSD_DOWN_S2_OCO1"));
};
Base.NZDUSD_DOWN_S2_OCO1Sets1.Add( Base.NZDUSD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO2_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP2_NZDUSD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP2,"TP2_NZDUSD_DOWN_S2_OCO1"));
};
Base.NZDUSD_DOWN_S2_OCO1Sets2.Add( Base.NZDUSD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO3_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP3_NZDUSD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP3,"TP3_NZDUSD_DOWN_S2_OCO1"));
};
Base.NZDUSD_DOWN_S2_OCO1Sets3.Add( Base.NZDUSD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO1_EO4_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP4_NZDUSD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP4,"TP4_NZDUSD_DOWN_S2_OCO1"));
};
Base.NZDUSD_DOWN_S2_OCO1Sets4.Add( Base.NZDUSD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO1_EO4_DOWN_S2_ID = -1;
}
int NZDUSD_OCO1S1_DOWN_S2 = 0;
for (; NZDUSD_OCO1S1_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets1.Count; NZDUSD_OCO1S1_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets1[NZDUSD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO1Sets1[NZDUSD_OCO1S1_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO1Sets1.RemoveAt(NZDUSD_OCO1S1_DOWN_S2);
NZDUSD_OCO1S1_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO1S2_DOWN_S2 = 0;
for (; NZDUSD_OCO1S2_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets2.Count; NZDUSD_OCO1S2_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets2[NZDUSD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO1Sets2[NZDUSD_OCO1S2_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO1Sets2.RemoveAt(NZDUSD_OCO1S2_DOWN_S2);
NZDUSD_OCO1S2_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO1S3_DOWN_S2 = 0;
for (; NZDUSD_OCO1S3_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets3.Count; NZDUSD_OCO1S3_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets3[NZDUSD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO1Sets3[NZDUSD_OCO1S3_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO1Sets3.RemoveAt(NZDUSD_OCO1S3_DOWN_S2);
NZDUSD_OCO1S3_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO1S4_DOWN_S2 = 0;
for (; NZDUSD_OCO1S4_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO1Sets4.Count; NZDUSD_OCO1S4_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO1Sets4[NZDUSD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO1Sets4[NZDUSD_OCO1S4_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO1Sets4.RemoveAt(NZDUSD_OCO1S4_DOWN_S2);
NZDUSD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO2_EO1_DOWN_S2)
Base.NZDUSD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO2_EO2_DOWN_S2)
Base.NZDUSD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO2_EO3_DOWN_S2)
Base.NZDUSD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO2_EO4_DOWN_S2)
Base.NZDUSD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO1_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP1_NZDUSD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP1,"TP1_NZDUSD_DOWN_S2_OCO2"));
};
Base.NZDUSD_DOWN_S2_OCO2Sets1.Add( Base.NZDUSD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO2_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP2_NZDUSD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP2,"TP2_NZDUSD_DOWN_S2_OCO2"));
};
Base.NZDUSD_DOWN_S2_OCO2Sets2.Add( Base.NZDUSD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO3_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP3_NZDUSD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP3,"TP3_NZDUSD_DOWN_S2_OCO2"));
};
Base.NZDUSD_DOWN_S2_OCO2Sets3.Add( Base.NZDUSD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO2_EO4_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP4_NZDUSD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP4,"TP4_NZDUSD_DOWN_S2_OCO2"));
};
Base.NZDUSD_DOWN_S2_OCO2Sets4.Add( Base.NZDUSD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO2_EO4_DOWN_S2_ID = -1;
}
int NZDUSD_OCO2S1_DOWN_S2 = 0;
for (; NZDUSD_OCO2S1_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets1.Count; NZDUSD_OCO2S1_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets1[NZDUSD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO2Sets1[NZDUSD_OCO2S1_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO2Sets1.RemoveAt(NZDUSD_OCO2S1_DOWN_S2);
NZDUSD_OCO2S1_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO2S2_DOWN_S2 = 0;
for (; NZDUSD_OCO2S2_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets2.Count; NZDUSD_OCO2S2_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets2[NZDUSD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO2Sets2[NZDUSD_OCO2S2_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO2Sets2.RemoveAt(NZDUSD_OCO2S2_DOWN_S2);
NZDUSD_OCO2S2_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO2S3_DOWN_S2 = 0;
for (; NZDUSD_OCO2S3_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets3.Count; NZDUSD_OCO2S3_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets3[NZDUSD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO2Sets3[NZDUSD_OCO2S3_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO2Sets3.RemoveAt(NZDUSD_OCO2S3_DOWN_S2);
NZDUSD_OCO2S3_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO2S4_DOWN_S2 = 0;
for (; NZDUSD_OCO2S4_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO2Sets4.Count; NZDUSD_OCO2S4_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO2Sets4[NZDUSD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO2Sets4[NZDUSD_OCO2S4_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO2Sets4.RemoveAt(NZDUSD_OCO2S4_DOWN_S2);
NZDUSD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO3_EO1_DOWN_S2)
Base.NZDUSD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO3_EO2_DOWN_S2)
Base.NZDUSD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO3_EO3_DOWN_S2)
Base.NZDUSD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO3_EO4_DOWN_S2)
Base.NZDUSD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO1_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP1_NZDUSD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP1,"TP1_NZDUSD_DOWN_S2_OCO3"));
};
Base.NZDUSD_DOWN_S2_OCO3Sets1.Add( Base.NZDUSD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO2_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP2_NZDUSD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP2,"TP2_NZDUSD_DOWN_S2_OCO3"));
};
Base.NZDUSD_DOWN_S2_OCO3Sets2.Add( Base.NZDUSD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO3_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP3_NZDUSD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP3,"TP3_NZDUSD_DOWN_S2_OCO3"));
};
Base.NZDUSD_DOWN_S2_OCO3Sets3.Add( Base.NZDUSD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO3_EO4_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP4_NZDUSD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP4,"TP4_NZDUSD_DOWN_S2_OCO3"));
};
Base.NZDUSD_DOWN_S2_OCO3Sets4.Add( Base.NZDUSD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO3_EO4_DOWN_S2_ID = -1;
}
int NZDUSD_OCO3S1_DOWN_S2 = 0;
for (; NZDUSD_OCO3S1_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets1.Count; NZDUSD_OCO3S1_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets1[NZDUSD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO3Sets1[NZDUSD_OCO3S1_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO3Sets1.RemoveAt(NZDUSD_OCO3S1_DOWN_S2);
NZDUSD_OCO3S1_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO3S2_DOWN_S2 = 0;
for (; NZDUSD_OCO3S2_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets2.Count; NZDUSD_OCO3S2_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets2[NZDUSD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO3Sets2[NZDUSD_OCO3S2_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO3Sets2.RemoveAt(NZDUSD_OCO3S2_DOWN_S2);
NZDUSD_OCO3S2_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO3S3_DOWN_S2 = 0;
for (; NZDUSD_OCO3S3_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets3.Count; NZDUSD_OCO3S3_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets3[NZDUSD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO3Sets3[NZDUSD_OCO3S3_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO3Sets3.RemoveAt(NZDUSD_OCO3S3_DOWN_S2);
NZDUSD_OCO3S3_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO3S4_DOWN_S2 = 0;
for (; NZDUSD_OCO3S4_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO3Sets4.Count; NZDUSD_OCO3S4_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO3Sets4[NZDUSD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO3Sets4[NZDUSD_OCO3S4_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO3Sets4.RemoveAt(NZDUSD_OCO3S4_DOWN_S2);
NZDUSD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.NZDUSD_OCO4_EO1_DOWN_S2)
Base.NZDUSD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO4_EO2_DOWN_S2)
Base.NZDUSD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO4_EO3_DOWN_S2)
Base.NZDUSD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.NZDUSD_OCO4_EO4_DOWN_S2)
Base.NZDUSD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO1_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP1_NZDUSD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP1,"TP1_NZDUSD_DOWN_S2_OCO4"));
};
Base.NZDUSD_DOWN_S2_OCO4Sets1.Add( Base.NZDUSD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO2_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP2_NZDUSD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP2,"TP2_NZDUSD_DOWN_S2_OCO4"));
};
Base.NZDUSD_DOWN_S2_OCO4Sets2.Add( Base.NZDUSD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO3_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP3_NZDUSD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP3,"TP3_NZDUSD_DOWN_S2_OCO4"));
};
Base.NZDUSD_DOWN_S2_OCO4Sets3.Add( Base.NZDUSD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.NZDUSD_OCO4_EO4_DOWN_S2_ID)
{
Base.NZDUSD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new NZDUSD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.NZDUSD_DOWN_S2_SL,"SL_TP4_NZDUSD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.NZDUSD_DOWN_S2_TP4,"TP4_NZDUSD_DOWN_S2_OCO4"));
};
Base.NZDUSD_DOWN_S2_OCO4Sets4.Add( Base.NZDUSD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.NZDUSD_OCO4_EO4_DOWN_S2_ID = -1;
}
int NZDUSD_OCO4S1_DOWN_S2 = 0;
for (; NZDUSD_OCO4S1_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets1.Count; NZDUSD_OCO4S1_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets1[NZDUSD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO4Sets1[NZDUSD_OCO4S1_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO4Sets1.RemoveAt(NZDUSD_OCO4S1_DOWN_S2);
NZDUSD_OCO4S1_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO4S2_DOWN_S2 = 0;
for (; NZDUSD_OCO4S2_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets2.Count; NZDUSD_OCO4S2_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets2[NZDUSD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO4Sets2[NZDUSD_OCO4S2_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO4Sets2.RemoveAt(NZDUSD_OCO4S2_DOWN_S2);
NZDUSD_OCO4S2_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO4S3_DOWN_S2 = 0;
for (; NZDUSD_OCO4S3_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets3.Count; NZDUSD_OCO4S3_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets3[NZDUSD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO4Sets3[NZDUSD_OCO4S3_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO4Sets3.RemoveAt(NZDUSD_OCO4S3_DOWN_S2);
NZDUSD_OCO4S3_DOWN_S2 = 0;
break;
}
int NZDUSD_OCO4S4_DOWN_S2 = 0;
for (; NZDUSD_OCO4S4_DOWN_S2 < Base.NZDUSD_DOWN_S2_OCO4Sets4.Count; NZDUSD_OCO4S4_DOWN_S2++)
if (Base.NZDUSD_DOWN_S2_OCO4Sets4[NZDUSD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.NZDUSD_DOWN_S2_OCO4Sets4[NZDUSD_OCO4S4_DOWN_S2].Filled();
Base.NZDUSD_DOWN_S2_OCO4Sets4.RemoveAt(NZDUSD_OCO4S4_DOWN_S2);
NZDUSD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct EURCHF_OCO1_DOWN_S2
{
public EURCHF_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCHF_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURCHF_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCHF_OCO1_UP_S2
{
public EURCHF_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURCHF_UP_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURCHF_UP_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURCHF_UP_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURCHF_UP_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURCHF_UP_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURCHF_UP_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURCHF_UP_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCHF_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURCHF_UP_S2_OCO1")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCHF_OCO2_DOWN_S2
{
public EURCHF_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCHF_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURCHF_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCHF_OCO2_UP_S2
{
public EURCHF_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURCHF_UP_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURCHF_UP_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURCHF_UP_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURCHF_UP_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURCHF_UP_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURCHF_UP_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURCHF_UP_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCHF_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURCHF_UP_S2_OCO2")
{
orderTicket.Cancel("EURCHF OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCHF_OCO3_DOWN_S2
{
public EURCHF_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCHF_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURCHF_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCHF_OCO3_UP_S2
{
public EURCHF_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURCHF_UP_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURCHF_UP_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURCHF_UP_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURCHF_UP_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURCHF_UP_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURCHF_UP_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURCHF_UP_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCHF_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURCHF_UP_S2_OCO3")
{
orderTicket.Cancel("EURCHF OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCHF_OCO4_DOWN_S2
{
public EURCHF_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCHF_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURCHF_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCHF_OCO4_UP_S2
{
public EURCHF_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURCHF_UP_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURCHF_UP_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURCHF_UP_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURCHF_UP_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURCHF_UP_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURCHF_UP_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURCHF_UP_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCHF_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURCHF_UP_S2_OCO4")
{
orderTicket.Cancel("EURCHF OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct USDCAD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public USDCAD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
if (OrderID.Tag.StartsWith("USDCAD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("USDCAD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue USDCAD S2");
}
}
if (Base.USDCAD_OCO1_EO1_DOWN_S2)
Base.USDCAD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO1_EO2_DOWN_S2)
Base.USDCAD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO1_EO3_DOWN_S2)
Base.USDCAD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO1_EO4_DOWN_S2)
Base.USDCAD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO1_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP1_USDCAD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP1,"TP1_USDCAD_DOWN_S2_OCO1"));
};
Base.USDCAD_DOWN_S2_OCO1Sets1.Add( Base.USDCAD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO2_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP2_USDCAD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP2,"TP2_USDCAD_DOWN_S2_OCO1"));
};
Base.USDCAD_DOWN_S2_OCO1Sets2.Add( Base.USDCAD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO3_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP3_USDCAD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP3,"TP3_USDCAD_DOWN_S2_OCO1"));
};
Base.USDCAD_DOWN_S2_OCO1Sets3.Add( Base.USDCAD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO1_EO4_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP4_USDCAD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP4,"TP4_USDCAD_DOWN_S2_OCO1"));
};
Base.USDCAD_DOWN_S2_OCO1Sets4.Add( Base.USDCAD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO1_EO4_DOWN_S2_ID = -1;
}
int USDCAD_OCO1S1_DOWN_S2 = 0;
for (; USDCAD_OCO1S1_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets1.Count; USDCAD_OCO1S1_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets1[USDCAD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO1Sets1[USDCAD_OCO1S1_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO1Sets1.RemoveAt(USDCAD_OCO1S1_DOWN_S2);
USDCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int USDCAD_OCO1S2_DOWN_S2 = 0;
for (; USDCAD_OCO1S2_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets2.Count; USDCAD_OCO1S2_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets2[USDCAD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO1Sets2[USDCAD_OCO1S2_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO1Sets2.RemoveAt(USDCAD_OCO1S2_DOWN_S2);
USDCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int USDCAD_OCO1S3_DOWN_S2 = 0;
for (; USDCAD_OCO1S3_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets3.Count; USDCAD_OCO1S3_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets3[USDCAD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO1Sets3[USDCAD_OCO1S3_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO1Sets3.RemoveAt(USDCAD_OCO1S3_DOWN_S2);
USDCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int USDCAD_OCO1S4_DOWN_S2 = 0;
for (; USDCAD_OCO1S4_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO1Sets4.Count; USDCAD_OCO1S4_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO1Sets4[USDCAD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO1Sets4[USDCAD_OCO1S4_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO1Sets4.RemoveAt(USDCAD_OCO1S4_DOWN_S2);
USDCAD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO2_EO1_DOWN_S2)
Base.USDCAD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO2_EO2_DOWN_S2)
Base.USDCAD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO2_EO3_DOWN_S2)
Base.USDCAD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO2_EO4_DOWN_S2)
Base.USDCAD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO1_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP1_USDCAD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP1,"TP1_USDCAD_DOWN_S2_OCO2"));
};
Base.USDCAD_DOWN_S2_OCO2Sets1.Add( Base.USDCAD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO2_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP2_USDCAD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP2,"TP2_USDCAD_DOWN_S2_OCO2"));
};
Base.USDCAD_DOWN_S2_OCO2Sets2.Add( Base.USDCAD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO3_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP3_USDCAD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP3,"TP3_USDCAD_DOWN_S2_OCO2"));
};
Base.USDCAD_DOWN_S2_OCO2Sets3.Add( Base.USDCAD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO2_EO4_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP4_USDCAD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP4,"TP4_USDCAD_DOWN_S2_OCO2"));
};
Base.USDCAD_DOWN_S2_OCO2Sets4.Add( Base.USDCAD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO2_EO4_DOWN_S2_ID = -1;
}
int USDCAD_OCO2S1_DOWN_S2 = 0;
for (; USDCAD_OCO2S1_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets1.Count; USDCAD_OCO2S1_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets1[USDCAD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO2Sets1[USDCAD_OCO2S1_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO2Sets1.RemoveAt(USDCAD_OCO2S1_DOWN_S2);
USDCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int USDCAD_OCO2S2_DOWN_S2 = 0;
for (; USDCAD_OCO2S2_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets2.Count; USDCAD_OCO2S2_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets2[USDCAD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO2Sets2[USDCAD_OCO2S2_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO2Sets2.RemoveAt(USDCAD_OCO2S2_DOWN_S2);
USDCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int USDCAD_OCO2S3_DOWN_S2 = 0;
for (; USDCAD_OCO2S3_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets3.Count; USDCAD_OCO2S3_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets3[USDCAD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO2Sets3[USDCAD_OCO2S3_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO2Sets3.RemoveAt(USDCAD_OCO2S3_DOWN_S2);
USDCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int USDCAD_OCO2S4_DOWN_S2 = 0;
for (; USDCAD_OCO2S4_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO2Sets4.Count; USDCAD_OCO2S4_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO2Sets4[USDCAD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO2Sets4[USDCAD_OCO2S4_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO2Sets4.RemoveAt(USDCAD_OCO2S4_DOWN_S2);
USDCAD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO3_EO1_DOWN_S2)
Base.USDCAD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO3_EO2_DOWN_S2)
Base.USDCAD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO3_EO3_DOWN_S2)
Base.USDCAD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO3_EO4_DOWN_S2)
Base.USDCAD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO1_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP1_USDCAD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP1,"TP1_USDCAD_DOWN_S2_OCO3"));
};
Base.USDCAD_DOWN_S2_OCO3Sets1.Add( Base.USDCAD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO2_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP2_USDCAD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP2,"TP2_USDCAD_DOWN_S2_OCO3"));
};
Base.USDCAD_DOWN_S2_OCO3Sets2.Add( Base.USDCAD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO3_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP3_USDCAD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP3,"TP3_USDCAD_DOWN_S2_OCO3"));
};
Base.USDCAD_DOWN_S2_OCO3Sets3.Add( Base.USDCAD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO3_EO4_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP4_USDCAD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP4,"TP4_USDCAD_DOWN_S2_OCO3"));
};
Base.USDCAD_DOWN_S2_OCO3Sets4.Add( Base.USDCAD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO3_EO4_DOWN_S2_ID = -1;
}
int USDCAD_OCO3S1_DOWN_S2 = 0;
for (; USDCAD_OCO3S1_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets1.Count; USDCAD_OCO3S1_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets1[USDCAD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO3Sets1[USDCAD_OCO3S1_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO3Sets1.RemoveAt(USDCAD_OCO3S1_DOWN_S2);
USDCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int USDCAD_OCO3S2_DOWN_S2 = 0;
for (; USDCAD_OCO3S2_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets2.Count; USDCAD_OCO3S2_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets2[USDCAD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO3Sets2[USDCAD_OCO3S2_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO3Sets2.RemoveAt(USDCAD_OCO3S2_DOWN_S2);
USDCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int USDCAD_OCO3S3_DOWN_S2 = 0;
for (; USDCAD_OCO3S3_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets3.Count; USDCAD_OCO3S3_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets3[USDCAD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO3Sets3[USDCAD_OCO3S3_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO3Sets3.RemoveAt(USDCAD_OCO3S3_DOWN_S2);
USDCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int USDCAD_OCO3S4_DOWN_S2 = 0;
for (; USDCAD_OCO3S4_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO3Sets4.Count; USDCAD_OCO3S4_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO3Sets4[USDCAD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO3Sets4[USDCAD_OCO3S4_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO3Sets4.RemoveAt(USDCAD_OCO3S4_DOWN_S2);
USDCAD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.USDCAD_OCO4_EO1_DOWN_S2)
Base.USDCAD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO4_EO2_DOWN_S2)
Base.USDCAD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO4_EO3_DOWN_S2)
Base.USDCAD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.USDCAD_OCO4_EO4_DOWN_S2)
Base.USDCAD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO1_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP1_USDCAD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP1,"TP1_USDCAD_DOWN_S2_OCO4"));
};
Base.USDCAD_DOWN_S2_OCO4Sets1.Add( Base.USDCAD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO2_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP2_USDCAD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP2,"TP2_USDCAD_DOWN_S2_OCO4"));
};
Base.USDCAD_DOWN_S2_OCO4Sets2.Add( Base.USDCAD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO3_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP3_USDCAD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP3,"TP3_USDCAD_DOWN_S2_OCO4"));
};
Base.USDCAD_DOWN_S2_OCO4Sets3.Add( Base.USDCAD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.USDCAD_OCO4_EO4_DOWN_S2_ID)
{
Base.USDCAD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new USDCAD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.USDCAD_DOWN_S2_SL,"SL_TP4_USDCAD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.USDCAD_DOWN_S2_TP4,"TP4_USDCAD_DOWN_S2_OCO4"));
};
Base.USDCAD_DOWN_S2_OCO4Sets4.Add( Base.USDCAD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.USDCAD_OCO4_EO4_DOWN_S2_ID = -1;
}
int USDCAD_OCO4S1_DOWN_S2 = 0;
for (; USDCAD_OCO4S1_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets1.Count; USDCAD_OCO4S1_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets1[USDCAD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO4Sets1[USDCAD_OCO4S1_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO4Sets1.RemoveAt(USDCAD_OCO4S1_DOWN_S2);
USDCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int USDCAD_OCO4S2_DOWN_S2 = 0;
for (; USDCAD_OCO4S2_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets2.Count; USDCAD_OCO4S2_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets2[USDCAD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO4Sets2[USDCAD_OCO4S2_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO4Sets2.RemoveAt(USDCAD_OCO4S2_DOWN_S2);
USDCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int USDCAD_OCO4S3_DOWN_S2 = 0;
for (; USDCAD_OCO4S3_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets3.Count; USDCAD_OCO4S3_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets3[USDCAD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO4Sets3[USDCAD_OCO4S3_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO4Sets3.RemoveAt(USDCAD_OCO4S3_DOWN_S2);
USDCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int USDCAD_OCO4S4_DOWN_S2 = 0;
for (; USDCAD_OCO4S4_DOWN_S2 < Base.USDCAD_DOWN_S2_OCO4Sets4.Count; USDCAD_OCO4S4_DOWN_S2++)
if (Base.USDCAD_DOWN_S2_OCO4Sets4[USDCAD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.USDCAD_DOWN_S2_OCO4Sets4[USDCAD_OCO4S4_DOWN_S2].Filled();
Base.USDCAD_DOWN_S2_OCO4Sets4.RemoveAt(USDCAD_OCO4S4_DOWN_S2);
USDCAD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_USDJPY_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_USDJPY_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("USDJPY_UP_S2_OCO1")))
{
Base.USDJPY_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDJPY_UP_S2_OCO2")))
{
Base.USDJPY_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDJPY_UP_S2_OCO3")))
{
Base.USDJPY_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("USDJPY_UP_S2_OCO4")))
{
Base.USDJPY_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("USDJPY_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.USDJPY_OCO1_EO1_UP_S2)
Base.USDJPY_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO2_UP_S2)
Base.USDJPY_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO3_UP_S2)
Base.USDJPY_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO4_UP_S2)
Base.USDJPY_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO5_UP_S2)
Base.USDJPY_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO1_EO6_UP_S2)
Base.USDJPY_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDJPY_UP_S2_OCO_DELAY_7DAY))
{
int USDJPY_OCO1S1_UP_S2 = 0;
for (; USDJPY_OCO1S1_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets1.Count; USDJPY_OCO1S1_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets1[USDJPY_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO1Sets1[USDJPY_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_1__Time out_OCO1");
Base.USDJPY_UP_S2_OCO1Sets1.Clear();
USDJPY_OCO1S1_UP_S2 = 0;
break;
}
int USDJPY_OCO1S2_UP_S2 = 0;
for (; USDJPY_OCO1S2_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets2.Count; USDJPY_OCO1S2_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets2[USDJPY_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO1Sets2[USDJPY_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_2__Time out_OCO1");
Base.USDJPY_UP_S2_OCO1Sets2.Clear();
USDJPY_OCO1S2_UP_S2 = 0;
break;
}
int USDJPY_OCO1S3_UP_S2 = 0;
for (; USDJPY_OCO1S3_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets3.Count; USDJPY_OCO1S3_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets3[USDJPY_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO1Sets3[USDJPY_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_3__Time out_OCO1");
Base.USDJPY_UP_S2_OCO1Sets3.Clear();
USDJPY_OCO1S3_UP_S2 = 0;
break;
}
int USDJPY_OCO1S4_UP_S2 = 0;
for (; USDJPY_OCO1S4_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets4.Count; USDJPY_OCO1S4_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets4[USDJPY_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO1Sets4[USDJPY_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_4__Time out_OCO1");
Base.USDJPY_UP_S2_OCO1Sets4.Clear();
USDJPY_OCO1S4_UP_S2 = 0;
break;
}
int USDJPY_OCO1S5_UP_S2 = 0;
for (; USDJPY_OCO1S5_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets5.Count; USDJPY_OCO1S5_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets5[USDJPY_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO1Sets5[USDJPY_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_5__Time out_OCO1");
Base.USDJPY_UP_S2_OCO1Sets5.Clear();
USDJPY_OCO1S5_UP_S2 = 0;
break;
}
int USDJPY_OCO1S6_UP_S2 = 0;
for (; USDJPY_OCO1S6_UP_S2 < Base.USDJPY_UP_S2_OCO1Sets6.Count; USDJPY_OCO1S6_UP_S2++)
if (Base.USDJPY_UP_S2_OCO1Sets6[USDJPY_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO1Sets6[USDJPY_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_6__Time out_OCO1");
Base.USDJPY_UP_S2_OCO1Sets6.Clear();
USDJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO2_EO1_UP_S2)
Base.USDJPY_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO2_UP_S2)
Base.USDJPY_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO3_UP_S2)
Base.USDJPY_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO4_UP_S2)
Base.USDJPY_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO5_UP_S2)
Base.USDJPY_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO2_EO6_UP_S2)
Base.USDJPY_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDJPY_UP_S2_OCO_DELAY_7DAY))
{
int USDJPY_OCO2S1_UP_S2 = 0;
for (; USDJPY_OCO2S1_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets1.Count; USDJPY_OCO2S1_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets1[USDJPY_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO2Sets1[USDJPY_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_1__Time out_OCO2");
Base.USDJPY_UP_S2_OCO2Sets1.Clear();
USDJPY_OCO2S1_UP_S2 = 0;
break;
}
int USDJPY_OCO2S2_UP_S2 = 0;
for (; USDJPY_OCO2S2_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets2.Count; USDJPY_OCO2S2_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets2[USDJPY_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO2Sets2[USDJPY_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_2__Time out_OCO2");
Base.USDJPY_UP_S2_OCO2Sets2.Clear();
USDJPY_OCO2S2_UP_S2 = 0;
break;
}
int USDJPY_OCO2S3_UP_S2 = 0;
for (; USDJPY_OCO2S3_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets3.Count; USDJPY_OCO2S3_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets3[USDJPY_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO2Sets3[USDJPY_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_3__Time out_OCO2");
Base.USDJPY_UP_S2_OCO2Sets3.Clear();
USDJPY_OCO2S3_UP_S2 = 0;
break;
}
int USDJPY_OCO2S4_UP_S2 = 0;
for (; USDJPY_OCO2S4_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets4.Count; USDJPY_OCO2S4_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets4[USDJPY_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO2Sets4[USDJPY_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_4__Time out_OCO2");
Base.USDJPY_UP_S2_OCO2Sets4.Clear();
USDJPY_OCO2S4_UP_S2 = 0;
break;
}
int USDJPY_OCO2S5_UP_S2 = 0;
for (; USDJPY_OCO2S5_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets5.Count; USDJPY_OCO2S5_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets5[USDJPY_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO2Sets5[USDJPY_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_5__Time out_OCO2");
Base.USDJPY_UP_S2_OCO2Sets5.Clear();
USDJPY_OCO2S5_UP_S2 = 0;
break;
}
int USDJPY_OCO2S6_UP_S2 = 0;
for (; USDJPY_OCO2S6_UP_S2 < Base.USDJPY_UP_S2_OCO2Sets6.Count; USDJPY_OCO2S6_UP_S2++)
if (Base.USDJPY_UP_S2_OCO2Sets6[USDJPY_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO2Sets6[USDJPY_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_6__Time out_OCO2");
Base.USDJPY_UP_S2_OCO2Sets6.Clear();
USDJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO3_EO1_UP_S2)
Base.USDJPY_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO2_UP_S2)
Base.USDJPY_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO3_UP_S2)
Base.USDJPY_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO4_UP_S2)
Base.USDJPY_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO5_UP_S2)
Base.USDJPY_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO3_EO6_UP_S2)
Base.USDJPY_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDJPY_UP_S2_OCO_DELAY_7DAY))
{
int USDJPY_OCO3S1_UP_S2 = 0;
for (; USDJPY_OCO3S1_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets1.Count; USDJPY_OCO3S1_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets1[USDJPY_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO3Sets1[USDJPY_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_1__Time out_OCO3");
Base.USDJPY_UP_S2_OCO3Sets1.Clear();
USDJPY_OCO3S1_UP_S2 = 0;
break;
}
int USDJPY_OCO3S2_UP_S2 = 0;
for (; USDJPY_OCO3S2_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets2.Count; USDJPY_OCO3S2_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets2[USDJPY_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO3Sets2[USDJPY_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_2__Time out_OCO3");
Base.USDJPY_UP_S2_OCO3Sets2.Clear();
USDJPY_OCO3S2_UP_S2 = 0;
break;
}
int USDJPY_OCO3S3_UP_S2 = 0;
for (; USDJPY_OCO3S3_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets3.Count; USDJPY_OCO3S3_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets3[USDJPY_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO3Sets3[USDJPY_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_3__Time out_OCO3");
Base.USDJPY_UP_S2_OCO3Sets3.Clear();
USDJPY_OCO3S3_UP_S2 = 0;
break;
}
int USDJPY_OCO3S4_UP_S2 = 0;
for (; USDJPY_OCO3S4_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets4.Count; USDJPY_OCO3S4_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets4[USDJPY_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO3Sets4[USDJPY_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_4__Time out_OCO3");
Base.USDJPY_UP_S2_OCO3Sets4.Clear();
USDJPY_OCO3S4_UP_S2 = 0;
break;
}
int USDJPY_OCO3S5_UP_S2 = 0;
for (; USDJPY_OCO3S5_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets5.Count; USDJPY_OCO3S5_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets5[USDJPY_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO3Sets5[USDJPY_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_5__Time out_OCO3");
Base.USDJPY_UP_S2_OCO3Sets5.Clear();
USDJPY_OCO3S5_UP_S2 = 0;
break;
}
int USDJPY_OCO3S6_UP_S2 = 0;
for (; USDJPY_OCO3S6_UP_S2 < Base.USDJPY_UP_S2_OCO3Sets6.Count; USDJPY_OCO3S6_UP_S2++)
if (Base.USDJPY_UP_S2_OCO3Sets6[USDJPY_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO3Sets6[USDJPY_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_6__Time out_OCO3");
Base.USDJPY_UP_S2_OCO3Sets6.Clear();
USDJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.USDJPY_OCO4_EO1_UP_S2)
Base.USDJPY_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO2_UP_S2)
Base.USDJPY_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO3_UP_S2)
Base.USDJPY_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO4_UP_S2)
Base.USDJPY_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO5_UP_S2)
Base.USDJPY_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.USDJPY_OCO4_EO6_UP_S2)
Base.USDJPY_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.USDJPY_UP_S2_OCO_DELAY_7DAY))
{
int USDJPY_OCO4S1_UP_S2 = 0;
for (; USDJPY_OCO4S1_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets1.Count; USDJPY_OCO4S1_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets1[USDJPY_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO4Sets1[USDJPY_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_1__Time out_OCO4");
Base.USDJPY_UP_S2_OCO4Sets1.Clear();
USDJPY_OCO4S1_UP_S2 = 0;
break;
}
int USDJPY_OCO4S2_UP_S2 = 0;
for (; USDJPY_OCO4S2_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets2.Count; USDJPY_OCO4S2_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets2[USDJPY_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO4Sets2[USDJPY_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_2__Time out_OCO4");
Base.USDJPY_UP_S2_OCO4Sets2.Clear();
USDJPY_OCO4S2_UP_S2 = 0;
break;
}
int USDJPY_OCO4S3_UP_S2 = 0;
for (; USDJPY_OCO4S3_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets3.Count; USDJPY_OCO4S3_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets3[USDJPY_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO4Sets3[USDJPY_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_3__Time out_OCO4");
Base.USDJPY_UP_S2_OCO4Sets3.Clear();
USDJPY_OCO4S3_UP_S2 = 0;
break;
}
int USDJPY_OCO4S4_UP_S2 = 0;
for (; USDJPY_OCO4S4_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets4.Count; USDJPY_OCO4S4_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets4[USDJPY_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO4Sets4[USDJPY_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_4__Time out_OCO4");
Base.USDJPY_UP_S2_OCO4Sets4.Clear();
USDJPY_OCO4S4_UP_S2 = 0;
break;
}
int USDJPY_OCO4S5_UP_S2 = 0;
for (; USDJPY_OCO4S5_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets5.Count; USDJPY_OCO4S5_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets5[USDJPY_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO4Sets5[USDJPY_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_5__Time out_OCO4");
Base.USDJPY_UP_S2_OCO4Sets5.Clear();
USDJPY_OCO4S5_UP_S2 = 0;
break;
}
int USDJPY_OCO4S6_UP_S2 = 0;
for (; USDJPY_OCO4S6_UP_S2 < Base.USDJPY_UP_S2_OCO4Sets6.Count; USDJPY_OCO4S6_UP_S2++)
if (Base.USDJPY_UP_S2_OCO4Sets6[USDJPY_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.USDJPY_UP_S2_OCO4Sets6[USDJPY_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("USDJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("USDJPY", order.Quantity, false, "USDJPY_UP_S2_Entry_6__Time out_OCO4");
Base.USDJPY_UP_S2_OCO4Sets6.Clear();
USDJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_USDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_USDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_USDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_USDJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_USDJPY_UP_S2 = DOWM_USDJPY_UP_S2 || DOWT_USDJPY_UP_S2 || DOWW_USDJPY_UP_S2 || DOWTH_USDJPY_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("USDJPY") && SY1D.Symbol.ID.Market == Market.FXCM)
{
if(SY1D.BQ[0].Open != 0)
{
algorithm.Debug("ID : " + SY1D.Symbol.ID.Market);
}
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.USDJPY_OCO1_UP_S2_IsReady == false ||
Base.USDJPY_OCO2_UP_S2_IsReady == false ||
Base.USDJPY_OCO3_UP_S2_IsReady == false ||
Base.USDJPY_OCO4_UP_S2_IsReady == false)
{
Base.USDJPY_OCO1_UP_S2_Monthly_IsReady = false;
Base.USDJPY_OCO2_UP_S2_Monthly_IsReady = false;
Base.USDJPY_OCO3_UP_S2_Monthly_IsReady = false;
Base.USDJPY_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.USDJPY_OCO1_UP_S2_Monthly_IsReady = true;
Base.USDJPY_OCO2_UP_S2_Monthly_IsReady = true;
Base.USDJPY_OCO3_UP_S2_Monthly_IsReady = true;
Base.USDJPY_OCO4_UP_S2_Monthly_IsReady = true;
}
USDJPY_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
USDJPY_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
USDJPY_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (USDJPY_Signal_Condition_UP_1)
{
USDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDJPY_Signal_Condition_UP_2)
{
USDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDJPY_Signal_Condition_UP_3)
{
USDJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (USDJPY_Signal_Condition_UP_1)
{
USDJPY_UP_S2_TP1 = Base.Yen_TP_1 ;
}
if (USDJPY_Signal_Condition_UP_2)
{
USDJPY_UP_S2_TP1 = Base.Yen_TP_2 ;
}
if (USDJPY_Signal_Condition_UP_3)
{
USDJPY_UP_S2_TP1 = Base.Yen_TP_3 ;
}
USDJPY_UP_S2_TP2 = USDJPY_UP_S2_SL * 0;
USDJPY_UP_S2_TP3 = USDJPY_UP_S2_SL * 0;
USDJPY_UP_S2_TP4 = USDJPY_UP_S2_SL * 0;
USDJPY_UP_S2_TP5 = USDJPY_UP_S2_SL * 0;
USDJPY_UP_S2_TP6 = USDJPY_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
USDJPY_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
USDJPY_quantity_SL_UP_S2 = USDJPY_quantity_UP_S2;
USDJPY_quantity_TP1_UP_S2 = (int)Math.Floor(USDJPY_quantity_UP_S2 * 1m);
USDJPY_quantity_TP2_UP_S2 = (int)Math.Floor(USDJPY_quantity_TP1_UP_S2 * 0m);
USDJPY_quantity_TP3_UP_S2 = (int)Math.Floor(USDJPY_quantity_TP2_UP_S2 * 0m);
USDJPY_quantity_TP4_UP_S2 = (int)Math.Floor(USDJPY_quantity_TP3_UP_S2 * 0m);
USDJPY_quantity_TP5_UP_S2 = (int)Math.Floor(USDJPY_quantity_TP4_UP_S2 * 0m);
USDJPY_quantity_TP6_UP_S2 = (int)Math.Floor(USDJPY_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((USDJPY_Signal_Condition_UP_1 || USDJPY_Signal_Condition_UP_2 || USDJPY_Signal_Condition_UP_3) &&
DOWR_USDJPY_UP_S2 &&
Base.USDJPY_OCO1_UP_S2_IsReady == true &&
Base.USDJPY_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.USDJPY_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP1_UP_S2, false,"USDJPY_UP_S2_Entry_TP1_OCO1");
Base.USDJPY_OCO1_EO1_UP_S2 = false;
Base.USDJPY_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP2_UP_S2, false,"USDJPY_UP_S2_Entry_TP2_OCO1");
Base.USDJPY_OCO1_EO2_UP_S2 = false;
Base.USDJPY_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP3_UP_S2, false,"USDJPY_UP_S2_Entry_TP3_OCO1");
Base.USDJPY_OCO1_EO3_UP_S2 = false;
Base.USDJPY_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP4_UP_S2, false,"USDJPY_UP_S2_Entry_TP4_OCO1");
Base.USDJPY_OCO1_EO4_UP_S2 = false;
Base.USDJPY_OCO1_UP_S2_IsReady = false;
if (Base.USDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((USDJPY_Signal_Condition_UP_1 || USDJPY_Signal_Condition_UP_2 || USDJPY_Signal_Condition_UP_3) &&
DOWR_USDJPY_UP_S2 &&
Base.USDJPY_OCO1_UP_S2_IsReady == false &&
Base.USDJPY_OCO2_UP_S2_IsReady == true &&
Base.USDJPY_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.USDJPY_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP1_UP_S2, false,"USDJPY_UP_S2_Entry_TP1_OCO2");
Base.USDJPY_OCO2_EO1_UP_S2 = false;
Base.USDJPY_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP2_UP_S2, false,"USDJPY_UP_S2_Entry_TP2_OCO2");
Base.USDJPY_OCO2_EO2_UP_S2 = false;
Base.USDJPY_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP3_UP_S2, false,"USDJPY_UP_S2_Entry_TP3_OCO2");
Base.USDJPY_OCO2_EO3_UP_S2 = false;
Base.USDJPY_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP4_UP_S2, false,"USDJPY_UP_S2_Entry_TP4_OCO2");
Base.USDJPY_OCO2_EO4_UP_S2 = false;
Base.USDJPY_OCO2_UP_S2_IsReady = false;
if (Base.USDJPY_OCO2_UP_S2_IsReady == false && Base.USDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((USDJPY_Signal_Condition_UP_1 || USDJPY_Signal_Condition_UP_2 || USDJPY_Signal_Condition_UP_3) &&
DOWR_USDJPY_UP_S2 &&
Base.USDJPY_OCO1_UP_S2_IsReady == false &&
Base.USDJPY_OCO2_UP_S2_IsReady == false &&
Base.USDJPY_OCO3_UP_S2_IsReady == true &&
Base.USDJPY_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.USDJPY_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP1_UP_S2, false,"USDJPY_UP_S2_Entry_TP1_OCO3");
Base.USDJPY_OCO3_EO1_UP_S2 = false;
Base.USDJPY_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP2_UP_S2, false,"USDJPY_UP_S2_Entry_TP2_OCO3");
Base.USDJPY_OCO3_EO2_UP_S2 = false;
Base.USDJPY_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP3_UP_S2, false,"USDJPY_UP_S2_Entry_TP3_OCO3");
Base.USDJPY_OCO3_EO3_UP_S2 = false;
Base.USDJPY_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP4_UP_S2, false,"USDJPY_UP_S2_Entry_TP4_OCO3");
Base.USDJPY_OCO3_EO4_UP_S2 = false;
Base.USDJPY_OCO3_UP_S2_IsReady = false;
if (Base.USDJPY_OCO3_UP_S2_IsReady == false && Base.USDJPY_OCO2_UP_S2_IsReady == false && Base.USDJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((USDJPY_Signal_Condition_UP_1 || USDJPY_Signal_Condition_UP_2 || USDJPY_Signal_Condition_UP_3) &&
DOWR_USDJPY_UP_S2 &&
Base.USDJPY_OCO1_UP_S2_IsReady == false &&
Base.USDJPY_OCO2_UP_S2_IsReady == false &&
Base.USDJPY_OCO3_UP_S2_IsReady == false &&
Base.USDJPY_OCO4_UP_S2_IsReady == true &&
Base.USDJPY_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.USDJPY_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP1_UP_S2, false,"USDJPY_UP_S2_Entry_TP1_OCO4");
Base.USDJPY_OCO4_EO1_UP_S2 = false;
Base.USDJPY_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP2_UP_S2, false,"USDJPY_UP_S2_Entry_TP2_OCO4");
Base.USDJPY_OCO4_EO2_UP_S2 = false;
Base.USDJPY_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP3_UP_S2, false,"USDJPY_UP_S2_Entry_TP3_OCO4");
Base.USDJPY_OCO4_EO3_UP_S2 = false;
Base.USDJPY_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
USDJPY_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, USDJPY_quantity_TP4_UP_S2, false,"USDJPY_UP_S2_Entry_TP4_OCO4");
Base.USDJPY_OCO4_EO4_UP_S2 = false;
Base.USDJPY_OCO4_UP_S2_IsReady = false;
if (Base.USDJPY_OCO4_UP_S2_IsReady == false && Base.USDJPY_OCO3_UP_S2_IsReady == false && Base.USDJPY_OCO2_UP_S2_IsReady == false && Base.USDJPY_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURCHF_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURCHF_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
}
if (Base.EURCHF_OCO1_EO1_UP_S2)
Base.EURCHF_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO1_EO2_UP_S2)
Base.EURCHF_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO1_EO3_UP_S2)
Base.EURCHF_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO1_EO4_UP_S2)
Base.EURCHF_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO1_EO5_UP_S2)
Base.EURCHF_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO1_EO6_UP_S2)
Base.EURCHF_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO1_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP1,"TP1_EURCHF_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP1_EURCHF_UP_S2_OCO1"));
};
Base.EURCHF_UP_S2_OCO1Sets1.Add( Base.EURCHF_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO2_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP2,"TP2_EURCHF_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP2_EURCHF_UP_S2_OCO1"));
};
Base.EURCHF_UP_S2_OCO1Sets2.Add( Base.EURCHF_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO3_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP3,"TP3_EURCHF_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP3_EURCHF_UP_S2_OCO1"));
};
Base.EURCHF_UP_S2_OCO1Sets3.Add( Base.EURCHF_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO4_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP4,"TP4_EURCHF_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP4_EURCHF_UP_S2_OCO1"));
};
Base.EURCHF_UP_S2_OCO1Sets4.Add( Base.EURCHF_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO5_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP5,"TP5_EURCHF_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP5_EURCHF_UP_S2_OCO1"));
};
Base.EURCHF_UP_S2_OCO1Sets5.Add( Base.EURCHF_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO6_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP6,"TP6_EURCHF_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP6_EURCHF_UP_S2_OCO1"));
};
Base.EURCHF_UP_S2_OCO1Sets6.Add( Base.EURCHF_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO6_UP_S2_ID = -1;
}
int EURCHF_OCO1S1_UP_S2 = 0;
for (; EURCHF_OCO1S1_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets1.Count; EURCHF_OCO1S1_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets1[EURCHF_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO1Sets1[EURCHF_OCO1S1_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO1Sets1.RemoveAt(EURCHF_OCO1S1_UP_S2);
EURCHF_OCO1S1_UP_S2 = 0;
break;
}
int EURCHF_OCO1S2_UP_S2 = 0;
for (; EURCHF_OCO1S2_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets2.Count; EURCHF_OCO1S2_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets2[EURCHF_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO1Sets2[EURCHF_OCO1S2_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO1Sets2.RemoveAt(EURCHF_OCO1S2_UP_S2);
EURCHF_OCO1S2_UP_S2 = 0;
break;
}
int EURCHF_OCO1S3_UP_S2 = 0;
for (; EURCHF_OCO1S3_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets3.Count; EURCHF_OCO1S3_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets3[EURCHF_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO1Sets3[EURCHF_OCO1S3_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO1Sets3.RemoveAt(EURCHF_OCO1S3_UP_S2);
EURCHF_OCO1S3_UP_S2 = 0;
break;
}
int EURCHF_OCO1S4_UP_S2 = 0;
for (; EURCHF_OCO1S4_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets4.Count; EURCHF_OCO1S4_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets4[EURCHF_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO1Sets4[EURCHF_OCO1S4_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO1Sets4.RemoveAt(EURCHF_OCO1S4_UP_S2);
EURCHF_OCO1S4_UP_S2 = 0;
break;
}
int EURCHF_OCO1S5_UP_S2 = 0;
for (; EURCHF_OCO1S5_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets5.Count; EURCHF_OCO1S5_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets5[EURCHF_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO1Sets5[EURCHF_OCO1S5_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO1Sets5.RemoveAt(EURCHF_OCO1S5_UP_S2);
EURCHF_OCO1S5_UP_S2 = 0;
break;
}
int EURCHF_OCO1S6_UP_S2 = 0;
for (; EURCHF_OCO1S6_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets6.Count; EURCHF_OCO1S6_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets6[EURCHF_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO1Sets6[EURCHF_OCO1S6_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO1Sets6.RemoveAt(EURCHF_OCO1S6_UP_S2);
EURCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO2_EO1_UP_S2)
Base.EURCHF_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO2_EO2_UP_S2)
Base.EURCHF_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO2_EO3_UP_S2)
Base.EURCHF_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO2_EO4_UP_S2)
Base.EURCHF_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO2_EO5_UP_S2)
Base.EURCHF_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO2_EO6_UP_S2)
Base.EURCHF_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO1_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP1,"TP1_EURCHF_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP1_EURCHF_UP_S2_OCO2"));
};
Base.EURCHF_UP_S2_OCO2Sets1.Add( Base.EURCHF_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO2_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP2,"TP2_EURCHF_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP2_EURCHF_UP_S2_OCO2"));
};
Base.EURCHF_UP_S2_OCO2Sets2.Add( Base.EURCHF_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO3_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP3,"TP3_EURCHF_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP3_EURCHF_UP_S2_OCO2"));
};
Base.EURCHF_UP_S2_OCO2Sets3.Add( Base.EURCHF_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO4_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP4,"TP4_EURCHF_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP4_EURCHF_UP_S2_OCO2"));
};
Base.EURCHF_UP_S2_OCO2Sets4.Add( Base.EURCHF_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO5_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP5,"TP5_EURCHF_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP5_EURCHF_UP_S2_OCO2"));
};
Base.EURCHF_UP_S2_OCO2Sets5.Add( Base.EURCHF_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO6_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP6,"TP6_EURCHF_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP6_EURCHF_UP_S2_OCO2"));
};
Base.EURCHF_UP_S2_OCO2Sets6.Add( Base.EURCHF_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO6_UP_S2_ID = -1;
}
int EURCHF_OCO2S1_UP_S2 = 0;
for (; EURCHF_OCO2S1_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets1.Count; EURCHF_OCO2S1_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets1[EURCHF_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO2Sets1[EURCHF_OCO2S1_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO2Sets1.RemoveAt(EURCHF_OCO2S1_UP_S2);
EURCHF_OCO2S1_UP_S2 = 0;
break;
}
int EURCHF_OCO2S2_UP_S2 = 0;
for (; EURCHF_OCO2S2_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets2.Count; EURCHF_OCO2S2_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets2[EURCHF_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO2Sets2[EURCHF_OCO2S2_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO2Sets2.RemoveAt(EURCHF_OCO2S2_UP_S2);
EURCHF_OCO2S2_UP_S2 = 0;
break;
}
int EURCHF_OCO2S3_UP_S2 = 0;
for (; EURCHF_OCO2S3_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets3.Count; EURCHF_OCO2S3_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets3[EURCHF_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO2Sets3[EURCHF_OCO2S3_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO2Sets3.RemoveAt(EURCHF_OCO2S3_UP_S2);
EURCHF_OCO2S3_UP_S2 = 0;
break;
}
int EURCHF_OCO2S4_UP_S2 = 0;
for (; EURCHF_OCO2S4_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets4.Count; EURCHF_OCO2S4_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets4[EURCHF_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO2Sets4[EURCHF_OCO2S4_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO2Sets4.RemoveAt(EURCHF_OCO2S4_UP_S2);
EURCHF_OCO2S4_UP_S2 = 0;
break;
}
int EURCHF_OCO2S5_UP_S2 = 0;
for (; EURCHF_OCO2S5_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets5.Count; EURCHF_OCO2S5_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets5[EURCHF_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO2Sets5[EURCHF_OCO2S5_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO2Sets5.RemoveAt(EURCHF_OCO2S5_UP_S2);
EURCHF_OCO2S5_UP_S2 = 0;
break;
}
int EURCHF_OCO2S6_UP_S2 = 0;
for (; EURCHF_OCO2S6_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets6.Count; EURCHF_OCO2S6_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets6[EURCHF_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO2Sets6[EURCHF_OCO2S6_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO2Sets6.RemoveAt(EURCHF_OCO2S6_UP_S2);
EURCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO3_EO1_UP_S2)
Base.EURCHF_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO3_EO2_UP_S2)
Base.EURCHF_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO3_EO3_UP_S2)
Base.EURCHF_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO3_EO4_UP_S2)
Base.EURCHF_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO3_EO5_UP_S2)
Base.EURCHF_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO3_EO6_UP_S2)
Base.EURCHF_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO1_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP1,"TP1_EURCHF_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP1_EURCHF_UP_S2_OCO3"));
};
Base.EURCHF_UP_S2_OCO3Sets1.Add( Base.EURCHF_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO2_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP2,"TP2_EURCHF_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP2_EURCHF_UP_S2_OCO3"));
};
Base.EURCHF_UP_S2_OCO3Sets2.Add( Base.EURCHF_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO3_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP3,"TP3_EURCHF_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP3_EURCHF_UP_S2_OCO3"));
};
Base.EURCHF_UP_S2_OCO3Sets3.Add( Base.EURCHF_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO4_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP4,"TP4_EURCHF_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP4_EURCHF_UP_S2_OCO3"));
};
Base.EURCHF_UP_S2_OCO3Sets4.Add( Base.EURCHF_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO5_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP5,"TP5_EURCHF_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP5_EURCHF_UP_S2_OCO3"));
};
Base.EURCHF_UP_S2_OCO3Sets5.Add( Base.EURCHF_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO6_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP6,"TP6_EURCHF_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP6_EURCHF_UP_S2_OCO3"));
};
Base.EURCHF_UP_S2_OCO3Sets6.Add( Base.EURCHF_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO6_UP_S2_ID = -1;
}
int EURCHF_OCO3S1_UP_S2 = 0;
for (; EURCHF_OCO3S1_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets1.Count; EURCHF_OCO3S1_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets1[EURCHF_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO3Sets1[EURCHF_OCO3S1_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO3Sets1.RemoveAt(EURCHF_OCO3S1_UP_S2);
EURCHF_OCO3S1_UP_S2 = 0;
break;
}
int EURCHF_OCO3S2_UP_S2 = 0;
for (; EURCHF_OCO3S2_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets2.Count; EURCHF_OCO3S2_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets2[EURCHF_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO3Sets2[EURCHF_OCO3S2_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO3Sets2.RemoveAt(EURCHF_OCO3S2_UP_S2);
EURCHF_OCO3S2_UP_S2 = 0;
break;
}
int EURCHF_OCO3S3_UP_S2 = 0;
for (; EURCHF_OCO3S3_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets3.Count; EURCHF_OCO3S3_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets3[EURCHF_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO3Sets3[EURCHF_OCO3S3_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO3Sets3.RemoveAt(EURCHF_OCO3S3_UP_S2);
EURCHF_OCO3S3_UP_S2 = 0;
break;
}
int EURCHF_OCO3S4_UP_S2 = 0;
for (; EURCHF_OCO3S4_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets4.Count; EURCHF_OCO3S4_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets4[EURCHF_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO3Sets4[EURCHF_OCO3S4_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO3Sets4.RemoveAt(EURCHF_OCO3S4_UP_S2);
EURCHF_OCO3S4_UP_S2 = 0;
break;
}
int EURCHF_OCO3S5_UP_S2 = 0;
for (; EURCHF_OCO3S5_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets5.Count; EURCHF_OCO3S5_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets5[EURCHF_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO3Sets5[EURCHF_OCO3S5_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO3Sets5.RemoveAt(EURCHF_OCO3S5_UP_S2);
EURCHF_OCO3S5_UP_S2 = 0;
break;
}
int EURCHF_OCO3S6_UP_S2 = 0;
for (; EURCHF_OCO3S6_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets6.Count; EURCHF_OCO3S6_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets6[EURCHF_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO3Sets6[EURCHF_OCO3S6_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO3Sets6.RemoveAt(EURCHF_OCO3S6_UP_S2);
EURCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO4_EO1_UP_S2)
Base.EURCHF_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO4_EO2_UP_S2)
Base.EURCHF_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO4_EO3_UP_S2)
Base.EURCHF_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO4_EO4_UP_S2)
Base.EURCHF_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO4_EO5_UP_S2)
Base.EURCHF_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO4_EO6_UP_S2)
Base.EURCHF_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO1_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP1,"TP1_EURCHF_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP1_EURCHF_UP_S2_OCO4"));
};
Base.EURCHF_UP_S2_OCO4Sets1.Add( Base.EURCHF_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO2_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP2,"TP2_EURCHF_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP2_EURCHF_UP_S2_OCO4"));
};
Base.EURCHF_UP_S2_OCO4Sets2.Add( Base.EURCHF_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO3_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP3,"TP3_EURCHF_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP3_EURCHF_UP_S2_OCO4"));
};
Base.EURCHF_UP_S2_OCO4Sets3.Add( Base.EURCHF_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO4_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP4,"TP4_EURCHF_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP4_EURCHF_UP_S2_OCO4"));
};
Base.EURCHF_UP_S2_OCO4Sets4.Add( Base.EURCHF_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO5_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP5,"TP5_EURCHF_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP5_EURCHF_UP_S2_OCO4"));
};
Base.EURCHF_UP_S2_OCO4Sets5.Add( Base.EURCHF_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO6_UP_S2_ID)
{
Base.EURCHF_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_UP_S2_TP6,"TP6_EURCHF_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_UP_S2_SL,"SL_TP6_EURCHF_UP_S2_OCO4"));
};
Base.EURCHF_UP_S2_OCO4Sets6.Add( Base.EURCHF_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO6_UP_S2_ID = -1;
}
int EURCHF_OCO4S1_UP_S2 = 0;
for (; EURCHF_OCO4S1_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets1.Count; EURCHF_OCO4S1_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets1[EURCHF_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO4Sets1[EURCHF_OCO4S1_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO4Sets1.RemoveAt(EURCHF_OCO4S1_UP_S2);
EURCHF_OCO4S1_UP_S2 = 0;
break;
}
int EURCHF_OCO4S2_UP_S2 = 0;
for (; EURCHF_OCO4S2_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets2.Count; EURCHF_OCO4S2_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets2[EURCHF_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO4Sets2[EURCHF_OCO4S2_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO4Sets2.RemoveAt(EURCHF_OCO4S2_UP_S2);
EURCHF_OCO4S2_UP_S2 = 0;
break;
}
int EURCHF_OCO4S3_UP_S2 = 0;
for (; EURCHF_OCO4S3_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets3.Count; EURCHF_OCO4S3_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets3[EURCHF_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO4Sets3[EURCHF_OCO4S3_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO4Sets3.RemoveAt(EURCHF_OCO4S3_UP_S2);
EURCHF_OCO4S3_UP_S2 = 0;
break;
}
int EURCHF_OCO4S4_UP_S2 = 0;
for (; EURCHF_OCO4S4_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets4.Count; EURCHF_OCO4S4_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets4[EURCHF_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO4Sets4[EURCHF_OCO4S4_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO4Sets4.RemoveAt(EURCHF_OCO4S4_UP_S2);
EURCHF_OCO4S4_UP_S2 = 0;
break;
}
int EURCHF_OCO4S5_UP_S2 = 0;
for (; EURCHF_OCO4S5_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets5.Count; EURCHF_OCO4S5_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets5[EURCHF_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO4Sets5[EURCHF_OCO4S5_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO4Sets5.RemoveAt(EURCHF_OCO4S5_UP_S2);
EURCHF_OCO4S5_UP_S2 = 0;
break;
}
int EURCHF_OCO4S6_UP_S2 = 0;
for (; EURCHF_OCO4S6_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets6.Count; EURCHF_OCO4S6_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets6[EURCHF_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_UP_S2_OCO4Sets6[EURCHF_OCO4S6_UP_S2].Filled();
Base.EURCHF_UP_S2_OCO4Sets6.RemoveAt(EURCHF_OCO4S6_UP_S2);
EURCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPCHF_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPCHF_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPCHF_DOWN_S2_OCO1")))
{
Base.GBPCHF_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCHF_DOWN_S2_OCO2")))
{
Base.GBPCHF_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCHF_DOWN_S2_OCO3")))
{
Base.GBPCHF_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCHF_DOWN_S2_OCO4")))
{
Base.GBPCHF_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPCHF_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPCHF_OCO1_EO1_DOWN_S2)
Base.GBPCHF_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO2_DOWN_S2)
Base.GBPCHF_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO3_DOWN_S2)
Base.GBPCHF_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO4_DOWN_S2)
Base.GBPCHF_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO5_DOWN_S2)
Base.GBPCHF_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO6_DOWN_S2)
Base.GBPCHF_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPCHF_OCO1S1_DOWN_S2 = 0;
for (; GBPCHF_OCO1S1_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets1.Count; GBPCHF_OCO1S1_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets1[GBPCHF_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO1Sets1[GBPCHF_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_1__Time out_OCO1");
Base.GBPCHF_DOWN_S2_OCO1Sets1.Clear();
GBPCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO1S2_DOWN_S2 = 0;
for (; GBPCHF_OCO1S2_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets2.Count; GBPCHF_OCO1S2_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets2[GBPCHF_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO1Sets2[GBPCHF_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_2__Time out_OCO1");
Base.GBPCHF_DOWN_S2_OCO1Sets2.Clear();
GBPCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO1S3_DOWN_S2 = 0;
for (; GBPCHF_OCO1S3_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets3.Count; GBPCHF_OCO1S3_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets3[GBPCHF_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO1Sets3[GBPCHF_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_3__Time out_OCO1");
Base.GBPCHF_DOWN_S2_OCO1Sets3.Clear();
GBPCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO1S4_DOWN_S2 = 0;
for (; GBPCHF_OCO1S4_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets4.Count; GBPCHF_OCO1S4_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets4[GBPCHF_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO1Sets4[GBPCHF_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_4__Time out_OCO1");
Base.GBPCHF_DOWN_S2_OCO1Sets4.Clear();
GBPCHF_OCO1S4_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO1S5_DOWN_S2 = 0;
for (; GBPCHF_OCO1S5_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets5.Count; GBPCHF_OCO1S5_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets5[GBPCHF_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO1Sets5[GBPCHF_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_5__Time out_OCO1");
Base.GBPCHF_DOWN_S2_OCO1Sets5.Clear();
GBPCHF_OCO1S5_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO1S6_DOWN_S2 = 0;
for (; GBPCHF_OCO1S6_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO1Sets6.Count; GBPCHF_OCO1S6_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO1Sets6[GBPCHF_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO1Sets6[GBPCHF_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_6__Time out_OCO1");
Base.GBPCHF_DOWN_S2_OCO1Sets6.Clear();
GBPCHF_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO2_EO1_DOWN_S2)
Base.GBPCHF_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO2_DOWN_S2)
Base.GBPCHF_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO3_DOWN_S2)
Base.GBPCHF_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO4_DOWN_S2)
Base.GBPCHF_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO5_DOWN_S2)
Base.GBPCHF_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO6_DOWN_S2)
Base.GBPCHF_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPCHF_OCO2S1_DOWN_S2 = 0;
for (; GBPCHF_OCO2S1_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets1.Count; GBPCHF_OCO2S1_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets1[GBPCHF_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO2Sets1[GBPCHF_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_1__Time out_OCO2");
Base.GBPCHF_DOWN_S2_OCO2Sets1.Clear();
GBPCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO2S2_DOWN_S2 = 0;
for (; GBPCHF_OCO2S2_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets2.Count; GBPCHF_OCO2S2_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets2[GBPCHF_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO2Sets2[GBPCHF_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_2__Time out_OCO2");
Base.GBPCHF_DOWN_S2_OCO2Sets2.Clear();
GBPCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO2S3_DOWN_S2 = 0;
for (; GBPCHF_OCO2S3_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets3.Count; GBPCHF_OCO2S3_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets3[GBPCHF_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO2Sets3[GBPCHF_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_3__Time out_OCO2");
Base.GBPCHF_DOWN_S2_OCO2Sets3.Clear();
GBPCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO2S4_DOWN_S2 = 0;
for (; GBPCHF_OCO2S4_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets4.Count; GBPCHF_OCO2S4_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets4[GBPCHF_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO2Sets4[GBPCHF_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_4__Time out_OCO2");
Base.GBPCHF_DOWN_S2_OCO2Sets4.Clear();
GBPCHF_OCO2S4_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO2S5_DOWN_S2 = 0;
for (; GBPCHF_OCO2S5_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets5.Count; GBPCHF_OCO2S5_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets5[GBPCHF_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO2Sets5[GBPCHF_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_5__Time out_OCO2");
Base.GBPCHF_DOWN_S2_OCO2Sets5.Clear();
GBPCHF_OCO2S5_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO2S6_DOWN_S2 = 0;
for (; GBPCHF_OCO2S6_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO2Sets6.Count; GBPCHF_OCO2S6_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO2Sets6[GBPCHF_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO2Sets6[GBPCHF_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_6__Time out_OCO2");
Base.GBPCHF_DOWN_S2_OCO2Sets6.Clear();
GBPCHF_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO3_EO1_DOWN_S2)
Base.GBPCHF_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO2_DOWN_S2)
Base.GBPCHF_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO3_DOWN_S2)
Base.GBPCHF_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO4_DOWN_S2)
Base.GBPCHF_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO5_DOWN_S2)
Base.GBPCHF_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO6_DOWN_S2)
Base.GBPCHF_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPCHF_OCO3S1_DOWN_S2 = 0;
for (; GBPCHF_OCO3S1_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets1.Count; GBPCHF_OCO3S1_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets1[GBPCHF_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO3Sets1[GBPCHF_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_1__Time out_OCO3");
Base.GBPCHF_DOWN_S2_OCO3Sets1.Clear();
GBPCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO3S2_DOWN_S2 = 0;
for (; GBPCHF_OCO3S2_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets2.Count; GBPCHF_OCO3S2_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets2[GBPCHF_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO3Sets2[GBPCHF_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_2__Time out_OCO3");
Base.GBPCHF_DOWN_S2_OCO3Sets2.Clear();
GBPCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO3S3_DOWN_S2 = 0;
for (; GBPCHF_OCO3S3_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets3.Count; GBPCHF_OCO3S3_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets3[GBPCHF_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO3Sets3[GBPCHF_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_3__Time out_OCO3");
Base.GBPCHF_DOWN_S2_OCO3Sets3.Clear();
GBPCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO3S4_DOWN_S2 = 0;
for (; GBPCHF_OCO3S4_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets4.Count; GBPCHF_OCO3S4_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets4[GBPCHF_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO3Sets4[GBPCHF_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_4__Time out_OCO3");
Base.GBPCHF_DOWN_S2_OCO3Sets4.Clear();
GBPCHF_OCO3S4_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO3S5_DOWN_S2 = 0;
for (; GBPCHF_OCO3S5_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets5.Count; GBPCHF_OCO3S5_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets5[GBPCHF_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO3Sets5[GBPCHF_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_5__Time out_OCO3");
Base.GBPCHF_DOWN_S2_OCO3Sets5.Clear();
GBPCHF_OCO3S5_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO3S6_DOWN_S2 = 0;
for (; GBPCHF_OCO3S6_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO3Sets6.Count; GBPCHF_OCO3S6_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO3Sets6[GBPCHF_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO3Sets6[GBPCHF_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_6__Time out_OCO3");
Base.GBPCHF_DOWN_S2_OCO3Sets6.Clear();
GBPCHF_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO4_EO1_DOWN_S2)
Base.GBPCHF_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO2_DOWN_S2)
Base.GBPCHF_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO3_DOWN_S2)
Base.GBPCHF_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO4_DOWN_S2)
Base.GBPCHF_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO5_DOWN_S2)
Base.GBPCHF_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO6_DOWN_S2)
Base.GBPCHF_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPCHF_OCO4S1_DOWN_S2 = 0;
for (; GBPCHF_OCO4S1_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets1.Count; GBPCHF_OCO4S1_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets1[GBPCHF_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO4Sets1[GBPCHF_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_1__Time out_OCO4");
Base.GBPCHF_DOWN_S2_OCO4Sets1.Clear();
GBPCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO4S2_DOWN_S2 = 0;
for (; GBPCHF_OCO4S2_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets2.Count; GBPCHF_OCO4S2_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets2[GBPCHF_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO4Sets2[GBPCHF_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_2__Time out_OCO4");
Base.GBPCHF_DOWN_S2_OCO4Sets2.Clear();
GBPCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO4S3_DOWN_S2 = 0;
for (; GBPCHF_OCO4S3_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets3.Count; GBPCHF_OCO4S3_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets3[GBPCHF_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO4Sets3[GBPCHF_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_3__Time out_OCO4");
Base.GBPCHF_DOWN_S2_OCO4Sets3.Clear();
GBPCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO4S4_DOWN_S2 = 0;
for (; GBPCHF_OCO4S4_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets4.Count; GBPCHF_OCO4S4_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets4[GBPCHF_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO4Sets4[GBPCHF_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_4__Time out_OCO4");
Base.GBPCHF_DOWN_S2_OCO4Sets4.Clear();
GBPCHF_OCO4S4_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO4S5_DOWN_S2 = 0;
for (; GBPCHF_OCO4S5_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets5.Count; GBPCHF_OCO4S5_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets5[GBPCHF_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO4Sets5[GBPCHF_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_5__Time out_OCO4");
Base.GBPCHF_DOWN_S2_OCO4Sets5.Clear();
GBPCHF_OCO4S5_DOWN_S2 = 0;
break;
}
int GBPCHF_OCO4S6_DOWN_S2 = 0;
for (; GBPCHF_OCO4S6_DOWN_S2 < Base.GBPCHF_DOWN_S2_OCO4Sets6.Count; GBPCHF_OCO4S6_DOWN_S2++)
if (Base.GBPCHF_DOWN_S2_OCO4Sets6[GBPCHF_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPCHF_DOWN_S2_OCO4Sets6[GBPCHF_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_DOWN_S2_Entry_6__Time out_OCO4");
Base.GBPCHF_DOWN_S2_OCO4Sets6.Clear();
GBPCHF_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPCHF_DOWN_S2 = DOWM_GBPCHF_DOWN_S2 || DOWT_GBPCHF_DOWN_S2 || DOWW_GBPCHF_DOWN_S2 || DOWTH_GBPCHF_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPCHF_OCO1_DOWN_S2_IsReady == false ||
Base.GBPCHF_OCO2_DOWN_S2_IsReady == false ||
Base.GBPCHF_OCO3_DOWN_S2_IsReady == false ||
Base.GBPCHF_OCO4_DOWN_S2_IsReady == false)
{
Base.GBPCHF_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.GBPCHF_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.GBPCHF_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.GBPCHF_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.GBPCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.GBPCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.GBPCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
}
GBPCHF_Signal_Condition_DOWN_S2 =
(
prices_ASK_Close[0] - pricesM_ASK_High[0] > prices_ASK_Close[0] * 0.005m &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.0005m
);
GBPCHF_DOWN_S2_SL = 0.01m;
GBPCHF_DOWN_S2_TP1 = 0.0006m;
GBPCHF_DOWN_S2_TP2 = GBPCHF_DOWN_S2_SL * 0;
GBPCHF_DOWN_S2_TP3 = GBPCHF_DOWN_S2_SL * 0;
GBPCHF_DOWN_S2_TP4 = GBPCHF_DOWN_S2_SL * 0;
GBPCHF_DOWN_S2_TP5 = GBPCHF_DOWN_S2_SL * 0;
GBPCHF_DOWN_S2_TP6 = GBPCHF_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPCHF_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPCHF_quantity_SL_DOWN_S2 = GBPCHF_quantity_DOWN_S2;
GBPCHF_quantity_TP1_DOWN_S2 = (int)Math.Floor(GBPCHF_quantity_DOWN_S2 * 1m);
GBPCHF_quantity_TP2_DOWN_S2 = (int)Math.Floor(GBPCHF_quantity_TP1_DOWN_S2 * 0m);
GBPCHF_quantity_TP3_DOWN_S2 = (int)Math.Floor(GBPCHF_quantity_TP2_DOWN_S2 * 0m);
GBPCHF_quantity_TP4_DOWN_S2 = (int)Math.Floor(GBPCHF_quantity_TP3_DOWN_S2 * 0m);
GBPCHF_quantity_TP5_DOWN_S2 = (int)Math.Floor(GBPCHF_quantity_TP4_DOWN_S2 * 0m);
GBPCHF_quantity_TP6_DOWN_S2 = (int)Math.Floor(GBPCHF_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (GBPCHF_Signal_Condition_DOWN_S2 &&
DOWR_GBPCHF_DOWN_S2 &&
Base.GBPCHF_OCO1_DOWN_S2_IsReady == true &&
Base.GBPCHF_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPCHF_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP1_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP1_OCO1");
Base.GBPCHF_OCO1_EO1_DOWN_S2 = false;
Base.GBPCHF_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP2_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP2_OCO1");
Base.GBPCHF_OCO1_EO2_DOWN_S2 = false;
Base.GBPCHF_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP3_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP3_OCO1");
Base.GBPCHF_OCO1_EO3_DOWN_S2 = false;
Base.GBPCHF_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP4_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP4_OCO1");
Base.GBPCHF_OCO1_EO4_DOWN_S2 = false;
Base.GBPCHF_OCO1_DOWN_S2_IsReady = false;
if (Base.GBPCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (GBPCHF_Signal_Condition_DOWN_S2 &&
DOWR_GBPCHF_DOWN_S2 &&
Base.GBPCHF_OCO2_DOWN_S2_IsReady == true &&
Base.GBPCHF_OCO1_DOWN_S2_IsReady == false &&
Base.GBPCHF_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPCHF_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP1_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP1_OCO2");
Base.GBPCHF_OCO2_EO1_DOWN_S2 = false;
Base.GBPCHF_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP2_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP2_OCO2");
Base.GBPCHF_OCO2_EO2_DOWN_S2 = false;
Base.GBPCHF_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP3_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP3_OCO2");
Base.GBPCHF_OCO2_EO3_DOWN_S2 = false;
Base.GBPCHF_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP4_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP4_OCO2");
Base.GBPCHF_OCO2_EO4_DOWN_S2 = false;
Base.GBPCHF_OCO2_DOWN_S2_IsReady = false;
if (Base.GBPCHF_OCO2_DOWN_S2_IsReady == false && Base.GBPCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (GBPCHF_Signal_Condition_DOWN_S2 &&
DOWR_GBPCHF_DOWN_S2 &&
Base.GBPCHF_OCO3_DOWN_S2_IsReady == true &&
Base.GBPCHF_OCO1_DOWN_S2_IsReady == false &&
Base.GBPCHF_OCO2_DOWN_S2_IsReady == false &&
Base.GBPCHF_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPCHF_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP1_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP1_OCO3");
Base.GBPCHF_OCO3_EO1_DOWN_S2 = false;
Base.GBPCHF_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP2_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP2_OCO3");
Base.GBPCHF_OCO3_EO2_DOWN_S2 = false;
Base.GBPCHF_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP3_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP3_OCO3");
Base.GBPCHF_OCO3_EO3_DOWN_S2 = false;
Base.GBPCHF_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP4_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP4_OCO3");
Base.GBPCHF_OCO3_EO4_DOWN_S2 = false;
Base.GBPCHF_OCO3_DOWN_S2_IsReady = false;
if (Base.GBPCHF_OCO3_DOWN_S2_IsReady == false && Base.GBPCHF_OCO2_DOWN_S2_IsReady == false && Base.GBPCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (GBPCHF_Signal_Condition_DOWN_S2 &&
DOWR_GBPCHF_DOWN_S2 &&
Base.GBPCHF_OCO4_DOWN_S2_IsReady == true &&
Base.GBPCHF_OCO1_DOWN_S2_IsReady == false &&
Base.GBPCHF_OCO2_DOWN_S2_IsReady == false &&
Base.GBPCHF_OCO3_DOWN_S2_IsReady == false &&
Base.GBPCHF_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPCHF_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP1_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP1_OCO4");
Base.GBPCHF_OCO4_EO1_DOWN_S2 = false;
Base.GBPCHF_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP2_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP2_OCO4");
Base.GBPCHF_OCO4_EO2_DOWN_S2 = false;
Base.GBPCHF_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP3_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP3_OCO4");
Base.GBPCHF_OCO4_EO3_DOWN_S2 = false;
Base.GBPCHF_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCHF_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP4_DOWN_S2, false,"GBPCHF_DOWN_S2_Entry_TP4_OCO4");
Base.GBPCHF_OCO4_EO4_DOWN_S2 = false;
Base.GBPCHF_OCO4_DOWN_S2_IsReady = false;
if (Base.GBPCHF_OCO4_DOWN_S2_IsReady == false && Base.GBPCHF_OCO3_DOWN_S2_IsReady == false && Base.GBPCHF_OCO2_DOWN_S2_IsReady == false && Base.GBPCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURAUD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURAUD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
}
if (Base.EURAUD_OCO1_EO1_UP_S2)
Base.EURAUD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO1_EO2_UP_S2)
Base.EURAUD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO1_EO3_UP_S2)
Base.EURAUD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO1_EO4_UP_S2)
Base.EURAUD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO1_EO5_UP_S2)
Base.EURAUD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO1_EO6_UP_S2)
Base.EURAUD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO1_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP1,"TP1_EURAUD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP1_EURAUD_UP_S2_OCO1"));
};
Base.EURAUD_UP_S2_OCO1Sets1.Add( Base.EURAUD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO2_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP2,"TP2_EURAUD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP2_EURAUD_UP_S2_OCO1"));
};
Base.EURAUD_UP_S2_OCO1Sets2.Add( Base.EURAUD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO3_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP3,"TP3_EURAUD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP3_EURAUD_UP_S2_OCO1"));
};
Base.EURAUD_UP_S2_OCO1Sets3.Add( Base.EURAUD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO4_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP4,"TP4_EURAUD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP4_EURAUD_UP_S2_OCO1"));
};
Base.EURAUD_UP_S2_OCO1Sets4.Add( Base.EURAUD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO5_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP5,"TP5_EURAUD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP5_EURAUD_UP_S2_OCO1"));
};
Base.EURAUD_UP_S2_OCO1Sets5.Add( Base.EURAUD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO6_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP6,"TP6_EURAUD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP6_EURAUD_UP_S2_OCO1"));
};
Base.EURAUD_UP_S2_OCO1Sets6.Add( Base.EURAUD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO6_UP_S2_ID = -1;
}
int EURAUD_OCO1S1_UP_S2 = 0;
for (; EURAUD_OCO1S1_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets1.Count; EURAUD_OCO1S1_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets1[EURAUD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO1Sets1[EURAUD_OCO1S1_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO1Sets1.RemoveAt(EURAUD_OCO1S1_UP_S2);
EURAUD_OCO1S1_UP_S2 = 0;
break;
}
int EURAUD_OCO1S2_UP_S2 = 0;
for (; EURAUD_OCO1S2_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets2.Count; EURAUD_OCO1S2_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets2[EURAUD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO1Sets2[EURAUD_OCO1S2_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO1Sets2.RemoveAt(EURAUD_OCO1S2_UP_S2);
EURAUD_OCO1S2_UP_S2 = 0;
break;
}
int EURAUD_OCO1S3_UP_S2 = 0;
for (; EURAUD_OCO1S3_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets3.Count; EURAUD_OCO1S3_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets3[EURAUD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO1Sets3[EURAUD_OCO1S3_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO1Sets3.RemoveAt(EURAUD_OCO1S3_UP_S2);
EURAUD_OCO1S3_UP_S2 = 0;
break;
}
int EURAUD_OCO1S4_UP_S2 = 0;
for (; EURAUD_OCO1S4_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets4.Count; EURAUD_OCO1S4_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets4[EURAUD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO1Sets4[EURAUD_OCO1S4_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO1Sets4.RemoveAt(EURAUD_OCO1S4_UP_S2);
EURAUD_OCO1S4_UP_S2 = 0;
break;
}
int EURAUD_OCO1S5_UP_S2 = 0;
for (; EURAUD_OCO1S5_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets5.Count; EURAUD_OCO1S5_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets5[EURAUD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO1Sets5[EURAUD_OCO1S5_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO1Sets5.RemoveAt(EURAUD_OCO1S5_UP_S2);
EURAUD_OCO1S5_UP_S2 = 0;
break;
}
int EURAUD_OCO1S6_UP_S2 = 0;
for (; EURAUD_OCO1S6_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets6.Count; EURAUD_OCO1S6_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets6[EURAUD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO1Sets6[EURAUD_OCO1S6_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO1Sets6.RemoveAt(EURAUD_OCO1S6_UP_S2);
EURAUD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO2_EO1_UP_S2)
Base.EURAUD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO2_EO2_UP_S2)
Base.EURAUD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO2_EO3_UP_S2)
Base.EURAUD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO2_EO4_UP_S2)
Base.EURAUD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO2_EO5_UP_S2)
Base.EURAUD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO2_EO6_UP_S2)
Base.EURAUD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO1_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP1,"TP1_EURAUD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP1_EURAUD_UP_S2_OCO2"));
};
Base.EURAUD_UP_S2_OCO2Sets1.Add( Base.EURAUD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO2_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP2,"TP2_EURAUD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP2_EURAUD_UP_S2_OCO2"));
};
Base.EURAUD_UP_S2_OCO2Sets2.Add( Base.EURAUD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO3_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP3,"TP3_EURAUD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP3_EURAUD_UP_S2_OCO2"));
};
Base.EURAUD_UP_S2_OCO2Sets3.Add( Base.EURAUD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO4_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP4,"TP4_EURAUD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP4_EURAUD_UP_S2_OCO2"));
};
Base.EURAUD_UP_S2_OCO2Sets4.Add( Base.EURAUD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO5_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP5,"TP5_EURAUD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP5_EURAUD_UP_S2_OCO2"));
};
Base.EURAUD_UP_S2_OCO2Sets5.Add( Base.EURAUD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO6_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP6,"TP6_EURAUD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP6_EURAUD_UP_S2_OCO2"));
};
Base.EURAUD_UP_S2_OCO2Sets6.Add( Base.EURAUD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO6_UP_S2_ID = -1;
}
int EURAUD_OCO2S1_UP_S2 = 0;
for (; EURAUD_OCO2S1_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets1.Count; EURAUD_OCO2S1_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets1[EURAUD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO2Sets1[EURAUD_OCO2S1_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO2Sets1.RemoveAt(EURAUD_OCO2S1_UP_S2);
EURAUD_OCO2S1_UP_S2 = 0;
break;
}
int EURAUD_OCO2S2_UP_S2 = 0;
for (; EURAUD_OCO2S2_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets2.Count; EURAUD_OCO2S2_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets2[EURAUD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO2Sets2[EURAUD_OCO2S2_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO2Sets2.RemoveAt(EURAUD_OCO2S2_UP_S2);
EURAUD_OCO2S2_UP_S2 = 0;
break;
}
int EURAUD_OCO2S3_UP_S2 = 0;
for (; EURAUD_OCO2S3_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets3.Count; EURAUD_OCO2S3_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets3[EURAUD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO2Sets3[EURAUD_OCO2S3_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO2Sets3.RemoveAt(EURAUD_OCO2S3_UP_S2);
EURAUD_OCO2S3_UP_S2 = 0;
break;
}
int EURAUD_OCO2S4_UP_S2 = 0;
for (; EURAUD_OCO2S4_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets4.Count; EURAUD_OCO2S4_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets4[EURAUD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO2Sets4[EURAUD_OCO2S4_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO2Sets4.RemoveAt(EURAUD_OCO2S4_UP_S2);
EURAUD_OCO2S4_UP_S2 = 0;
break;
}
int EURAUD_OCO2S5_UP_S2 = 0;
for (; EURAUD_OCO2S5_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets5.Count; EURAUD_OCO2S5_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets5[EURAUD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO2Sets5[EURAUD_OCO2S5_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO2Sets5.RemoveAt(EURAUD_OCO2S5_UP_S2);
EURAUD_OCO2S5_UP_S2 = 0;
break;
}
int EURAUD_OCO2S6_UP_S2 = 0;
for (; EURAUD_OCO2S6_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets6.Count; EURAUD_OCO2S6_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets6[EURAUD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO2Sets6[EURAUD_OCO2S6_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO2Sets6.RemoveAt(EURAUD_OCO2S6_UP_S2);
EURAUD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO3_EO1_UP_S2)
Base.EURAUD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO3_EO2_UP_S2)
Base.EURAUD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO3_EO3_UP_S2)
Base.EURAUD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO3_EO4_UP_S2)
Base.EURAUD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO3_EO5_UP_S2)
Base.EURAUD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO3_EO6_UP_S2)
Base.EURAUD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO1_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP1,"TP1_EURAUD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP1_EURAUD_UP_S2_OCO3"));
};
Base.EURAUD_UP_S2_OCO3Sets1.Add( Base.EURAUD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO2_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP2,"TP2_EURAUD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP2_EURAUD_UP_S2_OCO3"));
};
Base.EURAUD_UP_S2_OCO3Sets2.Add( Base.EURAUD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO3_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP3,"TP3_EURAUD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP3_EURAUD_UP_S2_OCO3"));
};
Base.EURAUD_UP_S2_OCO3Sets3.Add( Base.EURAUD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO4_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP4,"TP4_EURAUD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP4_EURAUD_UP_S2_OCO3"));
};
Base.EURAUD_UP_S2_OCO3Sets4.Add( Base.EURAUD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO5_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP5,"TP5_EURAUD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP5_EURAUD_UP_S2_OCO3"));
};
Base.EURAUD_UP_S2_OCO3Sets5.Add( Base.EURAUD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO6_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP6,"TP6_EURAUD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP6_EURAUD_UP_S2_OCO3"));
};
Base.EURAUD_UP_S2_OCO3Sets6.Add( Base.EURAUD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO6_UP_S2_ID = -1;
}
int EURAUD_OCO3S1_UP_S2 = 0;
for (; EURAUD_OCO3S1_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets1.Count; EURAUD_OCO3S1_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets1[EURAUD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO3Sets1[EURAUD_OCO3S1_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO3Sets1.RemoveAt(EURAUD_OCO3S1_UP_S2);
EURAUD_OCO3S1_UP_S2 = 0;
break;
}
int EURAUD_OCO3S2_UP_S2 = 0;
for (; EURAUD_OCO3S2_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets2.Count; EURAUD_OCO3S2_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets2[EURAUD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO3Sets2[EURAUD_OCO3S2_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO3Sets2.RemoveAt(EURAUD_OCO3S2_UP_S2);
EURAUD_OCO3S2_UP_S2 = 0;
break;
}
int EURAUD_OCO3S3_UP_S2 = 0;
for (; EURAUD_OCO3S3_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets3.Count; EURAUD_OCO3S3_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets3[EURAUD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO3Sets3[EURAUD_OCO3S3_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO3Sets3.RemoveAt(EURAUD_OCO3S3_UP_S2);
EURAUD_OCO3S3_UP_S2 = 0;
break;
}
int EURAUD_OCO3S4_UP_S2 = 0;
for (; EURAUD_OCO3S4_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets4.Count; EURAUD_OCO3S4_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets4[EURAUD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO3Sets4[EURAUD_OCO3S4_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO3Sets4.RemoveAt(EURAUD_OCO3S4_UP_S2);
EURAUD_OCO3S4_UP_S2 = 0;
break;
}
int EURAUD_OCO3S5_UP_S2 = 0;
for (; EURAUD_OCO3S5_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets5.Count; EURAUD_OCO3S5_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets5[EURAUD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO3Sets5[EURAUD_OCO3S5_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO3Sets5.RemoveAt(EURAUD_OCO3S5_UP_S2);
EURAUD_OCO3S5_UP_S2 = 0;
break;
}
int EURAUD_OCO3S6_UP_S2 = 0;
for (; EURAUD_OCO3S6_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets6.Count; EURAUD_OCO3S6_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets6[EURAUD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO3Sets6[EURAUD_OCO3S6_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO3Sets6.RemoveAt(EURAUD_OCO3S6_UP_S2);
EURAUD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO4_EO1_UP_S2)
Base.EURAUD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO4_EO2_UP_S2)
Base.EURAUD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO4_EO3_UP_S2)
Base.EURAUD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO4_EO4_UP_S2)
Base.EURAUD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO4_EO5_UP_S2)
Base.EURAUD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO4_EO6_UP_S2)
Base.EURAUD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO1_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP1,"TP1_EURAUD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP1_EURAUD_UP_S2_OCO4"));
};
Base.EURAUD_UP_S2_OCO4Sets1.Add( Base.EURAUD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO2_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP2,"TP2_EURAUD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP2_EURAUD_UP_S2_OCO4"));
};
Base.EURAUD_UP_S2_OCO4Sets2.Add( Base.EURAUD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO3_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP3,"TP3_EURAUD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP3_EURAUD_UP_S2_OCO4"));
};
Base.EURAUD_UP_S2_OCO4Sets3.Add( Base.EURAUD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO4_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP4,"TP4_EURAUD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP4_EURAUD_UP_S2_OCO4"));
};
Base.EURAUD_UP_S2_OCO4Sets4.Add( Base.EURAUD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO5_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP5,"TP5_EURAUD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP5_EURAUD_UP_S2_OCO4"));
};
Base.EURAUD_UP_S2_OCO4Sets5.Add( Base.EURAUD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO6_UP_S2_ID)
{
Base.EURAUD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_UP_S2_TP6,"TP6_EURAUD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_UP_S2_SL,"SL_TP6_EURAUD_UP_S2_OCO4"));
};
Base.EURAUD_UP_S2_OCO4Sets6.Add( Base.EURAUD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO6_UP_S2_ID = -1;
}
int EURAUD_OCO4S1_UP_S2 = 0;
for (; EURAUD_OCO4S1_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets1.Count; EURAUD_OCO4S1_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets1[EURAUD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO4Sets1[EURAUD_OCO4S1_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO4Sets1.RemoveAt(EURAUD_OCO4S1_UP_S2);
EURAUD_OCO4S1_UP_S2 = 0;
break;
}
int EURAUD_OCO4S2_UP_S2 = 0;
for (; EURAUD_OCO4S2_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets2.Count; EURAUD_OCO4S2_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets2[EURAUD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO4Sets2[EURAUD_OCO4S2_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO4Sets2.RemoveAt(EURAUD_OCO4S2_UP_S2);
EURAUD_OCO4S2_UP_S2 = 0;
break;
}
int EURAUD_OCO4S3_UP_S2 = 0;
for (; EURAUD_OCO4S3_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets3.Count; EURAUD_OCO4S3_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets3[EURAUD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO4Sets3[EURAUD_OCO4S3_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO4Sets3.RemoveAt(EURAUD_OCO4S3_UP_S2);
EURAUD_OCO4S3_UP_S2 = 0;
break;
}
int EURAUD_OCO4S4_UP_S2 = 0;
for (; EURAUD_OCO4S4_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets4.Count; EURAUD_OCO4S4_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets4[EURAUD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO4Sets4[EURAUD_OCO4S4_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO4Sets4.RemoveAt(EURAUD_OCO4S4_UP_S2);
EURAUD_OCO4S4_UP_S2 = 0;
break;
}
int EURAUD_OCO4S5_UP_S2 = 0;
for (; EURAUD_OCO4S5_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets5.Count; EURAUD_OCO4S5_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets5[EURAUD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO4Sets5[EURAUD_OCO4S5_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO4Sets5.RemoveAt(EURAUD_OCO4S5_UP_S2);
EURAUD_OCO4S5_UP_S2 = 0;
break;
}
int EURAUD_OCO4S6_UP_S2 = 0;
for (; EURAUD_OCO4S6_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets6.Count; EURAUD_OCO4S6_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets6[EURAUD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_UP_S2_OCO4Sets6[EURAUD_OCO4S6_UP_S2].Filled();
Base.EURAUD_UP_S2_OCO4Sets6.RemoveAt(EURAUD_OCO4S6_UP_S2);
EURAUD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _EURJPY;
///oco1 up
public static OrderTicket EURJPY_OCO1_MO1_UP_S2;
public static OrderTicket EURJPY_OCO1_MO2_UP_S2;
public static OrderTicket EURJPY_OCO1_MO3_UP_S2;
public static OrderTicket EURJPY_OCO1_MO4_UP_S2;
public static OrderTicket EURJPY_OCO1_MO5_UP_S2;
public static OrderTicket EURJPY_OCO1_MO6_UP_S2;
public static int EURJPY_OCO1_EO1_UP_S2_ID ;
public static int EURJPY_OCO1_EO2_UP_S2_ID ;
public static int EURJPY_OCO1_EO3_UP_S2_ID ;
public static int EURJPY_OCO1_EO4_UP_S2_ID ;
public static int EURJPY_OCO1_EO5_UP_S2_ID ;
public static int EURJPY_OCO1_EO6_UP_S2_ID ;
public static bool EURJPY_OCO1_EO1_UP_S2 ;
public static bool EURJPY_OCO1_EO2_UP_S2 ;
public static bool EURJPY_OCO1_EO3_UP_S2 ;
public static bool EURJPY_OCO1_EO4_UP_S2 ;
public static bool EURJPY_OCO1_EO5_UP_S2 ;
public static bool EURJPY_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_UP_S2> EURJPY_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_UP_S2> EURJPY_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_UP_S2> EURJPY_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_UP_S2> EURJPY_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_UP_S2> EURJPY_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_UP_S2> EURJPY_OOFE_OCO1_UP_S2_6 ;
public static EURJPY_OCO1_UP_S2 EURJPY_PFO_OCO1_UP_S2_1 ;
public static EURJPY_OCO1_UP_S2 EURJPY_PFO_OCO1_UP_S2_2 ;
public static EURJPY_OCO1_UP_S2 EURJPY_PFO_OCO1_UP_S2_3 ;
public static EURJPY_OCO1_UP_S2 EURJPY_PFO_OCO1_UP_S2_4 ;
public static EURJPY_OCO1_UP_S2 EURJPY_PFO_OCO1_UP_S2_5 ;
public static EURJPY_OCO1_UP_S2 EURJPY_PFO_OCO1_UP_S2_6 ;
public static List<EURJPY_OCO1_UP_S2> EURJPY_UP_S2_OCO1Sets1 = new List<EURJPY_OCO1_UP_S2>();
public static List<EURJPY_OCO1_UP_S2> EURJPY_UP_S2_OCO1Sets2 = new List<EURJPY_OCO1_UP_S2>();
public static List<EURJPY_OCO1_UP_S2> EURJPY_UP_S2_OCO1Sets3 = new List<EURJPY_OCO1_UP_S2>();
public static List<EURJPY_OCO1_UP_S2> EURJPY_UP_S2_OCO1Sets4 = new List<EURJPY_OCO1_UP_S2>();
public static List<EURJPY_OCO1_UP_S2> EURJPY_UP_S2_OCO1Sets5 = new List<EURJPY_OCO1_UP_S2>();
public static List<EURJPY_OCO1_UP_S2> EURJPY_UP_S2_OCO1Sets6 = new List<EURJPY_OCO1_UP_S2>();
public static bool EURJPY_OCO1_UP_S2_IsReady = true;
public static bool EURJPY_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket EURJPY_OCO1_MO1_DOWN_S2 ;
public static OrderTicket EURJPY_OCO1_MO2_DOWN_S2 ;
public static OrderTicket EURJPY_OCO1_MO3_DOWN_S2 ;
public static OrderTicket EURJPY_OCO1_MO4_DOWN_S2 ;
public static OrderTicket EURJPY_OCO1_MO5_DOWN_S2 ;
public static OrderTicket EURJPY_OCO1_MO6_DOWN_S2 ;
public static int EURJPY_OCO1_EO1_DOWN_S2_ID ;
public static int EURJPY_OCO1_EO2_DOWN_S2_ID ;
public static int EURJPY_OCO1_EO3_DOWN_S2_ID ;
public static int EURJPY_OCO1_EO4_DOWN_S2_ID ;
public static int EURJPY_OCO1_EO5_DOWN_S2_ID ;
public static int EURJPY_OCO1_EO6_DOWN_S2_ID ;
public static bool EURJPY_OCO1_EO1_DOWN_S2 ;
public static bool EURJPY_OCO1_EO2_DOWN_S2 ;
public static bool EURJPY_OCO1_EO3_DOWN_S2 ;
public static bool EURJPY_OCO1_EO4_DOWN_S2 ;
public static bool EURJPY_OCO1_EO5_DOWN_S2 ;
public static bool EURJPY_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_DOWN_S2> EURJPY_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_DOWN_S2> EURJPY_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_DOWN_S2> EURJPY_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_DOWN_S2> EURJPY_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_DOWN_S2> EURJPY_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO1_DOWN_S2> EURJPY_OOFE_OCO1_DOWN_S2_6 ;
public static EURJPY_OCO1_DOWN_S2 EURJPY_PFO_OCO1_DOWN_S2_1 ;
public static EURJPY_OCO1_DOWN_S2 EURJPY_PFO_OCO1_DOWN_S2_2 ;
public static EURJPY_OCO1_DOWN_S2 EURJPY_PFO_OCO1_DOWN_S2_3 ;
public static EURJPY_OCO1_DOWN_S2 EURJPY_PFO_OCO1_DOWN_S2_4 ;
public static EURJPY_OCO1_DOWN_S2 EURJPY_PFO_OCO1_DOWN_S2_5 ;
public static EURJPY_OCO1_DOWN_S2 EURJPY_PFO_OCO1_DOWN_S2_6 ;
public static List<EURJPY_OCO1_DOWN_S2> EURJPY_DOWN_S2_OCO1Sets1 = new List<EURJPY_OCO1_DOWN_S2>();
public static List<EURJPY_OCO1_DOWN_S2> EURJPY_DOWN_S2_OCO1Sets2 = new List<EURJPY_OCO1_DOWN_S2>();
public static List<EURJPY_OCO1_DOWN_S2> EURJPY_DOWN_S2_OCO1Sets3 = new List<EURJPY_OCO1_DOWN_S2>();
public static List<EURJPY_OCO1_DOWN_S2> EURJPY_DOWN_S2_OCO1Sets4 = new List<EURJPY_OCO1_DOWN_S2>();
public static List<EURJPY_OCO1_DOWN_S2> EURJPY_DOWN_S2_OCO1Sets5 = new List<EURJPY_OCO1_DOWN_S2>();
public static List<EURJPY_OCO1_DOWN_S2> EURJPY_DOWN_S2_OCO1Sets6 = new List<EURJPY_OCO1_DOWN_S2>();
public static bool EURJPY_OCO1_DOWN_S2_IsReady = true;
public static bool EURJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket EURJPY_OCO2_MO1_UP_S2 ;
public static OrderTicket EURJPY_OCO2_MO2_UP_S2 ;
public static OrderTicket EURJPY_OCO2_MO3_UP_S2 ;
public static OrderTicket EURJPY_OCO2_MO4_UP_S2 ;
public static OrderTicket EURJPY_OCO2_MO5_UP_S2 ;
public static OrderTicket EURJPY_OCO2_MO6_UP_S2 ;
public static int EURJPY_OCO2_EO1_UP_S2_ID ;
public static int EURJPY_OCO2_EO2_UP_S2_ID ;
public static int EURJPY_OCO2_EO3_UP_S2_ID ;
public static int EURJPY_OCO2_EO4_UP_S2_ID ;
public static int EURJPY_OCO2_EO5_UP_S2_ID ;
public static int EURJPY_OCO2_EO6_UP_S2_ID ;
public static bool EURJPY_OCO2_EO1_UP_S2 ;
public static bool EURJPY_OCO2_EO2_UP_S2 ;
public static bool EURJPY_OCO2_EO3_UP_S2 ;
public static bool EURJPY_OCO2_EO4_UP_S2 ;
public static bool EURJPY_OCO2_EO5_UP_S2 ;
public static bool EURJPY_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_UP_S2> EURJPY_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_UP_S2> EURJPY_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_UP_S2> EURJPY_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_UP_S2> EURJPY_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_UP_S2> EURJPY_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_UP_S2> EURJPY_OOFE_OCO2_UP_S2_6 ;
public static EURJPY_OCO2_UP_S2 EURJPY_PFO_OCO2_UP_S2_1 ;
public static EURJPY_OCO2_UP_S2 EURJPY_PFO_OCO2_UP_S2_2 ;
public static EURJPY_OCO2_UP_S2 EURJPY_PFO_OCO2_UP_S2_3 ;
public static EURJPY_OCO2_UP_S2 EURJPY_PFO_OCO2_UP_S2_4 ;
public static EURJPY_OCO2_UP_S2 EURJPY_PFO_OCO2_UP_S2_5 ;
public static EURJPY_OCO2_UP_S2 EURJPY_PFO_OCO2_UP_S2_6 ;
public static List<EURJPY_OCO2_UP_S2> EURJPY_UP_S2_OCO2Sets1 = new List<EURJPY_OCO2_UP_S2>();
public static List<EURJPY_OCO2_UP_S2> EURJPY_UP_S2_OCO2Sets2 = new List<EURJPY_OCO2_UP_S2>();
public static List<EURJPY_OCO2_UP_S2> EURJPY_UP_S2_OCO2Sets3 = new List<EURJPY_OCO2_UP_S2>();
public static List<EURJPY_OCO2_UP_S2> EURJPY_UP_S2_OCO2Sets4 = new List<EURJPY_OCO2_UP_S2>();
public static List<EURJPY_OCO2_UP_S2> EURJPY_UP_S2_OCO2Sets5 = new List<EURJPY_OCO2_UP_S2>();
public static List<EURJPY_OCO2_UP_S2> EURJPY_UP_S2_OCO2Sets6 = new List<EURJPY_OCO2_UP_S2>();
public static bool EURJPY_OCO2_UP_S2_IsReady = true;
public static bool EURJPY_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket EURJPY_OCO2_MO1_DOWN_S2 ;
public static OrderTicket EURJPY_OCO2_MO2_DOWN_S2 ;
public static OrderTicket EURJPY_OCO2_MO3_DOWN_S2 ;
public static OrderTicket EURJPY_OCO2_MO4_DOWN_S2 ;
public static OrderTicket EURJPY_OCO2_MO5_DOWN_S2 ;
public static OrderTicket EURJPY_OCO2_MO6_DOWN_S2 ;
public static int EURJPY_OCO2_EO1_DOWN_S2_ID ;
public static int EURJPY_OCO2_EO2_DOWN_S2_ID ;
public static int EURJPY_OCO2_EO3_DOWN_S2_ID ;
public static int EURJPY_OCO2_EO4_DOWN_S2_ID ;
public static int EURJPY_OCO2_EO5_DOWN_S2_ID ;
public static int EURJPY_OCO2_EO6_DOWN_S2_ID ;
public static bool EURJPY_OCO2_EO1_DOWN_S2 ;
public static bool EURJPY_OCO2_EO2_DOWN_S2 ;
public static bool EURJPY_OCO2_EO3_DOWN_S2 ;
public static bool EURJPY_OCO2_EO4_DOWN_S2 ;
public static bool EURJPY_OCO2_EO5_DOWN_S2 ;
public static bool EURJPY_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_DOWN_S2> EURJPY_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_DOWN_S2> EURJPY_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_DOWN_S2> EURJPY_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_DOWN_S2> EURJPY_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_DOWN_S2> EURJPY_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO2_DOWN_S2> EURJPY_OOFE_OCO2_DOWN_S2_6 ;
public static EURJPY_OCO2_DOWN_S2 EURJPY_PFO_OCO2_DOWN_S2_1 ;
public static EURJPY_OCO2_DOWN_S2 EURJPY_PFO_OCO2_DOWN_S2_2 ;
public static EURJPY_OCO2_DOWN_S2 EURJPY_PFO_OCO2_DOWN_S2_3 ;
public static EURJPY_OCO2_DOWN_S2 EURJPY_PFO_OCO2_DOWN_S2_4 ;
public static EURJPY_OCO2_DOWN_S2 EURJPY_PFO_OCO2_DOWN_S2_5 ;
public static EURJPY_OCO2_DOWN_S2 EURJPY_PFO_OCO2_DOWN_S2_6 ;
public static List<EURJPY_OCO2_DOWN_S2> EURJPY_DOWN_S2_OCO2Sets1 = new List<EURJPY_OCO2_DOWN_S2>();
public static List<EURJPY_OCO2_DOWN_S2> EURJPY_DOWN_S2_OCO2Sets2 = new List<EURJPY_OCO2_DOWN_S2>();
public static List<EURJPY_OCO2_DOWN_S2> EURJPY_DOWN_S2_OCO2Sets3 = new List<EURJPY_OCO2_DOWN_S2>();
public static List<EURJPY_OCO2_DOWN_S2> EURJPY_DOWN_S2_OCO2Sets4 = new List<EURJPY_OCO2_DOWN_S2>();
public static List<EURJPY_OCO2_DOWN_S2> EURJPY_DOWN_S2_OCO2Sets5 = new List<EURJPY_OCO2_DOWN_S2>();
public static List<EURJPY_OCO2_DOWN_S2> EURJPY_DOWN_S2_OCO2Sets6 = new List<EURJPY_OCO2_DOWN_S2>();
public static bool EURJPY_OCO2_DOWN_S2_IsReady = true;
public static bool EURJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket EURJPY_OCO3_MO1_UP_S2 ;
public static OrderTicket EURJPY_OCO3_MO2_UP_S2 ;
public static OrderTicket EURJPY_OCO3_MO3_UP_S2 ;
public static OrderTicket EURJPY_OCO3_MO4_UP_S2 ;
public static OrderTicket EURJPY_OCO3_MO5_UP_S2 ;
public static OrderTicket EURJPY_OCO3_MO6_UP_S2 ;
public static int EURJPY_OCO3_EO1_UP_S2_ID ;
public static int EURJPY_OCO3_EO2_UP_S2_ID ;
public static int EURJPY_OCO3_EO3_UP_S2_ID ;
public static int EURJPY_OCO3_EO4_UP_S2_ID ;
public static int EURJPY_OCO3_EO5_UP_S2_ID ;
public static int EURJPY_OCO3_EO6_UP_S2_ID ;
public static bool EURJPY_OCO3_EO1_UP_S2 ;
public static bool EURJPY_OCO3_EO2_UP_S2 ;
public static bool EURJPY_OCO3_EO3_UP_S2 ;
public static bool EURJPY_OCO3_EO4_UP_S2 ;
public static bool EURJPY_OCO3_EO5_UP_S2 ;
public static bool EURJPY_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_UP_S2> EURJPY_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_UP_S2> EURJPY_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_UP_S2> EURJPY_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_UP_S2> EURJPY_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_UP_S2> EURJPY_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_UP_S2> EURJPY_OOFE_OCO3_UP_S2_6 ;
public static EURJPY_OCO3_UP_S2 EURJPY_PFO_OCO3_UP_S2_1 ;
public static EURJPY_OCO3_UP_S2 EURJPY_PFO_OCO3_UP_S2_2 ;
public static EURJPY_OCO3_UP_S2 EURJPY_PFO_OCO3_UP_S2_3 ;
public static EURJPY_OCO3_UP_S2 EURJPY_PFO_OCO3_UP_S2_4 ;
public static EURJPY_OCO3_UP_S2 EURJPY_PFO_OCO3_UP_S2_5 ;
public static EURJPY_OCO3_UP_S2 EURJPY_PFO_OCO3_UP_S2_6 ;
public static List<EURJPY_OCO3_UP_S2> EURJPY_UP_S2_OCO3Sets1 = new List<EURJPY_OCO3_UP_S2>();
public static List<EURJPY_OCO3_UP_S2> EURJPY_UP_S2_OCO3Sets2 = new List<EURJPY_OCO3_UP_S2>();
public static List<EURJPY_OCO3_UP_S2> EURJPY_UP_S2_OCO3Sets3 = new List<EURJPY_OCO3_UP_S2>();
public static List<EURJPY_OCO3_UP_S2> EURJPY_UP_S2_OCO3Sets4 = new List<EURJPY_OCO3_UP_S2>();
public static List<EURJPY_OCO3_UP_S2> EURJPY_UP_S2_OCO3Sets5 = new List<EURJPY_OCO3_UP_S2>();
public static List<EURJPY_OCO3_UP_S2> EURJPY_UP_S2_OCO3Sets6 = new List<EURJPY_OCO3_UP_S2>();
public static bool EURJPY_OCO3_UP_S2_IsReady = true;
public static bool EURJPY_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket EURJPY_OCO3_MO1_DOWN_S2 ;
public static OrderTicket EURJPY_OCO3_MO2_DOWN_S2 ;
public static OrderTicket EURJPY_OCO3_MO3_DOWN_S2 ;
public static OrderTicket EURJPY_OCO3_MO4_DOWN_S2 ;
public static OrderTicket EURJPY_OCO3_MO5_DOWN_S2 ;
public static OrderTicket EURJPY_OCO3_MO6_DOWN_S2 ;
public static int EURJPY_OCO3_EO1_DOWN_S2_ID ;
public static int EURJPY_OCO3_EO2_DOWN_S2_ID ;
public static int EURJPY_OCO3_EO3_DOWN_S2_ID ;
public static int EURJPY_OCO3_EO4_DOWN_S2_ID ;
public static int EURJPY_OCO3_EO5_DOWN_S2_ID ;
public static int EURJPY_OCO3_EO6_DOWN_S2_ID ;
public static bool EURJPY_OCO3_EO1_DOWN_S2 ;
public static bool EURJPY_OCO3_EO2_DOWN_S2 ;
public static bool EURJPY_OCO3_EO3_DOWN_S2 ;
public static bool EURJPY_OCO3_EO4_DOWN_S2 ;
public static bool EURJPY_OCO3_EO5_DOWN_S2 ;
public static bool EURJPY_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_DOWN_S2> EURJPY_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_DOWN_S2> EURJPY_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_DOWN_S2> EURJPY_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_DOWN_S2> EURJPY_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_DOWN_S2> EURJPY_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO3_DOWN_S2> EURJPY_OOFE_OCO3_DOWN_S2_6 ;
public static EURJPY_OCO3_DOWN_S2 EURJPY_PFO_OCO3_DOWN_S2_1 ;
public static EURJPY_OCO3_DOWN_S2 EURJPY_PFO_OCO3_DOWN_S2_2 ;
public static EURJPY_OCO3_DOWN_S2 EURJPY_PFO_OCO3_DOWN_S2_3 ;
public static EURJPY_OCO3_DOWN_S2 EURJPY_PFO_OCO3_DOWN_S2_4 ;
public static EURJPY_OCO3_DOWN_S2 EURJPY_PFO_OCO3_DOWN_S2_5 ;
public static EURJPY_OCO3_DOWN_S2 EURJPY_PFO_OCO3_DOWN_S2_6 ;
public static List<EURJPY_OCO3_DOWN_S2> EURJPY_DOWN_S2_OCO3Sets1 = new List<EURJPY_OCO3_DOWN_S2>();
public static List<EURJPY_OCO3_DOWN_S2> EURJPY_DOWN_S2_OCO3Sets2 = new List<EURJPY_OCO3_DOWN_S2>();
public static List<EURJPY_OCO3_DOWN_S2> EURJPY_DOWN_S2_OCO3Sets3 = new List<EURJPY_OCO3_DOWN_S2>();
public static List<EURJPY_OCO3_DOWN_S2> EURJPY_DOWN_S2_OCO3Sets4 = new List<EURJPY_OCO3_DOWN_S2>();
public static List<EURJPY_OCO3_DOWN_S2> EURJPY_DOWN_S2_OCO3Sets5 = new List<EURJPY_OCO3_DOWN_S2>();
public static List<EURJPY_OCO3_DOWN_S2> EURJPY_DOWN_S2_OCO3Sets6 = new List<EURJPY_OCO3_DOWN_S2>();
public static bool EURJPY_OCO3_DOWN_S2_IsReady = true;
public static bool EURJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket EURJPY_OCO4_MO1_UP_S2 ;
public static OrderTicket EURJPY_OCO4_MO2_UP_S2 ;
public static OrderTicket EURJPY_OCO4_MO3_UP_S2 ;
public static OrderTicket EURJPY_OCO4_MO4_UP_S2 ;
public static OrderTicket EURJPY_OCO4_MO5_UP_S2 ;
public static OrderTicket EURJPY_OCO4_MO6_UP_S2 ;
public static int EURJPY_OCO4_EO1_UP_S2_ID ;
public static int EURJPY_OCO4_EO2_UP_S2_ID ;
public static int EURJPY_OCO4_EO3_UP_S2_ID ;
public static int EURJPY_OCO4_EO4_UP_S2_ID ;
public static int EURJPY_OCO4_EO5_UP_S2_ID ;
public static int EURJPY_OCO4_EO6_UP_S2_ID ;
public static bool EURJPY_OCO4_EO1_UP_S2 ;
public static bool EURJPY_OCO4_EO2_UP_S2 ;
public static bool EURJPY_OCO4_EO3_UP_S2 ;
public static bool EURJPY_OCO4_EO4_UP_S2 ;
public static bool EURJPY_OCO4_EO5_UP_S2 ;
public static bool EURJPY_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_UP_S2> EURJPY_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_UP_S2> EURJPY_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_UP_S2> EURJPY_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_UP_S2> EURJPY_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_UP_S2> EURJPY_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_UP_S2> EURJPY_OOFE_OCO4_UP_S2_6 ;
public static EURJPY_OCO4_UP_S2 EURJPY_PFO_OCO4_UP_S2_1 ;
public static EURJPY_OCO4_UP_S2 EURJPY_PFO_OCO4_UP_S2_2 ;
public static EURJPY_OCO4_UP_S2 EURJPY_PFO_OCO4_UP_S2_3 ;
public static EURJPY_OCO4_UP_S2 EURJPY_PFO_OCO4_UP_S2_4 ;
public static EURJPY_OCO4_UP_S2 EURJPY_PFO_OCO4_UP_S2_5 ;
public static EURJPY_OCO4_UP_S2 EURJPY_PFO_OCO4_UP_S2_6 ;
public static List<EURJPY_OCO4_UP_S2> EURJPY_UP_S2_OCO4Sets1 = new List<EURJPY_OCO4_UP_S2>();
public static List<EURJPY_OCO4_UP_S2> EURJPY_UP_S2_OCO4Sets2 = new List<EURJPY_OCO4_UP_S2>();
public static List<EURJPY_OCO4_UP_S2> EURJPY_UP_S2_OCO4Sets3 = new List<EURJPY_OCO4_UP_S2>();
public static List<EURJPY_OCO4_UP_S2> EURJPY_UP_S2_OCO4Sets4 = new List<EURJPY_OCO4_UP_S2>();
public static List<EURJPY_OCO4_UP_S2> EURJPY_UP_S2_OCO4Sets5 = new List<EURJPY_OCO4_UP_S2>();
public static List<EURJPY_OCO4_UP_S2> EURJPY_UP_S2_OCO4Sets6 = new List<EURJPY_OCO4_UP_S2>();
public static bool EURJPY_OCO4_UP_S2_IsReady = true;
public static bool EURJPY_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket EURJPY_OCO4_MO1_DOWN_S2 ;
public static OrderTicket EURJPY_OCO4_MO2_DOWN_S2 ;
public static OrderTicket EURJPY_OCO4_MO3_DOWN_S2 ;
public static OrderTicket EURJPY_OCO4_MO4_DOWN_S2 ;
public static OrderTicket EURJPY_OCO4_MO5_DOWN_S2 ;
public static OrderTicket EURJPY_OCO4_MO6_DOWN_S2 ;
public static int EURJPY_OCO4_EO1_DOWN_S2_ID ;
public static int EURJPY_OCO4_EO2_DOWN_S2_ID ;
public static int EURJPY_OCO4_EO3_DOWN_S2_ID ;
public static int EURJPY_OCO4_EO4_DOWN_S2_ID ;
public static int EURJPY_OCO4_EO5_DOWN_S2_ID ;
public static int EURJPY_OCO4_EO6_DOWN_S2_ID ;
public static bool EURJPY_OCO4_EO1_DOWN_S2 ;
public static bool EURJPY_OCO4_EO2_DOWN_S2 ;
public static bool EURJPY_OCO4_EO3_DOWN_S2 ;
public static bool EURJPY_OCO4_EO4_DOWN_S2 ;
public static bool EURJPY_OCO4_EO5_DOWN_S2 ;
public static bool EURJPY_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_DOWN_S2> EURJPY_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_DOWN_S2> EURJPY_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_DOWN_S2> EURJPY_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_DOWN_S2> EURJPY_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_DOWN_S2> EURJPY_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURJPY_OCO4_DOWN_S2> EURJPY_OOFE_OCO4_DOWN_S2_6 ;
public static EURJPY_OCO4_DOWN_S2 EURJPY_PFO_OCO4_DOWN_S2_1 ;
public static EURJPY_OCO4_DOWN_S2 EURJPY_PFO_OCO4_DOWN_S2_2 ;
public static EURJPY_OCO4_DOWN_S2 EURJPY_PFO_OCO4_DOWN_S2_3 ;
public static EURJPY_OCO4_DOWN_S2 EURJPY_PFO_OCO4_DOWN_S2_4 ;
public static EURJPY_OCO4_DOWN_S2 EURJPY_PFO_OCO4_DOWN_S2_5 ;
public static EURJPY_OCO4_DOWN_S2 EURJPY_PFO_OCO4_DOWN_S2_6 ;
public static List<EURJPY_OCO4_DOWN_S2> EURJPY_DOWN_S2_OCO4Sets1 = new List<EURJPY_OCO4_DOWN_S2>();
public static List<EURJPY_OCO4_DOWN_S2> EURJPY_DOWN_S2_OCO4Sets2 = new List<EURJPY_OCO4_DOWN_S2>();
public static List<EURJPY_OCO4_DOWN_S2> EURJPY_DOWN_S2_OCO4Sets3 = new List<EURJPY_OCO4_DOWN_S2>();
public static List<EURJPY_OCO4_DOWN_S2> EURJPY_DOWN_S2_OCO4Sets4 = new List<EURJPY_OCO4_DOWN_S2>();
public static List<EURJPY_OCO4_DOWN_S2> EURJPY_DOWN_S2_OCO4Sets5 = new List<EURJPY_OCO4_DOWN_S2>();
public static List<EURJPY_OCO4_DOWN_S2> EURJPY_DOWN_S2_OCO4Sets6 = new List<EURJPY_OCO4_DOWN_S2>();
public static bool EURJPY_OCO4_DOWN_S2_IsReady = true;
public static bool EURJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal EURJPY_UP_S2_SL {get; set;}
public static decimal EURJPY_UP_S2_TP1 {get; set;}
public static decimal EURJPY_UP_S2_TP2 {get; set;}
public static decimal EURJPY_UP_S2_TP3 {get; set;}
public static decimal EURJPY_UP_S2_TP4 {get; set;}
public static decimal EURJPY_UP_S2_TP5 {get; set;}
public static decimal EURJPY_UP_S2_TP6 {get; set;}
public static decimal EURJPY_DOWN_S2_SL {get; set;}
public static decimal EURJPY_DOWN_S2_TP1 {get; set;}
public static decimal EURJPY_DOWN_S2_TP2 {get; set;}
public static decimal EURJPY_DOWN_S2_TP3 {get; set;}
public static decimal EURJPY_DOWN_S2_TP4 {get; set;}
public static decimal EURJPY_DOWN_S2_TP5 {get; set;}
public static decimal EURJPY_DOWN_S2_TP6 {get; set;}
public static bool EURJPY_Signal_Condition_UP_1 ;
public static bool EURJPY_Signal_Condition_UP_2 ;
public static bool EURJPY_Signal_Condition_UP_3 ;
public static bool EURJPY_Signal_Condition_DOWN_S2 ;
public static int EURJPY_UP_S2_OCO_DELAY_7DAY = 10080;
public static int EURJPY_UP_S2_OCOM_DELAY_DAY = 4320;
public static int EURJPY_UP_S2_OCOT_DELAY_DAY = 2880;
public static int EURJPY_UP_S2_OCOW_DELAY_DAY = 1440;
public static int EURJPY_UP_S2_OCOTH_DELAY_DAY = 720;
public static int EURJPY_DOWN_S2_OCO_DELAY_7DAY = 10080 * 4;
public static int EURJPY_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int EURJPY_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int EURJPY_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int EURJPY_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_EURJPY_UP_S2 ;
public static bool DOWM_EURJPY_UP_S2 ;
public static bool DOWT_EURJPY_UP_S2 ;
public static bool DOWW_EURJPY_UP_S2 ;
public static bool DOWTH_EURJPY_UP_S2 ;
public static bool DOWR_EURJPY_DOWN_S2 ;
public static bool DOWM_EURJPY_DOWN_S2 ;
public static bool DOWT_EURJPY_DOWN_S2 ;
public static bool DOWW_EURJPY_DOWN_S2 ;
public static bool DOWTH_EURJPY_DOWN_S2 ;
public static int EURJPY_quantity_UP_S2 ;
public static int EURJPY_quantity_SL_UP_S2 ;
public static int EURJPY_quantity_TP1_UP_S2 ;
public static int EURJPY_quantity_TP2_UP_S2 ;
public static int EURJPY_quantity_TP3_UP_S2 ;
public static int EURJPY_quantity_TP4_UP_S2 ;
public static int EURJPY_quantity_TP5_UP_S2;
public static int EURJPY_quantity_TP6_UP_S2 ;
public static int EURJPY_quantity_DOWN_S2 ;
public static int EURJPY_quantity_SL_DOWN_S2 ;
public static int EURJPY_quantity_TP1_DOWN_S2 ;
public static int EURJPY_quantity_TP2_DOWN_S2 ;
public static int EURJPY_quantity_TP3_DOWN_S2 ;
public static int EURJPY_quantity_TP4_DOWN_S2 ;
public static int EURJPY_quantity_TP5_DOWN_S2;
public static int EURJPY_quantity_TP6_DOWN_S2 ;
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURCAD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURCAD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
}
if (Base.EURCAD_OCO1_EO1_UP_S2)
Base.EURCAD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO1_EO2_UP_S2)
Base.EURCAD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO1_EO3_UP_S2)
Base.EURCAD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO1_EO4_UP_S2)
Base.EURCAD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO1_EO5_UP_S2)
Base.EURCAD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO1_EO6_UP_S2)
Base.EURCAD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO1_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP1,"TP1_EURCAD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP1_EURCAD_UP_S2_OCO1"));
};
Base.EURCAD_UP_S2_OCO1Sets1.Add( Base.EURCAD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO2_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP2,"TP2_EURCAD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP2_EURCAD_UP_S2_OCO1"));
};
Base.EURCAD_UP_S2_OCO1Sets2.Add( Base.EURCAD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO3_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP3,"TP3_EURCAD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP3_EURCAD_UP_S2_OCO1"));
};
Base.EURCAD_UP_S2_OCO1Sets3.Add( Base.EURCAD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO4_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP4,"TP4_EURCAD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP4_EURCAD_UP_S2_OCO1"));
};
Base.EURCAD_UP_S2_OCO1Sets4.Add( Base.EURCAD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO5_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP5,"TP5_EURCAD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP5_EURCAD_UP_S2_OCO1"));
};
Base.EURCAD_UP_S2_OCO1Sets5.Add( Base.EURCAD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO6_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP6,"TP6_EURCAD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP6_EURCAD_UP_S2_OCO1"));
};
Base.EURCAD_UP_S2_OCO1Sets6.Add( Base.EURCAD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO6_UP_S2_ID = -1;
}
int EURCAD_OCO1S1_UP_S2 = 0;
for (; EURCAD_OCO1S1_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets1.Count; EURCAD_OCO1S1_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets1[EURCAD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO1Sets1[EURCAD_OCO1S1_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO1Sets1.RemoveAt(EURCAD_OCO1S1_UP_S2);
EURCAD_OCO1S1_UP_S2 = 0;
break;
}
int EURCAD_OCO1S2_UP_S2 = 0;
for (; EURCAD_OCO1S2_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets2.Count; EURCAD_OCO1S2_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets2[EURCAD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO1Sets2[EURCAD_OCO1S2_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO1Sets2.RemoveAt(EURCAD_OCO1S2_UP_S2);
EURCAD_OCO1S2_UP_S2 = 0;
break;
}
int EURCAD_OCO1S3_UP_S2 = 0;
for (; EURCAD_OCO1S3_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets3.Count; EURCAD_OCO1S3_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets3[EURCAD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO1Sets3[EURCAD_OCO1S3_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO1Sets3.RemoveAt(EURCAD_OCO1S3_UP_S2);
EURCAD_OCO1S3_UP_S2 = 0;
break;
}
int EURCAD_OCO1S4_UP_S2 = 0;
for (; EURCAD_OCO1S4_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets4.Count; EURCAD_OCO1S4_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets4[EURCAD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO1Sets4[EURCAD_OCO1S4_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO1Sets4.RemoveAt(EURCAD_OCO1S4_UP_S2);
EURCAD_OCO1S4_UP_S2 = 0;
break;
}
int EURCAD_OCO1S5_UP_S2 = 0;
for (; EURCAD_OCO1S5_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets5.Count; EURCAD_OCO1S5_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets5[EURCAD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO1Sets5[EURCAD_OCO1S5_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO1Sets5.RemoveAt(EURCAD_OCO1S5_UP_S2);
EURCAD_OCO1S5_UP_S2 = 0;
break;
}
int EURCAD_OCO1S6_UP_S2 = 0;
for (; EURCAD_OCO1S6_UP_S2 < Base.EURCAD_UP_S2_OCO1Sets6.Count; EURCAD_OCO1S6_UP_S2++)
if (Base.EURCAD_UP_S2_OCO1Sets6[EURCAD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO1Sets6[EURCAD_OCO1S6_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO1Sets6.RemoveAt(EURCAD_OCO1S6_UP_S2);
EURCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO2_EO1_UP_S2)
Base.EURCAD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO2_EO2_UP_S2)
Base.EURCAD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO2_EO3_UP_S2)
Base.EURCAD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO2_EO4_UP_S2)
Base.EURCAD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO2_EO5_UP_S2)
Base.EURCAD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO2_EO6_UP_S2)
Base.EURCAD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO1_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP1,"TP1_EURCAD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP1_EURCAD_UP_S2_OCO2"));
};
Base.EURCAD_UP_S2_OCO2Sets1.Add( Base.EURCAD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO2_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP2,"TP2_EURCAD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP2_EURCAD_UP_S2_OCO2"));
};
Base.EURCAD_UP_S2_OCO2Sets2.Add( Base.EURCAD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO3_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP3,"TP3_EURCAD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP3_EURCAD_UP_S2_OCO2"));
};
Base.EURCAD_UP_S2_OCO2Sets3.Add( Base.EURCAD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO4_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP4,"TP4_EURCAD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP4_EURCAD_UP_S2_OCO2"));
};
Base.EURCAD_UP_S2_OCO2Sets4.Add( Base.EURCAD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO5_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP5,"TP5_EURCAD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP5_EURCAD_UP_S2_OCO2"));
};
Base.EURCAD_UP_S2_OCO2Sets5.Add( Base.EURCAD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO6_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP6,"TP6_EURCAD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP6_EURCAD_UP_S2_OCO2"));
};
Base.EURCAD_UP_S2_OCO2Sets6.Add( Base.EURCAD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO6_UP_S2_ID = -1;
}
int EURCAD_OCO2S1_UP_S2 = 0;
for (; EURCAD_OCO2S1_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets1.Count; EURCAD_OCO2S1_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets1[EURCAD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO2Sets1[EURCAD_OCO2S1_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO2Sets1.RemoveAt(EURCAD_OCO2S1_UP_S2);
EURCAD_OCO2S1_UP_S2 = 0;
break;
}
int EURCAD_OCO2S2_UP_S2 = 0;
for (; EURCAD_OCO2S2_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets2.Count; EURCAD_OCO2S2_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets2[EURCAD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO2Sets2[EURCAD_OCO2S2_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO2Sets2.RemoveAt(EURCAD_OCO2S2_UP_S2);
EURCAD_OCO2S2_UP_S2 = 0;
break;
}
int EURCAD_OCO2S3_UP_S2 = 0;
for (; EURCAD_OCO2S3_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets3.Count; EURCAD_OCO2S3_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets3[EURCAD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO2Sets3[EURCAD_OCO2S3_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO2Sets3.RemoveAt(EURCAD_OCO2S3_UP_S2);
EURCAD_OCO2S3_UP_S2 = 0;
break;
}
int EURCAD_OCO2S4_UP_S2 = 0;
for (; EURCAD_OCO2S4_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets4.Count; EURCAD_OCO2S4_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets4[EURCAD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO2Sets4[EURCAD_OCO2S4_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO2Sets4.RemoveAt(EURCAD_OCO2S4_UP_S2);
EURCAD_OCO2S4_UP_S2 = 0;
break;
}
int EURCAD_OCO2S5_UP_S2 = 0;
for (; EURCAD_OCO2S5_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets5.Count; EURCAD_OCO2S5_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets5[EURCAD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO2Sets5[EURCAD_OCO2S5_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO2Sets5.RemoveAt(EURCAD_OCO2S5_UP_S2);
EURCAD_OCO2S5_UP_S2 = 0;
break;
}
int EURCAD_OCO2S6_UP_S2 = 0;
for (; EURCAD_OCO2S6_UP_S2 < Base.EURCAD_UP_S2_OCO2Sets6.Count; EURCAD_OCO2S6_UP_S2++)
if (Base.EURCAD_UP_S2_OCO2Sets6[EURCAD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO2Sets6[EURCAD_OCO2S6_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO2Sets6.RemoveAt(EURCAD_OCO2S6_UP_S2);
EURCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO3_EO1_UP_S2)
Base.EURCAD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO3_EO2_UP_S2)
Base.EURCAD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO3_EO3_UP_S2)
Base.EURCAD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO3_EO4_UP_S2)
Base.EURCAD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO3_EO5_UP_S2)
Base.EURCAD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO3_EO6_UP_S2)
Base.EURCAD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO1_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP1,"TP1_EURCAD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP1_EURCAD_UP_S2_OCO3"));
};
Base.EURCAD_UP_S2_OCO3Sets1.Add( Base.EURCAD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO2_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP2,"TP2_EURCAD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP2_EURCAD_UP_S2_OCO3"));
};
Base.EURCAD_UP_S2_OCO3Sets2.Add( Base.EURCAD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO3_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP3,"TP3_EURCAD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP3_EURCAD_UP_S2_OCO3"));
};
Base.EURCAD_UP_S2_OCO3Sets3.Add( Base.EURCAD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO4_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP4,"TP4_EURCAD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP4_EURCAD_UP_S2_OCO3"));
};
Base.EURCAD_UP_S2_OCO3Sets4.Add( Base.EURCAD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO5_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP5,"TP5_EURCAD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP5_EURCAD_UP_S2_OCO3"));
};
Base.EURCAD_UP_S2_OCO3Sets5.Add( Base.EURCAD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO6_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP6,"TP6_EURCAD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP6_EURCAD_UP_S2_OCO3"));
};
Base.EURCAD_UP_S2_OCO3Sets6.Add( Base.EURCAD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO6_UP_S2_ID = -1;
}
int EURCAD_OCO3S1_UP_S2 = 0;
for (; EURCAD_OCO3S1_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets1.Count; EURCAD_OCO3S1_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets1[EURCAD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO3Sets1[EURCAD_OCO3S1_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO3Sets1.RemoveAt(EURCAD_OCO3S1_UP_S2);
EURCAD_OCO3S1_UP_S2 = 0;
break;
}
int EURCAD_OCO3S2_UP_S2 = 0;
for (; EURCAD_OCO3S2_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets2.Count; EURCAD_OCO3S2_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets2[EURCAD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO3Sets2[EURCAD_OCO3S2_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO3Sets2.RemoveAt(EURCAD_OCO3S2_UP_S2);
EURCAD_OCO3S2_UP_S2 = 0;
break;
}
int EURCAD_OCO3S3_UP_S2 = 0;
for (; EURCAD_OCO3S3_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets3.Count; EURCAD_OCO3S3_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets3[EURCAD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO3Sets3[EURCAD_OCO3S3_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO3Sets3.RemoveAt(EURCAD_OCO3S3_UP_S2);
EURCAD_OCO3S3_UP_S2 = 0;
break;
}
int EURCAD_OCO3S4_UP_S2 = 0;
for (; EURCAD_OCO3S4_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets4.Count; EURCAD_OCO3S4_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets4[EURCAD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO3Sets4[EURCAD_OCO3S4_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO3Sets4.RemoveAt(EURCAD_OCO3S4_UP_S2);
EURCAD_OCO3S4_UP_S2 = 0;
break;
}
int EURCAD_OCO3S5_UP_S2 = 0;
for (; EURCAD_OCO3S5_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets5.Count; EURCAD_OCO3S5_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets5[EURCAD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO3Sets5[EURCAD_OCO3S5_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO3Sets5.RemoveAt(EURCAD_OCO3S5_UP_S2);
EURCAD_OCO3S5_UP_S2 = 0;
break;
}
int EURCAD_OCO3S6_UP_S2 = 0;
for (; EURCAD_OCO3S6_UP_S2 < Base.EURCAD_UP_S2_OCO3Sets6.Count; EURCAD_OCO3S6_UP_S2++)
if (Base.EURCAD_UP_S2_OCO3Sets6[EURCAD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO3Sets6[EURCAD_OCO3S6_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO3Sets6.RemoveAt(EURCAD_OCO3S6_UP_S2);
EURCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO4_EO1_UP_S2)
Base.EURCAD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO4_EO2_UP_S2)
Base.EURCAD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO4_EO3_UP_S2)
Base.EURCAD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO4_EO4_UP_S2)
Base.EURCAD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO4_EO5_UP_S2)
Base.EURCAD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO4_EO6_UP_S2)
Base.EURCAD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO1_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP1,"TP1_EURCAD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP1_EURCAD_UP_S2_OCO4"));
};
Base.EURCAD_UP_S2_OCO4Sets1.Add( Base.EURCAD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO2_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP2,"TP2_EURCAD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP2_EURCAD_UP_S2_OCO4"));
};
Base.EURCAD_UP_S2_OCO4Sets2.Add( Base.EURCAD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO3_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP3,"TP3_EURCAD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP3_EURCAD_UP_S2_OCO4"));
};
Base.EURCAD_UP_S2_OCO4Sets3.Add( Base.EURCAD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO4_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP4,"TP4_EURCAD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP4_EURCAD_UP_S2_OCO4"));
};
Base.EURCAD_UP_S2_OCO4Sets4.Add( Base.EURCAD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO5_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP5,"TP5_EURCAD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP5_EURCAD_UP_S2_OCO4"));
};
Base.EURCAD_UP_S2_OCO4Sets5.Add( Base.EURCAD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO6_UP_S2_ID)
{
Base.EURCAD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_UP_S2_TP6,"TP6_EURCAD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_UP_S2_SL,"SL_TP6_EURCAD_UP_S2_OCO4"));
};
Base.EURCAD_UP_S2_OCO4Sets6.Add( Base.EURCAD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO6_UP_S2_ID = -1;
}
int EURCAD_OCO4S1_UP_S2 = 0;
for (; EURCAD_OCO4S1_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets1.Count; EURCAD_OCO4S1_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets1[EURCAD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO4Sets1[EURCAD_OCO4S1_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO4Sets1.RemoveAt(EURCAD_OCO4S1_UP_S2);
EURCAD_OCO4S1_UP_S2 = 0;
break;
}
int EURCAD_OCO4S2_UP_S2 = 0;
for (; EURCAD_OCO4S2_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets2.Count; EURCAD_OCO4S2_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets2[EURCAD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO4Sets2[EURCAD_OCO4S2_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO4Sets2.RemoveAt(EURCAD_OCO4S2_UP_S2);
EURCAD_OCO4S2_UP_S2 = 0;
break;
}
int EURCAD_OCO4S3_UP_S2 = 0;
for (; EURCAD_OCO4S3_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets3.Count; EURCAD_OCO4S3_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets3[EURCAD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO4Sets3[EURCAD_OCO4S3_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO4Sets3.RemoveAt(EURCAD_OCO4S3_UP_S2);
EURCAD_OCO4S3_UP_S2 = 0;
break;
}
int EURCAD_OCO4S4_UP_S2 = 0;
for (; EURCAD_OCO4S4_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets4.Count; EURCAD_OCO4S4_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets4[EURCAD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO4Sets4[EURCAD_OCO4S4_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO4Sets4.RemoveAt(EURCAD_OCO4S4_UP_S2);
EURCAD_OCO4S4_UP_S2 = 0;
break;
}
int EURCAD_OCO4S5_UP_S2 = 0;
for (; EURCAD_OCO4S5_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets5.Count; EURCAD_OCO4S5_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets5[EURCAD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO4Sets5[EURCAD_OCO4S5_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO4Sets5.RemoveAt(EURCAD_OCO4S5_UP_S2);
EURCAD_OCO4S5_UP_S2 = 0;
break;
}
int EURCAD_OCO4S6_UP_S2 = 0;
for (; EURCAD_OCO4S6_UP_S2 < Base.EURCAD_UP_S2_OCO4Sets6.Count; EURCAD_OCO4S6_UP_S2++)
if (Base.EURCAD_UP_S2_OCO4Sets6[EURCAD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_UP_S2_OCO4Sets6[EURCAD_OCO4S6_UP_S2].Filled();
Base.EURCAD_UP_S2_OCO4Sets6.RemoveAt(EURCAD_OCO4S6_UP_S2);
EURCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURAUD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURAUD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
if (OrderID.Tag.StartsWith("EURAUD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURAUD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURAUD S2");
}
}
if (Base.EURAUD_OCO1_EO1_DOWN_S2)
Base.EURAUD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO1_EO2_DOWN_S2)
Base.EURAUD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO1_EO3_DOWN_S2)
Base.EURAUD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO1_EO4_DOWN_S2)
Base.EURAUD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO1_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP1_EURAUD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP1,"TP1_EURAUD_DOWN_S2_OCO1"));
};
Base.EURAUD_DOWN_S2_OCO1Sets1.Add( Base.EURAUD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO2_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP2_EURAUD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP2,"TP2_EURAUD_DOWN_S2_OCO1"));
};
Base.EURAUD_DOWN_S2_OCO1Sets2.Add( Base.EURAUD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO3_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP3_EURAUD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP3,"TP3_EURAUD_DOWN_S2_OCO1"));
};
Base.EURAUD_DOWN_S2_OCO1Sets3.Add( Base.EURAUD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO1_EO4_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP4_EURAUD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP4,"TP4_EURAUD_DOWN_S2_OCO1"));
};
Base.EURAUD_DOWN_S2_OCO1Sets4.Add( Base.EURAUD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO1_EO4_DOWN_S2_ID = -1;
}
int EURAUD_OCO1S1_DOWN_S2 = 0;
for (; EURAUD_OCO1S1_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets1.Count; EURAUD_OCO1S1_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets1[EURAUD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO1Sets1[EURAUD_OCO1S1_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO1Sets1.RemoveAt(EURAUD_OCO1S1_DOWN_S2);
EURAUD_OCO1S1_DOWN_S2 = 0;
break;
}
int EURAUD_OCO1S2_DOWN_S2 = 0;
for (; EURAUD_OCO1S2_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets2.Count; EURAUD_OCO1S2_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets2[EURAUD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO1Sets2[EURAUD_OCO1S2_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO1Sets2.RemoveAt(EURAUD_OCO1S2_DOWN_S2);
EURAUD_OCO1S2_DOWN_S2 = 0;
break;
}
int EURAUD_OCO1S3_DOWN_S2 = 0;
for (; EURAUD_OCO1S3_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets3.Count; EURAUD_OCO1S3_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets3[EURAUD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO1Sets3[EURAUD_OCO1S3_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO1Sets3.RemoveAt(EURAUD_OCO1S3_DOWN_S2);
EURAUD_OCO1S3_DOWN_S2 = 0;
break;
}
int EURAUD_OCO1S4_DOWN_S2 = 0;
for (; EURAUD_OCO1S4_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets4.Count; EURAUD_OCO1S4_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets4[EURAUD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO1Sets4[EURAUD_OCO1S4_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO1Sets4.RemoveAt(EURAUD_OCO1S4_DOWN_S2);
EURAUD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO2_EO1_DOWN_S2)
Base.EURAUD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO2_EO2_DOWN_S2)
Base.EURAUD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO2_EO3_DOWN_S2)
Base.EURAUD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO2_EO4_DOWN_S2)
Base.EURAUD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO1_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP1_EURAUD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP1,"TP1_EURAUD_DOWN_S2_OCO2"));
};
Base.EURAUD_DOWN_S2_OCO2Sets1.Add( Base.EURAUD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO2_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP2_EURAUD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP2,"TP2_EURAUD_DOWN_S2_OCO2"));
};
Base.EURAUD_DOWN_S2_OCO2Sets2.Add( Base.EURAUD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO3_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP3_EURAUD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP3,"TP3_EURAUD_DOWN_S2_OCO2"));
};
Base.EURAUD_DOWN_S2_OCO2Sets3.Add( Base.EURAUD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO2_EO4_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP4_EURAUD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP4,"TP4_EURAUD_DOWN_S2_OCO2"));
};
Base.EURAUD_DOWN_S2_OCO2Sets4.Add( Base.EURAUD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO2_EO4_DOWN_S2_ID = -1;
}
int EURAUD_OCO2S1_DOWN_S2 = 0;
for (; EURAUD_OCO2S1_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets1.Count; EURAUD_OCO2S1_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets1[EURAUD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO2Sets1[EURAUD_OCO2S1_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO2Sets1.RemoveAt(EURAUD_OCO2S1_DOWN_S2);
EURAUD_OCO2S1_DOWN_S2 = 0;
break;
}
int EURAUD_OCO2S2_DOWN_S2 = 0;
for (; EURAUD_OCO2S2_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets2.Count; EURAUD_OCO2S2_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets2[EURAUD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO2Sets2[EURAUD_OCO2S2_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO2Sets2.RemoveAt(EURAUD_OCO2S2_DOWN_S2);
EURAUD_OCO2S2_DOWN_S2 = 0;
break;
}
int EURAUD_OCO2S3_DOWN_S2 = 0;
for (; EURAUD_OCO2S3_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets3.Count; EURAUD_OCO2S3_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets3[EURAUD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO2Sets3[EURAUD_OCO2S3_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO2Sets3.RemoveAt(EURAUD_OCO2S3_DOWN_S2);
EURAUD_OCO2S3_DOWN_S2 = 0;
break;
}
int EURAUD_OCO2S4_DOWN_S2 = 0;
for (; EURAUD_OCO2S4_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets4.Count; EURAUD_OCO2S4_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets4[EURAUD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO2Sets4[EURAUD_OCO2S4_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO2Sets4.RemoveAt(EURAUD_OCO2S4_DOWN_S2);
EURAUD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO3_EO1_DOWN_S2)
Base.EURAUD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO3_EO2_DOWN_S2)
Base.EURAUD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO3_EO3_DOWN_S2)
Base.EURAUD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO3_EO4_DOWN_S2)
Base.EURAUD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO1_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP1_EURAUD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP1,"TP1_EURAUD_DOWN_S2_OCO3"));
};
Base.EURAUD_DOWN_S2_OCO3Sets1.Add( Base.EURAUD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO2_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP2_EURAUD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP2,"TP2_EURAUD_DOWN_S2_OCO3"));
};
Base.EURAUD_DOWN_S2_OCO3Sets2.Add( Base.EURAUD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO3_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP3_EURAUD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP3,"TP3_EURAUD_DOWN_S2_OCO3"));
};
Base.EURAUD_DOWN_S2_OCO3Sets3.Add( Base.EURAUD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO3_EO4_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP4_EURAUD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP4,"TP4_EURAUD_DOWN_S2_OCO3"));
};
Base.EURAUD_DOWN_S2_OCO3Sets4.Add( Base.EURAUD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO3_EO4_DOWN_S2_ID = -1;
}
int EURAUD_OCO3S1_DOWN_S2 = 0;
for (; EURAUD_OCO3S1_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets1.Count; EURAUD_OCO3S1_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets1[EURAUD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO3Sets1[EURAUD_OCO3S1_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO3Sets1.RemoveAt(EURAUD_OCO3S1_DOWN_S2);
EURAUD_OCO3S1_DOWN_S2 = 0;
break;
}
int EURAUD_OCO3S2_DOWN_S2 = 0;
for (; EURAUD_OCO3S2_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets2.Count; EURAUD_OCO3S2_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets2[EURAUD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO3Sets2[EURAUD_OCO3S2_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO3Sets2.RemoveAt(EURAUD_OCO3S2_DOWN_S2);
EURAUD_OCO3S2_DOWN_S2 = 0;
break;
}
int EURAUD_OCO3S3_DOWN_S2 = 0;
for (; EURAUD_OCO3S3_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets3.Count; EURAUD_OCO3S3_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets3[EURAUD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO3Sets3[EURAUD_OCO3S3_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO3Sets3.RemoveAt(EURAUD_OCO3S3_DOWN_S2);
EURAUD_OCO3S3_DOWN_S2 = 0;
break;
}
int EURAUD_OCO3S4_DOWN_S2 = 0;
for (; EURAUD_OCO3S4_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets4.Count; EURAUD_OCO3S4_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets4[EURAUD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO3Sets4[EURAUD_OCO3S4_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO3Sets4.RemoveAt(EURAUD_OCO3S4_DOWN_S2);
EURAUD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO4_EO1_DOWN_S2)
Base.EURAUD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO4_EO2_DOWN_S2)
Base.EURAUD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO4_EO3_DOWN_S2)
Base.EURAUD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURAUD_OCO4_EO4_DOWN_S2)
Base.EURAUD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO1_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP1_EURAUD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP1,"TP1_EURAUD_DOWN_S2_OCO4"));
};
Base.EURAUD_DOWN_S2_OCO4Sets1.Add( Base.EURAUD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO2_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP2_EURAUD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP2,"TP2_EURAUD_DOWN_S2_OCO4"));
};
Base.EURAUD_DOWN_S2_OCO4Sets2.Add( Base.EURAUD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO3_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP3_EURAUD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP3,"TP3_EURAUD_DOWN_S2_OCO4"));
};
Base.EURAUD_DOWN_S2_OCO4Sets3.Add( Base.EURAUD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURAUD_OCO4_EO4_DOWN_S2_ID)
{
Base.EURAUD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURAUD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURAUD_DOWN_S2_SL,"SL_TP4_EURAUD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURAUD_DOWN_S2_TP4,"TP4_EURAUD_DOWN_S2_OCO4"));
};
Base.EURAUD_DOWN_S2_OCO4Sets4.Add( Base.EURAUD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURAUD_OCO4_EO4_DOWN_S2_ID = -1;
}
int EURAUD_OCO4S1_DOWN_S2 = 0;
for (; EURAUD_OCO4S1_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets1.Count; EURAUD_OCO4S1_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets1[EURAUD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO4Sets1[EURAUD_OCO4S1_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO4Sets1.RemoveAt(EURAUD_OCO4S1_DOWN_S2);
EURAUD_OCO4S1_DOWN_S2 = 0;
break;
}
int EURAUD_OCO4S2_DOWN_S2 = 0;
for (; EURAUD_OCO4S2_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets2.Count; EURAUD_OCO4S2_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets2[EURAUD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO4Sets2[EURAUD_OCO4S2_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO4Sets2.RemoveAt(EURAUD_OCO4S2_DOWN_S2);
EURAUD_OCO4S2_DOWN_S2 = 0;
break;
}
int EURAUD_OCO4S3_DOWN_S2 = 0;
for (; EURAUD_OCO4S3_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets3.Count; EURAUD_OCO4S3_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets3[EURAUD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO4Sets3[EURAUD_OCO4S3_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO4Sets3.RemoveAt(EURAUD_OCO4S3_DOWN_S2);
EURAUD_OCO4S3_DOWN_S2 = 0;
break;
}
int EURAUD_OCO4S4_DOWN_S2 = 0;
for (; EURAUD_OCO4S4_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets4.Count; EURAUD_OCO4S4_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets4[EURAUD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURAUD_DOWN_S2_OCO4Sets4[EURAUD_OCO4S4_DOWN_S2].Filled();
Base.EURAUD_DOWN_S2_OCO4Sets4.RemoveAt(EURAUD_OCO4S4_DOWN_S2);
EURAUD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURCAD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURCAD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
if (OrderID.Tag.StartsWith("EURCAD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURCAD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCAD S2");
}
}
if (Base.EURCAD_OCO1_EO1_DOWN_S2)
Base.EURCAD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO1_EO2_DOWN_S2)
Base.EURCAD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO1_EO3_DOWN_S2)
Base.EURCAD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO1_EO4_DOWN_S2)
Base.EURCAD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO1_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP1_EURCAD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP1,"TP1_EURCAD_DOWN_S2_OCO1"));
};
Base.EURCAD_DOWN_S2_OCO1Sets1.Add( Base.EURCAD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO2_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP2_EURCAD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP2,"TP2_EURCAD_DOWN_S2_OCO1"));
};
Base.EURCAD_DOWN_S2_OCO1Sets2.Add( Base.EURCAD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO3_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP3_EURCAD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP3,"TP3_EURCAD_DOWN_S2_OCO1"));
};
Base.EURCAD_DOWN_S2_OCO1Sets3.Add( Base.EURCAD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO1_EO4_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP4_EURCAD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP4,"TP4_EURCAD_DOWN_S2_OCO1"));
};
Base.EURCAD_DOWN_S2_OCO1Sets4.Add( Base.EURCAD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO1_EO4_DOWN_S2_ID = -1;
}
int EURCAD_OCO1S1_DOWN_S2 = 0;
for (; EURCAD_OCO1S1_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets1.Count; EURCAD_OCO1S1_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets1[EURCAD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO1Sets1[EURCAD_OCO1S1_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO1Sets1.RemoveAt(EURCAD_OCO1S1_DOWN_S2);
EURCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int EURCAD_OCO1S2_DOWN_S2 = 0;
for (; EURCAD_OCO1S2_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets2.Count; EURCAD_OCO1S2_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets2[EURCAD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO1Sets2[EURCAD_OCO1S2_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO1Sets2.RemoveAt(EURCAD_OCO1S2_DOWN_S2);
EURCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int EURCAD_OCO1S3_DOWN_S2 = 0;
for (; EURCAD_OCO1S3_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets3.Count; EURCAD_OCO1S3_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets3[EURCAD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO1Sets3[EURCAD_OCO1S3_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO1Sets3.RemoveAt(EURCAD_OCO1S3_DOWN_S2);
EURCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int EURCAD_OCO1S4_DOWN_S2 = 0;
for (; EURCAD_OCO1S4_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO1Sets4.Count; EURCAD_OCO1S4_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO1Sets4[EURCAD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO1Sets4[EURCAD_OCO1S4_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO1Sets4.RemoveAt(EURCAD_OCO1S4_DOWN_S2);
EURCAD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO2_EO1_DOWN_S2)
Base.EURCAD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO2_EO2_DOWN_S2)
Base.EURCAD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO2_EO3_DOWN_S2)
Base.EURCAD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO2_EO4_DOWN_S2)
Base.EURCAD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO1_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP1_EURCAD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP1,"TP1_EURCAD_DOWN_S2_OCO2"));
};
Base.EURCAD_DOWN_S2_OCO2Sets1.Add( Base.EURCAD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO2_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP2_EURCAD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP2,"TP2_EURCAD_DOWN_S2_OCO2"));
};
Base.EURCAD_DOWN_S2_OCO2Sets2.Add( Base.EURCAD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO3_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP3_EURCAD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP3,"TP3_EURCAD_DOWN_S2_OCO2"));
};
Base.EURCAD_DOWN_S2_OCO2Sets3.Add( Base.EURCAD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO2_EO4_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP4_EURCAD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP4,"TP4_EURCAD_DOWN_S2_OCO2"));
};
Base.EURCAD_DOWN_S2_OCO2Sets4.Add( Base.EURCAD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO2_EO4_DOWN_S2_ID = -1;
}
int EURCAD_OCO2S1_DOWN_S2 = 0;
for (; EURCAD_OCO2S1_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets1.Count; EURCAD_OCO2S1_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets1[EURCAD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO2Sets1[EURCAD_OCO2S1_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO2Sets1.RemoveAt(EURCAD_OCO2S1_DOWN_S2);
EURCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int EURCAD_OCO2S2_DOWN_S2 = 0;
for (; EURCAD_OCO2S2_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets2.Count; EURCAD_OCO2S2_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets2[EURCAD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO2Sets2[EURCAD_OCO2S2_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO2Sets2.RemoveAt(EURCAD_OCO2S2_DOWN_S2);
EURCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int EURCAD_OCO2S3_DOWN_S2 = 0;
for (; EURCAD_OCO2S3_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets3.Count; EURCAD_OCO2S3_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets3[EURCAD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO2Sets3[EURCAD_OCO2S3_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO2Sets3.RemoveAt(EURCAD_OCO2S3_DOWN_S2);
EURCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int EURCAD_OCO2S4_DOWN_S2 = 0;
for (; EURCAD_OCO2S4_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO2Sets4.Count; EURCAD_OCO2S4_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO2Sets4[EURCAD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO2Sets4[EURCAD_OCO2S4_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO2Sets4.RemoveAt(EURCAD_OCO2S4_DOWN_S2);
EURCAD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO3_EO1_DOWN_S2)
Base.EURCAD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO3_EO2_DOWN_S2)
Base.EURCAD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO3_EO3_DOWN_S2)
Base.EURCAD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO3_EO4_DOWN_S2)
Base.EURCAD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO1_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP1_EURCAD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP1,"TP1_EURCAD_DOWN_S2_OCO3"));
};
Base.EURCAD_DOWN_S2_OCO3Sets1.Add( Base.EURCAD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO2_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP2_EURCAD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP2,"TP2_EURCAD_DOWN_S2_OCO3"));
};
Base.EURCAD_DOWN_S2_OCO3Sets2.Add( Base.EURCAD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO3_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP3_EURCAD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP3,"TP3_EURCAD_DOWN_S2_OCO3"));
};
Base.EURCAD_DOWN_S2_OCO3Sets3.Add( Base.EURCAD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO3_EO4_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP4_EURCAD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP4,"TP4_EURCAD_DOWN_S2_OCO3"));
};
Base.EURCAD_DOWN_S2_OCO3Sets4.Add( Base.EURCAD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO3_EO4_DOWN_S2_ID = -1;
}
int EURCAD_OCO3S1_DOWN_S2 = 0;
for (; EURCAD_OCO3S1_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets1.Count; EURCAD_OCO3S1_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets1[EURCAD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO3Sets1[EURCAD_OCO3S1_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO3Sets1.RemoveAt(EURCAD_OCO3S1_DOWN_S2);
EURCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int EURCAD_OCO3S2_DOWN_S2 = 0;
for (; EURCAD_OCO3S2_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets2.Count; EURCAD_OCO3S2_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets2[EURCAD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO3Sets2[EURCAD_OCO3S2_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO3Sets2.RemoveAt(EURCAD_OCO3S2_DOWN_S2);
EURCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int EURCAD_OCO3S3_DOWN_S2 = 0;
for (; EURCAD_OCO3S3_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets3.Count; EURCAD_OCO3S3_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets3[EURCAD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO3Sets3[EURCAD_OCO3S3_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO3Sets3.RemoveAt(EURCAD_OCO3S3_DOWN_S2);
EURCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int EURCAD_OCO3S4_DOWN_S2 = 0;
for (; EURCAD_OCO3S4_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO3Sets4.Count; EURCAD_OCO3S4_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO3Sets4[EURCAD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO3Sets4[EURCAD_OCO3S4_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO3Sets4.RemoveAt(EURCAD_OCO3S4_DOWN_S2);
EURCAD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURCAD_OCO4_EO1_DOWN_S2)
Base.EURCAD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO4_EO2_DOWN_S2)
Base.EURCAD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO4_EO3_DOWN_S2)
Base.EURCAD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCAD_OCO4_EO4_DOWN_S2)
Base.EURCAD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO1_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP1_EURCAD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP1,"TP1_EURCAD_DOWN_S2_OCO4"));
};
Base.EURCAD_DOWN_S2_OCO4Sets1.Add( Base.EURCAD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO2_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP2_EURCAD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP2,"TP2_EURCAD_DOWN_S2_OCO4"));
};
Base.EURCAD_DOWN_S2_OCO4Sets2.Add( Base.EURCAD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO3_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP3_EURCAD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP3,"TP3_EURCAD_DOWN_S2_OCO4"));
};
Base.EURCAD_DOWN_S2_OCO4Sets3.Add( Base.EURCAD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCAD_OCO4_EO4_DOWN_S2_ID)
{
Base.EURCAD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCAD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCAD_DOWN_S2_SL,"SL_TP4_EURCAD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCAD_DOWN_S2_TP4,"TP4_EURCAD_DOWN_S2_OCO4"));
};
Base.EURCAD_DOWN_S2_OCO4Sets4.Add( Base.EURCAD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCAD_OCO4_EO4_DOWN_S2_ID = -1;
}
int EURCAD_OCO4S1_DOWN_S2 = 0;
for (; EURCAD_OCO4S1_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets1.Count; EURCAD_OCO4S1_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets1[EURCAD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO4Sets1[EURCAD_OCO4S1_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO4Sets1.RemoveAt(EURCAD_OCO4S1_DOWN_S2);
EURCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int EURCAD_OCO4S2_DOWN_S2 = 0;
for (; EURCAD_OCO4S2_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets2.Count; EURCAD_OCO4S2_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets2[EURCAD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO4Sets2[EURCAD_OCO4S2_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO4Sets2.RemoveAt(EURCAD_OCO4S2_DOWN_S2);
EURCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int EURCAD_OCO4S3_DOWN_S2 = 0;
for (; EURCAD_OCO4S3_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets3.Count; EURCAD_OCO4S3_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets3[EURCAD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO4Sets3[EURCAD_OCO4S3_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO4Sets3.RemoveAt(EURCAD_OCO4S3_DOWN_S2);
EURCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int EURCAD_OCO4S4_DOWN_S2 = 0;
for (; EURCAD_OCO4S4_DOWN_S2 < Base.EURCAD_DOWN_S2_OCO4Sets4.Count; EURCAD_OCO4S4_DOWN_S2++)
if (Base.EURCAD_DOWN_S2_OCO4Sets4[EURCAD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCAD_DOWN_S2_OCO4Sets4[EURCAD_OCO4S4_DOWN_S2].Filled();
Base.EURCAD_DOWN_S2_OCO4Sets4.RemoveAt(EURCAD_OCO4S4_DOWN_S2);
EURCAD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPCHF_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPCHF_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPCHF_UP_S2_OCO1")))
{
Base.GBPCHF_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCHF_UP_S2_OCO2")))
{
Base.GBPCHF_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCHF_UP_S2_OCO3")))
{
Base.GBPCHF_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCHF_UP_S2_OCO4")))
{
Base.GBPCHF_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPCHF_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPCHF_OCO1_EO1_UP_S2)
Base.GBPCHF_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO2_UP_S2)
Base.GBPCHF_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO3_UP_S2)
Base.GBPCHF_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO4_UP_S2)
Base.GBPCHF_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO5_UP_S2)
Base.GBPCHF_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO1_EO6_UP_S2)
Base.GBPCHF_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCHF_UP_S2_OCO_DELAY_7DAY))
{
int GBPCHF_OCO1S1_UP_S2 = 0;
for (; GBPCHF_OCO1S1_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets1.Count; GBPCHF_OCO1S1_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets1[GBPCHF_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO1Sets1[GBPCHF_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_1__Time out_OCO1");
Base.GBPCHF_UP_S2_OCO1Sets1.Clear();
GBPCHF_OCO1S1_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S2_UP_S2 = 0;
for (; GBPCHF_OCO1S2_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets2.Count; GBPCHF_OCO1S2_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets2[GBPCHF_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO1Sets2[GBPCHF_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_2__Time out_OCO1");
Base.GBPCHF_UP_S2_OCO1Sets2.Clear();
GBPCHF_OCO1S2_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S3_UP_S2 = 0;
for (; GBPCHF_OCO1S3_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets3.Count; GBPCHF_OCO1S3_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets3[GBPCHF_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO1Sets3[GBPCHF_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_3__Time out_OCO1");
Base.GBPCHF_UP_S2_OCO1Sets3.Clear();
GBPCHF_OCO1S3_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S4_UP_S2 = 0;
for (; GBPCHF_OCO1S4_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets4.Count; GBPCHF_OCO1S4_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets4[GBPCHF_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO1Sets4[GBPCHF_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_4__Time out_OCO1");
Base.GBPCHF_UP_S2_OCO1Sets4.Clear();
GBPCHF_OCO1S4_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S5_UP_S2 = 0;
for (; GBPCHF_OCO1S5_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets5.Count; GBPCHF_OCO1S5_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets5[GBPCHF_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO1Sets5[GBPCHF_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_5__Time out_OCO1");
Base.GBPCHF_UP_S2_OCO1Sets5.Clear();
GBPCHF_OCO1S5_UP_S2 = 0;
break;
}
int GBPCHF_OCO1S6_UP_S2 = 0;
for (; GBPCHF_OCO1S6_UP_S2 < Base.GBPCHF_UP_S2_OCO1Sets6.Count; GBPCHF_OCO1S6_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO1Sets6[GBPCHF_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO1Sets6[GBPCHF_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_6__Time out_OCO1");
Base.GBPCHF_UP_S2_OCO1Sets6.Clear();
GBPCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO2_EO1_UP_S2)
Base.GBPCHF_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO2_UP_S2)
Base.GBPCHF_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO3_UP_S2)
Base.GBPCHF_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO4_UP_S2)
Base.GBPCHF_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO5_UP_S2)
Base.GBPCHF_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO2_EO6_UP_S2)
Base.GBPCHF_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCHF_UP_S2_OCO_DELAY_7DAY))
{
int GBPCHF_OCO2S1_UP_S2 = 0;
for (; GBPCHF_OCO2S1_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets1.Count; GBPCHF_OCO2S1_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets1[GBPCHF_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO2Sets1[GBPCHF_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_1__Time out_OCO2");
Base.GBPCHF_UP_S2_OCO2Sets1.Clear();
GBPCHF_OCO2S1_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S2_UP_S2 = 0;
for (; GBPCHF_OCO2S2_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets2.Count; GBPCHF_OCO2S2_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets2[GBPCHF_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO2Sets2[GBPCHF_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_2__Time out_OCO2");
Base.GBPCHF_UP_S2_OCO2Sets2.Clear();
GBPCHF_OCO2S2_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S3_UP_S2 = 0;
for (; GBPCHF_OCO2S3_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets3.Count; GBPCHF_OCO2S3_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets3[GBPCHF_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO2Sets3[GBPCHF_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_3__Time out_OCO2");
Base.GBPCHF_UP_S2_OCO2Sets3.Clear();
GBPCHF_OCO2S3_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S4_UP_S2 = 0;
for (; GBPCHF_OCO2S4_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets4.Count; GBPCHF_OCO2S4_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets4[GBPCHF_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO2Sets4[GBPCHF_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_4__Time out_OCO2");
Base.GBPCHF_UP_S2_OCO2Sets4.Clear();
GBPCHF_OCO2S4_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S5_UP_S2 = 0;
for (; GBPCHF_OCO2S5_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets5.Count; GBPCHF_OCO2S5_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets5[GBPCHF_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO2Sets5[GBPCHF_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_5__Time out_OCO2");
Base.GBPCHF_UP_S2_OCO2Sets5.Clear();
GBPCHF_OCO2S5_UP_S2 = 0;
break;
}
int GBPCHF_OCO2S6_UP_S2 = 0;
for (; GBPCHF_OCO2S6_UP_S2 < Base.GBPCHF_UP_S2_OCO2Sets6.Count; GBPCHF_OCO2S6_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO2Sets6[GBPCHF_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO2Sets6[GBPCHF_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_6__Time out_OCO2");
Base.GBPCHF_UP_S2_OCO2Sets6.Clear();
GBPCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO3_EO1_UP_S2)
Base.GBPCHF_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO2_UP_S2)
Base.GBPCHF_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO3_UP_S2)
Base.GBPCHF_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO4_UP_S2)
Base.GBPCHF_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO5_UP_S2)
Base.GBPCHF_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO3_EO6_UP_S2)
Base.GBPCHF_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCHF_UP_S2_OCO_DELAY_7DAY))
{
int GBPCHF_OCO3S1_UP_S2 = 0;
for (; GBPCHF_OCO3S1_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets1.Count; GBPCHF_OCO3S1_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets1[GBPCHF_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO3Sets1[GBPCHF_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_1__Time out_OCO3");
Base.GBPCHF_UP_S2_OCO3Sets1.Clear();
GBPCHF_OCO3S1_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S2_UP_S2 = 0;
for (; GBPCHF_OCO3S2_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets2.Count; GBPCHF_OCO3S2_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets2[GBPCHF_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO3Sets2[GBPCHF_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_2__Time out_OCO3");
Base.GBPCHF_UP_S2_OCO3Sets2.Clear();
GBPCHF_OCO3S2_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S3_UP_S2 = 0;
for (; GBPCHF_OCO3S3_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets3.Count; GBPCHF_OCO3S3_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets3[GBPCHF_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO3Sets3[GBPCHF_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_3__Time out_OCO3");
Base.GBPCHF_UP_S2_OCO3Sets3.Clear();
GBPCHF_OCO3S3_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S4_UP_S2 = 0;
for (; GBPCHF_OCO3S4_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets4.Count; GBPCHF_OCO3S4_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets4[GBPCHF_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO3Sets4[GBPCHF_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_4__Time out_OCO3");
Base.GBPCHF_UP_S2_OCO3Sets4.Clear();
GBPCHF_OCO3S4_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S5_UP_S2 = 0;
for (; GBPCHF_OCO3S5_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets5.Count; GBPCHF_OCO3S5_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets5[GBPCHF_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO3Sets5[GBPCHF_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_5__Time out_OCO3");
Base.GBPCHF_UP_S2_OCO3Sets5.Clear();
GBPCHF_OCO3S5_UP_S2 = 0;
break;
}
int GBPCHF_OCO3S6_UP_S2 = 0;
for (; GBPCHF_OCO3S6_UP_S2 < Base.GBPCHF_UP_S2_OCO3Sets6.Count; GBPCHF_OCO3S6_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO3Sets6[GBPCHF_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO3Sets6[GBPCHF_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_6__Time out_OCO3");
Base.GBPCHF_UP_S2_OCO3Sets6.Clear();
GBPCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCHF_OCO4_EO1_UP_S2)
Base.GBPCHF_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO2_UP_S2)
Base.GBPCHF_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO3_UP_S2)
Base.GBPCHF_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO4_UP_S2)
Base.GBPCHF_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO5_UP_S2)
Base.GBPCHF_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.GBPCHF_OCO4_EO6_UP_S2)
Base.GBPCHF_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCHF_UP_S2_OCO_DELAY_7DAY))
{
int GBPCHF_OCO4S1_UP_S2 = 0;
for (; GBPCHF_OCO4S1_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets1.Count; GBPCHF_OCO4S1_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets1[GBPCHF_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO4Sets1[GBPCHF_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_1__Time out_OCO4");
Base.GBPCHF_UP_S2_OCO4Sets1.Clear();
GBPCHF_OCO4S1_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S2_UP_S2 = 0;
for (; GBPCHF_OCO4S2_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets2.Count; GBPCHF_OCO4S2_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets2[GBPCHF_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO4Sets2[GBPCHF_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_2__Time out_OCO4");
Base.GBPCHF_UP_S2_OCO4Sets2.Clear();
GBPCHF_OCO4S2_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S3_UP_S2 = 0;
for (; GBPCHF_OCO4S3_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets3.Count; GBPCHF_OCO4S3_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets3[GBPCHF_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO4Sets3[GBPCHF_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_3__Time out_OCO4");
Base.GBPCHF_UP_S2_OCO4Sets3.Clear();
GBPCHF_OCO4S3_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S4_UP_S2 = 0;
for (; GBPCHF_OCO4S4_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets4.Count; GBPCHF_OCO4S4_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets4[GBPCHF_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO4Sets4[GBPCHF_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_4__Time out_OCO4");
Base.GBPCHF_UP_S2_OCO4Sets4.Clear();
GBPCHF_OCO4S4_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S5_UP_S2 = 0;
for (; GBPCHF_OCO4S5_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets5.Count; GBPCHF_OCO4S5_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets5[GBPCHF_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO4Sets5[GBPCHF_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_5__Time out_OCO4");
Base.GBPCHF_UP_S2_OCO4Sets5.Clear();
GBPCHF_OCO4S5_UP_S2 = 0;
break;
}
int GBPCHF_OCO4S6_UP_S2 = 0;
for (; GBPCHF_OCO4S6_UP_S2 < Base.GBPCHF_UP_S2_OCO4Sets6.Count; GBPCHF_OCO4S6_UP_S2++)
if (Base.GBPCHF_UP_S2_OCO4Sets6[GBPCHF_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.GBPCHF_UP_S2_OCO4Sets6[GBPCHF_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("GBPCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCHF", order.Quantity, false, "GBPCHF_UP_S2_Entry_6__Time out_OCO4");
Base.GBPCHF_UP_S2_OCO4Sets6.Clear();
GBPCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPCHF_UP_S2 = DOWM_GBPCHF_UP_S2 || DOWT_GBPCHF_UP_S2 || DOWW_GBPCHF_UP_S2 || DOWTH_GBPCHF_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPCHF_OCO1_UP_S2_IsReady == false ||
Base.GBPCHF_OCO2_UP_S2_IsReady == false ||
Base.GBPCHF_OCO3_UP_S2_IsReady == false ||
Base.GBPCHF_OCO4_UP_S2_IsReady == false)
{
Base.GBPCHF_OCO1_UP_S2_Monthly_IsReady = false;
Base.GBPCHF_OCO2_UP_S2_Monthly_IsReady = false;
Base.GBPCHF_OCO3_UP_S2_Monthly_IsReady = false;
Base.GBPCHF_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPCHF_OCO1_UP_S2_Monthly_IsReady = true;
Base.GBPCHF_OCO2_UP_S2_Monthly_IsReady = true;
Base.GBPCHF_OCO3_UP_S2_Monthly_IsReady = true;
Base.GBPCHF_OCO4_UP_S2_Monthly_IsReady = true;
}
GBPCHF_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPCHF_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPCHF_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*2.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (GBPCHF_Signal_Condition_UP_1)
{
GBPCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPCHF_Signal_Condition_UP_2)
{
GBPCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPCHF_Signal_Condition_UP_3)
{
GBPCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPCHF_Signal_Condition_UP_1)
{
GBPCHF_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (GBPCHF_Signal_Condition_UP_2)
{
GBPCHF_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (GBPCHF_Signal_Condition_UP_3)
{
GBPCHF_UP_S2_TP1 = Base.Oth_TP_3 ;
}
GBPCHF_UP_S2_TP2 = GBPCHF_UP_S2_SL * 0;
GBPCHF_UP_S2_TP3 = GBPCHF_UP_S2_SL * 0;
GBPCHF_UP_S2_TP4 = GBPCHF_UP_S2_SL * 0;
GBPCHF_UP_S2_TP5 = GBPCHF_UP_S2_SL * 0;
GBPCHF_UP_S2_TP6 = GBPCHF_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPCHF_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPCHF_quantity_SL_UP_S2 = GBPCHF_quantity_UP_S2;
GBPCHF_quantity_TP1_UP_S2 = (int)Math.Floor(GBPCHF_quantity_UP_S2 * 1m);
GBPCHF_quantity_TP2_UP_S2 = (int)Math.Floor(GBPCHF_quantity_TP1_UP_S2 * 0m);
GBPCHF_quantity_TP3_UP_S2 = (int)Math.Floor(GBPCHF_quantity_TP2_UP_S2 * 0m);
GBPCHF_quantity_TP4_UP_S2 = (int)Math.Floor(GBPCHF_quantity_TP3_UP_S2 * 0m);
GBPCHF_quantity_TP5_UP_S2 = (int)Math.Floor(GBPCHF_quantity_TP4_UP_S2 * 0m);
GBPCHF_quantity_TP6_UP_S2 = (int)Math.Floor(GBPCHF_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((GBPCHF_Signal_Condition_UP_1 || GBPCHF_Signal_Condition_UP_2 || GBPCHF_Signal_Condition_UP_3) &&
DOWR_GBPCHF_UP_S2 &&
Base.GBPCHF_OCO1_UP_S2_IsReady == true &&
Base.GBPCHF_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.GBPCHF_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP1_UP_S2, false,"GBPCHF_UP_S2_Entry_TP1_OCO1");
Base.GBPCHF_OCO1_EO1_UP_S2 = false;
Base.GBPCHF_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP2_UP_S2, false,"GBPCHF_UP_S2_Entry_TP2_OCO1");
Base.GBPCHF_OCO1_EO2_UP_S2 = false;
Base.GBPCHF_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP3_UP_S2, false,"GBPCHF_UP_S2_Entry_TP3_OCO1");
Base.GBPCHF_OCO1_EO3_UP_S2 = false;
Base.GBPCHF_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP4_UP_S2, false,"GBPCHF_UP_S2_Entry_TP4_OCO1");
Base.GBPCHF_OCO1_EO4_UP_S2 = false;
Base.GBPCHF_OCO1_UP_S2_IsReady = false;
if (Base.GBPCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((GBPCHF_Signal_Condition_UP_1 || GBPCHF_Signal_Condition_UP_2 || GBPCHF_Signal_Condition_UP_3) &&
DOWR_GBPCHF_UP_S2 &&
Base.GBPCHF_OCO1_UP_S2_IsReady == false &&
Base.GBPCHF_OCO2_UP_S2_IsReady == true &&
Base.GBPCHF_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.GBPCHF_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP1_UP_S2, false,"GBPCHF_UP_S2_Entry_TP1_OCO2");
Base.GBPCHF_OCO2_EO1_UP_S2 = false;
Base.GBPCHF_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP2_UP_S2, false,"GBPCHF_UP_S2_Entry_TP2_OCO2");
Base.GBPCHF_OCO2_EO2_UP_S2 = false;
Base.GBPCHF_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP3_UP_S2, false,"GBPCHF_UP_S2_Entry_TP3_OCO2");
Base.GBPCHF_OCO2_EO3_UP_S2 = false;
Base.GBPCHF_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP4_UP_S2, false,"GBPCHF_UP_S2_Entry_TP4_OCO2");
Base.GBPCHF_OCO2_EO4_UP_S2 = false;
Base.GBPCHF_OCO2_UP_S2_IsReady = false;
if (Base.GBPCHF_OCO2_UP_S2_IsReady == false && Base.GBPCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((GBPCHF_Signal_Condition_UP_1 || GBPCHF_Signal_Condition_UP_2 || GBPCHF_Signal_Condition_UP_3) &&
DOWR_GBPCHF_UP_S2 &&
Base.GBPCHF_OCO1_UP_S2_IsReady == false &&
Base.GBPCHF_OCO2_UP_S2_IsReady == false &&
Base.GBPCHF_OCO3_UP_S2_IsReady == true &&
Base.GBPCHF_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.GBPCHF_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP1_UP_S2, false,"GBPCHF_UP_S2_Entry_TP1_OCO3");
Base.GBPCHF_OCO3_EO1_UP_S2 = false;
Base.GBPCHF_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP2_UP_S2, false,"GBPCHF_UP_S2_Entry_TP2_OCO3");
Base.GBPCHF_OCO3_EO2_UP_S2 = false;
Base.GBPCHF_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP3_UP_S2, false,"GBPCHF_UP_S2_Entry_TP3_OCO3");
Base.GBPCHF_OCO3_EO3_UP_S2 = false;
Base.GBPCHF_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP4_UP_S2, false,"GBPCHF_UP_S2_Entry_TP4_OCO3");
Base.GBPCHF_OCO3_EO4_UP_S2 = false;
Base.GBPCHF_OCO3_UP_S2_IsReady = false;
if (Base.GBPCHF_OCO3_UP_S2_IsReady == false && Base.GBPCHF_OCO2_UP_S2_IsReady == false && Base.GBPCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((GBPCHF_Signal_Condition_UP_1 || GBPCHF_Signal_Condition_UP_2 || GBPCHF_Signal_Condition_UP_3) &&
DOWR_GBPCHF_UP_S2 &&
Base.GBPCHF_OCO1_UP_S2_IsReady == false &&
Base.GBPCHF_OCO2_UP_S2_IsReady == false &&
Base.GBPCHF_OCO3_UP_S2_IsReady == false &&
Base.GBPCHF_OCO4_UP_S2_IsReady == true &&
Base.GBPCHF_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.GBPCHF_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP1_UP_S2, false,"GBPCHF_UP_S2_Entry_TP1_OCO4");
Base.GBPCHF_OCO4_EO1_UP_S2 = false;
Base.GBPCHF_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP2_UP_S2, false,"GBPCHF_UP_S2_Entry_TP2_OCO4");
Base.GBPCHF_OCO4_EO2_UP_S2 = false;
Base.GBPCHF_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP3_UP_S2, false,"GBPCHF_UP_S2_Entry_TP3_OCO4");
Base.GBPCHF_OCO4_EO3_UP_S2 = false;
Base.GBPCHF_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCHF_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCHF_quantity_TP4_UP_S2, false,"GBPCHF_UP_S2_Entry_TP4_OCO4");
Base.GBPCHF_OCO4_EO4_UP_S2 = false;
Base.GBPCHF_OCO4_UP_S2_IsReady = false;
if (Base.GBPCHF_OCO4_UP_S2_IsReady == false && Base.GBPCHF_OCO3_UP_S2_IsReady == false && Base.GBPCHF_OCO2_UP_S2_IsReady == false && Base.GBPCHF_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURCHF_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURCHF_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
if (OrderID.Tag.StartsWith("EURCHF OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURCHF OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURCHF S2");
}
}
if (Base.EURCHF_OCO1_EO1_DOWN_S2)
Base.EURCHF_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO1_EO2_DOWN_S2)
Base.EURCHF_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO1_EO3_DOWN_S2)
Base.EURCHF_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO1_EO4_DOWN_S2)
Base.EURCHF_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO1_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP1_EURCHF_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP1,"TP1_EURCHF_DOWN_S2_OCO1"));
};
Base.EURCHF_DOWN_S2_OCO1Sets1.Add( Base.EURCHF_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO2_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP2_EURCHF_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP2,"TP2_EURCHF_DOWN_S2_OCO1"));
};
Base.EURCHF_DOWN_S2_OCO1Sets2.Add( Base.EURCHF_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO3_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP3_EURCHF_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP3,"TP3_EURCHF_DOWN_S2_OCO1"));
};
Base.EURCHF_DOWN_S2_OCO1Sets3.Add( Base.EURCHF_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO1_EO4_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP4_EURCHF_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP4,"TP4_EURCHF_DOWN_S2_OCO1"));
};
Base.EURCHF_DOWN_S2_OCO1Sets4.Add( Base.EURCHF_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO1_EO4_DOWN_S2_ID = -1;
}
int EURCHF_OCO1S1_DOWN_S2 = 0;
for (; EURCHF_OCO1S1_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets1.Count; EURCHF_OCO1S1_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets1[EURCHF_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO1Sets1[EURCHF_OCO1S1_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO1Sets1.RemoveAt(EURCHF_OCO1S1_DOWN_S2);
EURCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int EURCHF_OCO1S2_DOWN_S2 = 0;
for (; EURCHF_OCO1S2_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets2.Count; EURCHF_OCO1S2_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets2[EURCHF_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO1Sets2[EURCHF_OCO1S2_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO1Sets2.RemoveAt(EURCHF_OCO1S2_DOWN_S2);
EURCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int EURCHF_OCO1S3_DOWN_S2 = 0;
for (; EURCHF_OCO1S3_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets3.Count; EURCHF_OCO1S3_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets3[EURCHF_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO1Sets3[EURCHF_OCO1S3_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO1Sets3.RemoveAt(EURCHF_OCO1S3_DOWN_S2);
EURCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int EURCHF_OCO1S4_DOWN_S2 = 0;
for (; EURCHF_OCO1S4_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets4.Count; EURCHF_OCO1S4_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets4[EURCHF_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO1Sets4[EURCHF_OCO1S4_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO1Sets4.RemoveAt(EURCHF_OCO1S4_DOWN_S2);
EURCHF_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO2_EO1_DOWN_S2)
Base.EURCHF_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO2_EO2_DOWN_S2)
Base.EURCHF_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO2_EO3_DOWN_S2)
Base.EURCHF_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO2_EO4_DOWN_S2)
Base.EURCHF_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO1_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP1_EURCHF_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP1,"TP1_EURCHF_DOWN_S2_OCO2"));
};
Base.EURCHF_DOWN_S2_OCO2Sets1.Add( Base.EURCHF_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO2_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP2_EURCHF_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP2,"TP2_EURCHF_DOWN_S2_OCO2"));
};
Base.EURCHF_DOWN_S2_OCO2Sets2.Add( Base.EURCHF_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO3_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP3_EURCHF_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP3,"TP3_EURCHF_DOWN_S2_OCO2"));
};
Base.EURCHF_DOWN_S2_OCO2Sets3.Add( Base.EURCHF_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO2_EO4_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP4_EURCHF_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP4,"TP4_EURCHF_DOWN_S2_OCO2"));
};
Base.EURCHF_DOWN_S2_OCO2Sets4.Add( Base.EURCHF_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO2_EO4_DOWN_S2_ID = -1;
}
int EURCHF_OCO2S1_DOWN_S2 = 0;
for (; EURCHF_OCO2S1_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets1.Count; EURCHF_OCO2S1_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets1[EURCHF_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO2Sets1[EURCHF_OCO2S1_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO2Sets1.RemoveAt(EURCHF_OCO2S1_DOWN_S2);
EURCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int EURCHF_OCO2S2_DOWN_S2 = 0;
for (; EURCHF_OCO2S2_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets2.Count; EURCHF_OCO2S2_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets2[EURCHF_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO2Sets2[EURCHF_OCO2S2_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO2Sets2.RemoveAt(EURCHF_OCO2S2_DOWN_S2);
EURCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int EURCHF_OCO2S3_DOWN_S2 = 0;
for (; EURCHF_OCO2S3_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets3.Count; EURCHF_OCO2S3_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets3[EURCHF_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO2Sets3[EURCHF_OCO2S3_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO2Sets3.RemoveAt(EURCHF_OCO2S3_DOWN_S2);
EURCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int EURCHF_OCO2S4_DOWN_S2 = 0;
for (; EURCHF_OCO2S4_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets4.Count; EURCHF_OCO2S4_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets4[EURCHF_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO2Sets4[EURCHF_OCO2S4_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO2Sets4.RemoveAt(EURCHF_OCO2S4_DOWN_S2);
EURCHF_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO3_EO1_DOWN_S2)
Base.EURCHF_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO3_EO2_DOWN_S2)
Base.EURCHF_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO3_EO3_DOWN_S2)
Base.EURCHF_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO3_EO4_DOWN_S2)
Base.EURCHF_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO1_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP1_EURCHF_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP1,"TP1_EURCHF_DOWN_S2_OCO3"));
};
Base.EURCHF_DOWN_S2_OCO3Sets1.Add( Base.EURCHF_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO2_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP2_EURCHF_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP2,"TP2_EURCHF_DOWN_S2_OCO3"));
};
Base.EURCHF_DOWN_S2_OCO3Sets2.Add( Base.EURCHF_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO3_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP3_EURCHF_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP3,"TP3_EURCHF_DOWN_S2_OCO3"));
};
Base.EURCHF_DOWN_S2_OCO3Sets3.Add( Base.EURCHF_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO3_EO4_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP4_EURCHF_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP4,"TP4_EURCHF_DOWN_S2_OCO3"));
};
Base.EURCHF_DOWN_S2_OCO3Sets4.Add( Base.EURCHF_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO3_EO4_DOWN_S2_ID = -1;
}
int EURCHF_OCO3S1_DOWN_S2 = 0;
for (; EURCHF_OCO3S1_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets1.Count; EURCHF_OCO3S1_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets1[EURCHF_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO3Sets1[EURCHF_OCO3S1_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO3Sets1.RemoveAt(EURCHF_OCO3S1_DOWN_S2);
EURCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int EURCHF_OCO3S2_DOWN_S2 = 0;
for (; EURCHF_OCO3S2_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets2.Count; EURCHF_OCO3S2_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets2[EURCHF_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO3Sets2[EURCHF_OCO3S2_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO3Sets2.RemoveAt(EURCHF_OCO3S2_DOWN_S2);
EURCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int EURCHF_OCO3S3_DOWN_S2 = 0;
for (; EURCHF_OCO3S3_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets3.Count; EURCHF_OCO3S3_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets3[EURCHF_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO3Sets3[EURCHF_OCO3S3_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO3Sets3.RemoveAt(EURCHF_OCO3S3_DOWN_S2);
EURCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int EURCHF_OCO3S4_DOWN_S2 = 0;
for (; EURCHF_OCO3S4_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets4.Count; EURCHF_OCO3S4_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets4[EURCHF_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO3Sets4[EURCHF_OCO3S4_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO3Sets4.RemoveAt(EURCHF_OCO3S4_DOWN_S2);
EURCHF_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO4_EO1_DOWN_S2)
Base.EURCHF_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO4_EO2_DOWN_S2)
Base.EURCHF_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO4_EO3_DOWN_S2)
Base.EURCHF_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURCHF_OCO4_EO4_DOWN_S2)
Base.EURCHF_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO1_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP1_EURCHF_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP1,"TP1_EURCHF_DOWN_S2_OCO4"));
};
Base.EURCHF_DOWN_S2_OCO4Sets1.Add( Base.EURCHF_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO2_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP2_EURCHF_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP2,"TP2_EURCHF_DOWN_S2_OCO4"));
};
Base.EURCHF_DOWN_S2_OCO4Sets2.Add( Base.EURCHF_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO3_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP3_EURCHF_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP3,"TP3_EURCHF_DOWN_S2_OCO4"));
};
Base.EURCHF_DOWN_S2_OCO4Sets3.Add( Base.EURCHF_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURCHF_OCO4_EO4_DOWN_S2_ID)
{
Base.EURCHF_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURCHF_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURCHF_DOWN_S2_SL,"SL_TP4_EURCHF_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURCHF_DOWN_S2_TP4,"TP4_EURCHF_DOWN_S2_OCO4"));
};
Base.EURCHF_DOWN_S2_OCO4Sets4.Add( Base.EURCHF_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURCHF_OCO4_EO4_DOWN_S2_ID = -1;
}
int EURCHF_OCO4S1_DOWN_S2 = 0;
for (; EURCHF_OCO4S1_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets1.Count; EURCHF_OCO4S1_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets1[EURCHF_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO4Sets1[EURCHF_OCO4S1_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO4Sets1.RemoveAt(EURCHF_OCO4S1_DOWN_S2);
EURCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int EURCHF_OCO4S2_DOWN_S2 = 0;
for (; EURCHF_OCO4S2_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets2.Count; EURCHF_OCO4S2_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets2[EURCHF_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO4Sets2[EURCHF_OCO4S2_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO4Sets2.RemoveAt(EURCHF_OCO4S2_DOWN_S2);
EURCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int EURCHF_OCO4S3_DOWN_S2 = 0;
for (; EURCHF_OCO4S3_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets3.Count; EURCHF_OCO4S3_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets3[EURCHF_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO4Sets3[EURCHF_OCO4S3_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO4Sets3.RemoveAt(EURCHF_OCO4S3_DOWN_S2);
EURCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int EURCHF_OCO4S4_DOWN_S2 = 0;
for (; EURCHF_OCO4S4_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets4.Count; EURCHF_OCO4S4_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets4[EURCHF_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURCHF_DOWN_S2_OCO4Sets4[EURCHF_OCO4S4_DOWN_S2].Filled();
Base.EURCHF_DOWN_S2_OCO4Sets4.RemoveAt(EURCHF_OCO4S4_DOWN_S2);
EURCHF_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct EURCAD_OCO1_DOWN_S2
{
public EURCAD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCAD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURCAD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCAD_OCO1_UP_S2
{
public EURCAD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURCAD_UP_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURCAD_UP_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURCAD_UP_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURCAD_UP_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURCAD_UP_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURCAD_UP_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURCAD_UP_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCAD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURCAD_UP_S2_OCO1")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCAD_OCO2_DOWN_S2
{
public EURCAD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCAD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURCAD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCAD_OCO2_UP_S2
{
public EURCAD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURCAD_UP_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURCAD_UP_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURCAD_UP_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURCAD_UP_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURCAD_UP_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURCAD_UP_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURCAD_UP_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCAD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURCAD_UP_S2_OCO2")
{
orderTicket.Cancel("EURCAD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCAD_OCO3_DOWN_S2
{
public EURCAD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCAD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURCAD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCAD_OCO3_UP_S2
{
public EURCAD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURCAD_UP_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURCAD_UP_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURCAD_UP_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURCAD_UP_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURCAD_UP_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURCAD_UP_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURCAD_UP_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCAD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURCAD_UP_S2_OCO3")
{
orderTicket.Cancel("EURCAD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCAD_OCO4_DOWN_S2
{
public EURCAD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCAD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURCAD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURCAD_OCO4_UP_S2
{
public EURCAD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURCAD_UP_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURCAD_UP_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURCAD_UP_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURCAD_UP_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURCAD_UP_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURCAD_UP_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURCAD_UP_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURCAD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURCAD_UP_S2_OCO4")
{
orderTicket.Cancel("EURCAD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _EURNZD;
///oco1 up
public static OrderTicket EURNZD_OCO1_MO1_UP_S2;
public static OrderTicket EURNZD_OCO1_MO2_UP_S2;
public static OrderTicket EURNZD_OCO1_MO3_UP_S2;
public static OrderTicket EURNZD_OCO1_MO4_UP_S2;
public static OrderTicket EURNZD_OCO1_MO5_UP_S2;
public static OrderTicket EURNZD_OCO1_MO6_UP_S2;
public static int EURNZD_OCO1_EO1_UP_S2_ID ;
public static int EURNZD_OCO1_EO2_UP_S2_ID ;
public static int EURNZD_OCO1_EO3_UP_S2_ID ;
public static int EURNZD_OCO1_EO4_UP_S2_ID ;
public static int EURNZD_OCO1_EO5_UP_S2_ID ;
public static int EURNZD_OCO1_EO6_UP_S2_ID ;
public static bool EURNZD_OCO1_EO1_UP_S2 ;
public static bool EURNZD_OCO1_EO2_UP_S2 ;
public static bool EURNZD_OCO1_EO3_UP_S2 ;
public static bool EURNZD_OCO1_EO4_UP_S2 ;
public static bool EURNZD_OCO1_EO5_UP_S2 ;
public static bool EURNZD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_UP_S2> EURNZD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_UP_S2> EURNZD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_UP_S2> EURNZD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_UP_S2> EURNZD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_UP_S2> EURNZD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_UP_S2> EURNZD_OOFE_OCO1_UP_S2_6 ;
public static EURNZD_OCO1_UP_S2 EURNZD_PFO_OCO1_UP_S2_1 ;
public static EURNZD_OCO1_UP_S2 EURNZD_PFO_OCO1_UP_S2_2 ;
public static EURNZD_OCO1_UP_S2 EURNZD_PFO_OCO1_UP_S2_3 ;
public static EURNZD_OCO1_UP_S2 EURNZD_PFO_OCO1_UP_S2_4 ;
public static EURNZD_OCO1_UP_S2 EURNZD_PFO_OCO1_UP_S2_5 ;
public static EURNZD_OCO1_UP_S2 EURNZD_PFO_OCO1_UP_S2_6 ;
public static List<EURNZD_OCO1_UP_S2> EURNZD_UP_S2_OCO1Sets1 = new List<EURNZD_OCO1_UP_S2>();
public static List<EURNZD_OCO1_UP_S2> EURNZD_UP_S2_OCO1Sets2 = new List<EURNZD_OCO1_UP_S2>();
public static List<EURNZD_OCO1_UP_S2> EURNZD_UP_S2_OCO1Sets3 = new List<EURNZD_OCO1_UP_S2>();
public static List<EURNZD_OCO1_UP_S2> EURNZD_UP_S2_OCO1Sets4 = new List<EURNZD_OCO1_UP_S2>();
public static List<EURNZD_OCO1_UP_S2> EURNZD_UP_S2_OCO1Sets5 = new List<EURNZD_OCO1_UP_S2>();
public static List<EURNZD_OCO1_UP_S2> EURNZD_UP_S2_OCO1Sets6 = new List<EURNZD_OCO1_UP_S2>();
public static bool EURNZD_OCO1_UP_S2_IsReady = true;
public static bool EURNZD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket EURNZD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket EURNZD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket EURNZD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket EURNZD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket EURNZD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket EURNZD_OCO1_MO6_DOWN_S2 ;
public static int EURNZD_OCO1_EO1_DOWN_S2_ID ;
public static int EURNZD_OCO1_EO2_DOWN_S2_ID ;
public static int EURNZD_OCO1_EO3_DOWN_S2_ID ;
public static int EURNZD_OCO1_EO4_DOWN_S2_ID ;
public static int EURNZD_OCO1_EO5_DOWN_S2_ID ;
public static int EURNZD_OCO1_EO6_DOWN_S2_ID ;
public static bool EURNZD_OCO1_EO1_DOWN_S2 ;
public static bool EURNZD_OCO1_EO2_DOWN_S2 ;
public static bool EURNZD_OCO1_EO3_DOWN_S2 ;
public static bool EURNZD_OCO1_EO4_DOWN_S2 ;
public static bool EURNZD_OCO1_EO5_DOWN_S2 ;
public static bool EURNZD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_DOWN_S2> EURNZD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_DOWN_S2> EURNZD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_DOWN_S2> EURNZD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_DOWN_S2> EURNZD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_DOWN_S2> EURNZD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO1_DOWN_S2> EURNZD_OOFE_OCO1_DOWN_S2_6 ;
public static EURNZD_OCO1_DOWN_S2 EURNZD_PFO_OCO1_DOWN_S2_1 ;
public static EURNZD_OCO1_DOWN_S2 EURNZD_PFO_OCO1_DOWN_S2_2 ;
public static EURNZD_OCO1_DOWN_S2 EURNZD_PFO_OCO1_DOWN_S2_3 ;
public static EURNZD_OCO1_DOWN_S2 EURNZD_PFO_OCO1_DOWN_S2_4 ;
public static EURNZD_OCO1_DOWN_S2 EURNZD_PFO_OCO1_DOWN_S2_5 ;
public static EURNZD_OCO1_DOWN_S2 EURNZD_PFO_OCO1_DOWN_S2_6 ;
public static List<EURNZD_OCO1_DOWN_S2> EURNZD_DOWN_S2_OCO1Sets1 = new List<EURNZD_OCO1_DOWN_S2>();
public static List<EURNZD_OCO1_DOWN_S2> EURNZD_DOWN_S2_OCO1Sets2 = new List<EURNZD_OCO1_DOWN_S2>();
public static List<EURNZD_OCO1_DOWN_S2> EURNZD_DOWN_S2_OCO1Sets3 = new List<EURNZD_OCO1_DOWN_S2>();
public static List<EURNZD_OCO1_DOWN_S2> EURNZD_DOWN_S2_OCO1Sets4 = new List<EURNZD_OCO1_DOWN_S2>();
public static List<EURNZD_OCO1_DOWN_S2> EURNZD_DOWN_S2_OCO1Sets5 = new List<EURNZD_OCO1_DOWN_S2>();
public static List<EURNZD_OCO1_DOWN_S2> EURNZD_DOWN_S2_OCO1Sets6 = new List<EURNZD_OCO1_DOWN_S2>();
public static bool EURNZD_OCO1_DOWN_S2_IsReady = true;
public static bool EURNZD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket EURNZD_OCO2_MO1_UP_S2 ;
public static OrderTicket EURNZD_OCO2_MO2_UP_S2 ;
public static OrderTicket EURNZD_OCO2_MO3_UP_S2 ;
public static OrderTicket EURNZD_OCO2_MO4_UP_S2 ;
public static OrderTicket EURNZD_OCO2_MO5_UP_S2 ;
public static OrderTicket EURNZD_OCO2_MO6_UP_S2 ;
public static int EURNZD_OCO2_EO1_UP_S2_ID ;
public static int EURNZD_OCO2_EO2_UP_S2_ID ;
public static int EURNZD_OCO2_EO3_UP_S2_ID ;
public static int EURNZD_OCO2_EO4_UP_S2_ID ;
public static int EURNZD_OCO2_EO5_UP_S2_ID ;
public static int EURNZD_OCO2_EO6_UP_S2_ID ;
public static bool EURNZD_OCO2_EO1_UP_S2 ;
public static bool EURNZD_OCO2_EO2_UP_S2 ;
public static bool EURNZD_OCO2_EO3_UP_S2 ;
public static bool EURNZD_OCO2_EO4_UP_S2 ;
public static bool EURNZD_OCO2_EO5_UP_S2 ;
public static bool EURNZD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_UP_S2> EURNZD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_UP_S2> EURNZD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_UP_S2> EURNZD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_UP_S2> EURNZD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_UP_S2> EURNZD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_UP_S2> EURNZD_OOFE_OCO2_UP_S2_6 ;
public static EURNZD_OCO2_UP_S2 EURNZD_PFO_OCO2_UP_S2_1 ;
public static EURNZD_OCO2_UP_S2 EURNZD_PFO_OCO2_UP_S2_2 ;
public static EURNZD_OCO2_UP_S2 EURNZD_PFO_OCO2_UP_S2_3 ;
public static EURNZD_OCO2_UP_S2 EURNZD_PFO_OCO2_UP_S2_4 ;
public static EURNZD_OCO2_UP_S2 EURNZD_PFO_OCO2_UP_S2_5 ;
public static EURNZD_OCO2_UP_S2 EURNZD_PFO_OCO2_UP_S2_6 ;
public static List<EURNZD_OCO2_UP_S2> EURNZD_UP_S2_OCO2Sets1 = new List<EURNZD_OCO2_UP_S2>();
public static List<EURNZD_OCO2_UP_S2> EURNZD_UP_S2_OCO2Sets2 = new List<EURNZD_OCO2_UP_S2>();
public static List<EURNZD_OCO2_UP_S2> EURNZD_UP_S2_OCO2Sets3 = new List<EURNZD_OCO2_UP_S2>();
public static List<EURNZD_OCO2_UP_S2> EURNZD_UP_S2_OCO2Sets4 = new List<EURNZD_OCO2_UP_S2>();
public static List<EURNZD_OCO2_UP_S2> EURNZD_UP_S2_OCO2Sets5 = new List<EURNZD_OCO2_UP_S2>();
public static List<EURNZD_OCO2_UP_S2> EURNZD_UP_S2_OCO2Sets6 = new List<EURNZD_OCO2_UP_S2>();
public static bool EURNZD_OCO2_UP_S2_IsReady = true;
public static bool EURNZD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket EURNZD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket EURNZD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket EURNZD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket EURNZD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket EURNZD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket EURNZD_OCO2_MO6_DOWN_S2 ;
public static int EURNZD_OCO2_EO1_DOWN_S2_ID ;
public static int EURNZD_OCO2_EO2_DOWN_S2_ID ;
public static int EURNZD_OCO2_EO3_DOWN_S2_ID ;
public static int EURNZD_OCO2_EO4_DOWN_S2_ID ;
public static int EURNZD_OCO2_EO5_DOWN_S2_ID ;
public static int EURNZD_OCO2_EO6_DOWN_S2_ID ;
public static bool EURNZD_OCO2_EO1_DOWN_S2 ;
public static bool EURNZD_OCO2_EO2_DOWN_S2 ;
public static bool EURNZD_OCO2_EO3_DOWN_S2 ;
public static bool EURNZD_OCO2_EO4_DOWN_S2 ;
public static bool EURNZD_OCO2_EO5_DOWN_S2 ;
public static bool EURNZD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_DOWN_S2> EURNZD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_DOWN_S2> EURNZD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_DOWN_S2> EURNZD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_DOWN_S2> EURNZD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_DOWN_S2> EURNZD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO2_DOWN_S2> EURNZD_OOFE_OCO2_DOWN_S2_6 ;
public static EURNZD_OCO2_DOWN_S2 EURNZD_PFO_OCO2_DOWN_S2_1 ;
public static EURNZD_OCO2_DOWN_S2 EURNZD_PFO_OCO2_DOWN_S2_2 ;
public static EURNZD_OCO2_DOWN_S2 EURNZD_PFO_OCO2_DOWN_S2_3 ;
public static EURNZD_OCO2_DOWN_S2 EURNZD_PFO_OCO2_DOWN_S2_4 ;
public static EURNZD_OCO2_DOWN_S2 EURNZD_PFO_OCO2_DOWN_S2_5 ;
public static EURNZD_OCO2_DOWN_S2 EURNZD_PFO_OCO2_DOWN_S2_6 ;
public static List<EURNZD_OCO2_DOWN_S2> EURNZD_DOWN_S2_OCO2Sets1 = new List<EURNZD_OCO2_DOWN_S2>();
public static List<EURNZD_OCO2_DOWN_S2> EURNZD_DOWN_S2_OCO2Sets2 = new List<EURNZD_OCO2_DOWN_S2>();
public static List<EURNZD_OCO2_DOWN_S2> EURNZD_DOWN_S2_OCO2Sets3 = new List<EURNZD_OCO2_DOWN_S2>();
public static List<EURNZD_OCO2_DOWN_S2> EURNZD_DOWN_S2_OCO2Sets4 = new List<EURNZD_OCO2_DOWN_S2>();
public static List<EURNZD_OCO2_DOWN_S2> EURNZD_DOWN_S2_OCO2Sets5 = new List<EURNZD_OCO2_DOWN_S2>();
public static List<EURNZD_OCO2_DOWN_S2> EURNZD_DOWN_S2_OCO2Sets6 = new List<EURNZD_OCO2_DOWN_S2>();
public static bool EURNZD_OCO2_DOWN_S2_IsReady = true;
public static bool EURNZD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket EURNZD_OCO3_MO1_UP_S2 ;
public static OrderTicket EURNZD_OCO3_MO2_UP_S2 ;
public static OrderTicket EURNZD_OCO3_MO3_UP_S2 ;
public static OrderTicket EURNZD_OCO3_MO4_UP_S2 ;
public static OrderTicket EURNZD_OCO3_MO5_UP_S2 ;
public static OrderTicket EURNZD_OCO3_MO6_UP_S2 ;
public static int EURNZD_OCO3_EO1_UP_S2_ID ;
public static int EURNZD_OCO3_EO2_UP_S2_ID ;
public static int EURNZD_OCO3_EO3_UP_S2_ID ;
public static int EURNZD_OCO3_EO4_UP_S2_ID ;
public static int EURNZD_OCO3_EO5_UP_S2_ID ;
public static int EURNZD_OCO3_EO6_UP_S2_ID ;
public static bool EURNZD_OCO3_EO1_UP_S2 ;
public static bool EURNZD_OCO3_EO2_UP_S2 ;
public static bool EURNZD_OCO3_EO3_UP_S2 ;
public static bool EURNZD_OCO3_EO4_UP_S2 ;
public static bool EURNZD_OCO3_EO5_UP_S2 ;
public static bool EURNZD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_UP_S2> EURNZD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_UP_S2> EURNZD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_UP_S2> EURNZD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_UP_S2> EURNZD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_UP_S2> EURNZD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_UP_S2> EURNZD_OOFE_OCO3_UP_S2_6 ;
public static EURNZD_OCO3_UP_S2 EURNZD_PFO_OCO3_UP_S2_1 ;
public static EURNZD_OCO3_UP_S2 EURNZD_PFO_OCO3_UP_S2_2 ;
public static EURNZD_OCO3_UP_S2 EURNZD_PFO_OCO3_UP_S2_3 ;
public static EURNZD_OCO3_UP_S2 EURNZD_PFO_OCO3_UP_S2_4 ;
public static EURNZD_OCO3_UP_S2 EURNZD_PFO_OCO3_UP_S2_5 ;
public static EURNZD_OCO3_UP_S2 EURNZD_PFO_OCO3_UP_S2_6 ;
public static List<EURNZD_OCO3_UP_S2> EURNZD_UP_S2_OCO3Sets1 = new List<EURNZD_OCO3_UP_S2>();
public static List<EURNZD_OCO3_UP_S2> EURNZD_UP_S2_OCO3Sets2 = new List<EURNZD_OCO3_UP_S2>();
public static List<EURNZD_OCO3_UP_S2> EURNZD_UP_S2_OCO3Sets3 = new List<EURNZD_OCO3_UP_S2>();
public static List<EURNZD_OCO3_UP_S2> EURNZD_UP_S2_OCO3Sets4 = new List<EURNZD_OCO3_UP_S2>();
public static List<EURNZD_OCO3_UP_S2> EURNZD_UP_S2_OCO3Sets5 = new List<EURNZD_OCO3_UP_S2>();
public static List<EURNZD_OCO3_UP_S2> EURNZD_UP_S2_OCO3Sets6 = new List<EURNZD_OCO3_UP_S2>();
public static bool EURNZD_OCO3_UP_S2_IsReady = true;
public static bool EURNZD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket EURNZD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket EURNZD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket EURNZD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket EURNZD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket EURNZD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket EURNZD_OCO3_MO6_DOWN_S2 ;
public static int EURNZD_OCO3_EO1_DOWN_S2_ID ;
public static int EURNZD_OCO3_EO2_DOWN_S2_ID ;
public static int EURNZD_OCO3_EO3_DOWN_S2_ID ;
public static int EURNZD_OCO3_EO4_DOWN_S2_ID ;
public static int EURNZD_OCO3_EO5_DOWN_S2_ID ;
public static int EURNZD_OCO3_EO6_DOWN_S2_ID ;
public static bool EURNZD_OCO3_EO1_DOWN_S2 ;
public static bool EURNZD_OCO3_EO2_DOWN_S2 ;
public static bool EURNZD_OCO3_EO3_DOWN_S2 ;
public static bool EURNZD_OCO3_EO4_DOWN_S2 ;
public static bool EURNZD_OCO3_EO5_DOWN_S2 ;
public static bool EURNZD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_DOWN_S2> EURNZD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_DOWN_S2> EURNZD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_DOWN_S2> EURNZD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_DOWN_S2> EURNZD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_DOWN_S2> EURNZD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO3_DOWN_S2> EURNZD_OOFE_OCO3_DOWN_S2_6 ;
public static EURNZD_OCO3_DOWN_S2 EURNZD_PFO_OCO3_DOWN_S2_1 ;
public static EURNZD_OCO3_DOWN_S2 EURNZD_PFO_OCO3_DOWN_S2_2 ;
public static EURNZD_OCO3_DOWN_S2 EURNZD_PFO_OCO3_DOWN_S2_3 ;
public static EURNZD_OCO3_DOWN_S2 EURNZD_PFO_OCO3_DOWN_S2_4 ;
public static EURNZD_OCO3_DOWN_S2 EURNZD_PFO_OCO3_DOWN_S2_5 ;
public static EURNZD_OCO3_DOWN_S2 EURNZD_PFO_OCO3_DOWN_S2_6 ;
public static List<EURNZD_OCO3_DOWN_S2> EURNZD_DOWN_S2_OCO3Sets1 = new List<EURNZD_OCO3_DOWN_S2>();
public static List<EURNZD_OCO3_DOWN_S2> EURNZD_DOWN_S2_OCO3Sets2 = new List<EURNZD_OCO3_DOWN_S2>();
public static List<EURNZD_OCO3_DOWN_S2> EURNZD_DOWN_S2_OCO3Sets3 = new List<EURNZD_OCO3_DOWN_S2>();
public static List<EURNZD_OCO3_DOWN_S2> EURNZD_DOWN_S2_OCO3Sets4 = new List<EURNZD_OCO3_DOWN_S2>();
public static List<EURNZD_OCO3_DOWN_S2> EURNZD_DOWN_S2_OCO3Sets5 = new List<EURNZD_OCO3_DOWN_S2>();
public static List<EURNZD_OCO3_DOWN_S2> EURNZD_DOWN_S2_OCO3Sets6 = new List<EURNZD_OCO3_DOWN_S2>();
public static bool EURNZD_OCO3_DOWN_S2_IsReady = true;
public static bool EURNZD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket EURNZD_OCO4_MO1_UP_S2 ;
public static OrderTicket EURNZD_OCO4_MO2_UP_S2 ;
public static OrderTicket EURNZD_OCO4_MO3_UP_S2 ;
public static OrderTicket EURNZD_OCO4_MO4_UP_S2 ;
public static OrderTicket EURNZD_OCO4_MO5_UP_S2 ;
public static OrderTicket EURNZD_OCO4_MO6_UP_S2 ;
public static int EURNZD_OCO4_EO1_UP_S2_ID ;
public static int EURNZD_OCO4_EO2_UP_S2_ID ;
public static int EURNZD_OCO4_EO3_UP_S2_ID ;
public static int EURNZD_OCO4_EO4_UP_S2_ID ;
public static int EURNZD_OCO4_EO5_UP_S2_ID ;
public static int EURNZD_OCO4_EO6_UP_S2_ID ;
public static bool EURNZD_OCO4_EO1_UP_S2 ;
public static bool EURNZD_OCO4_EO2_UP_S2 ;
public static bool EURNZD_OCO4_EO3_UP_S2 ;
public static bool EURNZD_OCO4_EO4_UP_S2 ;
public static bool EURNZD_OCO4_EO5_UP_S2 ;
public static bool EURNZD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_UP_S2> EURNZD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_UP_S2> EURNZD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_UP_S2> EURNZD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_UP_S2> EURNZD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_UP_S2> EURNZD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_UP_S2> EURNZD_OOFE_OCO4_UP_S2_6 ;
public static EURNZD_OCO4_UP_S2 EURNZD_PFO_OCO4_UP_S2_1 ;
public static EURNZD_OCO4_UP_S2 EURNZD_PFO_OCO4_UP_S2_2 ;
public static EURNZD_OCO4_UP_S2 EURNZD_PFO_OCO4_UP_S2_3 ;
public static EURNZD_OCO4_UP_S2 EURNZD_PFO_OCO4_UP_S2_4 ;
public static EURNZD_OCO4_UP_S2 EURNZD_PFO_OCO4_UP_S2_5 ;
public static EURNZD_OCO4_UP_S2 EURNZD_PFO_OCO4_UP_S2_6 ;
public static List<EURNZD_OCO4_UP_S2> EURNZD_UP_S2_OCO4Sets1 = new List<EURNZD_OCO4_UP_S2>();
public static List<EURNZD_OCO4_UP_S2> EURNZD_UP_S2_OCO4Sets2 = new List<EURNZD_OCO4_UP_S2>();
public static List<EURNZD_OCO4_UP_S2> EURNZD_UP_S2_OCO4Sets3 = new List<EURNZD_OCO4_UP_S2>();
public static List<EURNZD_OCO4_UP_S2> EURNZD_UP_S2_OCO4Sets4 = new List<EURNZD_OCO4_UP_S2>();
public static List<EURNZD_OCO4_UP_S2> EURNZD_UP_S2_OCO4Sets5 = new List<EURNZD_OCO4_UP_S2>();
public static List<EURNZD_OCO4_UP_S2> EURNZD_UP_S2_OCO4Sets6 = new List<EURNZD_OCO4_UP_S2>();
public static bool EURNZD_OCO4_UP_S2_IsReady = true;
public static bool EURNZD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket EURNZD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket EURNZD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket EURNZD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket EURNZD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket EURNZD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket EURNZD_OCO4_MO6_DOWN_S2 ;
public static int EURNZD_OCO4_EO1_DOWN_S2_ID ;
public static int EURNZD_OCO4_EO2_DOWN_S2_ID ;
public static int EURNZD_OCO4_EO3_DOWN_S2_ID ;
public static int EURNZD_OCO4_EO4_DOWN_S2_ID ;
public static int EURNZD_OCO4_EO5_DOWN_S2_ID ;
public static int EURNZD_OCO4_EO6_DOWN_S2_ID ;
public static bool EURNZD_OCO4_EO1_DOWN_S2 ;
public static bool EURNZD_OCO4_EO2_DOWN_S2 ;
public static bool EURNZD_OCO4_EO3_DOWN_S2 ;
public static bool EURNZD_OCO4_EO4_DOWN_S2 ;
public static bool EURNZD_OCO4_EO5_DOWN_S2 ;
public static bool EURNZD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_DOWN_S2> EURNZD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_DOWN_S2> EURNZD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_DOWN_S2> EURNZD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_DOWN_S2> EURNZD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_DOWN_S2> EURNZD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURNZD_OCO4_DOWN_S2> EURNZD_OOFE_OCO4_DOWN_S2_6 ;
public static EURNZD_OCO4_DOWN_S2 EURNZD_PFO_OCO4_DOWN_S2_1 ;
public static EURNZD_OCO4_DOWN_S2 EURNZD_PFO_OCO4_DOWN_S2_2 ;
public static EURNZD_OCO4_DOWN_S2 EURNZD_PFO_OCO4_DOWN_S2_3 ;
public static EURNZD_OCO4_DOWN_S2 EURNZD_PFO_OCO4_DOWN_S2_4 ;
public static EURNZD_OCO4_DOWN_S2 EURNZD_PFO_OCO4_DOWN_S2_5 ;
public static EURNZD_OCO4_DOWN_S2 EURNZD_PFO_OCO4_DOWN_S2_6 ;
public static List<EURNZD_OCO4_DOWN_S2> EURNZD_DOWN_S2_OCO4Sets1 = new List<EURNZD_OCO4_DOWN_S2>();
public static List<EURNZD_OCO4_DOWN_S2> EURNZD_DOWN_S2_OCO4Sets2 = new List<EURNZD_OCO4_DOWN_S2>();
public static List<EURNZD_OCO4_DOWN_S2> EURNZD_DOWN_S2_OCO4Sets3 = new List<EURNZD_OCO4_DOWN_S2>();
public static List<EURNZD_OCO4_DOWN_S2> EURNZD_DOWN_S2_OCO4Sets4 = new List<EURNZD_OCO4_DOWN_S2>();
public static List<EURNZD_OCO4_DOWN_S2> EURNZD_DOWN_S2_OCO4Sets5 = new List<EURNZD_OCO4_DOWN_S2>();
public static List<EURNZD_OCO4_DOWN_S2> EURNZD_DOWN_S2_OCO4Sets6 = new List<EURNZD_OCO4_DOWN_S2>();
public static bool EURNZD_OCO4_DOWN_S2_IsReady = true;
public static bool EURNZD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal EURNZD_UP_S2_SL {get; set;}
public static decimal EURNZD_UP_S2_TP1 {get; set;}
public static decimal EURNZD_UP_S2_TP2 {get; set;}
public static decimal EURNZD_UP_S2_TP3 {get; set;}
public static decimal EURNZD_UP_S2_TP4 {get; set;}
public static decimal EURNZD_UP_S2_TP5 {get; set;}
public static decimal EURNZD_UP_S2_TP6 {get; set;}
public static decimal EURNZD_DOWN_S2_SL {get; set;}
public static decimal EURNZD_DOWN_S2_TP1 {get; set;}
public static decimal EURNZD_DOWN_S2_TP2 {get; set;}
public static decimal EURNZD_DOWN_S2_TP3 {get; set;}
public static decimal EURNZD_DOWN_S2_TP4 {get; set;}
public static decimal EURNZD_DOWN_S2_TP5 {get; set;}
public static decimal EURNZD_DOWN_S2_TP6 {get; set;}
public static bool EURNZD_Signal_Condition_UP_1 ;
public static bool EURNZD_Signal_Condition_UP_2 ;
public static bool EURNZD_Signal_Condition_UP_3 ;
public static bool EURNZD_Signal_Condition_DOWN_S2 ;
public static int EURNZD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int EURNZD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int EURNZD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int EURNZD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int EURNZD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int EURNZD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int EURNZD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int EURNZD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int EURNZD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int EURNZD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_EURNZD_UP_S2 ;
public static bool DOWM_EURNZD_UP_S2 ;
public static bool DOWT_EURNZD_UP_S2 ;
public static bool DOWW_EURNZD_UP_S2 ;
public static bool DOWTH_EURNZD_UP_S2 ;
public static bool DOWR_EURNZD_DOWN_S2 ;
public static bool DOWM_EURNZD_DOWN_S2 ;
public static bool DOWT_EURNZD_DOWN_S2 ;
public static bool DOWW_EURNZD_DOWN_S2 ;
public static bool DOWTH_EURNZD_DOWN_S2 ;
public static int EURNZD_quantity_UP_S2 ;
public static int EURNZD_quantity_SL_UP_S2 ;
public static int EURNZD_quantity_TP1_UP_S2 ;
public static int EURNZD_quantity_TP2_UP_S2 ;
public static int EURNZD_quantity_TP3_UP_S2 ;
public static int EURNZD_quantity_TP4_UP_S2 ;
public static int EURNZD_quantity_TP5_UP_S2;
public static int EURNZD_quantity_TP6_UP_S2 ;
public static int EURNZD_quantity_DOWN_S2 ;
public static int EURNZD_quantity_SL_DOWN_S2 ;
public static int EURNZD_quantity_TP1_DOWN_S2 ;
public static int EURNZD_quantity_TP2_DOWN_S2 ;
public static int EURNZD_quantity_TP3_DOWN_S2 ;
public static int EURNZD_quantity_TP4_DOWN_S2 ;
public static int EURNZD_quantity_TP5_DOWN_S2;
public static int EURNZD_quantity_TP6_DOWN_S2 ;
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct EURAUD_OCO1_DOWN_S2
{
public EURAUD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURAUD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURAUD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURAUD_OCO1_UP_S2
{
public EURAUD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURAUD_UP_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURAUD_UP_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURAUD_UP_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURAUD_UP_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURAUD_UP_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURAUD_UP_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURAUD_UP_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURAUD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURAUD_UP_S2_OCO1")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURAUD_OCO2_DOWN_S2
{
public EURAUD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURAUD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURAUD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURAUD_OCO2_UP_S2
{
public EURAUD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURAUD_UP_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURAUD_UP_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURAUD_UP_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURAUD_UP_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURAUD_UP_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURAUD_UP_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURAUD_UP_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURAUD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURAUD_UP_S2_OCO2")
{
orderTicket.Cancel("EURAUD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURAUD_OCO3_DOWN_S2
{
public EURAUD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURAUD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURAUD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURAUD_OCO3_UP_S2
{
public EURAUD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURAUD_UP_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURAUD_UP_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURAUD_UP_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURAUD_UP_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURAUD_UP_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURAUD_UP_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURAUD_UP_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURAUD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURAUD_UP_S2_OCO3")
{
orderTicket.Cancel("EURAUD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURAUD_OCO4_DOWN_S2
{
public EURAUD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURAUD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURAUD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURAUD_OCO4_UP_S2
{
public EURAUD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURAUD_UP_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURAUD_UP_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURAUD_UP_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURAUD_UP_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURAUD_UP_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURAUD_UP_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURAUD_UP_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURAUD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURAUD_UP_S2_OCO4")
{
orderTicket.Cancel("EURAUD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURNZD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURNZD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
}
if (Base.EURNZD_OCO1_EO1_UP_S2)
Base.EURNZD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO1_EO2_UP_S2)
Base.EURNZD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO1_EO3_UP_S2)
Base.EURNZD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO1_EO4_UP_S2)
Base.EURNZD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO1_EO5_UP_S2)
Base.EURNZD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO1_EO6_UP_S2)
Base.EURNZD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO1_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP1,"TP1_EURNZD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP1_EURNZD_UP_S2_OCO1"));
};
Base.EURNZD_UP_S2_OCO1Sets1.Add( Base.EURNZD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO2_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP2,"TP2_EURNZD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP2_EURNZD_UP_S2_OCO1"));
};
Base.EURNZD_UP_S2_OCO1Sets2.Add( Base.EURNZD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO3_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP3,"TP3_EURNZD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP3_EURNZD_UP_S2_OCO1"));
};
Base.EURNZD_UP_S2_OCO1Sets3.Add( Base.EURNZD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO4_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP4,"TP4_EURNZD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP4_EURNZD_UP_S2_OCO1"));
};
Base.EURNZD_UP_S2_OCO1Sets4.Add( Base.EURNZD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO5_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP5,"TP5_EURNZD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP5_EURNZD_UP_S2_OCO1"));
};
Base.EURNZD_UP_S2_OCO1Sets5.Add( Base.EURNZD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO6_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP6,"TP6_EURNZD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP6_EURNZD_UP_S2_OCO1"));
};
Base.EURNZD_UP_S2_OCO1Sets6.Add( Base.EURNZD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO6_UP_S2_ID = -1;
}
int EURNZD_OCO1S1_UP_S2 = 0;
for (; EURNZD_OCO1S1_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets1.Count; EURNZD_OCO1S1_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets1[EURNZD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO1Sets1[EURNZD_OCO1S1_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO1Sets1.RemoveAt(EURNZD_OCO1S1_UP_S2);
EURNZD_OCO1S1_UP_S2 = 0;
break;
}
int EURNZD_OCO1S2_UP_S2 = 0;
for (; EURNZD_OCO1S2_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets2.Count; EURNZD_OCO1S2_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets2[EURNZD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO1Sets2[EURNZD_OCO1S2_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO1Sets2.RemoveAt(EURNZD_OCO1S2_UP_S2);
EURNZD_OCO1S2_UP_S2 = 0;
break;
}
int EURNZD_OCO1S3_UP_S2 = 0;
for (; EURNZD_OCO1S3_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets3.Count; EURNZD_OCO1S3_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets3[EURNZD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO1Sets3[EURNZD_OCO1S3_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO1Sets3.RemoveAt(EURNZD_OCO1S3_UP_S2);
EURNZD_OCO1S3_UP_S2 = 0;
break;
}
int EURNZD_OCO1S4_UP_S2 = 0;
for (; EURNZD_OCO1S4_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets4.Count; EURNZD_OCO1S4_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets4[EURNZD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO1Sets4[EURNZD_OCO1S4_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO1Sets4.RemoveAt(EURNZD_OCO1S4_UP_S2);
EURNZD_OCO1S4_UP_S2 = 0;
break;
}
int EURNZD_OCO1S5_UP_S2 = 0;
for (; EURNZD_OCO1S5_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets5.Count; EURNZD_OCO1S5_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets5[EURNZD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO1Sets5[EURNZD_OCO1S5_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO1Sets5.RemoveAt(EURNZD_OCO1S5_UP_S2);
EURNZD_OCO1S5_UP_S2 = 0;
break;
}
int EURNZD_OCO1S6_UP_S2 = 0;
for (; EURNZD_OCO1S6_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets6.Count; EURNZD_OCO1S6_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets6[EURNZD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO1Sets6[EURNZD_OCO1S6_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO1Sets6.RemoveAt(EURNZD_OCO1S6_UP_S2);
EURNZD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO2_EO1_UP_S2)
Base.EURNZD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO2_EO2_UP_S2)
Base.EURNZD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO2_EO3_UP_S2)
Base.EURNZD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO2_EO4_UP_S2)
Base.EURNZD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO2_EO5_UP_S2)
Base.EURNZD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO2_EO6_UP_S2)
Base.EURNZD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO1_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP1,"TP1_EURNZD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP1_EURNZD_UP_S2_OCO2"));
};
Base.EURNZD_UP_S2_OCO2Sets1.Add( Base.EURNZD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO2_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP2,"TP2_EURNZD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP2_EURNZD_UP_S2_OCO2"));
};
Base.EURNZD_UP_S2_OCO2Sets2.Add( Base.EURNZD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO3_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP3,"TP3_EURNZD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP3_EURNZD_UP_S2_OCO2"));
};
Base.EURNZD_UP_S2_OCO2Sets3.Add( Base.EURNZD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO4_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP4,"TP4_EURNZD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP4_EURNZD_UP_S2_OCO2"));
};
Base.EURNZD_UP_S2_OCO2Sets4.Add( Base.EURNZD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO5_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP5,"TP5_EURNZD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP5_EURNZD_UP_S2_OCO2"));
};
Base.EURNZD_UP_S2_OCO2Sets5.Add( Base.EURNZD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO6_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP6,"TP6_EURNZD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP6_EURNZD_UP_S2_OCO2"));
};
Base.EURNZD_UP_S2_OCO2Sets6.Add( Base.EURNZD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO6_UP_S2_ID = -1;
}
int EURNZD_OCO2S1_UP_S2 = 0;
for (; EURNZD_OCO2S1_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets1.Count; EURNZD_OCO2S1_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets1[EURNZD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO2Sets1[EURNZD_OCO2S1_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO2Sets1.RemoveAt(EURNZD_OCO2S1_UP_S2);
EURNZD_OCO2S1_UP_S2 = 0;
break;
}
int EURNZD_OCO2S2_UP_S2 = 0;
for (; EURNZD_OCO2S2_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets2.Count; EURNZD_OCO2S2_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets2[EURNZD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO2Sets2[EURNZD_OCO2S2_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO2Sets2.RemoveAt(EURNZD_OCO2S2_UP_S2);
EURNZD_OCO2S2_UP_S2 = 0;
break;
}
int EURNZD_OCO2S3_UP_S2 = 0;
for (; EURNZD_OCO2S3_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets3.Count; EURNZD_OCO2S3_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets3[EURNZD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO2Sets3[EURNZD_OCO2S3_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO2Sets3.RemoveAt(EURNZD_OCO2S3_UP_S2);
EURNZD_OCO2S3_UP_S2 = 0;
break;
}
int EURNZD_OCO2S4_UP_S2 = 0;
for (; EURNZD_OCO2S4_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets4.Count; EURNZD_OCO2S4_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets4[EURNZD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO2Sets4[EURNZD_OCO2S4_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO2Sets4.RemoveAt(EURNZD_OCO2S4_UP_S2);
EURNZD_OCO2S4_UP_S2 = 0;
break;
}
int EURNZD_OCO2S5_UP_S2 = 0;
for (; EURNZD_OCO2S5_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets5.Count; EURNZD_OCO2S5_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets5[EURNZD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO2Sets5[EURNZD_OCO2S5_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO2Sets5.RemoveAt(EURNZD_OCO2S5_UP_S2);
EURNZD_OCO2S5_UP_S2 = 0;
break;
}
int EURNZD_OCO2S6_UP_S2 = 0;
for (; EURNZD_OCO2S6_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets6.Count; EURNZD_OCO2S6_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets6[EURNZD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO2Sets6[EURNZD_OCO2S6_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO2Sets6.RemoveAt(EURNZD_OCO2S6_UP_S2);
EURNZD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO3_EO1_UP_S2)
Base.EURNZD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO3_EO2_UP_S2)
Base.EURNZD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO3_EO3_UP_S2)
Base.EURNZD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO3_EO4_UP_S2)
Base.EURNZD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO3_EO5_UP_S2)
Base.EURNZD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO3_EO6_UP_S2)
Base.EURNZD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO1_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP1,"TP1_EURNZD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP1_EURNZD_UP_S2_OCO3"));
};
Base.EURNZD_UP_S2_OCO3Sets1.Add( Base.EURNZD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO2_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP2,"TP2_EURNZD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP2_EURNZD_UP_S2_OCO3"));
};
Base.EURNZD_UP_S2_OCO3Sets2.Add( Base.EURNZD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO3_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP3,"TP3_EURNZD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP3_EURNZD_UP_S2_OCO3"));
};
Base.EURNZD_UP_S2_OCO3Sets3.Add( Base.EURNZD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO4_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP4,"TP4_EURNZD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP4_EURNZD_UP_S2_OCO3"));
};
Base.EURNZD_UP_S2_OCO3Sets4.Add( Base.EURNZD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO5_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP5,"TP5_EURNZD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP5_EURNZD_UP_S2_OCO3"));
};
Base.EURNZD_UP_S2_OCO3Sets5.Add( Base.EURNZD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO6_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP6,"TP6_EURNZD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP6_EURNZD_UP_S2_OCO3"));
};
Base.EURNZD_UP_S2_OCO3Sets6.Add( Base.EURNZD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO6_UP_S2_ID = -1;
}
int EURNZD_OCO3S1_UP_S2 = 0;
for (; EURNZD_OCO3S1_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets1.Count; EURNZD_OCO3S1_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets1[EURNZD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO3Sets1[EURNZD_OCO3S1_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO3Sets1.RemoveAt(EURNZD_OCO3S1_UP_S2);
EURNZD_OCO3S1_UP_S2 = 0;
break;
}
int EURNZD_OCO3S2_UP_S2 = 0;
for (; EURNZD_OCO3S2_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets2.Count; EURNZD_OCO3S2_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets2[EURNZD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO3Sets2[EURNZD_OCO3S2_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO3Sets2.RemoveAt(EURNZD_OCO3S2_UP_S2);
EURNZD_OCO3S2_UP_S2 = 0;
break;
}
int EURNZD_OCO3S3_UP_S2 = 0;
for (; EURNZD_OCO3S3_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets3.Count; EURNZD_OCO3S3_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets3[EURNZD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO3Sets3[EURNZD_OCO3S3_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO3Sets3.RemoveAt(EURNZD_OCO3S3_UP_S2);
EURNZD_OCO3S3_UP_S2 = 0;
break;
}
int EURNZD_OCO3S4_UP_S2 = 0;
for (; EURNZD_OCO3S4_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets4.Count; EURNZD_OCO3S4_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets4[EURNZD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO3Sets4[EURNZD_OCO3S4_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO3Sets4.RemoveAt(EURNZD_OCO3S4_UP_S2);
EURNZD_OCO3S4_UP_S2 = 0;
break;
}
int EURNZD_OCO3S5_UP_S2 = 0;
for (; EURNZD_OCO3S5_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets5.Count; EURNZD_OCO3S5_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets5[EURNZD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO3Sets5[EURNZD_OCO3S5_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO3Sets5.RemoveAt(EURNZD_OCO3S5_UP_S2);
EURNZD_OCO3S5_UP_S2 = 0;
break;
}
int EURNZD_OCO3S6_UP_S2 = 0;
for (; EURNZD_OCO3S6_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets6.Count; EURNZD_OCO3S6_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets6[EURNZD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO3Sets6[EURNZD_OCO3S6_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO3Sets6.RemoveAt(EURNZD_OCO3S6_UP_S2);
EURNZD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO4_EO1_UP_S2)
Base.EURNZD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO4_EO2_UP_S2)
Base.EURNZD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO4_EO3_UP_S2)
Base.EURNZD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO4_EO4_UP_S2)
Base.EURNZD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO4_EO5_UP_S2)
Base.EURNZD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO4_EO6_UP_S2)
Base.EURNZD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO1_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP1,"TP1_EURNZD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP1_EURNZD_UP_S2_OCO4"));
};
Base.EURNZD_UP_S2_OCO4Sets1.Add( Base.EURNZD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO2_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP2,"TP2_EURNZD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP2_EURNZD_UP_S2_OCO4"));
};
Base.EURNZD_UP_S2_OCO4Sets2.Add( Base.EURNZD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO3_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP3,"TP3_EURNZD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP3_EURNZD_UP_S2_OCO4"));
};
Base.EURNZD_UP_S2_OCO4Sets3.Add( Base.EURNZD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO4_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP4,"TP4_EURNZD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP4_EURNZD_UP_S2_OCO4"));
};
Base.EURNZD_UP_S2_OCO4Sets4.Add( Base.EURNZD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO5_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP5,"TP5_EURNZD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP5_EURNZD_UP_S2_OCO4"));
};
Base.EURNZD_UP_S2_OCO4Sets5.Add( Base.EURNZD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO6_UP_S2_ID)
{
Base.EURNZD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_UP_S2_TP6,"TP6_EURNZD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_UP_S2_SL,"SL_TP6_EURNZD_UP_S2_OCO4"));
};
Base.EURNZD_UP_S2_OCO4Sets6.Add( Base.EURNZD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO6_UP_S2_ID = -1;
}
int EURNZD_OCO4S1_UP_S2 = 0;
for (; EURNZD_OCO4S1_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets1.Count; EURNZD_OCO4S1_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets1[EURNZD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO4Sets1[EURNZD_OCO4S1_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO4Sets1.RemoveAt(EURNZD_OCO4S1_UP_S2);
EURNZD_OCO4S1_UP_S2 = 0;
break;
}
int EURNZD_OCO4S2_UP_S2 = 0;
for (; EURNZD_OCO4S2_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets2.Count; EURNZD_OCO4S2_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets2[EURNZD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO4Sets2[EURNZD_OCO4S2_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO4Sets2.RemoveAt(EURNZD_OCO4S2_UP_S2);
EURNZD_OCO4S2_UP_S2 = 0;
break;
}
int EURNZD_OCO4S3_UP_S2 = 0;
for (; EURNZD_OCO4S3_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets3.Count; EURNZD_OCO4S3_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets3[EURNZD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO4Sets3[EURNZD_OCO4S3_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO4Sets3.RemoveAt(EURNZD_OCO4S3_UP_S2);
EURNZD_OCO4S3_UP_S2 = 0;
break;
}
int EURNZD_OCO4S4_UP_S2 = 0;
for (; EURNZD_OCO4S4_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets4.Count; EURNZD_OCO4S4_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets4[EURNZD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO4Sets4[EURNZD_OCO4S4_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO4Sets4.RemoveAt(EURNZD_OCO4S4_UP_S2);
EURNZD_OCO4S4_UP_S2 = 0;
break;
}
int EURNZD_OCO4S5_UP_S2 = 0;
for (; EURNZD_OCO4S5_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets5.Count; EURNZD_OCO4S5_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets5[EURNZD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO4Sets5[EURNZD_OCO4S5_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO4Sets5.RemoveAt(EURNZD_OCO4S5_UP_S2);
EURNZD_OCO4S5_UP_S2 = 0;
break;
}
int EURNZD_OCO4S6_UP_S2 = 0;
for (; EURNZD_OCO4S6_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets6.Count; EURNZD_OCO4S6_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets6[EURNZD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_UP_S2_OCO4Sets6[EURNZD_OCO4S6_UP_S2].Filled();
Base.EURNZD_UP_S2_OCO4Sets6.RemoveAt(EURNZD_OCO4S6_UP_S2);
EURNZD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURAUD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURAUD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURAUD_UP_S2_OCO1")))
{
Base.EURAUD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURAUD_UP_S2_OCO2")))
{
Base.EURAUD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURAUD_UP_S2_OCO3")))
{
Base.EURAUD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURAUD_UP_S2_OCO4")))
{
Base.EURAUD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURAUD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURAUD_OCO1_EO1_UP_S2)
Base.EURAUD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO2_UP_S2)
Base.EURAUD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO3_UP_S2)
Base.EURAUD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO4_UP_S2)
Base.EURAUD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO5_UP_S2)
Base.EURAUD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO6_UP_S2)
Base.EURAUD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURAUD_UP_S2_OCO_DELAY_7DAY))
{
int EURAUD_OCO1S1_UP_S2 = 0;
for (; EURAUD_OCO1S1_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets1.Count; EURAUD_OCO1S1_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets1[EURAUD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO1Sets1[EURAUD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_1__Time out_OCO1");
Base.EURAUD_UP_S2_OCO1Sets1.Clear();
EURAUD_OCO1S1_UP_S2 = 0;
break;
}
int EURAUD_OCO1S2_UP_S2 = 0;
for (; EURAUD_OCO1S2_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets2.Count; EURAUD_OCO1S2_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets2[EURAUD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO1Sets2[EURAUD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_2__Time out_OCO1");
Base.EURAUD_UP_S2_OCO1Sets2.Clear();
EURAUD_OCO1S2_UP_S2 = 0;
break;
}
int EURAUD_OCO1S3_UP_S2 = 0;
for (; EURAUD_OCO1S3_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets3.Count; EURAUD_OCO1S3_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets3[EURAUD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO1Sets3[EURAUD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_3__Time out_OCO1");
Base.EURAUD_UP_S2_OCO1Sets3.Clear();
EURAUD_OCO1S3_UP_S2 = 0;
break;
}
int EURAUD_OCO1S4_UP_S2 = 0;
for (; EURAUD_OCO1S4_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets4.Count; EURAUD_OCO1S4_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets4[EURAUD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO1Sets4[EURAUD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_4__Time out_OCO1");
Base.EURAUD_UP_S2_OCO1Sets4.Clear();
EURAUD_OCO1S4_UP_S2 = 0;
break;
}
int EURAUD_OCO1S5_UP_S2 = 0;
for (; EURAUD_OCO1S5_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets5.Count; EURAUD_OCO1S5_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets5[EURAUD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO1Sets5[EURAUD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_5__Time out_OCO1");
Base.EURAUD_UP_S2_OCO1Sets5.Clear();
EURAUD_OCO1S5_UP_S2 = 0;
break;
}
int EURAUD_OCO1S6_UP_S2 = 0;
for (; EURAUD_OCO1S6_UP_S2 < Base.EURAUD_UP_S2_OCO1Sets6.Count; EURAUD_OCO1S6_UP_S2++)
if (Base.EURAUD_UP_S2_OCO1Sets6[EURAUD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO1Sets6[EURAUD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_6__Time out_OCO1");
Base.EURAUD_UP_S2_OCO1Sets6.Clear();
EURAUD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO2_EO1_UP_S2)
Base.EURAUD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO2_UP_S2)
Base.EURAUD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO3_UP_S2)
Base.EURAUD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO4_UP_S2)
Base.EURAUD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO5_UP_S2)
Base.EURAUD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO6_UP_S2)
Base.EURAUD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURAUD_UP_S2_OCO_DELAY_7DAY))
{
int EURAUD_OCO2S1_UP_S2 = 0;
for (; EURAUD_OCO2S1_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets1.Count; EURAUD_OCO2S1_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets1[EURAUD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO2Sets1[EURAUD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_1__Time out_OCO2");
Base.EURAUD_UP_S2_OCO2Sets1.Clear();
EURAUD_OCO2S1_UP_S2 = 0;
break;
}
int EURAUD_OCO2S2_UP_S2 = 0;
for (; EURAUD_OCO2S2_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets2.Count; EURAUD_OCO2S2_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets2[EURAUD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO2Sets2[EURAUD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_2__Time out_OCO2");
Base.EURAUD_UP_S2_OCO2Sets2.Clear();
EURAUD_OCO2S2_UP_S2 = 0;
break;
}
int EURAUD_OCO2S3_UP_S2 = 0;
for (; EURAUD_OCO2S3_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets3.Count; EURAUD_OCO2S3_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets3[EURAUD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO2Sets3[EURAUD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_3__Time out_OCO2");
Base.EURAUD_UP_S2_OCO2Sets3.Clear();
EURAUD_OCO2S3_UP_S2 = 0;
break;
}
int EURAUD_OCO2S4_UP_S2 = 0;
for (; EURAUD_OCO2S4_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets4.Count; EURAUD_OCO2S4_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets4[EURAUD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO2Sets4[EURAUD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_4__Time out_OCO2");
Base.EURAUD_UP_S2_OCO2Sets4.Clear();
EURAUD_OCO2S4_UP_S2 = 0;
break;
}
int EURAUD_OCO2S5_UP_S2 = 0;
for (; EURAUD_OCO2S5_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets5.Count; EURAUD_OCO2S5_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets5[EURAUD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO2Sets5[EURAUD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_5__Time out_OCO2");
Base.EURAUD_UP_S2_OCO2Sets5.Clear();
EURAUD_OCO2S5_UP_S2 = 0;
break;
}
int EURAUD_OCO2S6_UP_S2 = 0;
for (; EURAUD_OCO2S6_UP_S2 < Base.EURAUD_UP_S2_OCO2Sets6.Count; EURAUD_OCO2S6_UP_S2++)
if (Base.EURAUD_UP_S2_OCO2Sets6[EURAUD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO2Sets6[EURAUD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_6__Time out_OCO2");
Base.EURAUD_UP_S2_OCO2Sets6.Clear();
EURAUD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO3_EO1_UP_S2)
Base.EURAUD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO2_UP_S2)
Base.EURAUD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO3_UP_S2)
Base.EURAUD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO4_UP_S2)
Base.EURAUD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO5_UP_S2)
Base.EURAUD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO6_UP_S2)
Base.EURAUD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURAUD_UP_S2_OCO_DELAY_7DAY))
{
int EURAUD_OCO3S1_UP_S2 = 0;
for (; EURAUD_OCO3S1_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets1.Count; EURAUD_OCO3S1_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets1[EURAUD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO3Sets1[EURAUD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_1__Time out_OCO3");
Base.EURAUD_UP_S2_OCO3Sets1.Clear();
EURAUD_OCO3S1_UP_S2 = 0;
break;
}
int EURAUD_OCO3S2_UP_S2 = 0;
for (; EURAUD_OCO3S2_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets2.Count; EURAUD_OCO3S2_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets2[EURAUD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO3Sets2[EURAUD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_2__Time out_OCO3");
Base.EURAUD_UP_S2_OCO3Sets2.Clear();
EURAUD_OCO3S2_UP_S2 = 0;
break;
}
int EURAUD_OCO3S3_UP_S2 = 0;
for (; EURAUD_OCO3S3_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets3.Count; EURAUD_OCO3S3_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets3[EURAUD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO3Sets3[EURAUD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_3__Time out_OCO3");
Base.EURAUD_UP_S2_OCO3Sets3.Clear();
EURAUD_OCO3S3_UP_S2 = 0;
break;
}
int EURAUD_OCO3S4_UP_S2 = 0;
for (; EURAUD_OCO3S4_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets4.Count; EURAUD_OCO3S4_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets4[EURAUD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO3Sets4[EURAUD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_4__Time out_OCO3");
Base.EURAUD_UP_S2_OCO3Sets4.Clear();
EURAUD_OCO3S4_UP_S2 = 0;
break;
}
int EURAUD_OCO3S5_UP_S2 = 0;
for (; EURAUD_OCO3S5_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets5.Count; EURAUD_OCO3S5_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets5[EURAUD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO3Sets5[EURAUD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_5__Time out_OCO3");
Base.EURAUD_UP_S2_OCO3Sets5.Clear();
EURAUD_OCO3S5_UP_S2 = 0;
break;
}
int EURAUD_OCO3S6_UP_S2 = 0;
for (; EURAUD_OCO3S6_UP_S2 < Base.EURAUD_UP_S2_OCO3Sets6.Count; EURAUD_OCO3S6_UP_S2++)
if (Base.EURAUD_UP_S2_OCO3Sets6[EURAUD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO3Sets6[EURAUD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_6__Time out_OCO3");
Base.EURAUD_UP_S2_OCO3Sets6.Clear();
EURAUD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO4_EO1_UP_S2)
Base.EURAUD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO2_UP_S2)
Base.EURAUD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO3_UP_S2)
Base.EURAUD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO4_UP_S2)
Base.EURAUD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO5_UP_S2)
Base.EURAUD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO6_UP_S2)
Base.EURAUD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURAUD_UP_S2_OCO_DELAY_7DAY))
{
int EURAUD_OCO4S1_UP_S2 = 0;
for (; EURAUD_OCO4S1_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets1.Count; EURAUD_OCO4S1_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets1[EURAUD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO4Sets1[EURAUD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_1__Time out_OCO4");
Base.EURAUD_UP_S2_OCO4Sets1.Clear();
EURAUD_OCO4S1_UP_S2 = 0;
break;
}
int EURAUD_OCO4S2_UP_S2 = 0;
for (; EURAUD_OCO4S2_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets2.Count; EURAUD_OCO4S2_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets2[EURAUD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO4Sets2[EURAUD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_2__Time out_OCO4");
Base.EURAUD_UP_S2_OCO4Sets2.Clear();
EURAUD_OCO4S2_UP_S2 = 0;
break;
}
int EURAUD_OCO4S3_UP_S2 = 0;
for (; EURAUD_OCO4S3_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets3.Count; EURAUD_OCO4S3_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets3[EURAUD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO4Sets3[EURAUD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_3__Time out_OCO4");
Base.EURAUD_UP_S2_OCO4Sets3.Clear();
EURAUD_OCO4S3_UP_S2 = 0;
break;
}
int EURAUD_OCO4S4_UP_S2 = 0;
for (; EURAUD_OCO4S4_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets4.Count; EURAUD_OCO4S4_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets4[EURAUD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO4Sets4[EURAUD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_4__Time out_OCO4");
Base.EURAUD_UP_S2_OCO4Sets4.Clear();
EURAUD_OCO4S4_UP_S2 = 0;
break;
}
int EURAUD_OCO4S5_UP_S2 = 0;
for (; EURAUD_OCO4S5_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets5.Count; EURAUD_OCO4S5_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets5[EURAUD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO4Sets5[EURAUD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_5__Time out_OCO4");
Base.EURAUD_UP_S2_OCO4Sets5.Clear();
EURAUD_OCO4S5_UP_S2 = 0;
break;
}
int EURAUD_OCO4S6_UP_S2 = 0;
for (; EURAUD_OCO4S6_UP_S2 < Base.EURAUD_UP_S2_OCO4Sets6.Count; EURAUD_OCO4S6_UP_S2++)
if (Base.EURAUD_UP_S2_OCO4Sets6[EURAUD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.EURAUD_UP_S2_OCO4Sets6[EURAUD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_UP_S2_Entry_6__Time out_OCO4");
Base.EURAUD_UP_S2_OCO4Sets6.Clear();
EURAUD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURAUD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURAUD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURAUD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURAUD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURAUD_UP_S2 = DOWM_EURAUD_UP_S2 || DOWT_EURAUD_UP_S2 || DOWW_EURAUD_UP_S2 || DOWTH_EURAUD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURAUD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURAUD_OCO1_UP_S2_IsReady == false ||
Base.EURAUD_OCO2_UP_S2_IsReady == false ||
Base.EURAUD_OCO3_UP_S2_IsReady == false ||
Base.EURAUD_OCO4_UP_S2_IsReady == false)
{
Base.EURAUD_OCO1_UP_S2_Monthly_IsReady = false;
Base.EURAUD_OCO2_UP_S2_Monthly_IsReady = false;
Base.EURAUD_OCO3_UP_S2_Monthly_IsReady = false;
Base.EURAUD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURAUD_OCO1_UP_S2_Monthly_IsReady = true;
Base.EURAUD_OCO2_UP_S2_Monthly_IsReady = true;
Base.EURAUD_OCO3_UP_S2_Monthly_IsReady = true;
Base.EURAUD_OCO4_UP_S2_Monthly_IsReady = true;
}
EURAUD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURAUD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURAUD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (EURAUD_Signal_Condition_UP_1)
{
EURAUD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURAUD_Signal_Condition_UP_2)
{
EURAUD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURAUD_Signal_Condition_UP_3)
{
EURAUD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURAUD_Signal_Condition_UP_1)
{
EURAUD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (EURAUD_Signal_Condition_UP_2)
{
EURAUD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (EURAUD_Signal_Condition_UP_3)
{
EURAUD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
EURAUD_UP_S2_TP2 = EURAUD_UP_S2_SL * 0;
EURAUD_UP_S2_TP3 = EURAUD_UP_S2_SL * 0;
EURAUD_UP_S2_TP4 = EURAUD_UP_S2_SL * 0;
EURAUD_UP_S2_TP5 = EURAUD_UP_S2_SL * 0;
EURAUD_UP_S2_TP6 = EURAUD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
EURAUD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURAUD_quantity_SL_UP_S2 = EURAUD_quantity_UP_S2;
EURAUD_quantity_TP1_UP_S2 = (int)Math.Floor(EURAUD_quantity_UP_S2 * 1m);
EURAUD_quantity_TP2_UP_S2 = (int)Math.Floor(EURAUD_quantity_TP1_UP_S2 * 0m);
EURAUD_quantity_TP3_UP_S2 = (int)Math.Floor(EURAUD_quantity_TP2_UP_S2 * 0m);
EURAUD_quantity_TP4_UP_S2 = (int)Math.Floor(EURAUD_quantity_TP3_UP_S2 * 0m);
EURAUD_quantity_TP5_UP_S2 = (int)Math.Floor(EURAUD_quantity_TP4_UP_S2 * 0m);
EURAUD_quantity_TP6_UP_S2 = (int)Math.Floor(EURAUD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((EURAUD_Signal_Condition_UP_1 || EURAUD_Signal_Condition_UP_2 || EURAUD_Signal_Condition_UP_3) &&
DOWR_EURAUD_UP_S2 &&
Base.EURAUD_OCO1_UP_S2_IsReady == true &&
Base.EURAUD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.EURAUD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP1_UP_S2, false,"EURAUD_UP_S2_Entry_TP1_OCO1");
Base.EURAUD_OCO1_EO1_UP_S2 = false;
Base.EURAUD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP2_UP_S2, false,"EURAUD_UP_S2_Entry_TP2_OCO1");
Base.EURAUD_OCO1_EO2_UP_S2 = false;
Base.EURAUD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP3_UP_S2, false,"EURAUD_UP_S2_Entry_TP3_OCO1");
Base.EURAUD_OCO1_EO3_UP_S2 = false;
Base.EURAUD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP4_UP_S2, false,"EURAUD_UP_S2_Entry_TP4_OCO1");
Base.EURAUD_OCO1_EO4_UP_S2 = false;
Base.EURAUD_OCO1_UP_S2_IsReady = false;
if (Base.EURAUD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((EURAUD_Signal_Condition_UP_1 || EURAUD_Signal_Condition_UP_2 || EURAUD_Signal_Condition_UP_3) &&
DOWR_EURAUD_UP_S2 &&
Base.EURAUD_OCO1_UP_S2_IsReady == false &&
Base.EURAUD_OCO2_UP_S2_IsReady == true &&
Base.EURAUD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.EURAUD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP1_UP_S2, false,"EURAUD_UP_S2_Entry_TP1_OCO2");
Base.EURAUD_OCO2_EO1_UP_S2 = false;
Base.EURAUD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP2_UP_S2, false,"EURAUD_UP_S2_Entry_TP2_OCO2");
Base.EURAUD_OCO2_EO2_UP_S2 = false;
Base.EURAUD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP3_UP_S2, false,"EURAUD_UP_S2_Entry_TP3_OCO2");
Base.EURAUD_OCO2_EO3_UP_S2 = false;
Base.EURAUD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP4_UP_S2, false,"EURAUD_UP_S2_Entry_TP4_OCO2");
Base.EURAUD_OCO2_EO4_UP_S2 = false;
Base.EURAUD_OCO2_UP_S2_IsReady = false;
if (Base.EURAUD_OCO2_UP_S2_IsReady == false && Base.EURAUD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((EURAUD_Signal_Condition_UP_1 || EURAUD_Signal_Condition_UP_2 || EURAUD_Signal_Condition_UP_3) &&
DOWR_EURAUD_UP_S2 &&
Base.EURAUD_OCO1_UP_S2_IsReady == false &&
Base.EURAUD_OCO2_UP_S2_IsReady == false &&
Base.EURAUD_OCO3_UP_S2_IsReady == true &&
Base.EURAUD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.EURAUD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP1_UP_S2, false,"EURAUD_UP_S2_Entry_TP1_OCO3");
Base.EURAUD_OCO3_EO1_UP_S2 = false;
Base.EURAUD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP2_UP_S2, false,"EURAUD_UP_S2_Entry_TP2_OCO3");
Base.EURAUD_OCO3_EO2_UP_S2 = false;
Base.EURAUD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP3_UP_S2, false,"EURAUD_UP_S2_Entry_TP3_OCO3");
Base.EURAUD_OCO3_EO3_UP_S2 = false;
Base.EURAUD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP4_UP_S2, false,"EURAUD_UP_S2_Entry_TP4_OCO3");
Base.EURAUD_OCO3_EO4_UP_S2 = false;
Base.EURAUD_OCO3_UP_S2_IsReady = false;
if (Base.EURAUD_OCO3_UP_S2_IsReady == false && Base.EURAUD_OCO2_UP_S2_IsReady == false && Base.EURAUD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((EURAUD_Signal_Condition_UP_1 || EURAUD_Signal_Condition_UP_2 || EURAUD_Signal_Condition_UP_3) &&
DOWR_EURAUD_UP_S2 &&
Base.EURAUD_OCO1_UP_S2_IsReady == false &&
Base.EURAUD_OCO2_UP_S2_IsReady == false &&
Base.EURAUD_OCO3_UP_S2_IsReady == false &&
Base.EURAUD_OCO4_UP_S2_IsReady == true &&
Base.EURAUD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.EURAUD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP1_UP_S2, false,"EURAUD_UP_S2_Entry_TP1_OCO4");
Base.EURAUD_OCO4_EO1_UP_S2 = false;
Base.EURAUD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP2_UP_S2, false,"EURAUD_UP_S2_Entry_TP2_OCO4");
Base.EURAUD_OCO4_EO2_UP_S2 = false;
Base.EURAUD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP3_UP_S2, false,"EURAUD_UP_S2_Entry_TP3_OCO4");
Base.EURAUD_OCO4_EO3_UP_S2 = false;
Base.EURAUD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURAUD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP4_UP_S2, false,"EURAUD_UP_S2_Entry_TP4_OCO4");
Base.EURAUD_OCO4_EO4_UP_S2 = false;
Base.EURAUD_OCO4_UP_S2_IsReady = false;
if (Base.EURAUD_OCO4_UP_S2_IsReady == false && Base.EURAUD_OCO3_UP_S2_IsReady == false && Base.EURAUD_OCO2_UP_S2_IsReady == false && Base.EURAUD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURAUD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURAUD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURAUD_DOWN_S2_OCO1")))
{
Base.EURAUD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURAUD_DOWN_S2_OCO2")))
{
Base.EURAUD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURAUD_DOWN_S2_OCO3")))
{
Base.EURAUD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURAUD_DOWN_S2_OCO4")))
{
Base.EURAUD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURAUD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURAUD_OCO1_EO1_DOWN_S2)
Base.EURAUD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO2_DOWN_S2)
Base.EURAUD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO3_DOWN_S2)
Base.EURAUD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO4_DOWN_S2)
Base.EURAUD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO5_DOWN_S2)
Base.EURAUD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO1_EO6_DOWN_S2)
Base.EURAUD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURAUD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURAUD_OCO1S1_DOWN_S2 = 0;
for (; EURAUD_OCO1S1_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets1.Count; EURAUD_OCO1S1_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets1[EURAUD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO1Sets1[EURAUD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_1__Time out_OCO1");
Base.EURAUD_DOWN_S2_OCO1Sets1.Clear();
EURAUD_OCO1S1_DOWN_S2 = 0;
break;
}
int EURAUD_OCO1S2_DOWN_S2 = 0;
for (; EURAUD_OCO1S2_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets2.Count; EURAUD_OCO1S2_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets2[EURAUD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO1Sets2[EURAUD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_2__Time out_OCO1");
Base.EURAUD_DOWN_S2_OCO1Sets2.Clear();
EURAUD_OCO1S2_DOWN_S2 = 0;
break;
}
int EURAUD_OCO1S3_DOWN_S2 = 0;
for (; EURAUD_OCO1S3_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets3.Count; EURAUD_OCO1S3_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets3[EURAUD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO1Sets3[EURAUD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_3__Time out_OCO1");
Base.EURAUD_DOWN_S2_OCO1Sets3.Clear();
EURAUD_OCO1S3_DOWN_S2 = 0;
break;
}
int EURAUD_OCO1S4_DOWN_S2 = 0;
for (; EURAUD_OCO1S4_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets4.Count; EURAUD_OCO1S4_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets4[EURAUD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO1Sets4[EURAUD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_4__Time out_OCO1");
Base.EURAUD_DOWN_S2_OCO1Sets4.Clear();
EURAUD_OCO1S4_DOWN_S2 = 0;
break;
}
int EURAUD_OCO1S5_DOWN_S2 = 0;
for (; EURAUD_OCO1S5_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets5.Count; EURAUD_OCO1S5_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets5[EURAUD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO1Sets5[EURAUD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_5__Time out_OCO1");
Base.EURAUD_DOWN_S2_OCO1Sets5.Clear();
EURAUD_OCO1S5_DOWN_S2 = 0;
break;
}
int EURAUD_OCO1S6_DOWN_S2 = 0;
for (; EURAUD_OCO1S6_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO1Sets6.Count; EURAUD_OCO1S6_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO1Sets6[EURAUD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO1Sets6[EURAUD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_6__Time out_OCO1");
Base.EURAUD_DOWN_S2_OCO1Sets6.Clear();
EURAUD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO2_EO1_DOWN_S2)
Base.EURAUD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO2_DOWN_S2)
Base.EURAUD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO3_DOWN_S2)
Base.EURAUD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO4_DOWN_S2)
Base.EURAUD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO5_DOWN_S2)
Base.EURAUD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO2_EO6_DOWN_S2)
Base.EURAUD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURAUD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURAUD_OCO2S1_DOWN_S2 = 0;
for (; EURAUD_OCO2S1_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets1.Count; EURAUD_OCO2S1_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets1[EURAUD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO2Sets1[EURAUD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_1__Time out_OCO2");
Base.EURAUD_DOWN_S2_OCO2Sets1.Clear();
EURAUD_OCO2S1_DOWN_S2 = 0;
break;
}
int EURAUD_OCO2S2_DOWN_S2 = 0;
for (; EURAUD_OCO2S2_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets2.Count; EURAUD_OCO2S2_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets2[EURAUD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO2Sets2[EURAUD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_2__Time out_OCO2");
Base.EURAUD_DOWN_S2_OCO2Sets2.Clear();
EURAUD_OCO2S2_DOWN_S2 = 0;
break;
}
int EURAUD_OCO2S3_DOWN_S2 = 0;
for (; EURAUD_OCO2S3_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets3.Count; EURAUD_OCO2S3_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets3[EURAUD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO2Sets3[EURAUD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_3__Time out_OCO2");
Base.EURAUD_DOWN_S2_OCO2Sets3.Clear();
EURAUD_OCO2S3_DOWN_S2 = 0;
break;
}
int EURAUD_OCO2S4_DOWN_S2 = 0;
for (; EURAUD_OCO2S4_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets4.Count; EURAUD_OCO2S4_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets4[EURAUD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO2Sets4[EURAUD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_4__Time out_OCO2");
Base.EURAUD_DOWN_S2_OCO2Sets4.Clear();
EURAUD_OCO2S4_DOWN_S2 = 0;
break;
}
int EURAUD_OCO2S5_DOWN_S2 = 0;
for (; EURAUD_OCO2S5_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets5.Count; EURAUD_OCO2S5_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets5[EURAUD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO2Sets5[EURAUD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_5__Time out_OCO2");
Base.EURAUD_DOWN_S2_OCO2Sets5.Clear();
EURAUD_OCO2S5_DOWN_S2 = 0;
break;
}
int EURAUD_OCO2S6_DOWN_S2 = 0;
for (; EURAUD_OCO2S6_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO2Sets6.Count; EURAUD_OCO2S6_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO2Sets6[EURAUD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO2Sets6[EURAUD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_6__Time out_OCO2");
Base.EURAUD_DOWN_S2_OCO2Sets6.Clear();
EURAUD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO3_EO1_DOWN_S2)
Base.EURAUD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO2_DOWN_S2)
Base.EURAUD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO3_DOWN_S2)
Base.EURAUD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO4_DOWN_S2)
Base.EURAUD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO5_DOWN_S2)
Base.EURAUD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO3_EO6_DOWN_S2)
Base.EURAUD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURAUD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURAUD_OCO3S1_DOWN_S2 = 0;
for (; EURAUD_OCO3S1_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets1.Count; EURAUD_OCO3S1_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets1[EURAUD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO3Sets1[EURAUD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_1__Time out_OCO3");
Base.EURAUD_DOWN_S2_OCO3Sets1.Clear();
EURAUD_OCO3S1_DOWN_S2 = 0;
break;
}
int EURAUD_OCO3S2_DOWN_S2 = 0;
for (; EURAUD_OCO3S2_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets2.Count; EURAUD_OCO3S2_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets2[EURAUD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO3Sets2[EURAUD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_2__Time out_OCO3");
Base.EURAUD_DOWN_S2_OCO3Sets2.Clear();
EURAUD_OCO3S2_DOWN_S2 = 0;
break;
}
int EURAUD_OCO3S3_DOWN_S2 = 0;
for (; EURAUD_OCO3S3_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets3.Count; EURAUD_OCO3S3_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets3[EURAUD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO3Sets3[EURAUD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_3__Time out_OCO3");
Base.EURAUD_DOWN_S2_OCO3Sets3.Clear();
EURAUD_OCO3S3_DOWN_S2 = 0;
break;
}
int EURAUD_OCO3S4_DOWN_S2 = 0;
for (; EURAUD_OCO3S4_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets4.Count; EURAUD_OCO3S4_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets4[EURAUD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO3Sets4[EURAUD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_4__Time out_OCO3");
Base.EURAUD_DOWN_S2_OCO3Sets4.Clear();
EURAUD_OCO3S4_DOWN_S2 = 0;
break;
}
int EURAUD_OCO3S5_DOWN_S2 = 0;
for (; EURAUD_OCO3S5_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets5.Count; EURAUD_OCO3S5_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets5[EURAUD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO3Sets5[EURAUD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_5__Time out_OCO3");
Base.EURAUD_DOWN_S2_OCO3Sets5.Clear();
EURAUD_OCO3S5_DOWN_S2 = 0;
break;
}
int EURAUD_OCO3S6_DOWN_S2 = 0;
for (; EURAUD_OCO3S6_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO3Sets6.Count; EURAUD_OCO3S6_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO3Sets6[EURAUD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO3Sets6[EURAUD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_6__Time out_OCO3");
Base.EURAUD_DOWN_S2_OCO3Sets6.Clear();
EURAUD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURAUD_OCO4_EO1_DOWN_S2)
Base.EURAUD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO2_DOWN_S2)
Base.EURAUD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO3_DOWN_S2)
Base.EURAUD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO4_DOWN_S2)
Base.EURAUD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO5_DOWN_S2)
Base.EURAUD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.EURAUD_OCO4_EO6_DOWN_S2)
Base.EURAUD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURAUD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURAUD_OCO4S1_DOWN_S2 = 0;
for (; EURAUD_OCO4S1_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets1.Count; EURAUD_OCO4S1_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets1[EURAUD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO4Sets1[EURAUD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_1__Time out_OCO4");
Base.EURAUD_DOWN_S2_OCO4Sets1.Clear();
EURAUD_OCO4S1_DOWN_S2 = 0;
break;
}
int EURAUD_OCO4S2_DOWN_S2 = 0;
for (; EURAUD_OCO4S2_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets2.Count; EURAUD_OCO4S2_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets2[EURAUD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO4Sets2[EURAUD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_2__Time out_OCO4");
Base.EURAUD_DOWN_S2_OCO4Sets2.Clear();
EURAUD_OCO4S2_DOWN_S2 = 0;
break;
}
int EURAUD_OCO4S3_DOWN_S2 = 0;
for (; EURAUD_OCO4S3_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets3.Count; EURAUD_OCO4S3_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets3[EURAUD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO4Sets3[EURAUD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_3__Time out_OCO4");
Base.EURAUD_DOWN_S2_OCO4Sets3.Clear();
EURAUD_OCO4S3_DOWN_S2 = 0;
break;
}
int EURAUD_OCO4S4_DOWN_S2 = 0;
for (; EURAUD_OCO4S4_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets4.Count; EURAUD_OCO4S4_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets4[EURAUD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO4Sets4[EURAUD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_4__Time out_OCO4");
Base.EURAUD_DOWN_S2_OCO4Sets4.Clear();
EURAUD_OCO4S4_DOWN_S2 = 0;
break;
}
int EURAUD_OCO4S5_DOWN_S2 = 0;
for (; EURAUD_OCO4S5_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets5.Count; EURAUD_OCO4S5_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets5[EURAUD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO4Sets5[EURAUD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_5__Time out_OCO4");
Base.EURAUD_DOWN_S2_OCO4Sets5.Clear();
EURAUD_OCO4S5_DOWN_S2 = 0;
break;
}
int EURAUD_OCO4S6_DOWN_S2 = 0;
for (; EURAUD_OCO4S6_DOWN_S2 < Base.EURAUD_DOWN_S2_OCO4Sets6.Count; EURAUD_OCO4S6_DOWN_S2++)
if (Base.EURAUD_DOWN_S2_OCO4Sets6[EURAUD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.EURAUD_DOWN_S2_OCO4Sets6[EURAUD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURAUD", order.Quantity, false, "EURAUD_DOWN_S2_Entry_6__Time out_OCO4");
Base.EURAUD_DOWN_S2_OCO4Sets6.Clear();
EURAUD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURAUD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURAUD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURAUD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURAUD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURAUD_DOWN_S2 = DOWM_EURAUD_DOWN_S2 || DOWT_EURAUD_DOWN_S2 || DOWW_EURAUD_DOWN_S2 || DOWTH_EURAUD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURAUD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURAUD_OCO1_DOWN_S2_IsReady == false ||
Base.EURAUD_OCO2_DOWN_S2_IsReady == false ||
Base.EURAUD_OCO3_DOWN_S2_IsReady == false ||
Base.EURAUD_OCO4_DOWN_S2_IsReady == false)
{
Base.EURAUD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.EURAUD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.EURAUD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.EURAUD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURAUD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.EURAUD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.EURAUD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.EURAUD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
EURAUD_Signal_Condition_DOWN_S2 =
(
/* //pricesM_ASK_OpenpricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_OpenpricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//pricesM_ASK_Openprices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//pricesM_ASK_Openprices_ASK_High[0] < pricesM_ASK_High[0] &&
prices_ASK_High[0] - pricesM_BID_High[0] > prices_ASK_Close[0] * 0.03m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 && //yuhukj
//prices_BID_Close[0] - prices_ASK_Open[0] > 0 &&
//prices_BID_Close[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
//pricesM_BID_Open[1] - pricesM_ASK_Close[1] > 0 &&
//pricesM_BID_High[0] - pricesM_ASK_Open[0] > pricesM_BID_High[1] - pricesM_ASK_Open[1] &&
//pricesM_BID_High[0] > pricesM_BID_High[1] &&
//prices_BID_Close[0] > prices_ASK_Close[0]
//prices_BID_Close[0] - prices_ASK_Open[0] > prices_ASK_Open[0] * 0.00001m &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
//prices_BID_Close[0] < pricesM_BID_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.001m */
pricesM_BID_High[0] - pricesM_BID_Open[0] > prices_BID_Close[0] * 0.005m &&
pricesM_BID_High[1] - pricesM_BID_Open[1] > prices_BID_Close[0] * 0.00001m &&
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > prices_BID_Close[0] * 0.0001m &&
pricesM_ASK_Open[1] - pricesM_BID_Close[1] > prices_BID_Close[0] * 0.0001m &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.001m
);
EURAUD_DOWN_S2_SL = 0.02m;
EURAUD_DOWN_S2_TP1 = 0.001m;
/* EURAUD_DOWN_S2_SL = 0.03m;
EURAUD_DOWN_S2_TP1 = 0.01m; */
EURAUD_DOWN_S2_TP2 = EURAUD_DOWN_S2_SL * 0;
EURAUD_DOWN_S2_TP3 = EURAUD_DOWN_S2_SL * 0;
EURAUD_DOWN_S2_TP4 = EURAUD_DOWN_S2_SL * 0;
EURAUD_DOWN_S2_TP5 = EURAUD_DOWN_S2_SL * 0;
EURAUD_DOWN_S2_TP6 = EURAUD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
EURAUD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURAUD_quantity_SL_DOWN_S2 = EURAUD_quantity_DOWN_S2;
EURAUD_quantity_TP1_DOWN_S2 = (int)Math.Floor(EURAUD_quantity_DOWN_S2 * 1m);
EURAUD_quantity_TP2_DOWN_S2 = (int)Math.Floor(EURAUD_quantity_TP1_DOWN_S2 * 0m);
EURAUD_quantity_TP3_DOWN_S2 = (int)Math.Floor(EURAUD_quantity_TP2_DOWN_S2 * 0m);
EURAUD_quantity_TP4_DOWN_S2 = (int)Math.Floor(EURAUD_quantity_TP3_DOWN_S2 * 0m);
EURAUD_quantity_TP5_DOWN_S2 = (int)Math.Floor(EURAUD_quantity_TP4_DOWN_S2 * 0m);
EURAUD_quantity_TP6_DOWN_S2 = (int)Math.Floor(EURAUD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (EURAUD_Signal_Condition_DOWN_S2 &&
DOWR_EURAUD_DOWN_S2 &&
Base.EURAUD_OCO1_DOWN_S2_IsReady == true &&
Base.EURAUD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.EURAUD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP1_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP1_OCO1");
Base.EURAUD_OCO1_EO1_DOWN_S2 = false;
Base.EURAUD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP2_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP2_OCO1");
Base.EURAUD_OCO1_EO2_DOWN_S2 = false;
Base.EURAUD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP3_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP3_OCO1");
Base.EURAUD_OCO1_EO3_DOWN_S2 = false;
Base.EURAUD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP4_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP4_OCO1");
Base.EURAUD_OCO1_EO4_DOWN_S2 = false;
Base.EURAUD_OCO1_DOWN_S2_IsReady = false;
if (Base.EURAUD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (EURAUD_Signal_Condition_DOWN_S2 &&
DOWR_EURAUD_DOWN_S2 &&
Base.EURAUD_OCO2_DOWN_S2_IsReady == true &&
Base.EURAUD_OCO1_DOWN_S2_IsReady == false &&
Base.EURAUD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.EURAUD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP1_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP1_OCO2");
Base.EURAUD_OCO2_EO1_DOWN_S2 = false;
Base.EURAUD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP2_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP2_OCO2");
Base.EURAUD_OCO2_EO2_DOWN_S2 = false;
Base.EURAUD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP3_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP3_OCO2");
Base.EURAUD_OCO2_EO3_DOWN_S2 = false;
Base.EURAUD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP4_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP4_OCO2");
Base.EURAUD_OCO2_EO4_DOWN_S2 = false;
Base.EURAUD_OCO2_DOWN_S2_IsReady = false;
if (Base.EURAUD_OCO2_DOWN_S2_IsReady == false && Base.EURAUD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (EURAUD_Signal_Condition_DOWN_S2 &&
DOWR_EURAUD_DOWN_S2 &&
Base.EURAUD_OCO3_DOWN_S2_IsReady == true &&
Base.EURAUD_OCO1_DOWN_S2_IsReady == false &&
Base.EURAUD_OCO2_DOWN_S2_IsReady == false &&
Base.EURAUD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.EURAUD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP1_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP1_OCO3");
Base.EURAUD_OCO3_EO1_DOWN_S2 = false;
Base.EURAUD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP2_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP2_OCO3");
Base.EURAUD_OCO3_EO2_DOWN_S2 = false;
Base.EURAUD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP3_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP3_OCO3");
Base.EURAUD_OCO3_EO3_DOWN_S2 = false;
Base.EURAUD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP4_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP4_OCO3");
Base.EURAUD_OCO3_EO4_DOWN_S2 = false;
Base.EURAUD_OCO3_DOWN_S2_IsReady = false;
if (Base.EURAUD_OCO3_DOWN_S2_IsReady == false && Base.EURAUD_OCO2_DOWN_S2_IsReady == false && Base.EURAUD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (EURAUD_Signal_Condition_DOWN_S2 &&
DOWR_EURAUD_DOWN_S2 &&
Base.EURAUD_OCO4_DOWN_S2_IsReady == true &&
Base.EURAUD_OCO1_DOWN_S2_IsReady == false &&
Base.EURAUD_OCO2_DOWN_S2_IsReady == false &&
Base.EURAUD_OCO3_DOWN_S2_IsReady == false &&
Base.EURAUD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.EURAUD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP1_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP1_OCO4");
Base.EURAUD_OCO4_EO1_DOWN_S2 = false;
Base.EURAUD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP2_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP2_OCO4");
Base.EURAUD_OCO4_EO2_DOWN_S2 = false;
Base.EURAUD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP3_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP3_OCO4");
Base.EURAUD_OCO4_EO3_DOWN_S2 = false;
Base.EURAUD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURAUD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURAUD_quantity_TP4_DOWN_S2, false,"EURAUD_DOWN_S2_Entry_TP4_OCO4");
Base.EURAUD_OCO4_EO4_DOWN_S2 = false;
Base.EURAUD_OCO4_DOWN_S2_IsReady = false;
if (Base.EURAUD_OCO4_DOWN_S2_IsReady == false && Base.EURAUD_OCO3_DOWN_S2_IsReady == false && Base.EURAUD_OCO2_DOWN_S2_IsReady == false && Base.EURAUD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURNZD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURNZD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
if (OrderID.Tag.StartsWith("EURNZD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURNZD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURNZD S2");
}
}
if (Base.EURNZD_OCO1_EO1_DOWN_S2)
Base.EURNZD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO1_EO2_DOWN_S2)
Base.EURNZD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO1_EO3_DOWN_S2)
Base.EURNZD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO1_EO4_DOWN_S2)
Base.EURNZD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO1_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP1_EURNZD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP1,"TP1_EURNZD_DOWN_S2_OCO1"));
};
Base.EURNZD_DOWN_S2_OCO1Sets1.Add( Base.EURNZD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO2_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP2_EURNZD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP2,"TP2_EURNZD_DOWN_S2_OCO1"));
};
Base.EURNZD_DOWN_S2_OCO1Sets2.Add( Base.EURNZD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO3_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP3_EURNZD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP3,"TP3_EURNZD_DOWN_S2_OCO1"));
};
Base.EURNZD_DOWN_S2_OCO1Sets3.Add( Base.EURNZD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO1_EO4_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP4_EURNZD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP4,"TP4_EURNZD_DOWN_S2_OCO1"));
};
Base.EURNZD_DOWN_S2_OCO1Sets4.Add( Base.EURNZD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO1_EO4_DOWN_S2_ID = -1;
}
int EURNZD_OCO1S1_DOWN_S2 = 0;
for (; EURNZD_OCO1S1_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets1.Count; EURNZD_OCO1S1_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets1[EURNZD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO1Sets1[EURNZD_OCO1S1_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO1Sets1.RemoveAt(EURNZD_OCO1S1_DOWN_S2);
EURNZD_OCO1S1_DOWN_S2 = 0;
break;
}
int EURNZD_OCO1S2_DOWN_S2 = 0;
for (; EURNZD_OCO1S2_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets2.Count; EURNZD_OCO1S2_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets2[EURNZD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO1Sets2[EURNZD_OCO1S2_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO1Sets2.RemoveAt(EURNZD_OCO1S2_DOWN_S2);
EURNZD_OCO1S2_DOWN_S2 = 0;
break;
}
int EURNZD_OCO1S3_DOWN_S2 = 0;
for (; EURNZD_OCO1S3_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets3.Count; EURNZD_OCO1S3_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets3[EURNZD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO1Sets3[EURNZD_OCO1S3_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO1Sets3.RemoveAt(EURNZD_OCO1S3_DOWN_S2);
EURNZD_OCO1S3_DOWN_S2 = 0;
break;
}
int EURNZD_OCO1S4_DOWN_S2 = 0;
for (; EURNZD_OCO1S4_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO1Sets4.Count; EURNZD_OCO1S4_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO1Sets4[EURNZD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO1Sets4[EURNZD_OCO1S4_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO1Sets4.RemoveAt(EURNZD_OCO1S4_DOWN_S2);
EURNZD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO2_EO1_DOWN_S2)
Base.EURNZD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO2_EO2_DOWN_S2)
Base.EURNZD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO2_EO3_DOWN_S2)
Base.EURNZD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO2_EO4_DOWN_S2)
Base.EURNZD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO1_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP1_EURNZD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP1,"TP1_EURNZD_DOWN_S2_OCO2"));
};
Base.EURNZD_DOWN_S2_OCO2Sets1.Add( Base.EURNZD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO2_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP2_EURNZD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP2,"TP2_EURNZD_DOWN_S2_OCO2"));
};
Base.EURNZD_DOWN_S2_OCO2Sets2.Add( Base.EURNZD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO3_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP3_EURNZD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP3,"TP3_EURNZD_DOWN_S2_OCO2"));
};
Base.EURNZD_DOWN_S2_OCO2Sets3.Add( Base.EURNZD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO2_EO4_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP4_EURNZD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP4,"TP4_EURNZD_DOWN_S2_OCO2"));
};
Base.EURNZD_DOWN_S2_OCO2Sets4.Add( Base.EURNZD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO2_EO4_DOWN_S2_ID = -1;
}
int EURNZD_OCO2S1_DOWN_S2 = 0;
for (; EURNZD_OCO2S1_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets1.Count; EURNZD_OCO2S1_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets1[EURNZD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO2Sets1[EURNZD_OCO2S1_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO2Sets1.RemoveAt(EURNZD_OCO2S1_DOWN_S2);
EURNZD_OCO2S1_DOWN_S2 = 0;
break;
}
int EURNZD_OCO2S2_DOWN_S2 = 0;
for (; EURNZD_OCO2S2_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets2.Count; EURNZD_OCO2S2_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets2[EURNZD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO2Sets2[EURNZD_OCO2S2_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO2Sets2.RemoveAt(EURNZD_OCO2S2_DOWN_S2);
EURNZD_OCO2S2_DOWN_S2 = 0;
break;
}
int EURNZD_OCO2S3_DOWN_S2 = 0;
for (; EURNZD_OCO2S3_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets3.Count; EURNZD_OCO2S3_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets3[EURNZD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO2Sets3[EURNZD_OCO2S3_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO2Sets3.RemoveAt(EURNZD_OCO2S3_DOWN_S2);
EURNZD_OCO2S3_DOWN_S2 = 0;
break;
}
int EURNZD_OCO2S4_DOWN_S2 = 0;
for (; EURNZD_OCO2S4_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO2Sets4.Count; EURNZD_OCO2S4_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO2Sets4[EURNZD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO2Sets4[EURNZD_OCO2S4_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO2Sets4.RemoveAt(EURNZD_OCO2S4_DOWN_S2);
EURNZD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO3_EO1_DOWN_S2)
Base.EURNZD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO3_EO2_DOWN_S2)
Base.EURNZD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO3_EO3_DOWN_S2)
Base.EURNZD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO3_EO4_DOWN_S2)
Base.EURNZD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO1_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP1_EURNZD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP1,"TP1_EURNZD_DOWN_S2_OCO3"));
};
Base.EURNZD_DOWN_S2_OCO3Sets1.Add( Base.EURNZD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO2_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP2_EURNZD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP2,"TP2_EURNZD_DOWN_S2_OCO3"));
};
Base.EURNZD_DOWN_S2_OCO3Sets2.Add( Base.EURNZD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO3_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP3_EURNZD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP3,"TP3_EURNZD_DOWN_S2_OCO3"));
};
Base.EURNZD_DOWN_S2_OCO3Sets3.Add( Base.EURNZD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO3_EO4_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP4_EURNZD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP4,"TP4_EURNZD_DOWN_S2_OCO3"));
};
Base.EURNZD_DOWN_S2_OCO3Sets4.Add( Base.EURNZD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO3_EO4_DOWN_S2_ID = -1;
}
int EURNZD_OCO3S1_DOWN_S2 = 0;
for (; EURNZD_OCO3S1_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets1.Count; EURNZD_OCO3S1_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets1[EURNZD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO3Sets1[EURNZD_OCO3S1_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO3Sets1.RemoveAt(EURNZD_OCO3S1_DOWN_S2);
EURNZD_OCO3S1_DOWN_S2 = 0;
break;
}
int EURNZD_OCO3S2_DOWN_S2 = 0;
for (; EURNZD_OCO3S2_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets2.Count; EURNZD_OCO3S2_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets2[EURNZD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO3Sets2[EURNZD_OCO3S2_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO3Sets2.RemoveAt(EURNZD_OCO3S2_DOWN_S2);
EURNZD_OCO3S2_DOWN_S2 = 0;
break;
}
int EURNZD_OCO3S3_DOWN_S2 = 0;
for (; EURNZD_OCO3S3_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets3.Count; EURNZD_OCO3S3_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets3[EURNZD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO3Sets3[EURNZD_OCO3S3_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO3Sets3.RemoveAt(EURNZD_OCO3S3_DOWN_S2);
EURNZD_OCO3S3_DOWN_S2 = 0;
break;
}
int EURNZD_OCO3S4_DOWN_S2 = 0;
for (; EURNZD_OCO3S4_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO3Sets4.Count; EURNZD_OCO3S4_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO3Sets4[EURNZD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO3Sets4[EURNZD_OCO3S4_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO3Sets4.RemoveAt(EURNZD_OCO3S4_DOWN_S2);
EURNZD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO4_EO1_DOWN_S2)
Base.EURNZD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO4_EO2_DOWN_S2)
Base.EURNZD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO4_EO3_DOWN_S2)
Base.EURNZD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURNZD_OCO4_EO4_DOWN_S2)
Base.EURNZD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO1_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP1_EURNZD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP1,"TP1_EURNZD_DOWN_S2_OCO4"));
};
Base.EURNZD_DOWN_S2_OCO4Sets1.Add( Base.EURNZD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO2_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP2_EURNZD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP2,"TP2_EURNZD_DOWN_S2_OCO4"));
};
Base.EURNZD_DOWN_S2_OCO4Sets2.Add( Base.EURNZD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO3_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP3_EURNZD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP3,"TP3_EURNZD_DOWN_S2_OCO4"));
};
Base.EURNZD_DOWN_S2_OCO4Sets3.Add( Base.EURNZD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURNZD_OCO4_EO4_DOWN_S2_ID)
{
Base.EURNZD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURNZD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURNZD_DOWN_S2_SL,"SL_TP4_EURNZD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURNZD_DOWN_S2_TP4,"TP4_EURNZD_DOWN_S2_OCO4"));
};
Base.EURNZD_DOWN_S2_OCO4Sets4.Add( Base.EURNZD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURNZD_OCO4_EO4_DOWN_S2_ID = -1;
}
int EURNZD_OCO4S1_DOWN_S2 = 0;
for (; EURNZD_OCO4S1_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets1.Count; EURNZD_OCO4S1_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets1[EURNZD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO4Sets1[EURNZD_OCO4S1_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO4Sets1.RemoveAt(EURNZD_OCO4S1_DOWN_S2);
EURNZD_OCO4S1_DOWN_S2 = 0;
break;
}
int EURNZD_OCO4S2_DOWN_S2 = 0;
for (; EURNZD_OCO4S2_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets2.Count; EURNZD_OCO4S2_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets2[EURNZD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO4Sets2[EURNZD_OCO4S2_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO4Sets2.RemoveAt(EURNZD_OCO4S2_DOWN_S2);
EURNZD_OCO4S2_DOWN_S2 = 0;
break;
}
int EURNZD_OCO4S3_DOWN_S2 = 0;
for (; EURNZD_OCO4S3_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets3.Count; EURNZD_OCO4S3_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets3[EURNZD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO4Sets3[EURNZD_OCO4S3_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO4Sets3.RemoveAt(EURNZD_OCO4S3_DOWN_S2);
EURNZD_OCO4S3_DOWN_S2 = 0;
break;
}
int EURNZD_OCO4S4_DOWN_S2 = 0;
for (; EURNZD_OCO4S4_DOWN_S2 < Base.EURNZD_DOWN_S2_OCO4Sets4.Count; EURNZD_OCO4S4_DOWN_S2++)
if (Base.EURNZD_DOWN_S2_OCO4Sets4[EURNZD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURNZD_DOWN_S2_OCO4Sets4[EURNZD_OCO4S4_DOWN_S2].Filled();
Base.EURNZD_DOWN_S2_OCO4Sets4.RemoveAt(EURNZD_OCO4S4_DOWN_S2);
EURNZD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURCHF_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURCHF_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURCHF_DOWN_S2_OCO1")))
{
Base.EURCHF_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCHF_DOWN_S2_OCO2")))
{
Base.EURCHF_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCHF_DOWN_S2_OCO3")))
{
Base.EURCHF_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCHF_DOWN_S2_OCO4")))
{
Base.EURCHF_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURCHF_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURCHF_OCO1_EO1_DOWN_S2)
Base.EURCHF_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO2_DOWN_S2)
Base.EURCHF_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO3_DOWN_S2)
Base.EURCHF_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO4_DOWN_S2)
Base.EURCHF_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO5_DOWN_S2)
Base.EURCHF_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO6_DOWN_S2)
Base.EURCHF_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int EURCHF_OCO1S1_DOWN_S2 = 0;
for (; EURCHF_OCO1S1_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets1.Count; EURCHF_OCO1S1_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets1[EURCHF_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO1Sets1[EURCHF_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_1__Time out_OCO1");
Base.EURCHF_DOWN_S2_OCO1Sets1.Clear();
EURCHF_OCO1S1_DOWN_S2 = 0;
break;
}
int EURCHF_OCO1S2_DOWN_S2 = 0;
for (; EURCHF_OCO1S2_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets2.Count; EURCHF_OCO1S2_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets2[EURCHF_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO1Sets2[EURCHF_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_2__Time out_OCO1");
Base.EURCHF_DOWN_S2_OCO1Sets2.Clear();
EURCHF_OCO1S2_DOWN_S2 = 0;
break;
}
int EURCHF_OCO1S3_DOWN_S2 = 0;
for (; EURCHF_OCO1S3_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets3.Count; EURCHF_OCO1S3_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets3[EURCHF_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO1Sets3[EURCHF_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_3__Time out_OCO1");
Base.EURCHF_DOWN_S2_OCO1Sets3.Clear();
EURCHF_OCO1S3_DOWN_S2 = 0;
break;
}
int EURCHF_OCO1S4_DOWN_S2 = 0;
for (; EURCHF_OCO1S4_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets4.Count; EURCHF_OCO1S4_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets4[EURCHF_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO1Sets4[EURCHF_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_4__Time out_OCO1");
Base.EURCHF_DOWN_S2_OCO1Sets4.Clear();
EURCHF_OCO1S4_DOWN_S2 = 0;
break;
}
int EURCHF_OCO1S5_DOWN_S2 = 0;
for (; EURCHF_OCO1S5_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets5.Count; EURCHF_OCO1S5_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets5[EURCHF_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO1Sets5[EURCHF_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_5__Time out_OCO1");
Base.EURCHF_DOWN_S2_OCO1Sets5.Clear();
EURCHF_OCO1S5_DOWN_S2 = 0;
break;
}
int EURCHF_OCO1S6_DOWN_S2 = 0;
for (; EURCHF_OCO1S6_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO1Sets6.Count; EURCHF_OCO1S6_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO1Sets6[EURCHF_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO1Sets6[EURCHF_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_6__Time out_OCO1");
Base.EURCHF_DOWN_S2_OCO1Sets6.Clear();
EURCHF_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO2_EO1_DOWN_S2)
Base.EURCHF_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO2_DOWN_S2)
Base.EURCHF_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO3_DOWN_S2)
Base.EURCHF_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO4_DOWN_S2)
Base.EURCHF_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO5_DOWN_S2)
Base.EURCHF_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO6_DOWN_S2)
Base.EURCHF_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int EURCHF_OCO2S1_DOWN_S2 = 0;
for (; EURCHF_OCO2S1_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets1.Count; EURCHF_OCO2S1_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets1[EURCHF_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO2Sets1[EURCHF_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_1__Time out_OCO2");
Base.EURCHF_DOWN_S2_OCO2Sets1.Clear();
EURCHF_OCO2S1_DOWN_S2 = 0;
break;
}
int EURCHF_OCO2S2_DOWN_S2 = 0;
for (; EURCHF_OCO2S2_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets2.Count; EURCHF_OCO2S2_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets2[EURCHF_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO2Sets2[EURCHF_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_2__Time out_OCO2");
Base.EURCHF_DOWN_S2_OCO2Sets2.Clear();
EURCHF_OCO2S2_DOWN_S2 = 0;
break;
}
int EURCHF_OCO2S3_DOWN_S2 = 0;
for (; EURCHF_OCO2S3_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets3.Count; EURCHF_OCO2S3_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets3[EURCHF_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO2Sets3[EURCHF_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_3__Time out_OCO2");
Base.EURCHF_DOWN_S2_OCO2Sets3.Clear();
EURCHF_OCO2S3_DOWN_S2 = 0;
break;
}
int EURCHF_OCO2S4_DOWN_S2 = 0;
for (; EURCHF_OCO2S4_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets4.Count; EURCHF_OCO2S4_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets4[EURCHF_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO2Sets4[EURCHF_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_4__Time out_OCO2");
Base.EURCHF_DOWN_S2_OCO2Sets4.Clear();
EURCHF_OCO2S4_DOWN_S2 = 0;
break;
}
int EURCHF_OCO2S5_DOWN_S2 = 0;
for (; EURCHF_OCO2S5_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets5.Count; EURCHF_OCO2S5_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets5[EURCHF_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO2Sets5[EURCHF_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_5__Time out_OCO2");
Base.EURCHF_DOWN_S2_OCO2Sets5.Clear();
EURCHF_OCO2S5_DOWN_S2 = 0;
break;
}
int EURCHF_OCO2S6_DOWN_S2 = 0;
for (; EURCHF_OCO2S6_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO2Sets6.Count; EURCHF_OCO2S6_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO2Sets6[EURCHF_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO2Sets6[EURCHF_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_6__Time out_OCO2");
Base.EURCHF_DOWN_S2_OCO2Sets6.Clear();
EURCHF_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO3_EO1_DOWN_S2)
Base.EURCHF_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO2_DOWN_S2)
Base.EURCHF_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO3_DOWN_S2)
Base.EURCHF_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO4_DOWN_S2)
Base.EURCHF_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO5_DOWN_S2)
Base.EURCHF_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO6_DOWN_S2)
Base.EURCHF_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int EURCHF_OCO3S1_DOWN_S2 = 0;
for (; EURCHF_OCO3S1_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets1.Count; EURCHF_OCO3S1_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets1[EURCHF_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO3Sets1[EURCHF_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_1__Time out_OCO3");
Base.EURCHF_DOWN_S2_OCO3Sets1.Clear();
EURCHF_OCO3S1_DOWN_S2 = 0;
break;
}
int EURCHF_OCO3S2_DOWN_S2 = 0;
for (; EURCHF_OCO3S2_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets2.Count; EURCHF_OCO3S2_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets2[EURCHF_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO3Sets2[EURCHF_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_2__Time out_OCO3");
Base.EURCHF_DOWN_S2_OCO3Sets2.Clear();
EURCHF_OCO3S2_DOWN_S2 = 0;
break;
}
int EURCHF_OCO3S3_DOWN_S2 = 0;
for (; EURCHF_OCO3S3_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets3.Count; EURCHF_OCO3S3_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets3[EURCHF_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO3Sets3[EURCHF_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_3__Time out_OCO3");
Base.EURCHF_DOWN_S2_OCO3Sets3.Clear();
EURCHF_OCO3S3_DOWN_S2 = 0;
break;
}
int EURCHF_OCO3S4_DOWN_S2 = 0;
for (; EURCHF_OCO3S4_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets4.Count; EURCHF_OCO3S4_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets4[EURCHF_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO3Sets4[EURCHF_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_4__Time out_OCO3");
Base.EURCHF_DOWN_S2_OCO3Sets4.Clear();
EURCHF_OCO3S4_DOWN_S2 = 0;
break;
}
int EURCHF_OCO3S5_DOWN_S2 = 0;
for (; EURCHF_OCO3S5_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets5.Count; EURCHF_OCO3S5_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets5[EURCHF_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO3Sets5[EURCHF_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_5__Time out_OCO3");
Base.EURCHF_DOWN_S2_OCO3Sets5.Clear();
EURCHF_OCO3S5_DOWN_S2 = 0;
break;
}
int EURCHF_OCO3S6_DOWN_S2 = 0;
for (; EURCHF_OCO3S6_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO3Sets6.Count; EURCHF_OCO3S6_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO3Sets6[EURCHF_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO3Sets6[EURCHF_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_6__Time out_OCO3");
Base.EURCHF_DOWN_S2_OCO3Sets6.Clear();
EURCHF_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO4_EO1_DOWN_S2)
Base.EURCHF_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO2_DOWN_S2)
Base.EURCHF_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO3_DOWN_S2)
Base.EURCHF_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO4_DOWN_S2)
Base.EURCHF_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO5_DOWN_S2)
Base.EURCHF_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO6_DOWN_S2)
Base.EURCHF_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCHF_DOWN_S2_OCO_DELAY_7DAY))
{
int EURCHF_OCO4S1_DOWN_S2 = 0;
for (; EURCHF_OCO4S1_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets1.Count; EURCHF_OCO4S1_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets1[EURCHF_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO4Sets1[EURCHF_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_1__Time out_OCO4");
Base.EURCHF_DOWN_S2_OCO4Sets1.Clear();
EURCHF_OCO4S1_DOWN_S2 = 0;
break;
}
int EURCHF_OCO4S2_DOWN_S2 = 0;
for (; EURCHF_OCO4S2_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets2.Count; EURCHF_OCO4S2_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets2[EURCHF_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO4Sets2[EURCHF_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_2__Time out_OCO4");
Base.EURCHF_DOWN_S2_OCO4Sets2.Clear();
EURCHF_OCO4S2_DOWN_S2 = 0;
break;
}
int EURCHF_OCO4S3_DOWN_S2 = 0;
for (; EURCHF_OCO4S3_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets3.Count; EURCHF_OCO4S3_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets3[EURCHF_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO4Sets3[EURCHF_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_3__Time out_OCO4");
Base.EURCHF_DOWN_S2_OCO4Sets3.Clear();
EURCHF_OCO4S3_DOWN_S2 = 0;
break;
}
int EURCHF_OCO4S4_DOWN_S2 = 0;
for (; EURCHF_OCO4S4_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets4.Count; EURCHF_OCO4S4_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets4[EURCHF_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO4Sets4[EURCHF_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_4__Time out_OCO4");
Base.EURCHF_DOWN_S2_OCO4Sets4.Clear();
EURCHF_OCO4S4_DOWN_S2 = 0;
break;
}
int EURCHF_OCO4S5_DOWN_S2 = 0;
for (; EURCHF_OCO4S5_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets5.Count; EURCHF_OCO4S5_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets5[EURCHF_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO4Sets5[EURCHF_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_5__Time out_OCO4");
Base.EURCHF_DOWN_S2_OCO4Sets5.Clear();
EURCHF_OCO4S5_DOWN_S2 = 0;
break;
}
int EURCHF_OCO4S6_DOWN_S2 = 0;
for (; EURCHF_OCO4S6_DOWN_S2 < Base.EURCHF_DOWN_S2_OCO4Sets6.Count; EURCHF_OCO4S6_DOWN_S2++)
if (Base.EURCHF_DOWN_S2_OCO4Sets6[EURCHF_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.EURCHF_DOWN_S2_OCO4Sets6[EURCHF_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_DOWN_S2_Entry_6__Time out_OCO4");
Base.EURCHF_DOWN_S2_OCO4Sets6.Clear();
EURCHF_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURCHF_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURCHF_DOWN_S2 = DOWM_EURCHF_DOWN_S2 || DOWT_EURCHF_DOWN_S2 || DOWW_EURCHF_DOWN_S2 || DOWTH_EURCHF_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURCHF_OCO1_DOWN_S2_IsReady == false ||
Base.EURCHF_OCO2_DOWN_S2_IsReady == false ||
Base.EURCHF_OCO3_DOWN_S2_IsReady == false ||
Base.EURCHF_OCO4_DOWN_S2_IsReady == false)
{
Base.EURCHF_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.EURCHF_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.EURCHF_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.EURCHF_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.EURCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.EURCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.EURCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
}
EURCHF_Signal_Condition_DOWN_S2 =
(
pricesM_BID_High[0] - pricesM_BID_Open[0] > prices_BID_Close[0] * 0.0075m &&
pricesM_BID_High[1] - pricesM_BID_Open[1] > prices_BID_Close[0] * 0.00001m &&
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > prices_BID_Close[0] * 0.0001m &&
pricesM_ASK_Open[1] - pricesM_BID_Close[1] > prices_BID_Close[0] * 0.0001m &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.0002m
);
EURCHF_DOWN_S2_SL = 0.01m;
EURCHF_DOWN_S2_TP1 = 0.002m;
EURCHF_DOWN_S2_TP2 = EURCHF_DOWN_S2_SL * 0;
EURCHF_DOWN_S2_TP3 = EURCHF_DOWN_S2_SL * 0;
EURCHF_DOWN_S2_TP4 = EURCHF_DOWN_S2_SL * 0;
EURCHF_DOWN_S2_TP5 = EURCHF_DOWN_S2_SL * 0;
EURCHF_DOWN_S2_TP6 = EURCHF_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
EURCHF_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURCHF_quantity_SL_DOWN_S2 = EURCHF_quantity_DOWN_S2;
EURCHF_quantity_TP1_DOWN_S2 = (int)Math.Floor(EURCHF_quantity_DOWN_S2 * 1m);
EURCHF_quantity_TP2_DOWN_S2 = (int)Math.Floor(EURCHF_quantity_TP1_DOWN_S2 * 0m);
EURCHF_quantity_TP3_DOWN_S2 = (int)Math.Floor(EURCHF_quantity_TP2_DOWN_S2 * 0m);
EURCHF_quantity_TP4_DOWN_S2 = (int)Math.Floor(EURCHF_quantity_TP3_DOWN_S2 * 0m);
EURCHF_quantity_TP5_DOWN_S2 = (int)Math.Floor(EURCHF_quantity_TP4_DOWN_S2 * 0m);
EURCHF_quantity_TP6_DOWN_S2 = (int)Math.Floor(EURCHF_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (EURCHF_Signal_Condition_DOWN_S2 &&
DOWR_EURCHF_DOWN_S2 &&
Base.EURCHF_OCO1_DOWN_S2_IsReady == true &&
Base.EURCHF_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.EURCHF_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP1_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP1_OCO1");
Base.EURCHF_OCO1_EO1_DOWN_S2 = false;
Base.EURCHF_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP2_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP2_OCO1");
Base.EURCHF_OCO1_EO2_DOWN_S2 = false;
Base.EURCHF_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP3_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP3_OCO1");
Base.EURCHF_OCO1_EO3_DOWN_S2 = false;
Base.EURCHF_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP4_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP4_OCO1");
Base.EURCHF_OCO1_EO4_DOWN_S2 = false;
Base.EURCHF_OCO1_DOWN_S2_IsReady = false;
if (Base.EURCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (EURCHF_Signal_Condition_DOWN_S2 &&
DOWR_EURCHF_DOWN_S2 &&
Base.EURCHF_OCO2_DOWN_S2_IsReady == true &&
Base.EURCHF_OCO1_DOWN_S2_IsReady == false &&
Base.EURCHF_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.EURCHF_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP1_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP1_OCO2");
Base.EURCHF_OCO2_EO1_DOWN_S2 = false;
Base.EURCHF_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP2_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP2_OCO2");
Base.EURCHF_OCO2_EO2_DOWN_S2 = false;
Base.EURCHF_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP3_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP3_OCO2");
Base.EURCHF_OCO2_EO3_DOWN_S2 = false;
Base.EURCHF_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP4_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP4_OCO2");
Base.EURCHF_OCO2_EO4_DOWN_S2 = false;
Base.EURCHF_OCO2_DOWN_S2_IsReady = false;
if (Base.EURCHF_OCO2_DOWN_S2_IsReady == false && Base.EURCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (EURCHF_Signal_Condition_DOWN_S2 &&
DOWR_EURCHF_DOWN_S2 &&
Base.EURCHF_OCO3_DOWN_S2_IsReady == true &&
Base.EURCHF_OCO1_DOWN_S2_IsReady == false &&
Base.EURCHF_OCO2_DOWN_S2_IsReady == false &&
Base.EURCHF_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.EURCHF_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP1_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP1_OCO3");
Base.EURCHF_OCO3_EO1_DOWN_S2 = false;
Base.EURCHF_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP2_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP2_OCO3");
Base.EURCHF_OCO3_EO2_DOWN_S2 = false;
Base.EURCHF_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP3_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP3_OCO3");
Base.EURCHF_OCO3_EO3_DOWN_S2 = false;
Base.EURCHF_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP4_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP4_OCO3");
Base.EURCHF_OCO3_EO4_DOWN_S2 = false;
Base.EURCHF_OCO3_DOWN_S2_IsReady = false;
if (Base.EURCHF_OCO3_DOWN_S2_IsReady == false && Base.EURCHF_OCO2_DOWN_S2_IsReady == false && Base.EURCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (EURCHF_Signal_Condition_DOWN_S2 &&
DOWR_EURCHF_DOWN_S2 &&
Base.EURCHF_OCO4_DOWN_S2_IsReady == true &&
Base.EURCHF_OCO1_DOWN_S2_IsReady == false &&
Base.EURCHF_OCO2_DOWN_S2_IsReady == false &&
Base.EURCHF_OCO3_DOWN_S2_IsReady == false &&
Base.EURCHF_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.EURCHF_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP1_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP1_OCO4");
Base.EURCHF_OCO4_EO1_DOWN_S2 = false;
Base.EURCHF_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP2_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP2_OCO4");
Base.EURCHF_OCO4_EO2_DOWN_S2 = false;
Base.EURCHF_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP3_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP3_OCO4");
Base.EURCHF_OCO4_EO3_DOWN_S2 = false;
Base.EURCHF_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURCHF_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP4_DOWN_S2, false,"EURCHF_DOWN_S2_Entry_TP4_OCO4");
Base.EURCHF_OCO4_EO4_DOWN_S2 = false;
Base.EURCHF_OCO4_DOWN_S2_IsReady = false;
if (Base.EURCHF_OCO4_DOWN_S2_IsReady == false && Base.EURCHF_OCO3_DOWN_S2_IsReady == false && Base.EURCHF_OCO2_DOWN_S2_IsReady == false && Base.EURCHF_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct EURNZD_OCO1_DOWN_S2
{
public EURNZD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURNZD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURNZD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURNZD_OCO1_UP_S2
{
public EURNZD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURNZD_UP_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURNZD_UP_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURNZD_UP_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURNZD_UP_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURNZD_UP_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURNZD_UP_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURNZD_UP_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURNZD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURNZD_UP_S2_OCO1")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURNZD_OCO2_DOWN_S2
{
public EURNZD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURNZD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURNZD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURNZD_OCO2_UP_S2
{
public EURNZD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURNZD_UP_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURNZD_UP_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURNZD_UP_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURNZD_UP_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURNZD_UP_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURNZD_UP_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURNZD_UP_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURNZD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURNZD_UP_S2_OCO2")
{
orderTicket.Cancel("EURNZD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURNZD_OCO3_DOWN_S2
{
public EURNZD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURNZD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURNZD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURNZD_OCO3_UP_S2
{
public EURNZD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURNZD_UP_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURNZD_UP_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURNZD_UP_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURNZD_UP_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURNZD_UP_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURNZD_UP_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURNZD_UP_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURNZD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURNZD_UP_S2_OCO3")
{
orderTicket.Cancel("EURNZD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURNZD_OCO4_DOWN_S2
{
public EURNZD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURNZD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURNZD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURNZD_OCO4_UP_S2
{
public EURNZD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURNZD_UP_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURNZD_UP_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURNZD_UP_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURNZD_UP_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURNZD_UP_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURNZD_UP_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURNZD_UP_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURNZD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURNZD_UP_S2_OCO4")
{
orderTicket.Cancel("EURNZD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURCHF_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURCHF_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURCHF_UP_S2_OCO1")))
{
Base.EURCHF_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCHF_UP_S2_OCO2")))
{
Base.EURCHF_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCHF_UP_S2_OCO3")))
{
Base.EURCHF_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURCHF_UP_S2_OCO4")))
{
Base.EURCHF_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURCHF_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURCHF_OCO1_EO1_UP_S2)
Base.EURCHF_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO2_UP_S2)
Base.EURCHF_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO3_UP_S2)
Base.EURCHF_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO4_UP_S2)
Base.EURCHF_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO5_UP_S2)
Base.EURCHF_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO1_EO6_UP_S2)
Base.EURCHF_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCHF_UP_S2_OCO_DELAY_7DAY))
{
int EURCHF_OCO1S1_UP_S2 = 0;
for (; EURCHF_OCO1S1_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets1.Count; EURCHF_OCO1S1_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets1[EURCHF_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO1Sets1[EURCHF_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_1__Time out_OCO1");
Base.EURCHF_UP_S2_OCO1Sets1.Clear();
EURCHF_OCO1S1_UP_S2 = 0;
break;
}
int EURCHF_OCO1S2_UP_S2 = 0;
for (; EURCHF_OCO1S2_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets2.Count; EURCHF_OCO1S2_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets2[EURCHF_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO1Sets2[EURCHF_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_2__Time out_OCO1");
Base.EURCHF_UP_S2_OCO1Sets2.Clear();
EURCHF_OCO1S2_UP_S2 = 0;
break;
}
int EURCHF_OCO1S3_UP_S2 = 0;
for (; EURCHF_OCO1S3_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets3.Count; EURCHF_OCO1S3_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets3[EURCHF_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO1Sets3[EURCHF_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_3__Time out_OCO1");
Base.EURCHF_UP_S2_OCO1Sets3.Clear();
EURCHF_OCO1S3_UP_S2 = 0;
break;
}
int EURCHF_OCO1S4_UP_S2 = 0;
for (; EURCHF_OCO1S4_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets4.Count; EURCHF_OCO1S4_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets4[EURCHF_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO1Sets4[EURCHF_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_4__Time out_OCO1");
Base.EURCHF_UP_S2_OCO1Sets4.Clear();
EURCHF_OCO1S4_UP_S2 = 0;
break;
}
int EURCHF_OCO1S5_UP_S2 = 0;
for (; EURCHF_OCO1S5_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets5.Count; EURCHF_OCO1S5_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets5[EURCHF_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO1Sets5[EURCHF_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_5__Time out_OCO1");
Base.EURCHF_UP_S2_OCO1Sets5.Clear();
EURCHF_OCO1S5_UP_S2 = 0;
break;
}
int EURCHF_OCO1S6_UP_S2 = 0;
for (; EURCHF_OCO1S6_UP_S2 < Base.EURCHF_UP_S2_OCO1Sets6.Count; EURCHF_OCO1S6_UP_S2++)
if (Base.EURCHF_UP_S2_OCO1Sets6[EURCHF_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO1Sets6[EURCHF_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_6__Time out_OCO1");
Base.EURCHF_UP_S2_OCO1Sets6.Clear();
EURCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO2_EO1_UP_S2)
Base.EURCHF_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO2_UP_S2)
Base.EURCHF_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO3_UP_S2)
Base.EURCHF_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO4_UP_S2)
Base.EURCHF_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO5_UP_S2)
Base.EURCHF_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO2_EO6_UP_S2)
Base.EURCHF_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCHF_UP_S2_OCO_DELAY_7DAY))
{
int EURCHF_OCO2S1_UP_S2 = 0;
for (; EURCHF_OCO2S1_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets1.Count; EURCHF_OCO2S1_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets1[EURCHF_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO2Sets1[EURCHF_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_1__Time out_OCO2");
Base.EURCHF_UP_S2_OCO2Sets1.Clear();
EURCHF_OCO2S1_UP_S2 = 0;
break;
}
int EURCHF_OCO2S2_UP_S2 = 0;
for (; EURCHF_OCO2S2_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets2.Count; EURCHF_OCO2S2_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets2[EURCHF_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO2Sets2[EURCHF_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_2__Time out_OCO2");
Base.EURCHF_UP_S2_OCO2Sets2.Clear();
EURCHF_OCO2S2_UP_S2 = 0;
break;
}
int EURCHF_OCO2S3_UP_S2 = 0;
for (; EURCHF_OCO2S3_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets3.Count; EURCHF_OCO2S3_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets3[EURCHF_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO2Sets3[EURCHF_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_3__Time out_OCO2");
Base.EURCHF_UP_S2_OCO2Sets3.Clear();
EURCHF_OCO2S3_UP_S2 = 0;
break;
}
int EURCHF_OCO2S4_UP_S2 = 0;
for (; EURCHF_OCO2S4_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets4.Count; EURCHF_OCO2S4_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets4[EURCHF_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO2Sets4[EURCHF_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_4__Time out_OCO2");
Base.EURCHF_UP_S2_OCO2Sets4.Clear();
EURCHF_OCO2S4_UP_S2 = 0;
break;
}
int EURCHF_OCO2S5_UP_S2 = 0;
for (; EURCHF_OCO2S5_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets5.Count; EURCHF_OCO2S5_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets5[EURCHF_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO2Sets5[EURCHF_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_5__Time out_OCO2");
Base.EURCHF_UP_S2_OCO2Sets5.Clear();
EURCHF_OCO2S5_UP_S2 = 0;
break;
}
int EURCHF_OCO2S6_UP_S2 = 0;
for (; EURCHF_OCO2S6_UP_S2 < Base.EURCHF_UP_S2_OCO2Sets6.Count; EURCHF_OCO2S6_UP_S2++)
if (Base.EURCHF_UP_S2_OCO2Sets6[EURCHF_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO2Sets6[EURCHF_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_6__Time out_OCO2");
Base.EURCHF_UP_S2_OCO2Sets6.Clear();
EURCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO3_EO1_UP_S2)
Base.EURCHF_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO2_UP_S2)
Base.EURCHF_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO3_UP_S2)
Base.EURCHF_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO4_UP_S2)
Base.EURCHF_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO5_UP_S2)
Base.EURCHF_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO3_EO6_UP_S2)
Base.EURCHF_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCHF_UP_S2_OCO_DELAY_7DAY))
{
int EURCHF_OCO3S1_UP_S2 = 0;
for (; EURCHF_OCO3S1_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets1.Count; EURCHF_OCO3S1_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets1[EURCHF_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO3Sets1[EURCHF_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_1__Time out_OCO3");
Base.EURCHF_UP_S2_OCO3Sets1.Clear();
EURCHF_OCO3S1_UP_S2 = 0;
break;
}
int EURCHF_OCO3S2_UP_S2 = 0;
for (; EURCHF_OCO3S2_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets2.Count; EURCHF_OCO3S2_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets2[EURCHF_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO3Sets2[EURCHF_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_2__Time out_OCO3");
Base.EURCHF_UP_S2_OCO3Sets2.Clear();
EURCHF_OCO3S2_UP_S2 = 0;
break;
}
int EURCHF_OCO3S3_UP_S2 = 0;
for (; EURCHF_OCO3S3_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets3.Count; EURCHF_OCO3S3_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets3[EURCHF_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO3Sets3[EURCHF_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_3__Time out_OCO3");
Base.EURCHF_UP_S2_OCO3Sets3.Clear();
EURCHF_OCO3S3_UP_S2 = 0;
break;
}
int EURCHF_OCO3S4_UP_S2 = 0;
for (; EURCHF_OCO3S4_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets4.Count; EURCHF_OCO3S4_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets4[EURCHF_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO3Sets4[EURCHF_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_4__Time out_OCO3");
Base.EURCHF_UP_S2_OCO3Sets4.Clear();
EURCHF_OCO3S4_UP_S2 = 0;
break;
}
int EURCHF_OCO3S5_UP_S2 = 0;
for (; EURCHF_OCO3S5_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets5.Count; EURCHF_OCO3S5_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets5[EURCHF_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO3Sets5[EURCHF_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_5__Time out_OCO3");
Base.EURCHF_UP_S2_OCO3Sets5.Clear();
EURCHF_OCO3S5_UP_S2 = 0;
break;
}
int EURCHF_OCO3S6_UP_S2 = 0;
for (; EURCHF_OCO3S6_UP_S2 < Base.EURCHF_UP_S2_OCO3Sets6.Count; EURCHF_OCO3S6_UP_S2++)
if (Base.EURCHF_UP_S2_OCO3Sets6[EURCHF_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO3Sets6[EURCHF_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_6__Time out_OCO3");
Base.EURCHF_UP_S2_OCO3Sets6.Clear();
EURCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURCHF_OCO4_EO1_UP_S2)
Base.EURCHF_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO2_UP_S2)
Base.EURCHF_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO3_UP_S2)
Base.EURCHF_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO4_UP_S2)
Base.EURCHF_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO5_UP_S2)
Base.EURCHF_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.EURCHF_OCO4_EO6_UP_S2)
Base.EURCHF_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURCHF_UP_S2_OCO_DELAY_7DAY))
{
int EURCHF_OCO4S1_UP_S2 = 0;
for (; EURCHF_OCO4S1_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets1.Count; EURCHF_OCO4S1_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets1[EURCHF_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO4Sets1[EURCHF_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_1__Time out_OCO4");
Base.EURCHF_UP_S2_OCO4Sets1.Clear();
EURCHF_OCO4S1_UP_S2 = 0;
break;
}
int EURCHF_OCO4S2_UP_S2 = 0;
for (; EURCHF_OCO4S2_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets2.Count; EURCHF_OCO4S2_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets2[EURCHF_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO4Sets2[EURCHF_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_2__Time out_OCO4");
Base.EURCHF_UP_S2_OCO4Sets2.Clear();
EURCHF_OCO4S2_UP_S2 = 0;
break;
}
int EURCHF_OCO4S3_UP_S2 = 0;
for (; EURCHF_OCO4S3_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets3.Count; EURCHF_OCO4S3_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets3[EURCHF_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO4Sets3[EURCHF_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_3__Time out_OCO4");
Base.EURCHF_UP_S2_OCO4Sets3.Clear();
EURCHF_OCO4S3_UP_S2 = 0;
break;
}
int EURCHF_OCO4S4_UP_S2 = 0;
for (; EURCHF_OCO4S4_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets4.Count; EURCHF_OCO4S4_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets4[EURCHF_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO4Sets4[EURCHF_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_4__Time out_OCO4");
Base.EURCHF_UP_S2_OCO4Sets4.Clear();
EURCHF_OCO4S4_UP_S2 = 0;
break;
}
int EURCHF_OCO4S5_UP_S2 = 0;
for (; EURCHF_OCO4S5_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets5.Count; EURCHF_OCO4S5_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets5[EURCHF_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO4Sets5[EURCHF_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_5__Time out_OCO4");
Base.EURCHF_UP_S2_OCO4Sets5.Clear();
EURCHF_OCO4S5_UP_S2 = 0;
break;
}
int EURCHF_OCO4S6_UP_S2 = 0;
for (; EURCHF_OCO4S6_UP_S2 < Base.EURCHF_UP_S2_OCO4Sets6.Count; EURCHF_OCO4S6_UP_S2++)
if (Base.EURCHF_UP_S2_OCO4Sets6[EURCHF_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.EURCHF_UP_S2_OCO4Sets6[EURCHF_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("EURCHF", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURCHF", order.Quantity, false, "EURCHF_UP_S2_Entry_6__Time out_OCO4");
Base.EURCHF_UP_S2_OCO4Sets6.Clear();
EURCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURCHF_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURCHF_UP_S2 = DOWM_EURCHF_UP_S2 || DOWT_EURCHF_UP_S2 || DOWW_EURCHF_UP_S2 || DOWTH_EURCHF_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURCHF"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURCHF_OCO1_UP_S2_IsReady == false ||
Base.EURCHF_OCO2_UP_S2_IsReady == false ||
Base.EURCHF_OCO3_UP_S2_IsReady == false ||
Base.EURCHF_OCO4_UP_S2_IsReady == false)
{
Base.EURCHF_OCO1_UP_S2_Monthly_IsReady = false;
Base.EURCHF_OCO2_UP_S2_Monthly_IsReady = false;
Base.EURCHF_OCO3_UP_S2_Monthly_IsReady = false;
Base.EURCHF_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURCHF_OCO1_UP_S2_Monthly_IsReady = true;
Base.EURCHF_OCO2_UP_S2_Monthly_IsReady = true;
Base.EURCHF_OCO3_UP_S2_Monthly_IsReady = true;
Base.EURCHF_OCO4_UP_S2_Monthly_IsReady = true;
}
EURCHF_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURCHF_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURCHF_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (EURCHF_Signal_Condition_UP_1)
{
EURCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURCHF_Signal_Condition_UP_2)
{
EURCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURCHF_Signal_Condition_UP_3)
{
EURCHF_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURCHF_Signal_Condition_UP_1)
{
EURCHF_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (EURCHF_Signal_Condition_UP_2)
{
EURCHF_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (EURCHF_Signal_Condition_UP_3)
{
EURCHF_UP_S2_TP1 = Base.Oth_TP_3 ;
}
EURCHF_UP_S2_TP2 = EURCHF_UP_S2_SL * 0;
EURCHF_UP_S2_TP3 = EURCHF_UP_S2_SL * 0;
EURCHF_UP_S2_TP4 = EURCHF_UP_S2_SL * 0;
EURCHF_UP_S2_TP5 = EURCHF_UP_S2_SL * 0;
EURCHF_UP_S2_TP6 = EURCHF_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
EURCHF_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURCHF_quantity_SL_UP_S2 = EURCHF_quantity_UP_S2;
EURCHF_quantity_TP1_UP_S2 = (int)Math.Floor(EURCHF_quantity_UP_S2 * 1m);
EURCHF_quantity_TP2_UP_S2 = (int)Math.Floor(EURCHF_quantity_TP1_UP_S2 * 0m);
EURCHF_quantity_TP3_UP_S2 = (int)Math.Floor(EURCHF_quantity_TP2_UP_S2 * 0m);
EURCHF_quantity_TP4_UP_S2 = (int)Math.Floor(EURCHF_quantity_TP3_UP_S2 * 0m);
EURCHF_quantity_TP5_UP_S2 = (int)Math.Floor(EURCHF_quantity_TP4_UP_S2 * 0m);
EURCHF_quantity_TP6_UP_S2 = (int)Math.Floor(EURCHF_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((EURCHF_Signal_Condition_UP_1 || EURCHF_Signal_Condition_UP_2 || EURCHF_Signal_Condition_UP_3) &&
DOWR_EURCHF_UP_S2 &&
Base.EURCHF_OCO1_UP_S2_IsReady == true &&
Base.EURCHF_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.EURCHF_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP1_UP_S2, false,"EURCHF_UP_S2_Entry_TP1_OCO1");
Base.EURCHF_OCO1_EO1_UP_S2 = false;
Base.EURCHF_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP2_UP_S2, false,"EURCHF_UP_S2_Entry_TP2_OCO1");
Base.EURCHF_OCO1_EO2_UP_S2 = false;
Base.EURCHF_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP3_UP_S2, false,"EURCHF_UP_S2_Entry_TP3_OCO1");
Base.EURCHF_OCO1_EO3_UP_S2 = false;
Base.EURCHF_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP4_UP_S2, false,"EURCHF_UP_S2_Entry_TP4_OCO1");
Base.EURCHF_OCO1_EO4_UP_S2 = false;
Base.EURCHF_OCO1_UP_S2_IsReady = false;
if (Base.EURCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((EURCHF_Signal_Condition_UP_1 || EURCHF_Signal_Condition_UP_2 || EURCHF_Signal_Condition_UP_3) &&
DOWR_EURCHF_UP_S2 &&
Base.EURCHF_OCO1_UP_S2_IsReady == false &&
Base.EURCHF_OCO2_UP_S2_IsReady == true &&
Base.EURCHF_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.EURCHF_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP1_UP_S2, false,"EURCHF_UP_S2_Entry_TP1_OCO2");
Base.EURCHF_OCO2_EO1_UP_S2 = false;
Base.EURCHF_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP2_UP_S2, false,"EURCHF_UP_S2_Entry_TP2_OCO2");
Base.EURCHF_OCO2_EO2_UP_S2 = false;
Base.EURCHF_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP3_UP_S2, false,"EURCHF_UP_S2_Entry_TP3_OCO2");
Base.EURCHF_OCO2_EO3_UP_S2 = false;
Base.EURCHF_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP4_UP_S2, false,"EURCHF_UP_S2_Entry_TP4_OCO2");
Base.EURCHF_OCO2_EO4_UP_S2 = false;
Base.EURCHF_OCO2_UP_S2_IsReady = false;
if (Base.EURCHF_OCO2_UP_S2_IsReady == false && Base.EURCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((EURCHF_Signal_Condition_UP_1 || EURCHF_Signal_Condition_UP_2 || EURCHF_Signal_Condition_UP_3) &&
DOWR_EURCHF_UP_S2 &&
Base.EURCHF_OCO1_UP_S2_IsReady == false &&
Base.EURCHF_OCO2_UP_S2_IsReady == false &&
Base.EURCHF_OCO3_UP_S2_IsReady == true &&
Base.EURCHF_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.EURCHF_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP1_UP_S2, false,"EURCHF_UP_S2_Entry_TP1_OCO3");
Base.EURCHF_OCO3_EO1_UP_S2 = false;
Base.EURCHF_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP2_UP_S2, false,"EURCHF_UP_S2_Entry_TP2_OCO3");
Base.EURCHF_OCO3_EO2_UP_S2 = false;
Base.EURCHF_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP3_UP_S2, false,"EURCHF_UP_S2_Entry_TP3_OCO3");
Base.EURCHF_OCO3_EO3_UP_S2 = false;
Base.EURCHF_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP4_UP_S2, false,"EURCHF_UP_S2_Entry_TP4_OCO3");
Base.EURCHF_OCO3_EO4_UP_S2 = false;
Base.EURCHF_OCO3_UP_S2_IsReady = false;
if (Base.EURCHF_OCO3_UP_S2_IsReady == false && Base.EURCHF_OCO2_UP_S2_IsReady == false && Base.EURCHF_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((EURCHF_Signal_Condition_UP_1 || EURCHF_Signal_Condition_UP_2 || EURCHF_Signal_Condition_UP_3) &&
DOWR_EURCHF_UP_S2 &&
Base.EURCHF_OCO1_UP_S2_IsReady == false &&
Base.EURCHF_OCO2_UP_S2_IsReady == false &&
Base.EURCHF_OCO3_UP_S2_IsReady == false &&
Base.EURCHF_OCO4_UP_S2_IsReady == true &&
Base.EURCHF_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.EURCHF_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP1_UP_S2, false,"EURCHF_UP_S2_Entry_TP1_OCO4");
Base.EURCHF_OCO4_EO1_UP_S2 = false;
Base.EURCHF_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP2_UP_S2, false,"EURCHF_UP_S2_Entry_TP2_OCO4");
Base.EURCHF_OCO4_EO2_UP_S2 = false;
Base.EURCHF_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP3_UP_S2, false,"EURCHF_UP_S2_Entry_TP3_OCO4");
Base.EURCHF_OCO4_EO3_UP_S2 = false;
Base.EURCHF_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURCHF_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURCHF_quantity_TP4_UP_S2, false,"EURCHF_UP_S2_Entry_TP4_OCO4");
Base.EURCHF_OCO4_EO4_UP_S2 = false;
Base.EURCHF_OCO4_UP_S2_IsReady = false;
if (Base.EURCHF_OCO4_UP_S2_IsReady == false && Base.EURCHF_OCO3_UP_S2_IsReady == false && Base.EURCHF_OCO2_UP_S2_IsReady == false && Base.EURCHF_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _USDCHF;
///oco1 up
public static OrderTicket USDCHF_OCO1_MO1_UP_S2;
public static OrderTicket USDCHF_OCO1_MO2_UP_S2;
public static OrderTicket USDCHF_OCO1_MO3_UP_S2;
public static OrderTicket USDCHF_OCO1_MO4_UP_S2;
public static OrderTicket USDCHF_OCO1_MO5_UP_S2;
public static OrderTicket USDCHF_OCO1_MO6_UP_S2;
public static int USDCHF_OCO1_EO1_UP_S2_ID ;
public static int USDCHF_OCO1_EO2_UP_S2_ID ;
public static int USDCHF_OCO1_EO3_UP_S2_ID ;
public static int USDCHF_OCO1_EO4_UP_S2_ID ;
public static int USDCHF_OCO1_EO5_UP_S2_ID ;
public static int USDCHF_OCO1_EO6_UP_S2_ID ;
public static bool USDCHF_OCO1_EO1_UP_S2 ;
public static bool USDCHF_OCO1_EO2_UP_S2 ;
public static bool USDCHF_OCO1_EO3_UP_S2 ;
public static bool USDCHF_OCO1_EO4_UP_S2 ;
public static bool USDCHF_OCO1_EO5_UP_S2 ;
public static bool USDCHF_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_UP_S2> USDCHF_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_UP_S2> USDCHF_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_UP_S2> USDCHF_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_UP_S2> USDCHF_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_UP_S2> USDCHF_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_UP_S2> USDCHF_OOFE_OCO1_UP_S2_6 ;
public static USDCHF_OCO1_UP_S2 USDCHF_PFO_OCO1_UP_S2_1 ;
public static USDCHF_OCO1_UP_S2 USDCHF_PFO_OCO1_UP_S2_2 ;
public static USDCHF_OCO1_UP_S2 USDCHF_PFO_OCO1_UP_S2_3 ;
public static USDCHF_OCO1_UP_S2 USDCHF_PFO_OCO1_UP_S2_4 ;
public static USDCHF_OCO1_UP_S2 USDCHF_PFO_OCO1_UP_S2_5 ;
public static USDCHF_OCO1_UP_S2 USDCHF_PFO_OCO1_UP_S2_6 ;
public static List<USDCHF_OCO1_UP_S2> USDCHF_UP_S2_OCO1Sets1 = new List<USDCHF_OCO1_UP_S2>();
public static List<USDCHF_OCO1_UP_S2> USDCHF_UP_S2_OCO1Sets2 = new List<USDCHF_OCO1_UP_S2>();
public static List<USDCHF_OCO1_UP_S2> USDCHF_UP_S2_OCO1Sets3 = new List<USDCHF_OCO1_UP_S2>();
public static List<USDCHF_OCO1_UP_S2> USDCHF_UP_S2_OCO1Sets4 = new List<USDCHF_OCO1_UP_S2>();
public static List<USDCHF_OCO1_UP_S2> USDCHF_UP_S2_OCO1Sets5 = new List<USDCHF_OCO1_UP_S2>();
public static List<USDCHF_OCO1_UP_S2> USDCHF_UP_S2_OCO1Sets6 = new List<USDCHF_OCO1_UP_S2>();
public static bool USDCHF_OCO1_UP_S2_IsReady = true;
public static bool USDCHF_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket USDCHF_OCO1_MO1_DOWN_S2 ;
public static OrderTicket USDCHF_OCO1_MO2_DOWN_S2 ;
public static OrderTicket USDCHF_OCO1_MO3_DOWN_S2 ;
public static OrderTicket USDCHF_OCO1_MO4_DOWN_S2 ;
public static OrderTicket USDCHF_OCO1_MO5_DOWN_S2 ;
public static OrderTicket USDCHF_OCO1_MO6_DOWN_S2 ;
public static int USDCHF_OCO1_EO1_DOWN_S2_ID ;
public static int USDCHF_OCO1_EO2_DOWN_S2_ID ;
public static int USDCHF_OCO1_EO3_DOWN_S2_ID ;
public static int USDCHF_OCO1_EO4_DOWN_S2_ID ;
public static int USDCHF_OCO1_EO5_DOWN_S2_ID ;
public static int USDCHF_OCO1_EO6_DOWN_S2_ID ;
public static bool USDCHF_OCO1_EO1_DOWN_S2 ;
public static bool USDCHF_OCO1_EO2_DOWN_S2 ;
public static bool USDCHF_OCO1_EO3_DOWN_S2 ;
public static bool USDCHF_OCO1_EO4_DOWN_S2 ;
public static bool USDCHF_OCO1_EO5_DOWN_S2 ;
public static bool USDCHF_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_DOWN_S2> USDCHF_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_DOWN_S2> USDCHF_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_DOWN_S2> USDCHF_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_DOWN_S2> USDCHF_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_DOWN_S2> USDCHF_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO1_DOWN_S2> USDCHF_OOFE_OCO1_DOWN_S2_6 ;
public static USDCHF_OCO1_DOWN_S2 USDCHF_PFO_OCO1_DOWN_S2_1 ;
public static USDCHF_OCO1_DOWN_S2 USDCHF_PFO_OCO1_DOWN_S2_2 ;
public static USDCHF_OCO1_DOWN_S2 USDCHF_PFO_OCO1_DOWN_S2_3 ;
public static USDCHF_OCO1_DOWN_S2 USDCHF_PFO_OCO1_DOWN_S2_4 ;
public static USDCHF_OCO1_DOWN_S2 USDCHF_PFO_OCO1_DOWN_S2_5 ;
public static USDCHF_OCO1_DOWN_S2 USDCHF_PFO_OCO1_DOWN_S2_6 ;
public static List<USDCHF_OCO1_DOWN_S2> USDCHF_DOWN_S2_OCO1Sets1 = new List<USDCHF_OCO1_DOWN_S2>();
public static List<USDCHF_OCO1_DOWN_S2> USDCHF_DOWN_S2_OCO1Sets2 = new List<USDCHF_OCO1_DOWN_S2>();
public static List<USDCHF_OCO1_DOWN_S2> USDCHF_DOWN_S2_OCO1Sets3 = new List<USDCHF_OCO1_DOWN_S2>();
public static List<USDCHF_OCO1_DOWN_S2> USDCHF_DOWN_S2_OCO1Sets4 = new List<USDCHF_OCO1_DOWN_S2>();
public static List<USDCHF_OCO1_DOWN_S2> USDCHF_DOWN_S2_OCO1Sets5 = new List<USDCHF_OCO1_DOWN_S2>();
public static List<USDCHF_OCO1_DOWN_S2> USDCHF_DOWN_S2_OCO1Sets6 = new List<USDCHF_OCO1_DOWN_S2>();
public static bool USDCHF_OCO1_DOWN_S2_IsReady = true;
public static bool USDCHF_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket USDCHF_OCO2_MO1_UP_S2 ;
public static OrderTicket USDCHF_OCO2_MO2_UP_S2 ;
public static OrderTicket USDCHF_OCO2_MO3_UP_S2 ;
public static OrderTicket USDCHF_OCO2_MO4_UP_S2 ;
public static OrderTicket USDCHF_OCO2_MO5_UP_S2 ;
public static OrderTicket USDCHF_OCO2_MO6_UP_S2 ;
public static int USDCHF_OCO2_EO1_UP_S2_ID ;
public static int USDCHF_OCO2_EO2_UP_S2_ID ;
public static int USDCHF_OCO2_EO3_UP_S2_ID ;
public static int USDCHF_OCO2_EO4_UP_S2_ID ;
public static int USDCHF_OCO2_EO5_UP_S2_ID ;
public static int USDCHF_OCO2_EO6_UP_S2_ID ;
public static bool USDCHF_OCO2_EO1_UP_S2 ;
public static bool USDCHF_OCO2_EO2_UP_S2 ;
public static bool USDCHF_OCO2_EO3_UP_S2 ;
public static bool USDCHF_OCO2_EO4_UP_S2 ;
public static bool USDCHF_OCO2_EO5_UP_S2 ;
public static bool USDCHF_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_UP_S2> USDCHF_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_UP_S2> USDCHF_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_UP_S2> USDCHF_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_UP_S2> USDCHF_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_UP_S2> USDCHF_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_UP_S2> USDCHF_OOFE_OCO2_UP_S2_6 ;
public static USDCHF_OCO2_UP_S2 USDCHF_PFO_OCO2_UP_S2_1 ;
public static USDCHF_OCO2_UP_S2 USDCHF_PFO_OCO2_UP_S2_2 ;
public static USDCHF_OCO2_UP_S2 USDCHF_PFO_OCO2_UP_S2_3 ;
public static USDCHF_OCO2_UP_S2 USDCHF_PFO_OCO2_UP_S2_4 ;
public static USDCHF_OCO2_UP_S2 USDCHF_PFO_OCO2_UP_S2_5 ;
public static USDCHF_OCO2_UP_S2 USDCHF_PFO_OCO2_UP_S2_6 ;
public static List<USDCHF_OCO2_UP_S2> USDCHF_UP_S2_OCO2Sets1 = new List<USDCHF_OCO2_UP_S2>();
public static List<USDCHF_OCO2_UP_S2> USDCHF_UP_S2_OCO2Sets2 = new List<USDCHF_OCO2_UP_S2>();
public static List<USDCHF_OCO2_UP_S2> USDCHF_UP_S2_OCO2Sets3 = new List<USDCHF_OCO2_UP_S2>();
public static List<USDCHF_OCO2_UP_S2> USDCHF_UP_S2_OCO2Sets4 = new List<USDCHF_OCO2_UP_S2>();
public static List<USDCHF_OCO2_UP_S2> USDCHF_UP_S2_OCO2Sets5 = new List<USDCHF_OCO2_UP_S2>();
public static List<USDCHF_OCO2_UP_S2> USDCHF_UP_S2_OCO2Sets6 = new List<USDCHF_OCO2_UP_S2>();
public static bool USDCHF_OCO2_UP_S2_IsReady = true;
public static bool USDCHF_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket USDCHF_OCO2_MO1_DOWN_S2 ;
public static OrderTicket USDCHF_OCO2_MO2_DOWN_S2 ;
public static OrderTicket USDCHF_OCO2_MO3_DOWN_S2 ;
public static OrderTicket USDCHF_OCO2_MO4_DOWN_S2 ;
public static OrderTicket USDCHF_OCO2_MO5_DOWN_S2 ;
public static OrderTicket USDCHF_OCO2_MO6_DOWN_S2 ;
public static int USDCHF_OCO2_EO1_DOWN_S2_ID ;
public static int USDCHF_OCO2_EO2_DOWN_S2_ID ;
public static int USDCHF_OCO2_EO3_DOWN_S2_ID ;
public static int USDCHF_OCO2_EO4_DOWN_S2_ID ;
public static int USDCHF_OCO2_EO5_DOWN_S2_ID ;
public static int USDCHF_OCO2_EO6_DOWN_S2_ID ;
public static bool USDCHF_OCO2_EO1_DOWN_S2 ;
public static bool USDCHF_OCO2_EO2_DOWN_S2 ;
public static bool USDCHF_OCO2_EO3_DOWN_S2 ;
public static bool USDCHF_OCO2_EO4_DOWN_S2 ;
public static bool USDCHF_OCO2_EO5_DOWN_S2 ;
public static bool USDCHF_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_DOWN_S2> USDCHF_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_DOWN_S2> USDCHF_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_DOWN_S2> USDCHF_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_DOWN_S2> USDCHF_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_DOWN_S2> USDCHF_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO2_DOWN_S2> USDCHF_OOFE_OCO2_DOWN_S2_6 ;
public static USDCHF_OCO2_DOWN_S2 USDCHF_PFO_OCO2_DOWN_S2_1 ;
public static USDCHF_OCO2_DOWN_S2 USDCHF_PFO_OCO2_DOWN_S2_2 ;
public static USDCHF_OCO2_DOWN_S2 USDCHF_PFO_OCO2_DOWN_S2_3 ;
public static USDCHF_OCO2_DOWN_S2 USDCHF_PFO_OCO2_DOWN_S2_4 ;
public static USDCHF_OCO2_DOWN_S2 USDCHF_PFO_OCO2_DOWN_S2_5 ;
public static USDCHF_OCO2_DOWN_S2 USDCHF_PFO_OCO2_DOWN_S2_6 ;
public static List<USDCHF_OCO2_DOWN_S2> USDCHF_DOWN_S2_OCO2Sets1 = new List<USDCHF_OCO2_DOWN_S2>();
public static List<USDCHF_OCO2_DOWN_S2> USDCHF_DOWN_S2_OCO2Sets2 = new List<USDCHF_OCO2_DOWN_S2>();
public static List<USDCHF_OCO2_DOWN_S2> USDCHF_DOWN_S2_OCO2Sets3 = new List<USDCHF_OCO2_DOWN_S2>();
public static List<USDCHF_OCO2_DOWN_S2> USDCHF_DOWN_S2_OCO2Sets4 = new List<USDCHF_OCO2_DOWN_S2>();
public static List<USDCHF_OCO2_DOWN_S2> USDCHF_DOWN_S2_OCO2Sets5 = new List<USDCHF_OCO2_DOWN_S2>();
public static List<USDCHF_OCO2_DOWN_S2> USDCHF_DOWN_S2_OCO2Sets6 = new List<USDCHF_OCO2_DOWN_S2>();
public static bool USDCHF_OCO2_DOWN_S2_IsReady = true;
public static bool USDCHF_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket USDCHF_OCO3_MO1_UP_S2 ;
public static OrderTicket USDCHF_OCO3_MO2_UP_S2 ;
public static OrderTicket USDCHF_OCO3_MO3_UP_S2 ;
public static OrderTicket USDCHF_OCO3_MO4_UP_S2 ;
public static OrderTicket USDCHF_OCO3_MO5_UP_S2 ;
public static OrderTicket USDCHF_OCO3_MO6_UP_S2 ;
public static int USDCHF_OCO3_EO1_UP_S2_ID ;
public static int USDCHF_OCO3_EO2_UP_S2_ID ;
public static int USDCHF_OCO3_EO3_UP_S2_ID ;
public static int USDCHF_OCO3_EO4_UP_S2_ID ;
public static int USDCHF_OCO3_EO5_UP_S2_ID ;
public static int USDCHF_OCO3_EO6_UP_S2_ID ;
public static bool USDCHF_OCO3_EO1_UP_S2 ;
public static bool USDCHF_OCO3_EO2_UP_S2 ;
public static bool USDCHF_OCO3_EO3_UP_S2 ;
public static bool USDCHF_OCO3_EO4_UP_S2 ;
public static bool USDCHF_OCO3_EO5_UP_S2 ;
public static bool USDCHF_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_UP_S2> USDCHF_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_UP_S2> USDCHF_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_UP_S2> USDCHF_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_UP_S2> USDCHF_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_UP_S2> USDCHF_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_UP_S2> USDCHF_OOFE_OCO3_UP_S2_6 ;
public static USDCHF_OCO3_UP_S2 USDCHF_PFO_OCO3_UP_S2_1 ;
public static USDCHF_OCO3_UP_S2 USDCHF_PFO_OCO3_UP_S2_2 ;
public static USDCHF_OCO3_UP_S2 USDCHF_PFO_OCO3_UP_S2_3 ;
public static USDCHF_OCO3_UP_S2 USDCHF_PFO_OCO3_UP_S2_4 ;
public static USDCHF_OCO3_UP_S2 USDCHF_PFO_OCO3_UP_S2_5 ;
public static USDCHF_OCO3_UP_S2 USDCHF_PFO_OCO3_UP_S2_6 ;
public static List<USDCHF_OCO3_UP_S2> USDCHF_UP_S2_OCO3Sets1 = new List<USDCHF_OCO3_UP_S2>();
public static List<USDCHF_OCO3_UP_S2> USDCHF_UP_S2_OCO3Sets2 = new List<USDCHF_OCO3_UP_S2>();
public static List<USDCHF_OCO3_UP_S2> USDCHF_UP_S2_OCO3Sets3 = new List<USDCHF_OCO3_UP_S2>();
public static List<USDCHF_OCO3_UP_S2> USDCHF_UP_S2_OCO3Sets4 = new List<USDCHF_OCO3_UP_S2>();
public static List<USDCHF_OCO3_UP_S2> USDCHF_UP_S2_OCO3Sets5 = new List<USDCHF_OCO3_UP_S2>();
public static List<USDCHF_OCO3_UP_S2> USDCHF_UP_S2_OCO3Sets6 = new List<USDCHF_OCO3_UP_S2>();
public static bool USDCHF_OCO3_UP_S2_IsReady = true;
public static bool USDCHF_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket USDCHF_OCO3_MO1_DOWN_S2 ;
public static OrderTicket USDCHF_OCO3_MO2_DOWN_S2 ;
public static OrderTicket USDCHF_OCO3_MO3_DOWN_S2 ;
public static OrderTicket USDCHF_OCO3_MO4_DOWN_S2 ;
public static OrderTicket USDCHF_OCO3_MO5_DOWN_S2 ;
public static OrderTicket USDCHF_OCO3_MO6_DOWN_S2 ;
public static int USDCHF_OCO3_EO1_DOWN_S2_ID ;
public static int USDCHF_OCO3_EO2_DOWN_S2_ID ;
public static int USDCHF_OCO3_EO3_DOWN_S2_ID ;
public static int USDCHF_OCO3_EO4_DOWN_S2_ID ;
public static int USDCHF_OCO3_EO5_DOWN_S2_ID ;
public static int USDCHF_OCO3_EO6_DOWN_S2_ID ;
public static bool USDCHF_OCO3_EO1_DOWN_S2 ;
public static bool USDCHF_OCO3_EO2_DOWN_S2 ;
public static bool USDCHF_OCO3_EO3_DOWN_S2 ;
public static bool USDCHF_OCO3_EO4_DOWN_S2 ;
public static bool USDCHF_OCO3_EO5_DOWN_S2 ;
public static bool USDCHF_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_DOWN_S2> USDCHF_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_DOWN_S2> USDCHF_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_DOWN_S2> USDCHF_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_DOWN_S2> USDCHF_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_DOWN_S2> USDCHF_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO3_DOWN_S2> USDCHF_OOFE_OCO3_DOWN_S2_6 ;
public static USDCHF_OCO3_DOWN_S2 USDCHF_PFO_OCO3_DOWN_S2_1 ;
public static USDCHF_OCO3_DOWN_S2 USDCHF_PFO_OCO3_DOWN_S2_2 ;
public static USDCHF_OCO3_DOWN_S2 USDCHF_PFO_OCO3_DOWN_S2_3 ;
public static USDCHF_OCO3_DOWN_S2 USDCHF_PFO_OCO3_DOWN_S2_4 ;
public static USDCHF_OCO3_DOWN_S2 USDCHF_PFO_OCO3_DOWN_S2_5 ;
public static USDCHF_OCO3_DOWN_S2 USDCHF_PFO_OCO3_DOWN_S2_6 ;
public static List<USDCHF_OCO3_DOWN_S2> USDCHF_DOWN_S2_OCO3Sets1 = new List<USDCHF_OCO3_DOWN_S2>();
public static List<USDCHF_OCO3_DOWN_S2> USDCHF_DOWN_S2_OCO3Sets2 = new List<USDCHF_OCO3_DOWN_S2>();
public static List<USDCHF_OCO3_DOWN_S2> USDCHF_DOWN_S2_OCO3Sets3 = new List<USDCHF_OCO3_DOWN_S2>();
public static List<USDCHF_OCO3_DOWN_S2> USDCHF_DOWN_S2_OCO3Sets4 = new List<USDCHF_OCO3_DOWN_S2>();
public static List<USDCHF_OCO3_DOWN_S2> USDCHF_DOWN_S2_OCO3Sets5 = new List<USDCHF_OCO3_DOWN_S2>();
public static List<USDCHF_OCO3_DOWN_S2> USDCHF_DOWN_S2_OCO3Sets6 = new List<USDCHF_OCO3_DOWN_S2>();
public static bool USDCHF_OCO3_DOWN_S2_IsReady = true;
public static bool USDCHF_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket USDCHF_OCO4_MO1_UP_S2 ;
public static OrderTicket USDCHF_OCO4_MO2_UP_S2 ;
public static OrderTicket USDCHF_OCO4_MO3_UP_S2 ;
public static OrderTicket USDCHF_OCO4_MO4_UP_S2 ;
public static OrderTicket USDCHF_OCO4_MO5_UP_S2 ;
public static OrderTicket USDCHF_OCO4_MO6_UP_S2 ;
public static int USDCHF_OCO4_EO1_UP_S2_ID ;
public static int USDCHF_OCO4_EO2_UP_S2_ID ;
public static int USDCHF_OCO4_EO3_UP_S2_ID ;
public static int USDCHF_OCO4_EO4_UP_S2_ID ;
public static int USDCHF_OCO4_EO5_UP_S2_ID ;
public static int USDCHF_OCO4_EO6_UP_S2_ID ;
public static bool USDCHF_OCO4_EO1_UP_S2 ;
public static bool USDCHF_OCO4_EO2_UP_S2 ;
public static bool USDCHF_OCO4_EO3_UP_S2 ;
public static bool USDCHF_OCO4_EO4_UP_S2 ;
public static bool USDCHF_OCO4_EO5_UP_S2 ;
public static bool USDCHF_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_UP_S2> USDCHF_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_UP_S2> USDCHF_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_UP_S2> USDCHF_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_UP_S2> USDCHF_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_UP_S2> USDCHF_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_UP_S2> USDCHF_OOFE_OCO4_UP_S2_6 ;
public static USDCHF_OCO4_UP_S2 USDCHF_PFO_OCO4_UP_S2_1 ;
public static USDCHF_OCO4_UP_S2 USDCHF_PFO_OCO4_UP_S2_2 ;
public static USDCHF_OCO4_UP_S2 USDCHF_PFO_OCO4_UP_S2_3 ;
public static USDCHF_OCO4_UP_S2 USDCHF_PFO_OCO4_UP_S2_4 ;
public static USDCHF_OCO4_UP_S2 USDCHF_PFO_OCO4_UP_S2_5 ;
public static USDCHF_OCO4_UP_S2 USDCHF_PFO_OCO4_UP_S2_6 ;
public static List<USDCHF_OCO4_UP_S2> USDCHF_UP_S2_OCO4Sets1 = new List<USDCHF_OCO4_UP_S2>();
public static List<USDCHF_OCO4_UP_S2> USDCHF_UP_S2_OCO4Sets2 = new List<USDCHF_OCO4_UP_S2>();
public static List<USDCHF_OCO4_UP_S2> USDCHF_UP_S2_OCO4Sets3 = new List<USDCHF_OCO4_UP_S2>();
public static List<USDCHF_OCO4_UP_S2> USDCHF_UP_S2_OCO4Sets4 = new List<USDCHF_OCO4_UP_S2>();
public static List<USDCHF_OCO4_UP_S2> USDCHF_UP_S2_OCO4Sets5 = new List<USDCHF_OCO4_UP_S2>();
public static List<USDCHF_OCO4_UP_S2> USDCHF_UP_S2_OCO4Sets6 = new List<USDCHF_OCO4_UP_S2>();
public static bool USDCHF_OCO4_UP_S2_IsReady = true;
public static bool USDCHF_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket USDCHF_OCO4_MO1_DOWN_S2 ;
public static OrderTicket USDCHF_OCO4_MO2_DOWN_S2 ;
public static OrderTicket USDCHF_OCO4_MO3_DOWN_S2 ;
public static OrderTicket USDCHF_OCO4_MO4_DOWN_S2 ;
public static OrderTicket USDCHF_OCO4_MO5_DOWN_S2 ;
public static OrderTicket USDCHF_OCO4_MO6_DOWN_S2 ;
public static int USDCHF_OCO4_EO1_DOWN_S2_ID ;
public static int USDCHF_OCO4_EO2_DOWN_S2_ID ;
public static int USDCHF_OCO4_EO3_DOWN_S2_ID ;
public static int USDCHF_OCO4_EO4_DOWN_S2_ID ;
public static int USDCHF_OCO4_EO5_DOWN_S2_ID ;
public static int USDCHF_OCO4_EO6_DOWN_S2_ID ;
public static bool USDCHF_OCO4_EO1_DOWN_S2 ;
public static bool USDCHF_OCO4_EO2_DOWN_S2 ;
public static bool USDCHF_OCO4_EO3_DOWN_S2 ;
public static bool USDCHF_OCO4_EO4_DOWN_S2 ;
public static bool USDCHF_OCO4_EO5_DOWN_S2 ;
public static bool USDCHF_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_DOWN_S2> USDCHF_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_DOWN_S2> USDCHF_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_DOWN_S2> USDCHF_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_DOWN_S2> USDCHF_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_DOWN_S2> USDCHF_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDCHF_OCO4_DOWN_S2> USDCHF_OOFE_OCO4_DOWN_S2_6 ;
public static USDCHF_OCO4_DOWN_S2 USDCHF_PFO_OCO4_DOWN_S2_1 ;
public static USDCHF_OCO4_DOWN_S2 USDCHF_PFO_OCO4_DOWN_S2_2 ;
public static USDCHF_OCO4_DOWN_S2 USDCHF_PFO_OCO4_DOWN_S2_3 ;
public static USDCHF_OCO4_DOWN_S2 USDCHF_PFO_OCO4_DOWN_S2_4 ;
public static USDCHF_OCO4_DOWN_S2 USDCHF_PFO_OCO4_DOWN_S2_5 ;
public static USDCHF_OCO4_DOWN_S2 USDCHF_PFO_OCO4_DOWN_S2_6 ;
public static List<USDCHF_OCO4_DOWN_S2> USDCHF_DOWN_S2_OCO4Sets1 = new List<USDCHF_OCO4_DOWN_S2>();
public static List<USDCHF_OCO4_DOWN_S2> USDCHF_DOWN_S2_OCO4Sets2 = new List<USDCHF_OCO4_DOWN_S2>();
public static List<USDCHF_OCO4_DOWN_S2> USDCHF_DOWN_S2_OCO4Sets3 = new List<USDCHF_OCO4_DOWN_S2>();
public static List<USDCHF_OCO4_DOWN_S2> USDCHF_DOWN_S2_OCO4Sets4 = new List<USDCHF_OCO4_DOWN_S2>();
public static List<USDCHF_OCO4_DOWN_S2> USDCHF_DOWN_S2_OCO4Sets5 = new List<USDCHF_OCO4_DOWN_S2>();
public static List<USDCHF_OCO4_DOWN_S2> USDCHF_DOWN_S2_OCO4Sets6 = new List<USDCHF_OCO4_DOWN_S2>();
public static bool USDCHF_OCO4_DOWN_S2_IsReady = true;
public static bool USDCHF_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal USDCHF_UP_S2_SL {get; set;}
public static decimal USDCHF_UP_S2_TP1 {get; set;}
public static decimal USDCHF_UP_S2_TP2 {get; set;}
public static decimal USDCHF_UP_S2_TP3 {get; set;}
public static decimal USDCHF_UP_S2_TP4 {get; set;}
public static decimal USDCHF_UP_S2_TP5 {get; set;}
public static decimal USDCHF_UP_S2_TP6 {get; set;}
public static decimal USDCHF_DOWN_S2_SL {get; set;}
public static decimal USDCHF_DOWN_S2_TP1 {get; set;}
public static decimal USDCHF_DOWN_S2_TP2 {get; set;}
public static decimal USDCHF_DOWN_S2_TP3 {get; set;}
public static decimal USDCHF_DOWN_S2_TP4 {get; set;}
public static decimal USDCHF_DOWN_S2_TP5 {get; set;}
public static decimal USDCHF_DOWN_S2_TP6 {get; set;}
public static bool USDCHF_Signal_Condition_UP_1 ;
public static bool USDCHF_Signal_Condition_UP_2 ;
public static bool USDCHF_Signal_Condition_UP_3 ;
public static bool USDCHF_Signal_Condition_DOWN_S2 ;
public static int USDCHF_UP_S2_OCO_DELAY_7DAY = 10080;
public static int USDCHF_UP_S2_OCOM_DELAY_DAY = 4320;
public static int USDCHF_UP_S2_OCOT_DELAY_DAY = 2880;
public static int USDCHF_UP_S2_OCOW_DELAY_DAY = 1440;
public static int USDCHF_UP_S2_OCOTH_DELAY_DAY = 720;
public static int USDCHF_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int USDCHF_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int USDCHF_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int USDCHF_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int USDCHF_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_USDCHF_UP_S2 ;
public static bool DOWM_USDCHF_UP_S2 ;
public static bool DOWT_USDCHF_UP_S2 ;
public static bool DOWW_USDCHF_UP_S2 ;
public static bool DOWTH_USDCHF_UP_S2 ;
public static bool DOWR_USDCHF_DOWN_S2 ;
public static bool DOWM_USDCHF_DOWN_S2 ;
public static bool DOWT_USDCHF_DOWN_S2 ;
public static bool DOWW_USDCHF_DOWN_S2 ;
public static bool DOWTH_USDCHF_DOWN_S2 ;
public static int USDCHF_quantity_UP_S2 ;
public static int USDCHF_quantity_SL_UP_S2 ;
public static int USDCHF_quantity_TP1_UP_S2 ;
public static int USDCHF_quantity_TP2_UP_S2 ;
public static int USDCHF_quantity_TP3_UP_S2 ;
public static int USDCHF_quantity_TP4_UP_S2 ;
public static int USDCHF_quantity_TP5_UP_S2;
public static int USDCHF_quantity_TP6_UP_S2 ;
public static int USDCHF_quantity_DOWN_S2 ;
public static int USDCHF_quantity_SL_DOWN_S2 ;
public static int USDCHF_quantity_TP1_DOWN_S2 ;
public static int USDCHF_quantity_TP2_DOWN_S2 ;
public static int USDCHF_quantity_TP3_DOWN_S2 ;
public static int USDCHF_quantity_TP4_DOWN_S2 ;
public static int USDCHF_quantity_TP5_DOWN_S2;
public static int USDCHF_quantity_TP6_DOWN_S2 ;
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURUSD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURUSD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURUSD_DOWN_S2_OCO1")))
{
Base.EURUSD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURUSD_DOWN_S2_OCO2")))
{
Base.EURUSD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURUSD_DOWN_S2_OCO3")))
{
Base.EURUSD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURUSD_DOWN_S2_OCO4")))
{
Base.EURUSD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURUSD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURUSD_OCO1_EO1_DOWN_S2)
Base.EURUSD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO2_DOWN_S2)
Base.EURUSD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO3_DOWN_S2)
Base.EURUSD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO4_DOWN_S2)
Base.EURUSD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO5_DOWN_S2)
Base.EURUSD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO1_EO6_DOWN_S2)
Base.EURUSD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURUSD_OCO1S1_DOWN_S2 = 0;
for (; EURUSD_OCO1S1_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets1.Count; EURUSD_OCO1S1_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets1[EURUSD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO1Sets1[EURUSD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_1__Time out_OCO1");
Base.EURUSD_DOWN_S2_OCO1Sets1.Clear();
EURUSD_OCO1S1_DOWN_S2 = 0;
break;
}
int EURUSD_OCO1S2_DOWN_S2 = 0;
for (; EURUSD_OCO1S2_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets2.Count; EURUSD_OCO1S2_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets2[EURUSD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO1Sets2[EURUSD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_2__Time out_OCO1");
Base.EURUSD_DOWN_S2_OCO1Sets2.Clear();
EURUSD_OCO1S2_DOWN_S2 = 0;
break;
}
int EURUSD_OCO1S3_DOWN_S2 = 0;
for (; EURUSD_OCO1S3_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets3.Count; EURUSD_OCO1S3_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets3[EURUSD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO1Sets3[EURUSD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_3__Time out_OCO1");
Base.EURUSD_DOWN_S2_OCO1Sets3.Clear();
EURUSD_OCO1S3_DOWN_S2 = 0;
break;
}
int EURUSD_OCO1S4_DOWN_S2 = 0;
for (; EURUSD_OCO1S4_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets4.Count; EURUSD_OCO1S4_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets4[EURUSD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO1Sets4[EURUSD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_4__Time out_OCO1");
Base.EURUSD_DOWN_S2_OCO1Sets4.Clear();
EURUSD_OCO1S4_DOWN_S2 = 0;
break;
}
int EURUSD_OCO1S5_DOWN_S2 = 0;
for (; EURUSD_OCO1S5_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets5.Count; EURUSD_OCO1S5_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets5[EURUSD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO1Sets5[EURUSD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_5__Time out_OCO1");
Base.EURUSD_DOWN_S2_OCO1Sets5.Clear();
EURUSD_OCO1S5_DOWN_S2 = 0;
break;
}
int EURUSD_OCO1S6_DOWN_S2 = 0;
for (; EURUSD_OCO1S6_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO1Sets6.Count; EURUSD_OCO1S6_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO1Sets6[EURUSD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO1Sets6[EURUSD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_6__Time out_OCO1");
Base.EURUSD_DOWN_S2_OCO1Sets6.Clear();
EURUSD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO2_EO1_DOWN_S2)
Base.EURUSD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO2_DOWN_S2)
Base.EURUSD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO3_DOWN_S2)
Base.EURUSD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO4_DOWN_S2)
Base.EURUSD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO5_DOWN_S2)
Base.EURUSD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO2_EO6_DOWN_S2)
Base.EURUSD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURUSD_OCO2S1_DOWN_S2 = 0;
for (; EURUSD_OCO2S1_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets1.Count; EURUSD_OCO2S1_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets1[EURUSD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO2Sets1[EURUSD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_1__Time out_OCO2");
Base.EURUSD_DOWN_S2_OCO2Sets1.Clear();
EURUSD_OCO2S1_DOWN_S2 = 0;
break;
}
int EURUSD_OCO2S2_DOWN_S2 = 0;
for (; EURUSD_OCO2S2_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets2.Count; EURUSD_OCO2S2_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets2[EURUSD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO2Sets2[EURUSD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_2__Time out_OCO2");
Base.EURUSD_DOWN_S2_OCO2Sets2.Clear();
EURUSD_OCO2S2_DOWN_S2 = 0;
break;
}
int EURUSD_OCO2S3_DOWN_S2 = 0;
for (; EURUSD_OCO2S3_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets3.Count; EURUSD_OCO2S3_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets3[EURUSD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO2Sets3[EURUSD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_3__Time out_OCO2");
Base.EURUSD_DOWN_S2_OCO2Sets3.Clear();
EURUSD_OCO2S3_DOWN_S2 = 0;
break;
}
int EURUSD_OCO2S4_DOWN_S2 = 0;
for (; EURUSD_OCO2S4_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets4.Count; EURUSD_OCO2S4_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets4[EURUSD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO2Sets4[EURUSD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_4__Time out_OCO2");
Base.EURUSD_DOWN_S2_OCO2Sets4.Clear();
EURUSD_OCO2S4_DOWN_S2 = 0;
break;
}
int EURUSD_OCO2S5_DOWN_S2 = 0;
for (; EURUSD_OCO2S5_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets5.Count; EURUSD_OCO2S5_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets5[EURUSD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO2Sets5[EURUSD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_5__Time out_OCO2");
Base.EURUSD_DOWN_S2_OCO2Sets5.Clear();
EURUSD_OCO2S5_DOWN_S2 = 0;
break;
}
int EURUSD_OCO2S6_DOWN_S2 = 0;
for (; EURUSD_OCO2S6_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO2Sets6.Count; EURUSD_OCO2S6_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO2Sets6[EURUSD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO2Sets6[EURUSD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_6__Time out_OCO2");
Base.EURUSD_DOWN_S2_OCO2Sets6.Clear();
EURUSD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO3_EO1_DOWN_S2)
Base.EURUSD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO2_DOWN_S2)
Base.EURUSD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO3_DOWN_S2)
Base.EURUSD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO4_DOWN_S2)
Base.EURUSD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO5_DOWN_S2)
Base.EURUSD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO3_EO6_DOWN_S2)
Base.EURUSD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURUSD_OCO3S1_DOWN_S2 = 0;
for (; EURUSD_OCO3S1_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets1.Count; EURUSD_OCO3S1_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets1[EURUSD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO3Sets1[EURUSD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_1__Time out_OCO3");
Base.EURUSD_DOWN_S2_OCO3Sets1.Clear();
EURUSD_OCO3S1_DOWN_S2 = 0;
break;
}
int EURUSD_OCO3S2_DOWN_S2 = 0;
for (; EURUSD_OCO3S2_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets2.Count; EURUSD_OCO3S2_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets2[EURUSD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO3Sets2[EURUSD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_2__Time out_OCO3");
Base.EURUSD_DOWN_S2_OCO3Sets2.Clear();
EURUSD_OCO3S2_DOWN_S2 = 0;
break;
}
int EURUSD_OCO3S3_DOWN_S2 = 0;
for (; EURUSD_OCO3S3_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets3.Count; EURUSD_OCO3S3_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets3[EURUSD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO3Sets3[EURUSD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_3__Time out_OCO3");
Base.EURUSD_DOWN_S2_OCO3Sets3.Clear();
EURUSD_OCO3S3_DOWN_S2 = 0;
break;
}
int EURUSD_OCO3S4_DOWN_S2 = 0;
for (; EURUSD_OCO3S4_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets4.Count; EURUSD_OCO3S4_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets4[EURUSD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO3Sets4[EURUSD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_4__Time out_OCO3");
Base.EURUSD_DOWN_S2_OCO3Sets4.Clear();
EURUSD_OCO3S4_DOWN_S2 = 0;
break;
}
int EURUSD_OCO3S5_DOWN_S2 = 0;
for (; EURUSD_OCO3S5_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets5.Count; EURUSD_OCO3S5_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets5[EURUSD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO3Sets5[EURUSD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_5__Time out_OCO3");
Base.EURUSD_DOWN_S2_OCO3Sets5.Clear();
EURUSD_OCO3S5_DOWN_S2 = 0;
break;
}
int EURUSD_OCO3S6_DOWN_S2 = 0;
for (; EURUSD_OCO3S6_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO3Sets6.Count; EURUSD_OCO3S6_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO3Sets6[EURUSD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO3Sets6[EURUSD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_6__Time out_OCO3");
Base.EURUSD_DOWN_S2_OCO3Sets6.Clear();
EURUSD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO4_EO1_DOWN_S2)
Base.EURUSD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO2_DOWN_S2)
Base.EURUSD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO3_DOWN_S2)
Base.EURUSD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO4_DOWN_S2)
Base.EURUSD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO5_DOWN_S2)
Base.EURUSD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.EURUSD_OCO4_EO6_DOWN_S2)
Base.EURUSD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURUSD_DOWN_S2_OCO_DELAY_7DAY))
{
int EURUSD_OCO4S1_DOWN_S2 = 0;
for (; EURUSD_OCO4S1_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets1.Count; EURUSD_OCO4S1_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets1[EURUSD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO4Sets1[EURUSD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_1__Time out_OCO4");
Base.EURUSD_DOWN_S2_OCO4Sets1.Clear();
EURUSD_OCO4S1_DOWN_S2 = 0;
break;
}
int EURUSD_OCO4S2_DOWN_S2 = 0;
for (; EURUSD_OCO4S2_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets2.Count; EURUSD_OCO4S2_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets2[EURUSD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO4Sets2[EURUSD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_2__Time out_OCO4");
Base.EURUSD_DOWN_S2_OCO4Sets2.Clear();
EURUSD_OCO4S2_DOWN_S2 = 0;
break;
}
int EURUSD_OCO4S3_DOWN_S2 = 0;
for (; EURUSD_OCO4S3_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets3.Count; EURUSD_OCO4S3_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets3[EURUSD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO4Sets3[EURUSD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_3__Time out_OCO4");
Base.EURUSD_DOWN_S2_OCO4Sets3.Clear();
EURUSD_OCO4S3_DOWN_S2 = 0;
break;
}
int EURUSD_OCO4S4_DOWN_S2 = 0;
for (; EURUSD_OCO4S4_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets4.Count; EURUSD_OCO4S4_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets4[EURUSD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO4Sets4[EURUSD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_4__Time out_OCO4");
Base.EURUSD_DOWN_S2_OCO4Sets4.Clear();
EURUSD_OCO4S4_DOWN_S2 = 0;
break;
}
int EURUSD_OCO4S5_DOWN_S2 = 0;
for (; EURUSD_OCO4S5_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets5.Count; EURUSD_OCO4S5_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets5[EURUSD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO4Sets5[EURUSD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_5__Time out_OCO4");
Base.EURUSD_DOWN_S2_OCO4Sets5.Clear();
EURUSD_OCO4S5_DOWN_S2 = 0;
break;
}
int EURUSD_OCO4S6_DOWN_S2 = 0;
for (; EURUSD_OCO4S6_DOWN_S2 < Base.EURUSD_DOWN_S2_OCO4Sets6.Count; EURUSD_OCO4S6_DOWN_S2++)
if (Base.EURUSD_DOWN_S2_OCO4Sets6[EURUSD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.EURUSD_DOWN_S2_OCO4Sets6[EURUSD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURUSD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURUSD", order.Quantity, false, "EURUSD_DOWN_S2_Entry_6__Time out_OCO4");
Base.EURUSD_DOWN_S2_OCO4Sets6.Clear();
EURUSD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURUSD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURUSD_DOWN_S2 = DOWM_EURUSD_DOWN_S2 || DOWT_EURUSD_DOWN_S2 || DOWW_EURUSD_DOWN_S2 || DOWTH_EURUSD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURUSD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURUSD_OCO1_DOWN_S2_IsReady == false ||
Base.EURUSD_OCO2_DOWN_S2_IsReady == false ||
Base.EURUSD_OCO3_DOWN_S2_IsReady == false ||
Base.EURUSD_OCO4_DOWN_S2_IsReady == false)
{
Base.EURUSD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.EURUSD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.EURUSD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.EURUSD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURUSD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.EURUSD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.EURUSD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.EURUSD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
EURUSD_Signal_Condition_DOWN_S2 =
(
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > 0.01m &&
prices_ASK_High[0] > pricesM_ASK_High[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])/2) &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.001m
);
EURUSD_DOWN_S2_SL = 0.015m;
EURUSD_DOWN_S2_TP1 = 0.0005m;
EURUSD_DOWN_S2_TP2 = EURUSD_DOWN_S2_SL * 0;
EURUSD_DOWN_S2_TP3 = EURUSD_DOWN_S2_SL * 0;
EURUSD_DOWN_S2_TP4 = EURUSD_DOWN_S2_SL * 0;
EURUSD_DOWN_S2_TP5 = EURUSD_DOWN_S2_SL * 0;
EURUSD_DOWN_S2_TP6 = EURUSD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
EURUSD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURUSD_quantity_SL_DOWN_S2 = EURUSD_quantity_DOWN_S2;
EURUSD_quantity_TP1_DOWN_S2 = (int)Math.Floor(EURUSD_quantity_DOWN_S2 * 1m);
EURUSD_quantity_TP2_DOWN_S2 = (int)Math.Floor(EURUSD_quantity_TP1_DOWN_S2 * 0m);
EURUSD_quantity_TP3_DOWN_S2 = (int)Math.Floor(EURUSD_quantity_TP2_DOWN_S2 * 0m);
EURUSD_quantity_TP4_DOWN_S2 = (int)Math.Floor(EURUSD_quantity_TP3_DOWN_S2 * 0m);
EURUSD_quantity_TP5_DOWN_S2 = (int)Math.Floor(EURUSD_quantity_TP4_DOWN_S2 * 0m);
EURUSD_quantity_TP6_DOWN_S2 = (int)Math.Floor(EURUSD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (EURUSD_Signal_Condition_DOWN_S2 &&
DOWR_EURUSD_DOWN_S2 &&
Base.EURUSD_OCO1_DOWN_S2_IsReady == true &&
Base.EURUSD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.EURUSD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP1_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP1_OCO1");
Base.EURUSD_OCO1_EO1_DOWN_S2 = false;
Base.EURUSD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP2_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP2_OCO1");
Base.EURUSD_OCO1_EO2_DOWN_S2 = false;
Base.EURUSD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP3_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP3_OCO1");
Base.EURUSD_OCO1_EO3_DOWN_S2 = false;
Base.EURUSD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP4_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP4_OCO1");
Base.EURUSD_OCO1_EO4_DOWN_S2 = false;
Base.EURUSD_OCO1_DOWN_S2_IsReady = false;
if (Base.EURUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (EURUSD_Signal_Condition_DOWN_S2 &&
DOWR_EURUSD_DOWN_S2 &&
Base.EURUSD_OCO2_DOWN_S2_IsReady == true &&
Base.EURUSD_OCO1_DOWN_S2_IsReady == false &&
Base.EURUSD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.EURUSD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP1_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP1_OCO2");
Base.EURUSD_OCO2_EO1_DOWN_S2 = false;
Base.EURUSD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP2_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP2_OCO2");
Base.EURUSD_OCO2_EO2_DOWN_S2 = false;
Base.EURUSD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP3_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP3_OCO2");
Base.EURUSD_OCO2_EO3_DOWN_S2 = false;
Base.EURUSD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP4_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP4_OCO2");
Base.EURUSD_OCO2_EO4_DOWN_S2 = false;
Base.EURUSD_OCO2_DOWN_S2_IsReady = false;
if (Base.EURUSD_OCO2_DOWN_S2_IsReady == false && Base.EURUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (EURUSD_Signal_Condition_DOWN_S2 &&
DOWR_EURUSD_DOWN_S2 &&
Base.EURUSD_OCO3_DOWN_S2_IsReady == true &&
Base.EURUSD_OCO1_DOWN_S2_IsReady == false &&
Base.EURUSD_OCO2_DOWN_S2_IsReady == false &&
Base.EURUSD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.EURUSD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP1_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP1_OCO3");
Base.EURUSD_OCO3_EO1_DOWN_S2 = false;
Base.EURUSD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP2_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP2_OCO3");
Base.EURUSD_OCO3_EO2_DOWN_S2 = false;
Base.EURUSD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP3_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP3_OCO3");
Base.EURUSD_OCO3_EO3_DOWN_S2 = false;
Base.EURUSD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP4_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP4_OCO3");
Base.EURUSD_OCO3_EO4_DOWN_S2 = false;
Base.EURUSD_OCO3_DOWN_S2_IsReady = false;
if (Base.EURUSD_OCO3_DOWN_S2_IsReady == false && Base.EURUSD_OCO2_DOWN_S2_IsReady == false && Base.EURUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (EURUSD_Signal_Condition_DOWN_S2 &&
DOWR_EURUSD_DOWN_S2 &&
Base.EURUSD_OCO4_DOWN_S2_IsReady == true &&
Base.EURUSD_OCO1_DOWN_S2_IsReady == false &&
Base.EURUSD_OCO2_DOWN_S2_IsReady == false &&
Base.EURUSD_OCO3_DOWN_S2_IsReady == false &&
Base.EURUSD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.EURUSD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP1_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP1_OCO4");
Base.EURUSD_OCO4_EO1_DOWN_S2 = false;
Base.EURUSD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP2_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP2_OCO4");
Base.EURUSD_OCO4_EO2_DOWN_S2 = false;
Base.EURUSD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP3_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP3_OCO4");
Base.EURUSD_OCO4_EO3_DOWN_S2 = false;
Base.EURUSD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURUSD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURUSD_quantity_TP4_DOWN_S2, false,"EURUSD_DOWN_S2_Entry_TP4_OCO4");
Base.EURUSD_OCO4_EO4_DOWN_S2 = false;
Base.EURUSD_OCO4_DOWN_S2_IsReady = false;
if (Base.EURUSD_OCO4_DOWN_S2_IsReady == false && Base.EURUSD_OCO3_DOWN_S2_IsReady == false && Base.EURUSD_OCO2_DOWN_S2_IsReady == false && Base.EURUSD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPCAD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPCAD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPCAD_DOWN_S2_OCO1")))
{
Base.GBPCAD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCAD_DOWN_S2_OCO2")))
{
Base.GBPCAD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCAD_DOWN_S2_OCO3")))
{
Base.GBPCAD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCAD_DOWN_S2_OCO4")))
{
Base.GBPCAD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPCAD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPCAD_OCO1_EO1_DOWN_S2)
Base.GBPCAD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO2_DOWN_S2)
Base.GBPCAD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO3_DOWN_S2)
Base.GBPCAD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO4_DOWN_S2)
Base.GBPCAD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO5_DOWN_S2)
Base.GBPCAD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO6_DOWN_S2)
Base.GBPCAD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPCAD_OCO1S1_DOWN_S2 = 0;
for (; GBPCAD_OCO1S1_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets1.Count; GBPCAD_OCO1S1_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets1[GBPCAD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO1Sets1[GBPCAD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_1__Time out_OCO1");
Base.GBPCAD_DOWN_S2_OCO1Sets1.Clear();
GBPCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO1S2_DOWN_S2 = 0;
for (; GBPCAD_OCO1S2_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets2.Count; GBPCAD_OCO1S2_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets2[GBPCAD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO1Sets2[GBPCAD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_2__Time out_OCO1");
Base.GBPCAD_DOWN_S2_OCO1Sets2.Clear();
GBPCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO1S3_DOWN_S2 = 0;
for (; GBPCAD_OCO1S3_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets3.Count; GBPCAD_OCO1S3_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets3[GBPCAD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO1Sets3[GBPCAD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_3__Time out_OCO1");
Base.GBPCAD_DOWN_S2_OCO1Sets3.Clear();
GBPCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO1S4_DOWN_S2 = 0;
for (; GBPCAD_OCO1S4_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets4.Count; GBPCAD_OCO1S4_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets4[GBPCAD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO1Sets4[GBPCAD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_4__Time out_OCO1");
Base.GBPCAD_DOWN_S2_OCO1Sets4.Clear();
GBPCAD_OCO1S4_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO1S5_DOWN_S2 = 0;
for (; GBPCAD_OCO1S5_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets5.Count; GBPCAD_OCO1S5_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets5[GBPCAD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO1Sets5[GBPCAD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_5__Time out_OCO1");
Base.GBPCAD_DOWN_S2_OCO1Sets5.Clear();
GBPCAD_OCO1S5_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO1S6_DOWN_S2 = 0;
for (; GBPCAD_OCO1S6_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO1Sets6.Count; GBPCAD_OCO1S6_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO1Sets6[GBPCAD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO1Sets6[GBPCAD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_6__Time out_OCO1");
Base.GBPCAD_DOWN_S2_OCO1Sets6.Clear();
GBPCAD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO2_EO1_DOWN_S2)
Base.GBPCAD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO2_DOWN_S2)
Base.GBPCAD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO3_DOWN_S2)
Base.GBPCAD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO4_DOWN_S2)
Base.GBPCAD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO5_DOWN_S2)
Base.GBPCAD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO6_DOWN_S2)
Base.GBPCAD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPCAD_OCO2S1_DOWN_S2 = 0;
for (; GBPCAD_OCO2S1_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets1.Count; GBPCAD_OCO2S1_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets1[GBPCAD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO2Sets1[GBPCAD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_1__Time out_OCO2");
Base.GBPCAD_DOWN_S2_OCO2Sets1.Clear();
GBPCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO2S2_DOWN_S2 = 0;
for (; GBPCAD_OCO2S2_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets2.Count; GBPCAD_OCO2S2_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets2[GBPCAD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO2Sets2[GBPCAD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_2__Time out_OCO2");
Base.GBPCAD_DOWN_S2_OCO2Sets2.Clear();
GBPCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO2S3_DOWN_S2 = 0;
for (; GBPCAD_OCO2S3_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets3.Count; GBPCAD_OCO2S3_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets3[GBPCAD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO2Sets3[GBPCAD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_3__Time out_OCO2");
Base.GBPCAD_DOWN_S2_OCO2Sets3.Clear();
GBPCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO2S4_DOWN_S2 = 0;
for (; GBPCAD_OCO2S4_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets4.Count; GBPCAD_OCO2S4_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets4[GBPCAD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO2Sets4[GBPCAD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_4__Time out_OCO2");
Base.GBPCAD_DOWN_S2_OCO2Sets4.Clear();
GBPCAD_OCO2S4_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO2S5_DOWN_S2 = 0;
for (; GBPCAD_OCO2S5_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets5.Count; GBPCAD_OCO2S5_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets5[GBPCAD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO2Sets5[GBPCAD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_5__Time out_OCO2");
Base.GBPCAD_DOWN_S2_OCO2Sets5.Clear();
GBPCAD_OCO2S5_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO2S6_DOWN_S2 = 0;
for (; GBPCAD_OCO2S6_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO2Sets6.Count; GBPCAD_OCO2S6_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO2Sets6[GBPCAD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO2Sets6[GBPCAD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_6__Time out_OCO2");
Base.GBPCAD_DOWN_S2_OCO2Sets6.Clear();
GBPCAD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO3_EO1_DOWN_S2)
Base.GBPCAD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO2_DOWN_S2)
Base.GBPCAD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO3_DOWN_S2)
Base.GBPCAD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO4_DOWN_S2)
Base.GBPCAD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO5_DOWN_S2)
Base.GBPCAD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO6_DOWN_S2)
Base.GBPCAD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPCAD_OCO3S1_DOWN_S2 = 0;
for (; GBPCAD_OCO3S1_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets1.Count; GBPCAD_OCO3S1_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets1[GBPCAD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO3Sets1[GBPCAD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_1__Time out_OCO3");
Base.GBPCAD_DOWN_S2_OCO3Sets1.Clear();
GBPCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO3S2_DOWN_S2 = 0;
for (; GBPCAD_OCO3S2_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets2.Count; GBPCAD_OCO3S2_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets2[GBPCAD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO3Sets2[GBPCAD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_2__Time out_OCO3");
Base.GBPCAD_DOWN_S2_OCO3Sets2.Clear();
GBPCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO3S3_DOWN_S2 = 0;
for (; GBPCAD_OCO3S3_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets3.Count; GBPCAD_OCO3S3_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets3[GBPCAD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO3Sets3[GBPCAD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_3__Time out_OCO3");
Base.GBPCAD_DOWN_S2_OCO3Sets3.Clear();
GBPCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO3S4_DOWN_S2 = 0;
for (; GBPCAD_OCO3S4_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets4.Count; GBPCAD_OCO3S4_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets4[GBPCAD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO3Sets4[GBPCAD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_4__Time out_OCO3");
Base.GBPCAD_DOWN_S2_OCO3Sets4.Clear();
GBPCAD_OCO3S4_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO3S5_DOWN_S2 = 0;
for (; GBPCAD_OCO3S5_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets5.Count; GBPCAD_OCO3S5_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets5[GBPCAD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO3Sets5[GBPCAD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_5__Time out_OCO3");
Base.GBPCAD_DOWN_S2_OCO3Sets5.Clear();
GBPCAD_OCO3S5_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO3S6_DOWN_S2 = 0;
for (; GBPCAD_OCO3S6_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO3Sets6.Count; GBPCAD_OCO3S6_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO3Sets6[GBPCAD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO3Sets6[GBPCAD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_6__Time out_OCO3");
Base.GBPCAD_DOWN_S2_OCO3Sets6.Clear();
GBPCAD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO4_EO1_DOWN_S2)
Base.GBPCAD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO2_DOWN_S2)
Base.GBPCAD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO3_DOWN_S2)
Base.GBPCAD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO4_DOWN_S2)
Base.GBPCAD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO5_DOWN_S2)
Base.GBPCAD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO6_DOWN_S2)
Base.GBPCAD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCAD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPCAD_OCO4S1_DOWN_S2 = 0;
for (; GBPCAD_OCO4S1_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets1.Count; GBPCAD_OCO4S1_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets1[GBPCAD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO4Sets1[GBPCAD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_1__Time out_OCO4");
Base.GBPCAD_DOWN_S2_OCO4Sets1.Clear();
GBPCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO4S2_DOWN_S2 = 0;
for (; GBPCAD_OCO4S2_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets2.Count; GBPCAD_OCO4S2_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets2[GBPCAD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO4Sets2[GBPCAD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_2__Time out_OCO4");
Base.GBPCAD_DOWN_S2_OCO4Sets2.Clear();
GBPCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO4S3_DOWN_S2 = 0;
for (; GBPCAD_OCO4S3_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets3.Count; GBPCAD_OCO4S3_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets3[GBPCAD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO4Sets3[GBPCAD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_3__Time out_OCO4");
Base.GBPCAD_DOWN_S2_OCO4Sets3.Clear();
GBPCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO4S4_DOWN_S2 = 0;
for (; GBPCAD_OCO4S4_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets4.Count; GBPCAD_OCO4S4_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets4[GBPCAD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO4Sets4[GBPCAD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_4__Time out_OCO4");
Base.GBPCAD_DOWN_S2_OCO4Sets4.Clear();
GBPCAD_OCO4S4_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO4S5_DOWN_S2 = 0;
for (; GBPCAD_OCO4S5_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets5.Count; GBPCAD_OCO4S5_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets5[GBPCAD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO4Sets5[GBPCAD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_5__Time out_OCO4");
Base.GBPCAD_DOWN_S2_OCO4Sets5.Clear();
GBPCAD_OCO4S5_DOWN_S2 = 0;
break;
}
int GBPCAD_OCO4S6_DOWN_S2 = 0;
for (; GBPCAD_OCO4S6_DOWN_S2 < Base.GBPCAD_DOWN_S2_OCO4Sets6.Count; GBPCAD_OCO4S6_DOWN_S2++)
if (Base.GBPCAD_DOWN_S2_OCO4Sets6[GBPCAD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPCAD_DOWN_S2_OCO4Sets6[GBPCAD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_DOWN_S2_Entry_6__Time out_OCO4");
Base.GBPCAD_DOWN_S2_OCO4Sets6.Clear();
GBPCAD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPCAD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPCAD_DOWN_S2 = DOWM_GBPCAD_DOWN_S2 || DOWT_GBPCAD_DOWN_S2 || DOWW_GBPCAD_DOWN_S2 || DOWTH_GBPCAD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPCAD_OCO1_DOWN_S2_IsReady == false ||
Base.GBPCAD_OCO2_DOWN_S2_IsReady == false ||
Base.GBPCAD_OCO3_DOWN_S2_IsReady == false ||
Base.GBPCAD_OCO4_DOWN_S2_IsReady == false)
{
Base.GBPCAD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.GBPCAD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.GBPCAD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.GBPCAD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.GBPCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.GBPCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.GBPCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
GBPCAD_Signal_Condition_DOWN_S2 =
(
prices_ASK_High[0] - pricesM_ASK_High[0] > prices_ASK_Close[0] * 0.01m &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.001m
);
GBPCAD_DOWN_S2_SL = 0.01m;
GBPCAD_DOWN_S2_TP1 = 0.0005m;
GBPCAD_DOWN_S2_TP2 = GBPCAD_DOWN_S2_SL * 0;
GBPCAD_DOWN_S2_TP3 = GBPCAD_DOWN_S2_SL * 0;
GBPCAD_DOWN_S2_TP4 = GBPCAD_DOWN_S2_SL * 0;
GBPCAD_DOWN_S2_TP5 = GBPCAD_DOWN_S2_SL * 0;
GBPCAD_DOWN_S2_TP6 = GBPCAD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPCAD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPCAD_quantity_SL_DOWN_S2 = GBPCAD_quantity_DOWN_S2;
GBPCAD_quantity_TP1_DOWN_S2 = (int)Math.Floor(GBPCAD_quantity_DOWN_S2 * 1m);
GBPCAD_quantity_TP2_DOWN_S2 = (int)Math.Floor(GBPCAD_quantity_TP1_DOWN_S2 * 0m);
GBPCAD_quantity_TP3_DOWN_S2 = (int)Math.Floor(GBPCAD_quantity_TP2_DOWN_S2 * 0m);
GBPCAD_quantity_TP4_DOWN_S2 = (int)Math.Floor(GBPCAD_quantity_TP3_DOWN_S2 * 0m);
GBPCAD_quantity_TP5_DOWN_S2 = (int)Math.Floor(GBPCAD_quantity_TP4_DOWN_S2 * 0m);
GBPCAD_quantity_TP6_DOWN_S2 = (int)Math.Floor(GBPCAD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (GBPCAD_Signal_Condition_DOWN_S2 &&
DOWR_GBPCAD_DOWN_S2 &&
Base.GBPCAD_OCO1_DOWN_S2_IsReady == true &&
Base.GBPCAD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPCAD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP1_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP1_OCO1");
Base.GBPCAD_OCO1_EO1_DOWN_S2 = false;
Base.GBPCAD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP2_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP2_OCO1");
Base.GBPCAD_OCO1_EO2_DOWN_S2 = false;
Base.GBPCAD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP3_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP3_OCO1");
Base.GBPCAD_OCO1_EO3_DOWN_S2 = false;
Base.GBPCAD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP4_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP4_OCO1");
Base.GBPCAD_OCO1_EO4_DOWN_S2 = false;
Base.GBPCAD_OCO1_DOWN_S2_IsReady = false;
if (Base.GBPCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (GBPCAD_Signal_Condition_DOWN_S2 &&
DOWR_GBPCAD_DOWN_S2 &&
Base.GBPCAD_OCO2_DOWN_S2_IsReady == true &&
Base.GBPCAD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPCAD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPCAD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP1_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP1_OCO2");
Base.GBPCAD_OCO2_EO1_DOWN_S2 = false;
Base.GBPCAD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP2_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP2_OCO2");
Base.GBPCAD_OCO2_EO2_DOWN_S2 = false;
Base.GBPCAD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP3_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP3_OCO2");
Base.GBPCAD_OCO2_EO3_DOWN_S2 = false;
Base.GBPCAD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP4_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP4_OCO2");
Base.GBPCAD_OCO2_EO4_DOWN_S2 = false;
Base.GBPCAD_OCO2_DOWN_S2_IsReady = false;
if (Base.GBPCAD_OCO2_DOWN_S2_IsReady == false && Base.GBPCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (GBPCAD_Signal_Condition_DOWN_S2 &&
DOWR_GBPCAD_DOWN_S2 &&
Base.GBPCAD_OCO3_DOWN_S2_IsReady == true &&
Base.GBPCAD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPCAD_OCO2_DOWN_S2_IsReady == false &&
Base.GBPCAD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPCAD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP1_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP1_OCO3");
Base.GBPCAD_OCO3_EO1_DOWN_S2 = false;
Base.GBPCAD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP2_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP2_OCO3");
Base.GBPCAD_OCO3_EO2_DOWN_S2 = false;
Base.GBPCAD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP3_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP3_OCO3");
Base.GBPCAD_OCO3_EO3_DOWN_S2 = false;
Base.GBPCAD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP4_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP4_OCO3");
Base.GBPCAD_OCO3_EO4_DOWN_S2 = false;
Base.GBPCAD_OCO3_DOWN_S2_IsReady = false;
if (Base.GBPCAD_OCO3_DOWN_S2_IsReady == false && Base.GBPCAD_OCO2_DOWN_S2_IsReady == false && Base.GBPCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (GBPCAD_Signal_Condition_DOWN_S2 &&
DOWR_GBPCAD_DOWN_S2 &&
Base.GBPCAD_OCO4_DOWN_S2_IsReady == true &&
Base.GBPCAD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPCAD_OCO2_DOWN_S2_IsReady == false &&
Base.GBPCAD_OCO3_DOWN_S2_IsReady == false &&
Base.GBPCAD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPCAD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP1_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP1_OCO4");
Base.GBPCAD_OCO4_EO1_DOWN_S2 = false;
Base.GBPCAD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP2_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP2_OCO4");
Base.GBPCAD_OCO4_EO2_DOWN_S2 = false;
Base.GBPCAD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP3_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP3_OCO4");
Base.GBPCAD_OCO4_EO3_DOWN_S2 = false;
Base.GBPCAD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPCAD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP4_DOWN_S2, false,"GBPCAD_DOWN_S2_Entry_TP4_OCO4");
Base.GBPCAD_OCO4_EO4_DOWN_S2 = false;
Base.GBPCAD_OCO4_DOWN_S2_IsReady = false;
if (Base.GBPCAD_OCO4_DOWN_S2_IsReady == false && Base.GBPCAD_OCO3_DOWN_S2_IsReady == false && Base.GBPCAD_OCO2_DOWN_S2_IsReady == false && Base.GBPCAD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDCAD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDCAD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
}
if (Base.AUDCAD_OCO1_EO1_UP_S2)
Base.AUDCAD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO1_EO2_UP_S2)
Base.AUDCAD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO1_EO3_UP_S2)
Base.AUDCAD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO1_EO4_UP_S2)
Base.AUDCAD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO1_EO5_UP_S2)
Base.AUDCAD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO1_EO6_UP_S2)
Base.AUDCAD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO1_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP1,"TP1_AUDCAD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP1_AUDCAD_UP_S2_OCO1"));
};
Base.AUDCAD_UP_S2_OCO1Sets1.Add( Base.AUDCAD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO2_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP2,"TP2_AUDCAD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP2_AUDCAD_UP_S2_OCO1"));
};
Base.AUDCAD_UP_S2_OCO1Sets2.Add( Base.AUDCAD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO3_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP3,"TP3_AUDCAD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP3_AUDCAD_UP_S2_OCO1"));
};
Base.AUDCAD_UP_S2_OCO1Sets3.Add( Base.AUDCAD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO4_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP4,"TP4_AUDCAD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP4_AUDCAD_UP_S2_OCO1"));
};
Base.AUDCAD_UP_S2_OCO1Sets4.Add( Base.AUDCAD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO5_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP5,"TP5_AUDCAD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP5_AUDCAD_UP_S2_OCO1"));
};
Base.AUDCAD_UP_S2_OCO1Sets5.Add( Base.AUDCAD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO6_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP6,"TP6_AUDCAD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP6_AUDCAD_UP_S2_OCO1"));
};
Base.AUDCAD_UP_S2_OCO1Sets6.Add( Base.AUDCAD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO6_UP_S2_ID = -1;
}
int AUDCAD_OCO1S1_UP_S2 = 0;
for (; AUDCAD_OCO1S1_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets1.Count; AUDCAD_OCO1S1_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets1[AUDCAD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO1Sets1[AUDCAD_OCO1S1_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO1Sets1.RemoveAt(AUDCAD_OCO1S1_UP_S2);
AUDCAD_OCO1S1_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S2_UP_S2 = 0;
for (; AUDCAD_OCO1S2_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets2.Count; AUDCAD_OCO1S2_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets2[AUDCAD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO1Sets2[AUDCAD_OCO1S2_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO1Sets2.RemoveAt(AUDCAD_OCO1S2_UP_S2);
AUDCAD_OCO1S2_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S3_UP_S2 = 0;
for (; AUDCAD_OCO1S3_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets3.Count; AUDCAD_OCO1S3_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets3[AUDCAD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO1Sets3[AUDCAD_OCO1S3_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO1Sets3.RemoveAt(AUDCAD_OCO1S3_UP_S2);
AUDCAD_OCO1S3_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S4_UP_S2 = 0;
for (; AUDCAD_OCO1S4_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets4.Count; AUDCAD_OCO1S4_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets4[AUDCAD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO1Sets4[AUDCAD_OCO1S4_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO1Sets4.RemoveAt(AUDCAD_OCO1S4_UP_S2);
AUDCAD_OCO1S4_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S5_UP_S2 = 0;
for (; AUDCAD_OCO1S5_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets5.Count; AUDCAD_OCO1S5_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets5[AUDCAD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO1Sets5[AUDCAD_OCO1S5_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO1Sets5.RemoveAt(AUDCAD_OCO1S5_UP_S2);
AUDCAD_OCO1S5_UP_S2 = 0;
break;
}
int AUDCAD_OCO1S6_UP_S2 = 0;
for (; AUDCAD_OCO1S6_UP_S2 < Base.AUDCAD_UP_S2_OCO1Sets6.Count; AUDCAD_OCO1S6_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO1Sets6[AUDCAD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO1Sets6[AUDCAD_OCO1S6_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO1Sets6.RemoveAt(AUDCAD_OCO1S6_UP_S2);
AUDCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO2_EO1_UP_S2)
Base.AUDCAD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO2_EO2_UP_S2)
Base.AUDCAD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO2_EO3_UP_S2)
Base.AUDCAD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO2_EO4_UP_S2)
Base.AUDCAD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO2_EO5_UP_S2)
Base.AUDCAD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO2_EO6_UP_S2)
Base.AUDCAD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO1_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP1,"TP1_AUDCAD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP1_AUDCAD_UP_S2_OCO2"));
};
Base.AUDCAD_UP_S2_OCO2Sets1.Add( Base.AUDCAD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO2_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP2,"TP2_AUDCAD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP2_AUDCAD_UP_S2_OCO2"));
};
Base.AUDCAD_UP_S2_OCO2Sets2.Add( Base.AUDCAD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO3_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP3,"TP3_AUDCAD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP3_AUDCAD_UP_S2_OCO2"));
};
Base.AUDCAD_UP_S2_OCO2Sets3.Add( Base.AUDCAD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO4_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP4,"TP4_AUDCAD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP4_AUDCAD_UP_S2_OCO2"));
};
Base.AUDCAD_UP_S2_OCO2Sets4.Add( Base.AUDCAD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO5_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP5,"TP5_AUDCAD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP5_AUDCAD_UP_S2_OCO2"));
};
Base.AUDCAD_UP_S2_OCO2Sets5.Add( Base.AUDCAD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO6_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP6,"TP6_AUDCAD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP6_AUDCAD_UP_S2_OCO2"));
};
Base.AUDCAD_UP_S2_OCO2Sets6.Add( Base.AUDCAD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO6_UP_S2_ID = -1;
}
int AUDCAD_OCO2S1_UP_S2 = 0;
for (; AUDCAD_OCO2S1_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets1.Count; AUDCAD_OCO2S1_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets1[AUDCAD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO2Sets1[AUDCAD_OCO2S1_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO2Sets1.RemoveAt(AUDCAD_OCO2S1_UP_S2);
AUDCAD_OCO2S1_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S2_UP_S2 = 0;
for (; AUDCAD_OCO2S2_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets2.Count; AUDCAD_OCO2S2_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets2[AUDCAD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO2Sets2[AUDCAD_OCO2S2_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO2Sets2.RemoveAt(AUDCAD_OCO2S2_UP_S2);
AUDCAD_OCO2S2_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S3_UP_S2 = 0;
for (; AUDCAD_OCO2S3_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets3.Count; AUDCAD_OCO2S3_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets3[AUDCAD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO2Sets3[AUDCAD_OCO2S3_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO2Sets3.RemoveAt(AUDCAD_OCO2S3_UP_S2);
AUDCAD_OCO2S3_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S4_UP_S2 = 0;
for (; AUDCAD_OCO2S4_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets4.Count; AUDCAD_OCO2S4_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets4[AUDCAD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO2Sets4[AUDCAD_OCO2S4_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO2Sets4.RemoveAt(AUDCAD_OCO2S4_UP_S2);
AUDCAD_OCO2S4_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S5_UP_S2 = 0;
for (; AUDCAD_OCO2S5_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets5.Count; AUDCAD_OCO2S5_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets5[AUDCAD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO2Sets5[AUDCAD_OCO2S5_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO2Sets5.RemoveAt(AUDCAD_OCO2S5_UP_S2);
AUDCAD_OCO2S5_UP_S2 = 0;
break;
}
int AUDCAD_OCO2S6_UP_S2 = 0;
for (; AUDCAD_OCO2S6_UP_S2 < Base.AUDCAD_UP_S2_OCO2Sets6.Count; AUDCAD_OCO2S6_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO2Sets6[AUDCAD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO2Sets6[AUDCAD_OCO2S6_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO2Sets6.RemoveAt(AUDCAD_OCO2S6_UP_S2);
AUDCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO3_EO1_UP_S2)
Base.AUDCAD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO3_EO2_UP_S2)
Base.AUDCAD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO3_EO3_UP_S2)
Base.AUDCAD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO3_EO4_UP_S2)
Base.AUDCAD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO3_EO5_UP_S2)
Base.AUDCAD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO3_EO6_UP_S2)
Base.AUDCAD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO1_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP1,"TP1_AUDCAD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP1_AUDCAD_UP_S2_OCO3"));
};
Base.AUDCAD_UP_S2_OCO3Sets1.Add( Base.AUDCAD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO2_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP2,"TP2_AUDCAD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP2_AUDCAD_UP_S2_OCO3"));
};
Base.AUDCAD_UP_S2_OCO3Sets2.Add( Base.AUDCAD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO3_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP3,"TP3_AUDCAD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP3_AUDCAD_UP_S2_OCO3"));
};
Base.AUDCAD_UP_S2_OCO3Sets3.Add( Base.AUDCAD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO4_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP4,"TP4_AUDCAD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP4_AUDCAD_UP_S2_OCO3"));
};
Base.AUDCAD_UP_S2_OCO3Sets4.Add( Base.AUDCAD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO5_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP5,"TP5_AUDCAD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP5_AUDCAD_UP_S2_OCO3"));
};
Base.AUDCAD_UP_S2_OCO3Sets5.Add( Base.AUDCAD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO6_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP6,"TP6_AUDCAD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP6_AUDCAD_UP_S2_OCO3"));
};
Base.AUDCAD_UP_S2_OCO3Sets6.Add( Base.AUDCAD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO6_UP_S2_ID = -1;
}
int AUDCAD_OCO3S1_UP_S2 = 0;
for (; AUDCAD_OCO3S1_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets1.Count; AUDCAD_OCO3S1_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets1[AUDCAD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO3Sets1[AUDCAD_OCO3S1_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO3Sets1.RemoveAt(AUDCAD_OCO3S1_UP_S2);
AUDCAD_OCO3S1_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S2_UP_S2 = 0;
for (; AUDCAD_OCO3S2_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets2.Count; AUDCAD_OCO3S2_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets2[AUDCAD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO3Sets2[AUDCAD_OCO3S2_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO3Sets2.RemoveAt(AUDCAD_OCO3S2_UP_S2);
AUDCAD_OCO3S2_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S3_UP_S2 = 0;
for (; AUDCAD_OCO3S3_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets3.Count; AUDCAD_OCO3S3_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets3[AUDCAD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO3Sets3[AUDCAD_OCO3S3_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO3Sets3.RemoveAt(AUDCAD_OCO3S3_UP_S2);
AUDCAD_OCO3S3_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S4_UP_S2 = 0;
for (; AUDCAD_OCO3S4_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets4.Count; AUDCAD_OCO3S4_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets4[AUDCAD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO3Sets4[AUDCAD_OCO3S4_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO3Sets4.RemoveAt(AUDCAD_OCO3S4_UP_S2);
AUDCAD_OCO3S4_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S5_UP_S2 = 0;
for (; AUDCAD_OCO3S5_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets5.Count; AUDCAD_OCO3S5_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets5[AUDCAD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO3Sets5[AUDCAD_OCO3S5_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO3Sets5.RemoveAt(AUDCAD_OCO3S5_UP_S2);
AUDCAD_OCO3S5_UP_S2 = 0;
break;
}
int AUDCAD_OCO3S6_UP_S2 = 0;
for (; AUDCAD_OCO3S6_UP_S2 < Base.AUDCAD_UP_S2_OCO3Sets6.Count; AUDCAD_OCO3S6_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO3Sets6[AUDCAD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO3Sets6[AUDCAD_OCO3S6_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO3Sets6.RemoveAt(AUDCAD_OCO3S6_UP_S2);
AUDCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO4_EO1_UP_S2)
Base.AUDCAD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO4_EO2_UP_S2)
Base.AUDCAD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO4_EO3_UP_S2)
Base.AUDCAD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO4_EO4_UP_S2)
Base.AUDCAD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO4_EO5_UP_S2)
Base.AUDCAD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO4_EO6_UP_S2)
Base.AUDCAD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO1_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP1,"TP1_AUDCAD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP1_AUDCAD_UP_S2_OCO4"));
};
Base.AUDCAD_UP_S2_OCO4Sets1.Add( Base.AUDCAD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO2_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP2,"TP2_AUDCAD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP2_AUDCAD_UP_S2_OCO4"));
};
Base.AUDCAD_UP_S2_OCO4Sets2.Add( Base.AUDCAD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO3_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP3,"TP3_AUDCAD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP3_AUDCAD_UP_S2_OCO4"));
};
Base.AUDCAD_UP_S2_OCO4Sets3.Add( Base.AUDCAD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO4_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP4,"TP4_AUDCAD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP4_AUDCAD_UP_S2_OCO4"));
};
Base.AUDCAD_UP_S2_OCO4Sets4.Add( Base.AUDCAD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO5_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP5,"TP5_AUDCAD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP5_AUDCAD_UP_S2_OCO4"));
};
Base.AUDCAD_UP_S2_OCO4Sets5.Add( Base.AUDCAD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO6_UP_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_UP_S2_TP6,"TP6_AUDCAD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_UP_S2_SL,"SL_TP6_AUDCAD_UP_S2_OCO4"));
};
Base.AUDCAD_UP_S2_OCO4Sets6.Add( Base.AUDCAD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO6_UP_S2_ID = -1;
}
int AUDCAD_OCO4S1_UP_S2 = 0;
for (; AUDCAD_OCO4S1_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets1.Count; AUDCAD_OCO4S1_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets1[AUDCAD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO4Sets1[AUDCAD_OCO4S1_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO4Sets1.RemoveAt(AUDCAD_OCO4S1_UP_S2);
AUDCAD_OCO4S1_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S2_UP_S2 = 0;
for (; AUDCAD_OCO4S2_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets2.Count; AUDCAD_OCO4S2_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets2[AUDCAD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO4Sets2[AUDCAD_OCO4S2_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO4Sets2.RemoveAt(AUDCAD_OCO4S2_UP_S2);
AUDCAD_OCO4S2_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S3_UP_S2 = 0;
for (; AUDCAD_OCO4S3_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets3.Count; AUDCAD_OCO4S3_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets3[AUDCAD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO4Sets3[AUDCAD_OCO4S3_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO4Sets3.RemoveAt(AUDCAD_OCO4S3_UP_S2);
AUDCAD_OCO4S3_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S4_UP_S2 = 0;
for (; AUDCAD_OCO4S4_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets4.Count; AUDCAD_OCO4S4_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets4[AUDCAD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO4Sets4[AUDCAD_OCO4S4_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO4Sets4.RemoveAt(AUDCAD_OCO4S4_UP_S2);
AUDCAD_OCO4S4_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S5_UP_S2 = 0;
for (; AUDCAD_OCO4S5_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets5.Count; AUDCAD_OCO4S5_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets5[AUDCAD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO4Sets5[AUDCAD_OCO4S5_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO4Sets5.RemoveAt(AUDCAD_OCO4S5_UP_S2);
AUDCAD_OCO4S5_UP_S2 = 0;
break;
}
int AUDCAD_OCO4S6_UP_S2 = 0;
for (; AUDCAD_OCO4S6_UP_S2 < Base.AUDCAD_UP_S2_OCO4Sets6.Count; AUDCAD_OCO4S6_UP_S2++)
if (Base.AUDCAD_UP_S2_OCO4Sets6[AUDCAD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_UP_S2_OCO4Sets6[AUDCAD_OCO4S6_UP_S2].Filled();
Base.AUDCAD_UP_S2_OCO4Sets6.RemoveAt(AUDCAD_OCO4S6_UP_S2);
AUDCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_CHFJPY_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_CHFJPY_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("CHFJPY_UP_S2_OCO1")))
{
Base.CHFJPY_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CHFJPY_UP_S2_OCO2")))
{
Base.CHFJPY_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CHFJPY_UP_S2_OCO3")))
{
Base.CHFJPY_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("CHFJPY_UP_S2_OCO4")))
{
Base.CHFJPY_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("CHFJPY_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.CHFJPY_OCO1_EO1_UP_S2)
Base.CHFJPY_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO2_UP_S2)
Base.CHFJPY_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO3_UP_S2)
Base.CHFJPY_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO4_UP_S2)
Base.CHFJPY_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO5_UP_S2)
Base.CHFJPY_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO1_EO6_UP_S2)
Base.CHFJPY_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CHFJPY_UP_S2_OCO_DELAY_7DAY))
{
int CHFJPY_OCO1S1_UP_S2 = 0;
for (; CHFJPY_OCO1S1_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets1.Count; CHFJPY_OCO1S1_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets1[CHFJPY_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO1Sets1[CHFJPY_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_1__Time out_OCO1");
Base.CHFJPY_UP_S2_OCO1Sets1.Clear();
CHFJPY_OCO1S1_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S2_UP_S2 = 0;
for (; CHFJPY_OCO1S2_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets2.Count; CHFJPY_OCO1S2_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets2[CHFJPY_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO1Sets2[CHFJPY_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_2__Time out_OCO1");
Base.CHFJPY_UP_S2_OCO1Sets2.Clear();
CHFJPY_OCO1S2_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S3_UP_S2 = 0;
for (; CHFJPY_OCO1S3_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets3.Count; CHFJPY_OCO1S3_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets3[CHFJPY_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO1Sets3[CHFJPY_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_3__Time out_OCO1");
Base.CHFJPY_UP_S2_OCO1Sets3.Clear();
CHFJPY_OCO1S3_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S4_UP_S2 = 0;
for (; CHFJPY_OCO1S4_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets4.Count; CHFJPY_OCO1S4_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets4[CHFJPY_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO1Sets4[CHFJPY_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_4__Time out_OCO1");
Base.CHFJPY_UP_S2_OCO1Sets4.Clear();
CHFJPY_OCO1S4_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S5_UP_S2 = 0;
for (; CHFJPY_OCO1S5_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets5.Count; CHFJPY_OCO1S5_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets5[CHFJPY_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO1Sets5[CHFJPY_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_5__Time out_OCO1");
Base.CHFJPY_UP_S2_OCO1Sets5.Clear();
CHFJPY_OCO1S5_UP_S2 = 0;
break;
}
int CHFJPY_OCO1S6_UP_S2 = 0;
for (; CHFJPY_OCO1S6_UP_S2 < Base.CHFJPY_UP_S2_OCO1Sets6.Count; CHFJPY_OCO1S6_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO1Sets6[CHFJPY_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO1Sets6[CHFJPY_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_6__Time out_OCO1");
Base.CHFJPY_UP_S2_OCO1Sets6.Clear();
CHFJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO2_EO1_UP_S2)
Base.CHFJPY_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO2_UP_S2)
Base.CHFJPY_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO3_UP_S2)
Base.CHFJPY_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO4_UP_S2)
Base.CHFJPY_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO5_UP_S2)
Base.CHFJPY_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO2_EO6_UP_S2)
Base.CHFJPY_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CHFJPY_UP_S2_OCO_DELAY_7DAY))
{
int CHFJPY_OCO2S1_UP_S2 = 0;
for (; CHFJPY_OCO2S1_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets1.Count; CHFJPY_OCO2S1_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets1[CHFJPY_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO2Sets1[CHFJPY_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_1__Time out_OCO2");
Base.CHFJPY_UP_S2_OCO2Sets1.Clear();
CHFJPY_OCO2S1_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S2_UP_S2 = 0;
for (; CHFJPY_OCO2S2_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets2.Count; CHFJPY_OCO2S2_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets2[CHFJPY_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO2Sets2[CHFJPY_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_2__Time out_OCO2");
Base.CHFJPY_UP_S2_OCO2Sets2.Clear();
CHFJPY_OCO2S2_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S3_UP_S2 = 0;
for (; CHFJPY_OCO2S3_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets3.Count; CHFJPY_OCO2S3_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets3[CHFJPY_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO2Sets3[CHFJPY_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_3__Time out_OCO2");
Base.CHFJPY_UP_S2_OCO2Sets3.Clear();
CHFJPY_OCO2S3_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S4_UP_S2 = 0;
for (; CHFJPY_OCO2S4_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets4.Count; CHFJPY_OCO2S4_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets4[CHFJPY_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO2Sets4[CHFJPY_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_4__Time out_OCO2");
Base.CHFJPY_UP_S2_OCO2Sets4.Clear();
CHFJPY_OCO2S4_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S5_UP_S2 = 0;
for (; CHFJPY_OCO2S5_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets5.Count; CHFJPY_OCO2S5_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets5[CHFJPY_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO2Sets5[CHFJPY_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_5__Time out_OCO2");
Base.CHFJPY_UP_S2_OCO2Sets5.Clear();
CHFJPY_OCO2S5_UP_S2 = 0;
break;
}
int CHFJPY_OCO2S6_UP_S2 = 0;
for (; CHFJPY_OCO2S6_UP_S2 < Base.CHFJPY_UP_S2_OCO2Sets6.Count; CHFJPY_OCO2S6_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO2Sets6[CHFJPY_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO2Sets6[CHFJPY_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_6__Time out_OCO2");
Base.CHFJPY_UP_S2_OCO2Sets6.Clear();
CHFJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO3_EO1_UP_S2)
Base.CHFJPY_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO2_UP_S2)
Base.CHFJPY_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO3_UP_S2)
Base.CHFJPY_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO4_UP_S2)
Base.CHFJPY_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO5_UP_S2)
Base.CHFJPY_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO3_EO6_UP_S2)
Base.CHFJPY_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CHFJPY_UP_S2_OCO_DELAY_7DAY))
{
int CHFJPY_OCO3S1_UP_S2 = 0;
for (; CHFJPY_OCO3S1_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets1.Count; CHFJPY_OCO3S1_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets1[CHFJPY_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO3Sets1[CHFJPY_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_1__Time out_OCO3");
Base.CHFJPY_UP_S2_OCO3Sets1.Clear();
CHFJPY_OCO3S1_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S2_UP_S2 = 0;
for (; CHFJPY_OCO3S2_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets2.Count; CHFJPY_OCO3S2_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets2[CHFJPY_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO3Sets2[CHFJPY_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_2__Time out_OCO3");
Base.CHFJPY_UP_S2_OCO3Sets2.Clear();
CHFJPY_OCO3S2_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S3_UP_S2 = 0;
for (; CHFJPY_OCO3S3_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets3.Count; CHFJPY_OCO3S3_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets3[CHFJPY_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO3Sets3[CHFJPY_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_3__Time out_OCO3");
Base.CHFJPY_UP_S2_OCO3Sets3.Clear();
CHFJPY_OCO3S3_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S4_UP_S2 = 0;
for (; CHFJPY_OCO3S4_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets4.Count; CHFJPY_OCO3S4_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets4[CHFJPY_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO3Sets4[CHFJPY_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_4__Time out_OCO3");
Base.CHFJPY_UP_S2_OCO3Sets4.Clear();
CHFJPY_OCO3S4_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S5_UP_S2 = 0;
for (; CHFJPY_OCO3S5_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets5.Count; CHFJPY_OCO3S5_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets5[CHFJPY_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO3Sets5[CHFJPY_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_5__Time out_OCO3");
Base.CHFJPY_UP_S2_OCO3Sets5.Clear();
CHFJPY_OCO3S5_UP_S2 = 0;
break;
}
int CHFJPY_OCO3S6_UP_S2 = 0;
for (; CHFJPY_OCO3S6_UP_S2 < Base.CHFJPY_UP_S2_OCO3Sets6.Count; CHFJPY_OCO3S6_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO3Sets6[CHFJPY_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO3Sets6[CHFJPY_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_6__Time out_OCO3");
Base.CHFJPY_UP_S2_OCO3Sets6.Clear();
CHFJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO4_EO1_UP_S2)
Base.CHFJPY_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO2_UP_S2)
Base.CHFJPY_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO3_UP_S2)
Base.CHFJPY_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO4_UP_S2)
Base.CHFJPY_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO5_UP_S2)
Base.CHFJPY_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.CHFJPY_OCO4_EO6_UP_S2)
Base.CHFJPY_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.CHFJPY_UP_S2_OCO_DELAY_7DAY))
{
int CHFJPY_OCO4S1_UP_S2 = 0;
for (; CHFJPY_OCO4S1_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets1.Count; CHFJPY_OCO4S1_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets1[CHFJPY_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO4Sets1[CHFJPY_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_1__Time out_OCO4");
Base.CHFJPY_UP_S2_OCO4Sets1.Clear();
CHFJPY_OCO4S1_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S2_UP_S2 = 0;
for (; CHFJPY_OCO4S2_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets2.Count; CHFJPY_OCO4S2_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets2[CHFJPY_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO4Sets2[CHFJPY_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_2__Time out_OCO4");
Base.CHFJPY_UP_S2_OCO4Sets2.Clear();
CHFJPY_OCO4S2_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S3_UP_S2 = 0;
for (; CHFJPY_OCO4S3_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets3.Count; CHFJPY_OCO4S3_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets3[CHFJPY_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO4Sets3[CHFJPY_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_3__Time out_OCO4");
Base.CHFJPY_UP_S2_OCO4Sets3.Clear();
CHFJPY_OCO4S3_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S4_UP_S2 = 0;
for (; CHFJPY_OCO4S4_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets4.Count; CHFJPY_OCO4S4_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets4[CHFJPY_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO4Sets4[CHFJPY_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_4__Time out_OCO4");
Base.CHFJPY_UP_S2_OCO4Sets4.Clear();
CHFJPY_OCO4S4_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S5_UP_S2 = 0;
for (; CHFJPY_OCO4S5_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets5.Count; CHFJPY_OCO4S5_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets5[CHFJPY_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO4Sets5[CHFJPY_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_5__Time out_OCO4");
Base.CHFJPY_UP_S2_OCO4Sets5.Clear();
CHFJPY_OCO4S5_UP_S2 = 0;
break;
}
int CHFJPY_OCO4S6_UP_S2 = 0;
for (; CHFJPY_OCO4S6_UP_S2 < Base.CHFJPY_UP_S2_OCO4Sets6.Count; CHFJPY_OCO4S6_UP_S2++)
if (Base.CHFJPY_UP_S2_OCO4Sets6[CHFJPY_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.CHFJPY_UP_S2_OCO4Sets6[CHFJPY_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("CHFJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("CHFJPY", order.Quantity, false, "CHFJPY_UP_S2_Entry_6__Time out_OCO4");
Base.CHFJPY_UP_S2_OCO4Sets6.Clear();
CHFJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_CHFJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_CHFJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_CHFJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_CHFJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_CHFJPY_UP_S2 = DOWM_CHFJPY_UP_S2 || DOWT_CHFJPY_UP_S2 || DOWW_CHFJPY_UP_S2 || DOWTH_CHFJPY_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("CHFJPY") && SY1D.Symbol.ID.Market == Market.FXCM)
{
if(SY1D.BQ[0].Open != 0)
{
algorithm.Debug("ID : " + SY1D.Symbol.ID.Market);
}
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.CHFJPY_OCO1_UP_S2_IsReady == false ||
Base.CHFJPY_OCO2_UP_S2_IsReady == false ||
Base.CHFJPY_OCO3_UP_S2_IsReady == false ||
Base.CHFJPY_OCO4_UP_S2_IsReady == false)
{
Base.CHFJPY_OCO1_UP_S2_Monthly_IsReady = false;
Base.CHFJPY_OCO2_UP_S2_Monthly_IsReady = false;
Base.CHFJPY_OCO3_UP_S2_Monthly_IsReady = false;
Base.CHFJPY_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.CHFJPY_OCO1_UP_S2_Monthly_IsReady = true;
Base.CHFJPY_OCO2_UP_S2_Monthly_IsReady = true;
Base.CHFJPY_OCO3_UP_S2_Monthly_IsReady = true;
Base.CHFJPY_OCO4_UP_S2_Monthly_IsReady = true;
}
CHFJPY_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
CHFJPY_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
CHFJPY_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (CHFJPY_Signal_Condition_UP_1)
{
CHFJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (CHFJPY_Signal_Condition_UP_2)
{
CHFJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (CHFJPY_Signal_Condition_UP_3)
{
CHFJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (CHFJPY_Signal_Condition_UP_1)
{
CHFJPY_UP_S2_TP1 = Base.Yen_TP_1 ;
}
if (CHFJPY_Signal_Condition_UP_2)
{
CHFJPY_UP_S2_TP1 = Base.Yen_TP_2 ;
}
if (CHFJPY_Signal_Condition_UP_3)
{
CHFJPY_UP_S2_TP1 = Base.Yen_TP_3 ;
}
CHFJPY_UP_S2_TP2 = CHFJPY_UP_S2_SL * 0;
CHFJPY_UP_S2_TP3 = CHFJPY_UP_S2_SL * 0;
CHFJPY_UP_S2_TP4 = CHFJPY_UP_S2_SL * 0;
CHFJPY_UP_S2_TP5 = CHFJPY_UP_S2_SL * 0;
CHFJPY_UP_S2_TP6 = CHFJPY_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
CHFJPY_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
CHFJPY_quantity_SL_UP_S2 = CHFJPY_quantity_UP_S2;
CHFJPY_quantity_TP1_UP_S2 = (int)Math.Floor(CHFJPY_quantity_UP_S2 * 1m);
CHFJPY_quantity_TP2_UP_S2 = (int)Math.Floor(CHFJPY_quantity_TP1_UP_S2 * 0m);
CHFJPY_quantity_TP3_UP_S2 = (int)Math.Floor(CHFJPY_quantity_TP2_UP_S2 * 0m);
CHFJPY_quantity_TP4_UP_S2 = (int)Math.Floor(CHFJPY_quantity_TP3_UP_S2 * 0m);
CHFJPY_quantity_TP5_UP_S2 = (int)Math.Floor(CHFJPY_quantity_TP4_UP_S2 * 0m);
CHFJPY_quantity_TP6_UP_S2 = (int)Math.Floor(CHFJPY_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((CHFJPY_Signal_Condition_UP_1 || CHFJPY_Signal_Condition_UP_2 || CHFJPY_Signal_Condition_UP_3) &&
DOWR_CHFJPY_UP_S2 &&
Base.CHFJPY_OCO1_UP_S2_IsReady == true &&
Base.CHFJPY_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.CHFJPY_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP1_UP_S2, false,"CHFJPY_UP_S2_Entry_TP1_OCO1");
Base.CHFJPY_OCO1_EO1_UP_S2 = false;
Base.CHFJPY_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP2_UP_S2, false,"CHFJPY_UP_S2_Entry_TP2_OCO1");
Base.CHFJPY_OCO1_EO2_UP_S2 = false;
Base.CHFJPY_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP3_UP_S2, false,"CHFJPY_UP_S2_Entry_TP3_OCO1");
Base.CHFJPY_OCO1_EO3_UP_S2 = false;
Base.CHFJPY_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP4_UP_S2, false,"CHFJPY_UP_S2_Entry_TP4_OCO1");
Base.CHFJPY_OCO1_EO4_UP_S2 = false;
Base.CHFJPY_OCO1_UP_S2_IsReady = false;
if (Base.CHFJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((CHFJPY_Signal_Condition_UP_1 || CHFJPY_Signal_Condition_UP_2 || CHFJPY_Signal_Condition_UP_3) &&
DOWR_CHFJPY_UP_S2 &&
Base.CHFJPY_OCO1_UP_S2_IsReady == false &&
Base.CHFJPY_OCO2_UP_S2_IsReady == true &&
Base.CHFJPY_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.CHFJPY_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP1_UP_S2, false,"CHFJPY_UP_S2_Entry_TP1_OCO2");
Base.CHFJPY_OCO2_EO1_UP_S2 = false;
Base.CHFJPY_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP2_UP_S2, false,"CHFJPY_UP_S2_Entry_TP2_OCO2");
Base.CHFJPY_OCO2_EO2_UP_S2 = false;
Base.CHFJPY_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP3_UP_S2, false,"CHFJPY_UP_S2_Entry_TP3_OCO2");
Base.CHFJPY_OCO2_EO3_UP_S2 = false;
Base.CHFJPY_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP4_UP_S2, false,"CHFJPY_UP_S2_Entry_TP4_OCO2");
Base.CHFJPY_OCO2_EO4_UP_S2 = false;
Base.CHFJPY_OCO2_UP_S2_IsReady = false;
if (Base.CHFJPY_OCO2_UP_S2_IsReady == false && Base.CHFJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((CHFJPY_Signal_Condition_UP_1 || CHFJPY_Signal_Condition_UP_2 || CHFJPY_Signal_Condition_UP_3) &&
DOWR_CHFJPY_UP_S2 &&
Base.CHFJPY_OCO1_UP_S2_IsReady == false &&
Base.CHFJPY_OCO2_UP_S2_IsReady == false &&
Base.CHFJPY_OCO3_UP_S2_IsReady == true &&
Base.CHFJPY_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.CHFJPY_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP1_UP_S2, false,"CHFJPY_UP_S2_Entry_TP1_OCO3");
Base.CHFJPY_OCO3_EO1_UP_S2 = false;
Base.CHFJPY_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP2_UP_S2, false,"CHFJPY_UP_S2_Entry_TP2_OCO3");
Base.CHFJPY_OCO3_EO2_UP_S2 = false;
Base.CHFJPY_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP3_UP_S2, false,"CHFJPY_UP_S2_Entry_TP3_OCO3");
Base.CHFJPY_OCO3_EO3_UP_S2 = false;
Base.CHFJPY_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP4_UP_S2, false,"CHFJPY_UP_S2_Entry_TP4_OCO3");
Base.CHFJPY_OCO3_EO4_UP_S2 = false;
Base.CHFJPY_OCO3_UP_S2_IsReady = false;
if (Base.CHFJPY_OCO3_UP_S2_IsReady == false && Base.CHFJPY_OCO2_UP_S2_IsReady == false && Base.CHFJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((CHFJPY_Signal_Condition_UP_1 || CHFJPY_Signal_Condition_UP_2 || CHFJPY_Signal_Condition_UP_3) &&
DOWR_CHFJPY_UP_S2 &&
Base.CHFJPY_OCO1_UP_S2_IsReady == false &&
Base.CHFJPY_OCO2_UP_S2_IsReady == false &&
Base.CHFJPY_OCO3_UP_S2_IsReady == false &&
Base.CHFJPY_OCO4_UP_S2_IsReady == true &&
Base.CHFJPY_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.CHFJPY_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP1_UP_S2, false,"CHFJPY_UP_S2_Entry_TP1_OCO4");
Base.CHFJPY_OCO4_EO1_UP_S2 = false;
Base.CHFJPY_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP2_UP_S2, false,"CHFJPY_UP_S2_Entry_TP2_OCO4");
Base.CHFJPY_OCO4_EO2_UP_S2 = false;
Base.CHFJPY_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP3_UP_S2, false,"CHFJPY_UP_S2_Entry_TP3_OCO4");
Base.CHFJPY_OCO4_EO3_UP_S2 = false;
Base.CHFJPY_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
CHFJPY_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, CHFJPY_quantity_TP4_UP_S2, false,"CHFJPY_UP_S2_Entry_TP4_OCO4");
Base.CHFJPY_OCO4_EO4_UP_S2 = false;
Base.CHFJPY_OCO4_UP_S2_IsReady = false;
if (Base.CHFJPY_OCO4_UP_S2_IsReady == false && Base.CHFJPY_OCO3_UP_S2_IsReady == false && Base.CHFJPY_OCO2_UP_S2_IsReady == false && Base.CHFJPY_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURGBP_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURGBP_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
}
if (Base.EURGBP_OCO1_EO1_UP_S2)
Base.EURGBP_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO1_EO2_UP_S2)
Base.EURGBP_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO1_EO3_UP_S2)
Base.EURGBP_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO1_EO4_UP_S2)
Base.EURGBP_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO1_EO5_UP_S2)
Base.EURGBP_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO1_EO6_UP_S2)
Base.EURGBP_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO1_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP1,"TP1_EURGBP_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP1_EURGBP_UP_S2_OCO1"));
};
Base.EURGBP_UP_S2_OCO1Sets1.Add( Base.EURGBP_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO2_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP2,"TP2_EURGBP_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP2_EURGBP_UP_S2_OCO1"));
};
Base.EURGBP_UP_S2_OCO1Sets2.Add( Base.EURGBP_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO3_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP3,"TP3_EURGBP_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP3_EURGBP_UP_S2_OCO1"));
};
Base.EURGBP_UP_S2_OCO1Sets3.Add( Base.EURGBP_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO4_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP4,"TP4_EURGBP_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP4_EURGBP_UP_S2_OCO1"));
};
Base.EURGBP_UP_S2_OCO1Sets4.Add( Base.EURGBP_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO5_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP5,"TP5_EURGBP_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP5_EURGBP_UP_S2_OCO1"));
};
Base.EURGBP_UP_S2_OCO1Sets5.Add( Base.EURGBP_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO6_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP6,"TP6_EURGBP_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP6_EURGBP_UP_S2_OCO1"));
};
Base.EURGBP_UP_S2_OCO1Sets6.Add( Base.EURGBP_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO6_UP_S2_ID = -1;
}
int EURGBP_OCO1S1_UP_S2 = 0;
for (; EURGBP_OCO1S1_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets1.Count; EURGBP_OCO1S1_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets1[EURGBP_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO1Sets1[EURGBP_OCO1S1_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO1Sets1.RemoveAt(EURGBP_OCO1S1_UP_S2);
EURGBP_OCO1S1_UP_S2 = 0;
break;
}
int EURGBP_OCO1S2_UP_S2 = 0;
for (; EURGBP_OCO1S2_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets2.Count; EURGBP_OCO1S2_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets2[EURGBP_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO1Sets2[EURGBP_OCO1S2_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO1Sets2.RemoveAt(EURGBP_OCO1S2_UP_S2);
EURGBP_OCO1S2_UP_S2 = 0;
break;
}
int EURGBP_OCO1S3_UP_S2 = 0;
for (; EURGBP_OCO1S3_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets3.Count; EURGBP_OCO1S3_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets3[EURGBP_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO1Sets3[EURGBP_OCO1S3_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO1Sets3.RemoveAt(EURGBP_OCO1S3_UP_S2);
EURGBP_OCO1S3_UP_S2 = 0;
break;
}
int EURGBP_OCO1S4_UP_S2 = 0;
for (; EURGBP_OCO1S4_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets4.Count; EURGBP_OCO1S4_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets4[EURGBP_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO1Sets4[EURGBP_OCO1S4_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO1Sets4.RemoveAt(EURGBP_OCO1S4_UP_S2);
EURGBP_OCO1S4_UP_S2 = 0;
break;
}
int EURGBP_OCO1S5_UP_S2 = 0;
for (; EURGBP_OCO1S5_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets5.Count; EURGBP_OCO1S5_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets5[EURGBP_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO1Sets5[EURGBP_OCO1S5_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO1Sets5.RemoveAt(EURGBP_OCO1S5_UP_S2);
EURGBP_OCO1S5_UP_S2 = 0;
break;
}
int EURGBP_OCO1S6_UP_S2 = 0;
for (; EURGBP_OCO1S6_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets6.Count; EURGBP_OCO1S6_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets6[EURGBP_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO1Sets6[EURGBP_OCO1S6_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO1Sets6.RemoveAt(EURGBP_OCO1S6_UP_S2);
EURGBP_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO2_EO1_UP_S2)
Base.EURGBP_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO2_EO2_UP_S2)
Base.EURGBP_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO2_EO3_UP_S2)
Base.EURGBP_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO2_EO4_UP_S2)
Base.EURGBP_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO2_EO5_UP_S2)
Base.EURGBP_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO2_EO6_UP_S2)
Base.EURGBP_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO1_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP1,"TP1_EURGBP_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP1_EURGBP_UP_S2_OCO2"));
};
Base.EURGBP_UP_S2_OCO2Sets1.Add( Base.EURGBP_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO2_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP2,"TP2_EURGBP_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP2_EURGBP_UP_S2_OCO2"));
};
Base.EURGBP_UP_S2_OCO2Sets2.Add( Base.EURGBP_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO3_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP3,"TP3_EURGBP_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP3_EURGBP_UP_S2_OCO2"));
};
Base.EURGBP_UP_S2_OCO2Sets3.Add( Base.EURGBP_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO4_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP4,"TP4_EURGBP_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP4_EURGBP_UP_S2_OCO2"));
};
Base.EURGBP_UP_S2_OCO2Sets4.Add( Base.EURGBP_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO5_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP5,"TP5_EURGBP_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP5_EURGBP_UP_S2_OCO2"));
};
Base.EURGBP_UP_S2_OCO2Sets5.Add( Base.EURGBP_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO6_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP6,"TP6_EURGBP_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP6_EURGBP_UP_S2_OCO2"));
};
Base.EURGBP_UP_S2_OCO2Sets6.Add( Base.EURGBP_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO6_UP_S2_ID = -1;
}
int EURGBP_OCO2S1_UP_S2 = 0;
for (; EURGBP_OCO2S1_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets1.Count; EURGBP_OCO2S1_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets1[EURGBP_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO2Sets1[EURGBP_OCO2S1_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO2Sets1.RemoveAt(EURGBP_OCO2S1_UP_S2);
EURGBP_OCO2S1_UP_S2 = 0;
break;
}
int EURGBP_OCO2S2_UP_S2 = 0;
for (; EURGBP_OCO2S2_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets2.Count; EURGBP_OCO2S2_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets2[EURGBP_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO2Sets2[EURGBP_OCO2S2_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO2Sets2.RemoveAt(EURGBP_OCO2S2_UP_S2);
EURGBP_OCO2S2_UP_S2 = 0;
break;
}
int EURGBP_OCO2S3_UP_S2 = 0;
for (; EURGBP_OCO2S3_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets3.Count; EURGBP_OCO2S3_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets3[EURGBP_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO2Sets3[EURGBP_OCO2S3_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO2Sets3.RemoveAt(EURGBP_OCO2S3_UP_S2);
EURGBP_OCO2S3_UP_S2 = 0;
break;
}
int EURGBP_OCO2S4_UP_S2 = 0;
for (; EURGBP_OCO2S4_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets4.Count; EURGBP_OCO2S4_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets4[EURGBP_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO2Sets4[EURGBP_OCO2S4_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO2Sets4.RemoveAt(EURGBP_OCO2S4_UP_S2);
EURGBP_OCO2S4_UP_S2 = 0;
break;
}
int EURGBP_OCO2S5_UP_S2 = 0;
for (; EURGBP_OCO2S5_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets5.Count; EURGBP_OCO2S5_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets5[EURGBP_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO2Sets5[EURGBP_OCO2S5_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO2Sets5.RemoveAt(EURGBP_OCO2S5_UP_S2);
EURGBP_OCO2S5_UP_S2 = 0;
break;
}
int EURGBP_OCO2S6_UP_S2 = 0;
for (; EURGBP_OCO2S6_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets6.Count; EURGBP_OCO2S6_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets6[EURGBP_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO2Sets6[EURGBP_OCO2S6_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO2Sets6.RemoveAt(EURGBP_OCO2S6_UP_S2);
EURGBP_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO3_EO1_UP_S2)
Base.EURGBP_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO3_EO2_UP_S2)
Base.EURGBP_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO3_EO3_UP_S2)
Base.EURGBP_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO3_EO4_UP_S2)
Base.EURGBP_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO3_EO5_UP_S2)
Base.EURGBP_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO3_EO6_UP_S2)
Base.EURGBP_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO1_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP1,"TP1_EURGBP_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP1_EURGBP_UP_S2_OCO3"));
};
Base.EURGBP_UP_S2_OCO3Sets1.Add( Base.EURGBP_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO2_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP2,"TP2_EURGBP_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP2_EURGBP_UP_S2_OCO3"));
};
Base.EURGBP_UP_S2_OCO3Sets2.Add( Base.EURGBP_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO3_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP3,"TP3_EURGBP_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP3_EURGBP_UP_S2_OCO3"));
};
Base.EURGBP_UP_S2_OCO3Sets3.Add( Base.EURGBP_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO4_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP4,"TP4_EURGBP_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP4_EURGBP_UP_S2_OCO3"));
};
Base.EURGBP_UP_S2_OCO3Sets4.Add( Base.EURGBP_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO5_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP5,"TP5_EURGBP_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP5_EURGBP_UP_S2_OCO3"));
};
Base.EURGBP_UP_S2_OCO3Sets5.Add( Base.EURGBP_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO6_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP6,"TP6_EURGBP_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP6_EURGBP_UP_S2_OCO3"));
};
Base.EURGBP_UP_S2_OCO3Sets6.Add( Base.EURGBP_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO6_UP_S2_ID = -1;
}
int EURGBP_OCO3S1_UP_S2 = 0;
for (; EURGBP_OCO3S1_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets1.Count; EURGBP_OCO3S1_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets1[EURGBP_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO3Sets1[EURGBP_OCO3S1_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO3Sets1.RemoveAt(EURGBP_OCO3S1_UP_S2);
EURGBP_OCO3S1_UP_S2 = 0;
break;
}
int EURGBP_OCO3S2_UP_S2 = 0;
for (; EURGBP_OCO3S2_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets2.Count; EURGBP_OCO3S2_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets2[EURGBP_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO3Sets2[EURGBP_OCO3S2_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO3Sets2.RemoveAt(EURGBP_OCO3S2_UP_S2);
EURGBP_OCO3S2_UP_S2 = 0;
break;
}
int EURGBP_OCO3S3_UP_S2 = 0;
for (; EURGBP_OCO3S3_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets3.Count; EURGBP_OCO3S3_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets3[EURGBP_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO3Sets3[EURGBP_OCO3S3_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO3Sets3.RemoveAt(EURGBP_OCO3S3_UP_S2);
EURGBP_OCO3S3_UP_S2 = 0;
break;
}
int EURGBP_OCO3S4_UP_S2 = 0;
for (; EURGBP_OCO3S4_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets4.Count; EURGBP_OCO3S4_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets4[EURGBP_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO3Sets4[EURGBP_OCO3S4_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO3Sets4.RemoveAt(EURGBP_OCO3S4_UP_S2);
EURGBP_OCO3S4_UP_S2 = 0;
break;
}
int EURGBP_OCO3S5_UP_S2 = 0;
for (; EURGBP_OCO3S5_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets5.Count; EURGBP_OCO3S5_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets5[EURGBP_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO3Sets5[EURGBP_OCO3S5_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO3Sets5.RemoveAt(EURGBP_OCO3S5_UP_S2);
EURGBP_OCO3S5_UP_S2 = 0;
break;
}
int EURGBP_OCO3S6_UP_S2 = 0;
for (; EURGBP_OCO3S6_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets6.Count; EURGBP_OCO3S6_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets6[EURGBP_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO3Sets6[EURGBP_OCO3S6_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO3Sets6.RemoveAt(EURGBP_OCO3S6_UP_S2);
EURGBP_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO4_EO1_UP_S2)
Base.EURGBP_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO4_EO2_UP_S2)
Base.EURGBP_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO4_EO3_UP_S2)
Base.EURGBP_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO4_EO4_UP_S2)
Base.EURGBP_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO4_EO5_UP_S2)
Base.EURGBP_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO4_EO6_UP_S2)
Base.EURGBP_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO1_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP1,"TP1_EURGBP_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP1_EURGBP_UP_S2_OCO4"));
};
Base.EURGBP_UP_S2_OCO4Sets1.Add( Base.EURGBP_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO2_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP2,"TP2_EURGBP_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP2_EURGBP_UP_S2_OCO4"));
};
Base.EURGBP_UP_S2_OCO4Sets2.Add( Base.EURGBP_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO3_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP3,"TP3_EURGBP_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP3_EURGBP_UP_S2_OCO4"));
};
Base.EURGBP_UP_S2_OCO4Sets3.Add( Base.EURGBP_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO4_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP4,"TP4_EURGBP_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP4_EURGBP_UP_S2_OCO4"));
};
Base.EURGBP_UP_S2_OCO4Sets4.Add( Base.EURGBP_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO5_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP5,"TP5_EURGBP_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP5_EURGBP_UP_S2_OCO4"));
};
Base.EURGBP_UP_S2_OCO4Sets5.Add( Base.EURGBP_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO6_UP_S2_ID)
{
Base.EURGBP_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_UP_S2_TP6,"TP6_EURGBP_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_UP_S2_SL,"SL_TP6_EURGBP_UP_S2_OCO4"));
};
Base.EURGBP_UP_S2_OCO4Sets6.Add( Base.EURGBP_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO6_UP_S2_ID = -1;
}
int EURGBP_OCO4S1_UP_S2 = 0;
for (; EURGBP_OCO4S1_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets1.Count; EURGBP_OCO4S1_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets1[EURGBP_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO4Sets1[EURGBP_OCO4S1_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO4Sets1.RemoveAt(EURGBP_OCO4S1_UP_S2);
EURGBP_OCO4S1_UP_S2 = 0;
break;
}
int EURGBP_OCO4S2_UP_S2 = 0;
for (; EURGBP_OCO4S2_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets2.Count; EURGBP_OCO4S2_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets2[EURGBP_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO4Sets2[EURGBP_OCO4S2_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO4Sets2.RemoveAt(EURGBP_OCO4S2_UP_S2);
EURGBP_OCO4S2_UP_S2 = 0;
break;
}
int EURGBP_OCO4S3_UP_S2 = 0;
for (; EURGBP_OCO4S3_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets3.Count; EURGBP_OCO4S3_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets3[EURGBP_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO4Sets3[EURGBP_OCO4S3_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO4Sets3.RemoveAt(EURGBP_OCO4S3_UP_S2);
EURGBP_OCO4S3_UP_S2 = 0;
break;
}
int EURGBP_OCO4S4_UP_S2 = 0;
for (; EURGBP_OCO4S4_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets4.Count; EURGBP_OCO4S4_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets4[EURGBP_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO4Sets4[EURGBP_OCO4S4_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO4Sets4.RemoveAt(EURGBP_OCO4S4_UP_S2);
EURGBP_OCO4S4_UP_S2 = 0;
break;
}
int EURGBP_OCO4S5_UP_S2 = 0;
for (; EURGBP_OCO4S5_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets5.Count; EURGBP_OCO4S5_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets5[EURGBP_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO4Sets5[EURGBP_OCO4S5_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO4Sets5.RemoveAt(EURGBP_OCO4S5_UP_S2);
EURGBP_OCO4S5_UP_S2 = 0;
break;
}
int EURGBP_OCO4S6_UP_S2 = 0;
for (; EURGBP_OCO4S6_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets6.Count; EURGBP_OCO4S6_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets6[EURGBP_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_UP_S2_OCO4Sets6[EURGBP_OCO4S6_UP_S2].Filled();
Base.EURGBP_UP_S2_OCO4Sets6.RemoveAt(EURGBP_OCO4S6_UP_S2);
EURGBP_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct CHFJPY_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public CHFJPY_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
if (OrderID.Tag.StartsWith("CHFJPY OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("CHFJPY OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue CHFJPY S2");
}
}
if (Base.CHFJPY_OCO1_EO1_DOWN_S2)
Base.CHFJPY_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO1_EO2_DOWN_S2)
Base.CHFJPY_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO1_EO3_DOWN_S2)
Base.CHFJPY_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO1_EO4_DOWN_S2)
Base.CHFJPY_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO1_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP1_CHFJPY_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP1,"TP1_CHFJPY_DOWN_S2_OCO1"));
};
Base.CHFJPY_DOWN_S2_OCO1Sets1.Add( Base.CHFJPY_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO2_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP2_CHFJPY_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP2,"TP2_CHFJPY_DOWN_S2_OCO1"));
};
Base.CHFJPY_DOWN_S2_OCO1Sets2.Add( Base.CHFJPY_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO3_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP3_CHFJPY_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP3,"TP3_CHFJPY_DOWN_S2_OCO1"));
};
Base.CHFJPY_DOWN_S2_OCO1Sets3.Add( Base.CHFJPY_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO1_EO4_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP4_CHFJPY_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP4,"TP4_CHFJPY_DOWN_S2_OCO1"));
};
Base.CHFJPY_DOWN_S2_OCO1Sets4.Add( Base.CHFJPY_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO1_EO4_DOWN_S2_ID = -1;
}
int CHFJPY_OCO1S1_DOWN_S2 = 0;
for (; CHFJPY_OCO1S1_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets1.Count; CHFJPY_OCO1S1_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets1[CHFJPY_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO1Sets1[CHFJPY_OCO1S1_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO1Sets1.RemoveAt(CHFJPY_OCO1S1_DOWN_S2);
CHFJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO1S2_DOWN_S2 = 0;
for (; CHFJPY_OCO1S2_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets2.Count; CHFJPY_OCO1S2_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets2[CHFJPY_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO1Sets2[CHFJPY_OCO1S2_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO1Sets2.RemoveAt(CHFJPY_OCO1S2_DOWN_S2);
CHFJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO1S3_DOWN_S2 = 0;
for (; CHFJPY_OCO1S3_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets3.Count; CHFJPY_OCO1S3_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets3[CHFJPY_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO1Sets3[CHFJPY_OCO1S3_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO1Sets3.RemoveAt(CHFJPY_OCO1S3_DOWN_S2);
CHFJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO1S4_DOWN_S2 = 0;
for (; CHFJPY_OCO1S4_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO1Sets4.Count; CHFJPY_OCO1S4_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO1Sets4[CHFJPY_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO1Sets4[CHFJPY_OCO1S4_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO1Sets4.RemoveAt(CHFJPY_OCO1S4_DOWN_S2);
CHFJPY_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO2_EO1_DOWN_S2)
Base.CHFJPY_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO2_EO2_DOWN_S2)
Base.CHFJPY_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO2_EO3_DOWN_S2)
Base.CHFJPY_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO2_EO4_DOWN_S2)
Base.CHFJPY_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO1_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP1_CHFJPY_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP1,"TP1_CHFJPY_DOWN_S2_OCO2"));
};
Base.CHFJPY_DOWN_S2_OCO2Sets1.Add( Base.CHFJPY_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO2_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP2_CHFJPY_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP2,"TP2_CHFJPY_DOWN_S2_OCO2"));
};
Base.CHFJPY_DOWN_S2_OCO2Sets2.Add( Base.CHFJPY_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO3_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP3_CHFJPY_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP3,"TP3_CHFJPY_DOWN_S2_OCO2"));
};
Base.CHFJPY_DOWN_S2_OCO2Sets3.Add( Base.CHFJPY_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO2_EO4_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP4_CHFJPY_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP4,"TP4_CHFJPY_DOWN_S2_OCO2"));
};
Base.CHFJPY_DOWN_S2_OCO2Sets4.Add( Base.CHFJPY_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO2_EO4_DOWN_S2_ID = -1;
}
int CHFJPY_OCO2S1_DOWN_S2 = 0;
for (; CHFJPY_OCO2S1_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets1.Count; CHFJPY_OCO2S1_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets1[CHFJPY_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO2Sets1[CHFJPY_OCO2S1_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO2Sets1.RemoveAt(CHFJPY_OCO2S1_DOWN_S2);
CHFJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO2S2_DOWN_S2 = 0;
for (; CHFJPY_OCO2S2_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets2.Count; CHFJPY_OCO2S2_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets2[CHFJPY_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO2Sets2[CHFJPY_OCO2S2_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO2Sets2.RemoveAt(CHFJPY_OCO2S2_DOWN_S2);
CHFJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO2S3_DOWN_S2 = 0;
for (; CHFJPY_OCO2S3_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets3.Count; CHFJPY_OCO2S3_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets3[CHFJPY_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO2Sets3[CHFJPY_OCO2S3_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO2Sets3.RemoveAt(CHFJPY_OCO2S3_DOWN_S2);
CHFJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO2S4_DOWN_S2 = 0;
for (; CHFJPY_OCO2S4_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO2Sets4.Count; CHFJPY_OCO2S4_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO2Sets4[CHFJPY_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO2Sets4[CHFJPY_OCO2S4_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO2Sets4.RemoveAt(CHFJPY_OCO2S4_DOWN_S2);
CHFJPY_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO3_EO1_DOWN_S2)
Base.CHFJPY_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO3_EO2_DOWN_S2)
Base.CHFJPY_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO3_EO3_DOWN_S2)
Base.CHFJPY_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO3_EO4_DOWN_S2)
Base.CHFJPY_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO1_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP1_CHFJPY_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP1,"TP1_CHFJPY_DOWN_S2_OCO3"));
};
Base.CHFJPY_DOWN_S2_OCO3Sets1.Add( Base.CHFJPY_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO2_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP2_CHFJPY_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP2,"TP2_CHFJPY_DOWN_S2_OCO3"));
};
Base.CHFJPY_DOWN_S2_OCO3Sets2.Add( Base.CHFJPY_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO3_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP3_CHFJPY_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP3,"TP3_CHFJPY_DOWN_S2_OCO3"));
};
Base.CHFJPY_DOWN_S2_OCO3Sets3.Add( Base.CHFJPY_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO3_EO4_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP4_CHFJPY_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP4,"TP4_CHFJPY_DOWN_S2_OCO3"));
};
Base.CHFJPY_DOWN_S2_OCO3Sets4.Add( Base.CHFJPY_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO3_EO4_DOWN_S2_ID = -1;
}
int CHFJPY_OCO3S1_DOWN_S2 = 0;
for (; CHFJPY_OCO3S1_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets1.Count; CHFJPY_OCO3S1_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets1[CHFJPY_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO3Sets1[CHFJPY_OCO3S1_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO3Sets1.RemoveAt(CHFJPY_OCO3S1_DOWN_S2);
CHFJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO3S2_DOWN_S2 = 0;
for (; CHFJPY_OCO3S2_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets2.Count; CHFJPY_OCO3S2_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets2[CHFJPY_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO3Sets2[CHFJPY_OCO3S2_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO3Sets2.RemoveAt(CHFJPY_OCO3S2_DOWN_S2);
CHFJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO3S3_DOWN_S2 = 0;
for (; CHFJPY_OCO3S3_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets3.Count; CHFJPY_OCO3S3_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets3[CHFJPY_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO3Sets3[CHFJPY_OCO3S3_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO3Sets3.RemoveAt(CHFJPY_OCO3S3_DOWN_S2);
CHFJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO3S4_DOWN_S2 = 0;
for (; CHFJPY_OCO3S4_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO3Sets4.Count; CHFJPY_OCO3S4_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO3Sets4[CHFJPY_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO3Sets4[CHFJPY_OCO3S4_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO3Sets4.RemoveAt(CHFJPY_OCO3S4_DOWN_S2);
CHFJPY_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.CHFJPY_OCO4_EO1_DOWN_S2)
Base.CHFJPY_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO4_EO2_DOWN_S2)
Base.CHFJPY_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO4_EO3_DOWN_S2)
Base.CHFJPY_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.CHFJPY_OCO4_EO4_DOWN_S2)
Base.CHFJPY_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO1_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP1_CHFJPY_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP1,"TP1_CHFJPY_DOWN_S2_OCO4"));
};
Base.CHFJPY_DOWN_S2_OCO4Sets1.Add( Base.CHFJPY_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO2_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP2_CHFJPY_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP2,"TP2_CHFJPY_DOWN_S2_OCO4"));
};
Base.CHFJPY_DOWN_S2_OCO4Sets2.Add( Base.CHFJPY_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO3_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP3_CHFJPY_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP3,"TP3_CHFJPY_DOWN_S2_OCO4"));
};
Base.CHFJPY_DOWN_S2_OCO4Sets3.Add( Base.CHFJPY_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.CHFJPY_OCO4_EO4_DOWN_S2_ID)
{
Base.CHFJPY_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new CHFJPY_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.CHFJPY_DOWN_S2_SL,"SL_TP4_CHFJPY_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.CHFJPY_DOWN_S2_TP4,"TP4_CHFJPY_DOWN_S2_OCO4"));
};
Base.CHFJPY_DOWN_S2_OCO4Sets4.Add( Base.CHFJPY_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.CHFJPY_OCO4_EO4_DOWN_S2_ID = -1;
}
int CHFJPY_OCO4S1_DOWN_S2 = 0;
for (; CHFJPY_OCO4S1_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets1.Count; CHFJPY_OCO4S1_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets1[CHFJPY_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO4Sets1[CHFJPY_OCO4S1_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO4Sets1.RemoveAt(CHFJPY_OCO4S1_DOWN_S2);
CHFJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO4S2_DOWN_S2 = 0;
for (; CHFJPY_OCO4S2_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets2.Count; CHFJPY_OCO4S2_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets2[CHFJPY_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO4Sets2[CHFJPY_OCO4S2_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO4Sets2.RemoveAt(CHFJPY_OCO4S2_DOWN_S2);
CHFJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO4S3_DOWN_S2 = 0;
for (; CHFJPY_OCO4S3_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets3.Count; CHFJPY_OCO4S3_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets3[CHFJPY_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO4Sets3[CHFJPY_OCO4S3_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO4Sets3.RemoveAt(CHFJPY_OCO4S3_DOWN_S2);
CHFJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int CHFJPY_OCO4S4_DOWN_S2 = 0;
for (; CHFJPY_OCO4S4_DOWN_S2 < Base.CHFJPY_DOWN_S2_OCO4Sets4.Count; CHFJPY_OCO4S4_DOWN_S2++)
if (Base.CHFJPY_DOWN_S2_OCO4Sets4[CHFJPY_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.CHFJPY_DOWN_S2_OCO4Sets4[CHFJPY_OCO4S4_DOWN_S2].Filled();
Base.CHFJPY_DOWN_S2_OCO4Sets4.RemoveAt(CHFJPY_OCO4S4_DOWN_S2);
CHFJPY_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURGBP_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURGBP_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
if (OrderID.Tag.StartsWith("EURGBP OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("EURGBP OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue EURGBP S2");
}
}
if (Base.EURGBP_OCO1_EO1_DOWN_S2)
Base.EURGBP_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO1_EO2_DOWN_S2)
Base.EURGBP_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO1_EO3_DOWN_S2)
Base.EURGBP_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO1_EO4_DOWN_S2)
Base.EURGBP_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO1_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP1_EURGBP_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP1,"TP1_EURGBP_DOWN_S2_OCO1"));
};
Base.EURGBP_DOWN_S2_OCO1Sets1.Add( Base.EURGBP_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO2_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP2_EURGBP_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP2,"TP2_EURGBP_DOWN_S2_OCO1"));
};
Base.EURGBP_DOWN_S2_OCO1Sets2.Add( Base.EURGBP_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO3_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP3_EURGBP_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP3,"TP3_EURGBP_DOWN_S2_OCO1"));
};
Base.EURGBP_DOWN_S2_OCO1Sets3.Add( Base.EURGBP_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO1_EO4_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP4_EURGBP_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP4,"TP4_EURGBP_DOWN_S2_OCO1"));
};
Base.EURGBP_DOWN_S2_OCO1Sets4.Add( Base.EURGBP_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO1_EO4_DOWN_S2_ID = -1;
}
int EURGBP_OCO1S1_DOWN_S2 = 0;
for (; EURGBP_OCO1S1_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets1.Count; EURGBP_OCO1S1_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets1[EURGBP_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO1Sets1[EURGBP_OCO1S1_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO1Sets1.RemoveAt(EURGBP_OCO1S1_DOWN_S2);
EURGBP_OCO1S1_DOWN_S2 = 0;
break;
}
int EURGBP_OCO1S2_DOWN_S2 = 0;
for (; EURGBP_OCO1S2_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets2.Count; EURGBP_OCO1S2_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets2[EURGBP_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO1Sets2[EURGBP_OCO1S2_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO1Sets2.RemoveAt(EURGBP_OCO1S2_DOWN_S2);
EURGBP_OCO1S2_DOWN_S2 = 0;
break;
}
int EURGBP_OCO1S3_DOWN_S2 = 0;
for (; EURGBP_OCO1S3_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets3.Count; EURGBP_OCO1S3_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets3[EURGBP_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO1Sets3[EURGBP_OCO1S3_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO1Sets3.RemoveAt(EURGBP_OCO1S3_DOWN_S2);
EURGBP_OCO1S3_DOWN_S2 = 0;
break;
}
int EURGBP_OCO1S4_DOWN_S2 = 0;
for (; EURGBP_OCO1S4_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets4.Count; EURGBP_OCO1S4_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets4[EURGBP_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO1Sets4[EURGBP_OCO1S4_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO1Sets4.RemoveAt(EURGBP_OCO1S4_DOWN_S2);
EURGBP_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO2_EO1_DOWN_S2)
Base.EURGBP_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO2_EO2_DOWN_S2)
Base.EURGBP_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO2_EO3_DOWN_S2)
Base.EURGBP_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO2_EO4_DOWN_S2)
Base.EURGBP_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO1_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP1_EURGBP_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP1,"TP1_EURGBP_DOWN_S2_OCO2"));
};
Base.EURGBP_DOWN_S2_OCO2Sets1.Add( Base.EURGBP_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO2_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP2_EURGBP_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP2,"TP2_EURGBP_DOWN_S2_OCO2"));
};
Base.EURGBP_DOWN_S2_OCO2Sets2.Add( Base.EURGBP_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO3_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP3_EURGBP_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP3,"TP3_EURGBP_DOWN_S2_OCO2"));
};
Base.EURGBP_DOWN_S2_OCO2Sets3.Add( Base.EURGBP_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO2_EO4_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP4_EURGBP_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP4,"TP4_EURGBP_DOWN_S2_OCO2"));
};
Base.EURGBP_DOWN_S2_OCO2Sets4.Add( Base.EURGBP_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO2_EO4_DOWN_S2_ID = -1;
}
int EURGBP_OCO2S1_DOWN_S2 = 0;
for (; EURGBP_OCO2S1_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets1.Count; EURGBP_OCO2S1_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets1[EURGBP_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO2Sets1[EURGBP_OCO2S1_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO2Sets1.RemoveAt(EURGBP_OCO2S1_DOWN_S2);
EURGBP_OCO2S1_DOWN_S2 = 0;
break;
}
int EURGBP_OCO2S2_DOWN_S2 = 0;
for (; EURGBP_OCO2S2_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets2.Count; EURGBP_OCO2S2_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets2[EURGBP_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO2Sets2[EURGBP_OCO2S2_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO2Sets2.RemoveAt(EURGBP_OCO2S2_DOWN_S2);
EURGBP_OCO2S2_DOWN_S2 = 0;
break;
}
int EURGBP_OCO2S3_DOWN_S2 = 0;
for (; EURGBP_OCO2S3_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets3.Count; EURGBP_OCO2S3_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets3[EURGBP_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO2Sets3[EURGBP_OCO2S3_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO2Sets3.RemoveAt(EURGBP_OCO2S3_DOWN_S2);
EURGBP_OCO2S3_DOWN_S2 = 0;
break;
}
int EURGBP_OCO2S4_DOWN_S2 = 0;
for (; EURGBP_OCO2S4_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets4.Count; EURGBP_OCO2S4_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets4[EURGBP_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO2Sets4[EURGBP_OCO2S4_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO2Sets4.RemoveAt(EURGBP_OCO2S4_DOWN_S2);
EURGBP_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO3_EO1_DOWN_S2)
Base.EURGBP_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO3_EO2_DOWN_S2)
Base.EURGBP_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO3_EO3_DOWN_S2)
Base.EURGBP_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO3_EO4_DOWN_S2)
Base.EURGBP_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO1_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP1_EURGBP_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP1,"TP1_EURGBP_DOWN_S2_OCO3"));
};
Base.EURGBP_DOWN_S2_OCO3Sets1.Add( Base.EURGBP_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO2_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP2_EURGBP_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP2,"TP2_EURGBP_DOWN_S2_OCO3"));
};
Base.EURGBP_DOWN_S2_OCO3Sets2.Add( Base.EURGBP_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO3_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP3_EURGBP_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP3,"TP3_EURGBP_DOWN_S2_OCO3"));
};
Base.EURGBP_DOWN_S2_OCO3Sets3.Add( Base.EURGBP_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO3_EO4_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP4_EURGBP_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP4,"TP4_EURGBP_DOWN_S2_OCO3"));
};
Base.EURGBP_DOWN_S2_OCO3Sets4.Add( Base.EURGBP_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO3_EO4_DOWN_S2_ID = -1;
}
int EURGBP_OCO3S1_DOWN_S2 = 0;
for (; EURGBP_OCO3S1_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets1.Count; EURGBP_OCO3S1_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets1[EURGBP_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO3Sets1[EURGBP_OCO3S1_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO3Sets1.RemoveAt(EURGBP_OCO3S1_DOWN_S2);
EURGBP_OCO3S1_DOWN_S2 = 0;
break;
}
int EURGBP_OCO3S2_DOWN_S2 = 0;
for (; EURGBP_OCO3S2_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets2.Count; EURGBP_OCO3S2_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets2[EURGBP_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO3Sets2[EURGBP_OCO3S2_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO3Sets2.RemoveAt(EURGBP_OCO3S2_DOWN_S2);
EURGBP_OCO3S2_DOWN_S2 = 0;
break;
}
int EURGBP_OCO3S3_DOWN_S2 = 0;
for (; EURGBP_OCO3S3_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets3.Count; EURGBP_OCO3S3_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets3[EURGBP_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO3Sets3[EURGBP_OCO3S3_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO3Sets3.RemoveAt(EURGBP_OCO3S3_DOWN_S2);
EURGBP_OCO3S3_DOWN_S2 = 0;
break;
}
int EURGBP_OCO3S4_DOWN_S2 = 0;
for (; EURGBP_OCO3S4_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets4.Count; EURGBP_OCO3S4_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets4[EURGBP_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO3Sets4[EURGBP_OCO3S4_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO3Sets4.RemoveAt(EURGBP_OCO3S4_DOWN_S2);
EURGBP_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO4_EO1_DOWN_S2)
Base.EURGBP_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO4_EO2_DOWN_S2)
Base.EURGBP_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO4_EO3_DOWN_S2)
Base.EURGBP_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.EURGBP_OCO4_EO4_DOWN_S2)
Base.EURGBP_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO1_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP1_EURGBP_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP1,"TP1_EURGBP_DOWN_S2_OCO4"));
};
Base.EURGBP_DOWN_S2_OCO4Sets1.Add( Base.EURGBP_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO2_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP2_EURGBP_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP2,"TP2_EURGBP_DOWN_S2_OCO4"));
};
Base.EURGBP_DOWN_S2_OCO4Sets2.Add( Base.EURGBP_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO3_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP3_EURGBP_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP3,"TP3_EURGBP_DOWN_S2_OCO4"));
};
Base.EURGBP_DOWN_S2_OCO4Sets3.Add( Base.EURGBP_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURGBP_OCO4_EO4_DOWN_S2_ID)
{
Base.EURGBP_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURGBP_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURGBP_DOWN_S2_SL,"SL_TP4_EURGBP_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURGBP_DOWN_S2_TP4,"TP4_EURGBP_DOWN_S2_OCO4"));
};
Base.EURGBP_DOWN_S2_OCO4Sets4.Add( Base.EURGBP_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURGBP_OCO4_EO4_DOWN_S2_ID = -1;
}
int EURGBP_OCO4S1_DOWN_S2 = 0;
for (; EURGBP_OCO4S1_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets1.Count; EURGBP_OCO4S1_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets1[EURGBP_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO4Sets1[EURGBP_OCO4S1_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO4Sets1.RemoveAt(EURGBP_OCO4S1_DOWN_S2);
EURGBP_OCO4S1_DOWN_S2 = 0;
break;
}
int EURGBP_OCO4S2_DOWN_S2 = 0;
for (; EURGBP_OCO4S2_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets2.Count; EURGBP_OCO4S2_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets2[EURGBP_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO4Sets2[EURGBP_OCO4S2_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO4Sets2.RemoveAt(EURGBP_OCO4S2_DOWN_S2);
EURGBP_OCO4S2_DOWN_S2 = 0;
break;
}
int EURGBP_OCO4S3_DOWN_S2 = 0;
for (; EURGBP_OCO4S3_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets3.Count; EURGBP_OCO4S3_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets3[EURGBP_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO4Sets3[EURGBP_OCO4S3_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO4Sets3.RemoveAt(EURGBP_OCO4S3_DOWN_S2);
EURGBP_OCO4S3_DOWN_S2 = 0;
break;
}
int EURGBP_OCO4S4_DOWN_S2 = 0;
for (; EURGBP_OCO4S4_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets4.Count; EURGBP_OCO4S4_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets4[EURGBP_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.EURGBP_DOWN_S2_OCO4Sets4[EURGBP_OCO4S4_DOWN_S2].Filled();
Base.EURGBP_DOWN_S2_OCO4Sets4.RemoveAt(EURGBP_OCO4S4_DOWN_S2);
EURGBP_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDCAD_DOWN_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDCAD_DOWN_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 1 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 1 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 2 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 2 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 3 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 3 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
if (OrderID.Tag.StartsWith("AUDCAD OCO1 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO2 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO3 CANCEL 4 DOWN S2") ||
OrderID.Tag.StartsWith("AUDCAD OCO4 CANCEL 4 DOWN S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCAD S2");
}
}
if (Base.AUDCAD_OCO1_EO1_DOWN_S2)
Base.AUDCAD_OCO1_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO1_EO2_DOWN_S2)
Base.AUDCAD_OCO1_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO1_EO3_DOWN_S2)
Base.AUDCAD_OCO1_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO1_EO4_DOWN_S2)
Base.AUDCAD_OCO1_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO1_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP1_AUDCAD_DOWN_S2_OCO1"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP1,"TP1_AUDCAD_DOWN_S2_OCO1"));
};
Base.AUDCAD_DOWN_S2_OCO1Sets1.Add( Base.AUDCAD_OOFE_OCO1_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO2_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP2_AUDCAD_DOWN_S2_OCO1"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP2,"TP2_AUDCAD_DOWN_S2_OCO1"));
};
Base.AUDCAD_DOWN_S2_OCO1Sets2.Add( Base.AUDCAD_OOFE_OCO1_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO3_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP3_AUDCAD_DOWN_S2_OCO1"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP3,"TP3_AUDCAD_DOWN_S2_OCO1"));
};
Base.AUDCAD_DOWN_S2_OCO1Sets3.Add( Base.AUDCAD_OOFE_OCO1_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO1_EO4_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO1_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO1_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP4_AUDCAD_DOWN_S2_OCO1"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP4,"TP4_AUDCAD_DOWN_S2_OCO1"));
};
Base.AUDCAD_DOWN_S2_OCO1Sets4.Add( Base.AUDCAD_OOFE_OCO1_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO1_EO4_DOWN_S2_ID = -1;
}
int AUDCAD_OCO1S1_DOWN_S2 = 0;
for (; AUDCAD_OCO1S1_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets1.Count; AUDCAD_OCO1S1_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets1[AUDCAD_OCO1S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO1Sets1[AUDCAD_OCO1S1_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO1Sets1.RemoveAt(AUDCAD_OCO1S1_DOWN_S2);
AUDCAD_OCO1S1_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO1S2_DOWN_S2 = 0;
for (; AUDCAD_OCO1S2_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets2.Count; AUDCAD_OCO1S2_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets2[AUDCAD_OCO1S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO1Sets2[AUDCAD_OCO1S2_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO1Sets2.RemoveAt(AUDCAD_OCO1S2_DOWN_S2);
AUDCAD_OCO1S2_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO1S3_DOWN_S2 = 0;
for (; AUDCAD_OCO1S3_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets3.Count; AUDCAD_OCO1S3_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets3[AUDCAD_OCO1S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO1Sets3[AUDCAD_OCO1S3_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO1Sets3.RemoveAt(AUDCAD_OCO1S3_DOWN_S2);
AUDCAD_OCO1S3_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO1S4_DOWN_S2 = 0;
for (; AUDCAD_OCO1S4_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO1Sets4.Count; AUDCAD_OCO1S4_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO1Sets4[AUDCAD_OCO1S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO1Sets4[AUDCAD_OCO1S4_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO1Sets4.RemoveAt(AUDCAD_OCO1S4_DOWN_S2);
AUDCAD_OCO1S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO2_EO1_DOWN_S2)
Base.AUDCAD_OCO2_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO2_EO2_DOWN_S2)
Base.AUDCAD_OCO2_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO2_EO3_DOWN_S2)
Base.AUDCAD_OCO2_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO2_EO4_DOWN_S2)
Base.AUDCAD_OCO2_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO1_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP1_AUDCAD_DOWN_S2_OCO2"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP1,"TP1_AUDCAD_DOWN_S2_OCO2"));
};
Base.AUDCAD_DOWN_S2_OCO2Sets1.Add( Base.AUDCAD_OOFE_OCO2_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO2_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP2_AUDCAD_DOWN_S2_OCO2"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP2,"TP2_AUDCAD_DOWN_S2_OCO2"));
};
Base.AUDCAD_DOWN_S2_OCO2Sets2.Add( Base.AUDCAD_OOFE_OCO2_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO3_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP3_AUDCAD_DOWN_S2_OCO2"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP3,"TP3_AUDCAD_DOWN_S2_OCO2"));
};
Base.AUDCAD_DOWN_S2_OCO2Sets3.Add( Base.AUDCAD_OOFE_OCO2_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO2_EO4_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO2_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO2_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP4_AUDCAD_DOWN_S2_OCO2"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP4,"TP4_AUDCAD_DOWN_S2_OCO2"));
};
Base.AUDCAD_DOWN_S2_OCO2Sets4.Add( Base.AUDCAD_OOFE_OCO2_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO2_EO4_DOWN_S2_ID = -1;
}
int AUDCAD_OCO2S1_DOWN_S2 = 0;
for (; AUDCAD_OCO2S1_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets1.Count; AUDCAD_OCO2S1_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets1[AUDCAD_OCO2S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO2Sets1[AUDCAD_OCO2S1_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO2Sets1.RemoveAt(AUDCAD_OCO2S1_DOWN_S2);
AUDCAD_OCO2S1_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO2S2_DOWN_S2 = 0;
for (; AUDCAD_OCO2S2_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets2.Count; AUDCAD_OCO2S2_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets2[AUDCAD_OCO2S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO2Sets2[AUDCAD_OCO2S2_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO2Sets2.RemoveAt(AUDCAD_OCO2S2_DOWN_S2);
AUDCAD_OCO2S2_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO2S3_DOWN_S2 = 0;
for (; AUDCAD_OCO2S3_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets3.Count; AUDCAD_OCO2S3_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets3[AUDCAD_OCO2S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO2Sets3[AUDCAD_OCO2S3_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO2Sets3.RemoveAt(AUDCAD_OCO2S3_DOWN_S2);
AUDCAD_OCO2S3_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO2S4_DOWN_S2 = 0;
for (; AUDCAD_OCO2S4_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO2Sets4.Count; AUDCAD_OCO2S4_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO2Sets4[AUDCAD_OCO2S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO2Sets4[AUDCAD_OCO2S4_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO2Sets4.RemoveAt(AUDCAD_OCO2S4_DOWN_S2);
AUDCAD_OCO2S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO3_EO1_DOWN_S2)
Base.AUDCAD_OCO3_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO3_EO2_DOWN_S2)
Base.AUDCAD_OCO3_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO3_EO3_DOWN_S2)
Base.AUDCAD_OCO3_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO3_EO4_DOWN_S2)
Base.AUDCAD_OCO3_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO1_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP1_AUDCAD_DOWN_S2_OCO3"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP1,"TP1_AUDCAD_DOWN_S2_OCO3"));
};
Base.AUDCAD_DOWN_S2_OCO3Sets1.Add( Base.AUDCAD_OOFE_OCO3_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO2_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP2_AUDCAD_DOWN_S2_OCO3"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP2,"TP2_AUDCAD_DOWN_S2_OCO3"));
};
Base.AUDCAD_DOWN_S2_OCO3Sets2.Add( Base.AUDCAD_OOFE_OCO3_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO3_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP3_AUDCAD_DOWN_S2_OCO3"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP3,"TP3_AUDCAD_DOWN_S2_OCO3"));
};
Base.AUDCAD_DOWN_S2_OCO3Sets3.Add( Base.AUDCAD_OOFE_OCO3_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO3_EO4_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO3_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO3_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP4_AUDCAD_DOWN_S2_OCO3"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP4,"TP4_AUDCAD_DOWN_S2_OCO3"));
};
Base.AUDCAD_DOWN_S2_OCO3Sets4.Add( Base.AUDCAD_OOFE_OCO3_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO3_EO4_DOWN_S2_ID = -1;
}
int AUDCAD_OCO3S1_DOWN_S2 = 0;
for (; AUDCAD_OCO3S1_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets1.Count; AUDCAD_OCO3S1_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets1[AUDCAD_OCO3S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO3Sets1[AUDCAD_OCO3S1_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO3Sets1.RemoveAt(AUDCAD_OCO3S1_DOWN_S2);
AUDCAD_OCO3S1_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO3S2_DOWN_S2 = 0;
for (; AUDCAD_OCO3S2_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets2.Count; AUDCAD_OCO3S2_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets2[AUDCAD_OCO3S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO3Sets2[AUDCAD_OCO3S2_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO3Sets2.RemoveAt(AUDCAD_OCO3S2_DOWN_S2);
AUDCAD_OCO3S2_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO3S3_DOWN_S2 = 0;
for (; AUDCAD_OCO3S3_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets3.Count; AUDCAD_OCO3S3_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets3[AUDCAD_OCO3S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO3Sets3[AUDCAD_OCO3S3_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO3Sets3.RemoveAt(AUDCAD_OCO3S3_DOWN_S2);
AUDCAD_OCO3S3_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO3S4_DOWN_S2 = 0;
for (; AUDCAD_OCO3S4_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO3Sets4.Count; AUDCAD_OCO3S4_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO3Sets4[AUDCAD_OCO3S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO3Sets4[AUDCAD_OCO3S4_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO3Sets4.RemoveAt(AUDCAD_OCO3S4_DOWN_S2);
AUDCAD_OCO3S4_DOWN_S2 = 0;
break;
}
}
if (Base.AUDCAD_OCO4_EO1_DOWN_S2)
Base.AUDCAD_OCO4_EO1_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO4_EO2_DOWN_S2)
Base.AUDCAD_OCO4_EO2_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO4_EO3_DOWN_S2)
Base.AUDCAD_OCO4_EO3_DOWN_S2_ID = orderEvent.OrderId;
if (Base.AUDCAD_OCO4_EO4_DOWN_S2)
Base.AUDCAD_OCO4_EO4_DOWN_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO1_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_DOWN_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_DOWN_S2(
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP1_AUDCAD_DOWN_S2_OCO4"),
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP1,"TP1_AUDCAD_DOWN_S2_OCO4"));
};
Base.AUDCAD_DOWN_S2_OCO4Sets1.Add( Base.AUDCAD_OOFE_OCO4_DOWN_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO1_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO2_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_DOWN_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_DOWN_S2(
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP2_AUDCAD_DOWN_S2_OCO4"),
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP2,"TP2_AUDCAD_DOWN_S2_OCO4"));
};
Base.AUDCAD_DOWN_S2_OCO4Sets2.Add( Base.AUDCAD_OOFE_OCO4_DOWN_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO2_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO3_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_DOWN_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_DOWN_S2(
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP3_AUDCAD_DOWN_S2_OCO4"),
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP3,"TP3_AUDCAD_DOWN_S2_OCO4"));
};
Base.AUDCAD_DOWN_S2_OCO4Sets3.Add( Base.AUDCAD_OOFE_OCO4_DOWN_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO3_DOWN_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCAD_OCO4_EO4_DOWN_S2_ID)
{
Base.AUDCAD_OOFE_OCO4_DOWN_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCAD_OCO4_DOWN_S2(
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCAD_DOWN_S2_SL,"SL_TP4_AUDCAD_DOWN_S2_OCO4"),
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCAD_DOWN_S2_TP4,"TP4_AUDCAD_DOWN_S2_OCO4"));
};
Base.AUDCAD_DOWN_S2_OCO4Sets4.Add( Base.AUDCAD_OOFE_OCO4_DOWN_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCAD_OCO4_EO4_DOWN_S2_ID = -1;
}
int AUDCAD_OCO4S1_DOWN_S2 = 0;
for (; AUDCAD_OCO4S1_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets1.Count; AUDCAD_OCO4S1_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets1[AUDCAD_OCO4S1_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO4Sets1[AUDCAD_OCO4S1_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO4Sets1.RemoveAt(AUDCAD_OCO4S1_DOWN_S2);
AUDCAD_OCO4S1_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO4S2_DOWN_S2 = 0;
for (; AUDCAD_OCO4S2_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets2.Count; AUDCAD_OCO4S2_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets2[AUDCAD_OCO4S2_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO4Sets2[AUDCAD_OCO4S2_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO4Sets2.RemoveAt(AUDCAD_OCO4S2_DOWN_S2);
AUDCAD_OCO4S2_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO4S3_DOWN_S2 = 0;
for (; AUDCAD_OCO4S3_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets3.Count; AUDCAD_OCO4S3_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets3[AUDCAD_OCO4S3_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO4Sets3[AUDCAD_OCO4S3_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO4Sets3.RemoveAt(AUDCAD_OCO4S3_DOWN_S2);
AUDCAD_OCO4S3_DOWN_S2 = 0;
break;
}
int AUDCAD_OCO4S4_DOWN_S2 = 0;
for (; AUDCAD_OCO4S4_DOWN_S2 < Base.AUDCAD_DOWN_S2_OCO4Sets4.Count; AUDCAD_OCO4S4_DOWN_S2++)
if (Base.AUDCAD_DOWN_S2_OCO4Sets4[AUDCAD_OCO4S4_DOWN_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCAD_DOWN_S2_OCO4Sets4[AUDCAD_OCO4S4_DOWN_S2].Filled();
Base.AUDCAD_DOWN_S2_OCO4Sets4.RemoveAt(AUDCAD_OCO4S4_DOWN_S2);
AUDCAD_OCO4S4_DOWN_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _EURUSD;
///oco1 up
public static OrderTicket EURUSD_OCO1_MO1_UP_S2;
public static OrderTicket EURUSD_OCO1_MO2_UP_S2;
public static OrderTicket EURUSD_OCO1_MO3_UP_S2;
public static OrderTicket EURUSD_OCO1_MO4_UP_S2;
public static OrderTicket EURUSD_OCO1_MO5_UP_S2;
public static OrderTicket EURUSD_OCO1_MO6_UP_S2;
public static int EURUSD_OCO1_EO1_UP_S2_ID ;
public static int EURUSD_OCO1_EO2_UP_S2_ID ;
public static int EURUSD_OCO1_EO3_UP_S2_ID ;
public static int EURUSD_OCO1_EO4_UP_S2_ID ;
public static int EURUSD_OCO1_EO5_UP_S2_ID ;
public static int EURUSD_OCO1_EO6_UP_S2_ID ;
public static bool EURUSD_OCO1_EO1_UP_S2 ;
public static bool EURUSD_OCO1_EO2_UP_S2 ;
public static bool EURUSD_OCO1_EO3_UP_S2 ;
public static bool EURUSD_OCO1_EO4_UP_S2 ;
public static bool EURUSD_OCO1_EO5_UP_S2 ;
public static bool EURUSD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_UP_S2> EURUSD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_UP_S2> EURUSD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_UP_S2> EURUSD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_UP_S2> EURUSD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_UP_S2> EURUSD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_UP_S2> EURUSD_OOFE_OCO1_UP_S2_6 ;
public static EURUSD_OCO1_UP_S2 EURUSD_PFO_OCO1_UP_S2_1 ;
public static EURUSD_OCO1_UP_S2 EURUSD_PFO_OCO1_UP_S2_2 ;
public static EURUSD_OCO1_UP_S2 EURUSD_PFO_OCO1_UP_S2_3 ;
public static EURUSD_OCO1_UP_S2 EURUSD_PFO_OCO1_UP_S2_4 ;
public static EURUSD_OCO1_UP_S2 EURUSD_PFO_OCO1_UP_S2_5 ;
public static EURUSD_OCO1_UP_S2 EURUSD_PFO_OCO1_UP_S2_6 ;
public static List<EURUSD_OCO1_UP_S2> EURUSD_UP_S2_OCO1Sets1 = new List<EURUSD_OCO1_UP_S2>();
public static List<EURUSD_OCO1_UP_S2> EURUSD_UP_S2_OCO1Sets2 = new List<EURUSD_OCO1_UP_S2>();
public static List<EURUSD_OCO1_UP_S2> EURUSD_UP_S2_OCO1Sets3 = new List<EURUSD_OCO1_UP_S2>();
public static List<EURUSD_OCO1_UP_S2> EURUSD_UP_S2_OCO1Sets4 = new List<EURUSD_OCO1_UP_S2>();
public static List<EURUSD_OCO1_UP_S2> EURUSD_UP_S2_OCO1Sets5 = new List<EURUSD_OCO1_UP_S2>();
public static List<EURUSD_OCO1_UP_S2> EURUSD_UP_S2_OCO1Sets6 = new List<EURUSD_OCO1_UP_S2>();
public static bool EURUSD_OCO1_UP_S2_IsReady = true;
public static bool EURUSD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket EURUSD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket EURUSD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket EURUSD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket EURUSD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket EURUSD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket EURUSD_OCO1_MO6_DOWN_S2 ;
public static int EURUSD_OCO1_EO1_DOWN_S2_ID ;
public static int EURUSD_OCO1_EO2_DOWN_S2_ID ;
public static int EURUSD_OCO1_EO3_DOWN_S2_ID ;
public static int EURUSD_OCO1_EO4_DOWN_S2_ID ;
public static int EURUSD_OCO1_EO5_DOWN_S2_ID ;
public static int EURUSD_OCO1_EO6_DOWN_S2_ID ;
public static bool EURUSD_OCO1_EO1_DOWN_S2 ;
public static bool EURUSD_OCO1_EO2_DOWN_S2 ;
public static bool EURUSD_OCO1_EO3_DOWN_S2 ;
public static bool EURUSD_OCO1_EO4_DOWN_S2 ;
public static bool EURUSD_OCO1_EO5_DOWN_S2 ;
public static bool EURUSD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_DOWN_S2> EURUSD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_DOWN_S2> EURUSD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_DOWN_S2> EURUSD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_DOWN_S2> EURUSD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_DOWN_S2> EURUSD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO1_DOWN_S2> EURUSD_OOFE_OCO1_DOWN_S2_6 ;
public static EURUSD_OCO1_DOWN_S2 EURUSD_PFO_OCO1_DOWN_S2_1 ;
public static EURUSD_OCO1_DOWN_S2 EURUSD_PFO_OCO1_DOWN_S2_2 ;
public static EURUSD_OCO1_DOWN_S2 EURUSD_PFO_OCO1_DOWN_S2_3 ;
public static EURUSD_OCO1_DOWN_S2 EURUSD_PFO_OCO1_DOWN_S2_4 ;
public static EURUSD_OCO1_DOWN_S2 EURUSD_PFO_OCO1_DOWN_S2_5 ;
public static EURUSD_OCO1_DOWN_S2 EURUSD_PFO_OCO1_DOWN_S2_6 ;
public static List<EURUSD_OCO1_DOWN_S2> EURUSD_DOWN_S2_OCO1Sets1 = new List<EURUSD_OCO1_DOWN_S2>();
public static List<EURUSD_OCO1_DOWN_S2> EURUSD_DOWN_S2_OCO1Sets2 = new List<EURUSD_OCO1_DOWN_S2>();
public static List<EURUSD_OCO1_DOWN_S2> EURUSD_DOWN_S2_OCO1Sets3 = new List<EURUSD_OCO1_DOWN_S2>();
public static List<EURUSD_OCO1_DOWN_S2> EURUSD_DOWN_S2_OCO1Sets4 = new List<EURUSD_OCO1_DOWN_S2>();
public static List<EURUSD_OCO1_DOWN_S2> EURUSD_DOWN_S2_OCO1Sets5 = new List<EURUSD_OCO1_DOWN_S2>();
public static List<EURUSD_OCO1_DOWN_S2> EURUSD_DOWN_S2_OCO1Sets6 = new List<EURUSD_OCO1_DOWN_S2>();
public static bool EURUSD_OCO1_DOWN_S2_IsReady = true;
public static bool EURUSD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket EURUSD_OCO2_MO1_UP_S2 ;
public static OrderTicket EURUSD_OCO2_MO2_UP_S2 ;
public static OrderTicket EURUSD_OCO2_MO3_UP_S2 ;
public static OrderTicket EURUSD_OCO2_MO4_UP_S2 ;
public static OrderTicket EURUSD_OCO2_MO5_UP_S2 ;
public static OrderTicket EURUSD_OCO2_MO6_UP_S2 ;
public static int EURUSD_OCO2_EO1_UP_S2_ID ;
public static int EURUSD_OCO2_EO2_UP_S2_ID ;
public static int EURUSD_OCO2_EO3_UP_S2_ID ;
public static int EURUSD_OCO2_EO4_UP_S2_ID ;
public static int EURUSD_OCO2_EO5_UP_S2_ID ;
public static int EURUSD_OCO2_EO6_UP_S2_ID ;
public static bool EURUSD_OCO2_EO1_UP_S2 ;
public static bool EURUSD_OCO2_EO2_UP_S2 ;
public static bool EURUSD_OCO2_EO3_UP_S2 ;
public static bool EURUSD_OCO2_EO4_UP_S2 ;
public static bool EURUSD_OCO2_EO5_UP_S2 ;
public static bool EURUSD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_UP_S2> EURUSD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_UP_S2> EURUSD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_UP_S2> EURUSD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_UP_S2> EURUSD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_UP_S2> EURUSD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_UP_S2> EURUSD_OOFE_OCO2_UP_S2_6 ;
public static EURUSD_OCO2_UP_S2 EURUSD_PFO_OCO2_UP_S2_1 ;
public static EURUSD_OCO2_UP_S2 EURUSD_PFO_OCO2_UP_S2_2 ;
public static EURUSD_OCO2_UP_S2 EURUSD_PFO_OCO2_UP_S2_3 ;
public static EURUSD_OCO2_UP_S2 EURUSD_PFO_OCO2_UP_S2_4 ;
public static EURUSD_OCO2_UP_S2 EURUSD_PFO_OCO2_UP_S2_5 ;
public static EURUSD_OCO2_UP_S2 EURUSD_PFO_OCO2_UP_S2_6 ;
public static List<EURUSD_OCO2_UP_S2> EURUSD_UP_S2_OCO2Sets1 = new List<EURUSD_OCO2_UP_S2>();
public static List<EURUSD_OCO2_UP_S2> EURUSD_UP_S2_OCO2Sets2 = new List<EURUSD_OCO2_UP_S2>();
public static List<EURUSD_OCO2_UP_S2> EURUSD_UP_S2_OCO2Sets3 = new List<EURUSD_OCO2_UP_S2>();
public static List<EURUSD_OCO2_UP_S2> EURUSD_UP_S2_OCO2Sets4 = new List<EURUSD_OCO2_UP_S2>();
public static List<EURUSD_OCO2_UP_S2> EURUSD_UP_S2_OCO2Sets5 = new List<EURUSD_OCO2_UP_S2>();
public static List<EURUSD_OCO2_UP_S2> EURUSD_UP_S2_OCO2Sets6 = new List<EURUSD_OCO2_UP_S2>();
public static bool EURUSD_OCO2_UP_S2_IsReady = true;
public static bool EURUSD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket EURUSD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket EURUSD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket EURUSD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket EURUSD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket EURUSD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket EURUSD_OCO2_MO6_DOWN_S2 ;
public static int EURUSD_OCO2_EO1_DOWN_S2_ID ;
public static int EURUSD_OCO2_EO2_DOWN_S2_ID ;
public static int EURUSD_OCO2_EO3_DOWN_S2_ID ;
public static int EURUSD_OCO2_EO4_DOWN_S2_ID ;
public static int EURUSD_OCO2_EO5_DOWN_S2_ID ;
public static int EURUSD_OCO2_EO6_DOWN_S2_ID ;
public static bool EURUSD_OCO2_EO1_DOWN_S2 ;
public static bool EURUSD_OCO2_EO2_DOWN_S2 ;
public static bool EURUSD_OCO2_EO3_DOWN_S2 ;
public static bool EURUSD_OCO2_EO4_DOWN_S2 ;
public static bool EURUSD_OCO2_EO5_DOWN_S2 ;
public static bool EURUSD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_DOWN_S2> EURUSD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_DOWN_S2> EURUSD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_DOWN_S2> EURUSD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_DOWN_S2> EURUSD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_DOWN_S2> EURUSD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO2_DOWN_S2> EURUSD_OOFE_OCO2_DOWN_S2_6 ;
public static EURUSD_OCO2_DOWN_S2 EURUSD_PFO_OCO2_DOWN_S2_1 ;
public static EURUSD_OCO2_DOWN_S2 EURUSD_PFO_OCO2_DOWN_S2_2 ;
public static EURUSD_OCO2_DOWN_S2 EURUSD_PFO_OCO2_DOWN_S2_3 ;
public static EURUSD_OCO2_DOWN_S2 EURUSD_PFO_OCO2_DOWN_S2_4 ;
public static EURUSD_OCO2_DOWN_S2 EURUSD_PFO_OCO2_DOWN_S2_5 ;
public static EURUSD_OCO2_DOWN_S2 EURUSD_PFO_OCO2_DOWN_S2_6 ;
public static List<EURUSD_OCO2_DOWN_S2> EURUSD_DOWN_S2_OCO2Sets1 = new List<EURUSD_OCO2_DOWN_S2>();
public static List<EURUSD_OCO2_DOWN_S2> EURUSD_DOWN_S2_OCO2Sets2 = new List<EURUSD_OCO2_DOWN_S2>();
public static List<EURUSD_OCO2_DOWN_S2> EURUSD_DOWN_S2_OCO2Sets3 = new List<EURUSD_OCO2_DOWN_S2>();
public static List<EURUSD_OCO2_DOWN_S2> EURUSD_DOWN_S2_OCO2Sets4 = new List<EURUSD_OCO2_DOWN_S2>();
public static List<EURUSD_OCO2_DOWN_S2> EURUSD_DOWN_S2_OCO2Sets5 = new List<EURUSD_OCO2_DOWN_S2>();
public static List<EURUSD_OCO2_DOWN_S2> EURUSD_DOWN_S2_OCO2Sets6 = new List<EURUSD_OCO2_DOWN_S2>();
public static bool EURUSD_OCO2_DOWN_S2_IsReady = true;
public static bool EURUSD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket EURUSD_OCO3_MO1_UP_S2 ;
public static OrderTicket EURUSD_OCO3_MO2_UP_S2 ;
public static OrderTicket EURUSD_OCO3_MO3_UP_S2 ;
public static OrderTicket EURUSD_OCO3_MO4_UP_S2 ;
public static OrderTicket EURUSD_OCO3_MO5_UP_S2 ;
public static OrderTicket EURUSD_OCO3_MO6_UP_S2 ;
public static int EURUSD_OCO3_EO1_UP_S2_ID ;
public static int EURUSD_OCO3_EO2_UP_S2_ID ;
public static int EURUSD_OCO3_EO3_UP_S2_ID ;
public static int EURUSD_OCO3_EO4_UP_S2_ID ;
public static int EURUSD_OCO3_EO5_UP_S2_ID ;
public static int EURUSD_OCO3_EO6_UP_S2_ID ;
public static bool EURUSD_OCO3_EO1_UP_S2 ;
public static bool EURUSD_OCO3_EO2_UP_S2 ;
public static bool EURUSD_OCO3_EO3_UP_S2 ;
public static bool EURUSD_OCO3_EO4_UP_S2 ;
public static bool EURUSD_OCO3_EO5_UP_S2 ;
public static bool EURUSD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_UP_S2> EURUSD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_UP_S2> EURUSD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_UP_S2> EURUSD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_UP_S2> EURUSD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_UP_S2> EURUSD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_UP_S2> EURUSD_OOFE_OCO3_UP_S2_6 ;
public static EURUSD_OCO3_UP_S2 EURUSD_PFO_OCO3_UP_S2_1 ;
public static EURUSD_OCO3_UP_S2 EURUSD_PFO_OCO3_UP_S2_2 ;
public static EURUSD_OCO3_UP_S2 EURUSD_PFO_OCO3_UP_S2_3 ;
public static EURUSD_OCO3_UP_S2 EURUSD_PFO_OCO3_UP_S2_4 ;
public static EURUSD_OCO3_UP_S2 EURUSD_PFO_OCO3_UP_S2_5 ;
public static EURUSD_OCO3_UP_S2 EURUSD_PFO_OCO3_UP_S2_6 ;
public static List<EURUSD_OCO3_UP_S2> EURUSD_UP_S2_OCO3Sets1 = new List<EURUSD_OCO3_UP_S2>();
public static List<EURUSD_OCO3_UP_S2> EURUSD_UP_S2_OCO3Sets2 = new List<EURUSD_OCO3_UP_S2>();
public static List<EURUSD_OCO3_UP_S2> EURUSD_UP_S2_OCO3Sets3 = new List<EURUSD_OCO3_UP_S2>();
public static List<EURUSD_OCO3_UP_S2> EURUSD_UP_S2_OCO3Sets4 = new List<EURUSD_OCO3_UP_S2>();
public static List<EURUSD_OCO3_UP_S2> EURUSD_UP_S2_OCO3Sets5 = new List<EURUSD_OCO3_UP_S2>();
public static List<EURUSD_OCO3_UP_S2> EURUSD_UP_S2_OCO3Sets6 = new List<EURUSD_OCO3_UP_S2>();
public static bool EURUSD_OCO3_UP_S2_IsReady = true;
public static bool EURUSD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket EURUSD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket EURUSD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket EURUSD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket EURUSD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket EURUSD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket EURUSD_OCO3_MO6_DOWN_S2 ;
public static int EURUSD_OCO3_EO1_DOWN_S2_ID ;
public static int EURUSD_OCO3_EO2_DOWN_S2_ID ;
public static int EURUSD_OCO3_EO3_DOWN_S2_ID ;
public static int EURUSD_OCO3_EO4_DOWN_S2_ID ;
public static int EURUSD_OCO3_EO5_DOWN_S2_ID ;
public static int EURUSD_OCO3_EO6_DOWN_S2_ID ;
public static bool EURUSD_OCO3_EO1_DOWN_S2 ;
public static bool EURUSD_OCO3_EO2_DOWN_S2 ;
public static bool EURUSD_OCO3_EO3_DOWN_S2 ;
public static bool EURUSD_OCO3_EO4_DOWN_S2 ;
public static bool EURUSD_OCO3_EO5_DOWN_S2 ;
public static bool EURUSD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_DOWN_S2> EURUSD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_DOWN_S2> EURUSD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_DOWN_S2> EURUSD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_DOWN_S2> EURUSD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_DOWN_S2> EURUSD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO3_DOWN_S2> EURUSD_OOFE_OCO3_DOWN_S2_6 ;
public static EURUSD_OCO3_DOWN_S2 EURUSD_PFO_OCO3_DOWN_S2_1 ;
public static EURUSD_OCO3_DOWN_S2 EURUSD_PFO_OCO3_DOWN_S2_2 ;
public static EURUSD_OCO3_DOWN_S2 EURUSD_PFO_OCO3_DOWN_S2_3 ;
public static EURUSD_OCO3_DOWN_S2 EURUSD_PFO_OCO3_DOWN_S2_4 ;
public static EURUSD_OCO3_DOWN_S2 EURUSD_PFO_OCO3_DOWN_S2_5 ;
public static EURUSD_OCO3_DOWN_S2 EURUSD_PFO_OCO3_DOWN_S2_6 ;
public static List<EURUSD_OCO3_DOWN_S2> EURUSD_DOWN_S2_OCO3Sets1 = new List<EURUSD_OCO3_DOWN_S2>();
public static List<EURUSD_OCO3_DOWN_S2> EURUSD_DOWN_S2_OCO3Sets2 = new List<EURUSD_OCO3_DOWN_S2>();
public static List<EURUSD_OCO3_DOWN_S2> EURUSD_DOWN_S2_OCO3Sets3 = new List<EURUSD_OCO3_DOWN_S2>();
public static List<EURUSD_OCO3_DOWN_S2> EURUSD_DOWN_S2_OCO3Sets4 = new List<EURUSD_OCO3_DOWN_S2>();
public static List<EURUSD_OCO3_DOWN_S2> EURUSD_DOWN_S2_OCO3Sets5 = new List<EURUSD_OCO3_DOWN_S2>();
public static List<EURUSD_OCO3_DOWN_S2> EURUSD_DOWN_S2_OCO3Sets6 = new List<EURUSD_OCO3_DOWN_S2>();
public static bool EURUSD_OCO3_DOWN_S2_IsReady = true;
public static bool EURUSD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket EURUSD_OCO4_MO1_UP_S2 ;
public static OrderTicket EURUSD_OCO4_MO2_UP_S2 ;
public static OrderTicket EURUSD_OCO4_MO3_UP_S2 ;
public static OrderTicket EURUSD_OCO4_MO4_UP_S2 ;
public static OrderTicket EURUSD_OCO4_MO5_UP_S2 ;
public static OrderTicket EURUSD_OCO4_MO6_UP_S2 ;
public static int EURUSD_OCO4_EO1_UP_S2_ID ;
public static int EURUSD_OCO4_EO2_UP_S2_ID ;
public static int EURUSD_OCO4_EO3_UP_S2_ID ;
public static int EURUSD_OCO4_EO4_UP_S2_ID ;
public static int EURUSD_OCO4_EO5_UP_S2_ID ;
public static int EURUSD_OCO4_EO6_UP_S2_ID ;
public static bool EURUSD_OCO4_EO1_UP_S2 ;
public static bool EURUSD_OCO4_EO2_UP_S2 ;
public static bool EURUSD_OCO4_EO3_UP_S2 ;
public static bool EURUSD_OCO4_EO4_UP_S2 ;
public static bool EURUSD_OCO4_EO5_UP_S2 ;
public static bool EURUSD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_UP_S2> EURUSD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_UP_S2> EURUSD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_UP_S2> EURUSD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_UP_S2> EURUSD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_UP_S2> EURUSD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_UP_S2> EURUSD_OOFE_OCO4_UP_S2_6 ;
public static EURUSD_OCO4_UP_S2 EURUSD_PFO_OCO4_UP_S2_1 ;
public static EURUSD_OCO4_UP_S2 EURUSD_PFO_OCO4_UP_S2_2 ;
public static EURUSD_OCO4_UP_S2 EURUSD_PFO_OCO4_UP_S2_3 ;
public static EURUSD_OCO4_UP_S2 EURUSD_PFO_OCO4_UP_S2_4 ;
public static EURUSD_OCO4_UP_S2 EURUSD_PFO_OCO4_UP_S2_5 ;
public static EURUSD_OCO4_UP_S2 EURUSD_PFO_OCO4_UP_S2_6 ;
public static List<EURUSD_OCO4_UP_S2> EURUSD_UP_S2_OCO4Sets1 = new List<EURUSD_OCO4_UP_S2>();
public static List<EURUSD_OCO4_UP_S2> EURUSD_UP_S2_OCO4Sets2 = new List<EURUSD_OCO4_UP_S2>();
public static List<EURUSD_OCO4_UP_S2> EURUSD_UP_S2_OCO4Sets3 = new List<EURUSD_OCO4_UP_S2>();
public static List<EURUSD_OCO4_UP_S2> EURUSD_UP_S2_OCO4Sets4 = new List<EURUSD_OCO4_UP_S2>();
public static List<EURUSD_OCO4_UP_S2> EURUSD_UP_S2_OCO4Sets5 = new List<EURUSD_OCO4_UP_S2>();
public static List<EURUSD_OCO4_UP_S2> EURUSD_UP_S2_OCO4Sets6 = new List<EURUSD_OCO4_UP_S2>();
public static bool EURUSD_OCO4_UP_S2_IsReady = true;
public static bool EURUSD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket EURUSD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket EURUSD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket EURUSD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket EURUSD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket EURUSD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket EURUSD_OCO4_MO6_DOWN_S2 ;
public static int EURUSD_OCO4_EO1_DOWN_S2_ID ;
public static int EURUSD_OCO4_EO2_DOWN_S2_ID ;
public static int EURUSD_OCO4_EO3_DOWN_S2_ID ;
public static int EURUSD_OCO4_EO4_DOWN_S2_ID ;
public static int EURUSD_OCO4_EO5_DOWN_S2_ID ;
public static int EURUSD_OCO4_EO6_DOWN_S2_ID ;
public static bool EURUSD_OCO4_EO1_DOWN_S2 ;
public static bool EURUSD_OCO4_EO2_DOWN_S2 ;
public static bool EURUSD_OCO4_EO3_DOWN_S2 ;
public static bool EURUSD_OCO4_EO4_DOWN_S2 ;
public static bool EURUSD_OCO4_EO5_DOWN_S2 ;
public static bool EURUSD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_DOWN_S2> EURUSD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_DOWN_S2> EURUSD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_DOWN_S2> EURUSD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_DOWN_S2> EURUSD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_DOWN_S2> EURUSD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURUSD_OCO4_DOWN_S2> EURUSD_OOFE_OCO4_DOWN_S2_6 ;
public static EURUSD_OCO4_DOWN_S2 EURUSD_PFO_OCO4_DOWN_S2_1 ;
public static EURUSD_OCO4_DOWN_S2 EURUSD_PFO_OCO4_DOWN_S2_2 ;
public static EURUSD_OCO4_DOWN_S2 EURUSD_PFO_OCO4_DOWN_S2_3 ;
public static EURUSD_OCO4_DOWN_S2 EURUSD_PFO_OCO4_DOWN_S2_4 ;
public static EURUSD_OCO4_DOWN_S2 EURUSD_PFO_OCO4_DOWN_S2_5 ;
public static EURUSD_OCO4_DOWN_S2 EURUSD_PFO_OCO4_DOWN_S2_6 ;
public static List<EURUSD_OCO4_DOWN_S2> EURUSD_DOWN_S2_OCO4Sets1 = new List<EURUSD_OCO4_DOWN_S2>();
public static List<EURUSD_OCO4_DOWN_S2> EURUSD_DOWN_S2_OCO4Sets2 = new List<EURUSD_OCO4_DOWN_S2>();
public static List<EURUSD_OCO4_DOWN_S2> EURUSD_DOWN_S2_OCO4Sets3 = new List<EURUSD_OCO4_DOWN_S2>();
public static List<EURUSD_OCO4_DOWN_S2> EURUSD_DOWN_S2_OCO4Sets4 = new List<EURUSD_OCO4_DOWN_S2>();
public static List<EURUSD_OCO4_DOWN_S2> EURUSD_DOWN_S2_OCO4Sets5 = new List<EURUSD_OCO4_DOWN_S2>();
public static List<EURUSD_OCO4_DOWN_S2> EURUSD_DOWN_S2_OCO4Sets6 = new List<EURUSD_OCO4_DOWN_S2>();
public static bool EURUSD_OCO4_DOWN_S2_IsReady = true;
public static bool EURUSD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal EURUSD_UP_S2_SL {get; set;}
public static decimal EURUSD_UP_S2_TP1 {get; set;}
public static decimal EURUSD_UP_S2_TP2 {get; set;}
public static decimal EURUSD_UP_S2_TP3 {get; set;}
public static decimal EURUSD_UP_S2_TP4 {get; set;}
public static decimal EURUSD_UP_S2_TP5 {get; set;}
public static decimal EURUSD_UP_S2_TP6 {get; set;}
public static decimal EURUSD_DOWN_S2_SL {get; set;}
public static decimal EURUSD_DOWN_S2_TP1 {get; set;}
public static decimal EURUSD_DOWN_S2_TP2 {get; set;}
public static decimal EURUSD_DOWN_S2_TP3 {get; set;}
public static decimal EURUSD_DOWN_S2_TP4 {get; set;}
public static decimal EURUSD_DOWN_S2_TP5 {get; set;}
public static decimal EURUSD_DOWN_S2_TP6 {get; set;}
public static bool EURUSD_Signal_Condition_UP_1 ;
public static bool EURUSD_Signal_Condition_UP_2 ;
public static bool EURUSD_Signal_Condition_UP_3 ;
public static bool EURUSD_Signal_Condition_DOWN_S2 ;
public static int EURUSD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int EURUSD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int EURUSD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int EURUSD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int EURUSD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int EURUSD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int EURUSD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int EURUSD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int EURUSD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int EURUSD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_EURUSD_UP_S2 ;
public static bool DOWM_EURUSD_UP_S2 ;
public static bool DOWT_EURUSD_UP_S2 ;
public static bool DOWW_EURUSD_UP_S2 ;
public static bool DOWTH_EURUSD_UP_S2 ;
public static bool DOWR_EURUSD_DOWN_S2 ;
public static bool DOWM_EURUSD_DOWN_S2 ;
public static bool DOWT_EURUSD_DOWN_S2 ;
public static bool DOWW_EURUSD_DOWN_S2 ;
public static bool DOWTH_EURUSD_DOWN_S2 ;
public static int EURUSD_quantity_UP_S2 ;
public static int EURUSD_quantity_SL_UP_S2 ;
public static int EURUSD_quantity_TP1_UP_S2 ;
public static int EURUSD_quantity_TP2_UP_S2 ;
public static int EURUSD_quantity_TP3_UP_S2 ;
public static int EURUSD_quantity_TP4_UP_S2 ;
public static int EURUSD_quantity_TP5_UP_S2;
public static int EURUSD_quantity_TP6_UP_S2 ;
public static int EURUSD_quantity_DOWN_S2 ;
public static int EURUSD_quantity_SL_DOWN_S2 ;
public static int EURUSD_quantity_TP1_DOWN_S2 ;
public static int EURUSD_quantity_TP2_DOWN_S2 ;
public static int EURUSD_quantity_TP3_DOWN_S2 ;
public static int EURUSD_quantity_TP4_DOWN_S2 ;
public static int EURUSD_quantity_TP5_DOWN_S2;
public static int EURUSD_quantity_TP6_DOWN_S2 ;
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPCAD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPCAD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPCAD_UP_S2_OCO1")))
{
Base.GBPCAD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCAD_UP_S2_OCO2")))
{
Base.GBPCAD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCAD_UP_S2_OCO3")))
{
Base.GBPCAD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPCAD_UP_S2_OCO4")))
{
Base.GBPCAD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPCAD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPCAD_OCO1_EO1_UP_S2)
Base.GBPCAD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO2_UP_S2)
Base.GBPCAD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO3_UP_S2)
Base.GBPCAD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO4_UP_S2)
Base.GBPCAD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO5_UP_S2)
Base.GBPCAD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO1_EO6_UP_S2)
Base.GBPCAD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCAD_UP_S2_OCO_DELAY_7DAY))
{
int GBPCAD_OCO1S1_UP_S2 = 0;
for (; GBPCAD_OCO1S1_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets1.Count; GBPCAD_OCO1S1_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets1[GBPCAD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO1Sets1[GBPCAD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_1__Time out_OCO1");
Base.GBPCAD_UP_S2_OCO1Sets1.Clear();
GBPCAD_OCO1S1_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S2_UP_S2 = 0;
for (; GBPCAD_OCO1S2_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets2.Count; GBPCAD_OCO1S2_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets2[GBPCAD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO1Sets2[GBPCAD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_2__Time out_OCO1");
Base.GBPCAD_UP_S2_OCO1Sets2.Clear();
GBPCAD_OCO1S2_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S3_UP_S2 = 0;
for (; GBPCAD_OCO1S3_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets3.Count; GBPCAD_OCO1S3_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets3[GBPCAD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO1Sets3[GBPCAD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_3__Time out_OCO1");
Base.GBPCAD_UP_S2_OCO1Sets3.Clear();
GBPCAD_OCO1S3_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S4_UP_S2 = 0;
for (; GBPCAD_OCO1S4_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets4.Count; GBPCAD_OCO1S4_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets4[GBPCAD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO1Sets4[GBPCAD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_4__Time out_OCO1");
Base.GBPCAD_UP_S2_OCO1Sets4.Clear();
GBPCAD_OCO1S4_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S5_UP_S2 = 0;
for (; GBPCAD_OCO1S5_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets5.Count; GBPCAD_OCO1S5_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets5[GBPCAD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO1Sets5[GBPCAD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_5__Time out_OCO1");
Base.GBPCAD_UP_S2_OCO1Sets5.Clear();
GBPCAD_OCO1S5_UP_S2 = 0;
break;
}
int GBPCAD_OCO1S6_UP_S2 = 0;
for (; GBPCAD_OCO1S6_UP_S2 < Base.GBPCAD_UP_S2_OCO1Sets6.Count; GBPCAD_OCO1S6_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO1Sets6[GBPCAD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO1Sets6[GBPCAD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_6__Time out_OCO1");
Base.GBPCAD_UP_S2_OCO1Sets6.Clear();
GBPCAD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO2_EO1_UP_S2)
Base.GBPCAD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO2_UP_S2)
Base.GBPCAD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO3_UP_S2)
Base.GBPCAD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO4_UP_S2)
Base.GBPCAD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO5_UP_S2)
Base.GBPCAD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO2_EO6_UP_S2)
Base.GBPCAD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCAD_UP_S2_OCO_DELAY_7DAY))
{
int GBPCAD_OCO2S1_UP_S2 = 0;
for (; GBPCAD_OCO2S1_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets1.Count; GBPCAD_OCO2S1_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets1[GBPCAD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO2Sets1[GBPCAD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_1__Time out_OCO2");
Base.GBPCAD_UP_S2_OCO2Sets1.Clear();
GBPCAD_OCO2S1_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S2_UP_S2 = 0;
for (; GBPCAD_OCO2S2_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets2.Count; GBPCAD_OCO2S2_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets2[GBPCAD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO2Sets2[GBPCAD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_2__Time out_OCO2");
Base.GBPCAD_UP_S2_OCO2Sets2.Clear();
GBPCAD_OCO2S2_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S3_UP_S2 = 0;
for (; GBPCAD_OCO2S3_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets3.Count; GBPCAD_OCO2S3_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets3[GBPCAD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO2Sets3[GBPCAD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_3__Time out_OCO2");
Base.GBPCAD_UP_S2_OCO2Sets3.Clear();
GBPCAD_OCO2S3_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S4_UP_S2 = 0;
for (; GBPCAD_OCO2S4_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets4.Count; GBPCAD_OCO2S4_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets4[GBPCAD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO2Sets4[GBPCAD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_4__Time out_OCO2");
Base.GBPCAD_UP_S2_OCO2Sets4.Clear();
GBPCAD_OCO2S4_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S5_UP_S2 = 0;
for (; GBPCAD_OCO2S5_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets5.Count; GBPCAD_OCO2S5_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets5[GBPCAD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO2Sets5[GBPCAD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_5__Time out_OCO2");
Base.GBPCAD_UP_S2_OCO2Sets5.Clear();
GBPCAD_OCO2S5_UP_S2 = 0;
break;
}
int GBPCAD_OCO2S6_UP_S2 = 0;
for (; GBPCAD_OCO2S6_UP_S2 < Base.GBPCAD_UP_S2_OCO2Sets6.Count; GBPCAD_OCO2S6_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO2Sets6[GBPCAD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO2Sets6[GBPCAD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_6__Time out_OCO2");
Base.GBPCAD_UP_S2_OCO2Sets6.Clear();
GBPCAD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO3_EO1_UP_S2)
Base.GBPCAD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO2_UP_S2)
Base.GBPCAD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO3_UP_S2)
Base.GBPCAD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO4_UP_S2)
Base.GBPCAD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO5_UP_S2)
Base.GBPCAD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO3_EO6_UP_S2)
Base.GBPCAD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCAD_UP_S2_OCO_DELAY_7DAY))
{
int GBPCAD_OCO3S1_UP_S2 = 0;
for (; GBPCAD_OCO3S1_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets1.Count; GBPCAD_OCO3S1_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets1[GBPCAD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO3Sets1[GBPCAD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_1__Time out_OCO3");
Base.GBPCAD_UP_S2_OCO3Sets1.Clear();
GBPCAD_OCO3S1_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S2_UP_S2 = 0;
for (; GBPCAD_OCO3S2_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets2.Count; GBPCAD_OCO3S2_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets2[GBPCAD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO3Sets2[GBPCAD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_2__Time out_OCO3");
Base.GBPCAD_UP_S2_OCO3Sets2.Clear();
GBPCAD_OCO3S2_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S3_UP_S2 = 0;
for (; GBPCAD_OCO3S3_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets3.Count; GBPCAD_OCO3S3_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets3[GBPCAD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO3Sets3[GBPCAD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_3__Time out_OCO3");
Base.GBPCAD_UP_S2_OCO3Sets3.Clear();
GBPCAD_OCO3S3_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S4_UP_S2 = 0;
for (; GBPCAD_OCO3S4_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets4.Count; GBPCAD_OCO3S4_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets4[GBPCAD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO3Sets4[GBPCAD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_4__Time out_OCO3");
Base.GBPCAD_UP_S2_OCO3Sets4.Clear();
GBPCAD_OCO3S4_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S5_UP_S2 = 0;
for (; GBPCAD_OCO3S5_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets5.Count; GBPCAD_OCO3S5_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets5[GBPCAD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO3Sets5[GBPCAD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_5__Time out_OCO3");
Base.GBPCAD_UP_S2_OCO3Sets5.Clear();
GBPCAD_OCO3S5_UP_S2 = 0;
break;
}
int GBPCAD_OCO3S6_UP_S2 = 0;
for (; GBPCAD_OCO3S6_UP_S2 < Base.GBPCAD_UP_S2_OCO3Sets6.Count; GBPCAD_OCO3S6_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO3Sets6[GBPCAD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO3Sets6[GBPCAD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_6__Time out_OCO3");
Base.GBPCAD_UP_S2_OCO3Sets6.Clear();
GBPCAD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPCAD_OCO4_EO1_UP_S2)
Base.GBPCAD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO2_UP_S2)
Base.GBPCAD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO3_UP_S2)
Base.GBPCAD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO4_UP_S2)
Base.GBPCAD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO5_UP_S2)
Base.GBPCAD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.GBPCAD_OCO4_EO6_UP_S2)
Base.GBPCAD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPCAD_UP_S2_OCO_DELAY_7DAY))
{
int GBPCAD_OCO4S1_UP_S2 = 0;
for (; GBPCAD_OCO4S1_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets1.Count; GBPCAD_OCO4S1_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets1[GBPCAD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO4Sets1[GBPCAD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_1__Time out_OCO4");
Base.GBPCAD_UP_S2_OCO4Sets1.Clear();
GBPCAD_OCO4S1_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S2_UP_S2 = 0;
for (; GBPCAD_OCO4S2_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets2.Count; GBPCAD_OCO4S2_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets2[GBPCAD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO4Sets2[GBPCAD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_2__Time out_OCO4");
Base.GBPCAD_UP_S2_OCO4Sets2.Clear();
GBPCAD_OCO4S2_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S3_UP_S2 = 0;
for (; GBPCAD_OCO4S3_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets3.Count; GBPCAD_OCO4S3_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets3[GBPCAD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO4Sets3[GBPCAD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_3__Time out_OCO4");
Base.GBPCAD_UP_S2_OCO4Sets3.Clear();
GBPCAD_OCO4S3_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S4_UP_S2 = 0;
for (; GBPCAD_OCO4S4_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets4.Count; GBPCAD_OCO4S4_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets4[GBPCAD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO4Sets4[GBPCAD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_4__Time out_OCO4");
Base.GBPCAD_UP_S2_OCO4Sets4.Clear();
GBPCAD_OCO4S4_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S5_UP_S2 = 0;
for (; GBPCAD_OCO4S5_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets5.Count; GBPCAD_OCO4S5_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets5[GBPCAD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO4Sets5[GBPCAD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_5__Time out_OCO4");
Base.GBPCAD_UP_S2_OCO4Sets5.Clear();
GBPCAD_OCO4S5_UP_S2 = 0;
break;
}
int GBPCAD_OCO4S6_UP_S2 = 0;
for (; GBPCAD_OCO4S6_UP_S2 < Base.GBPCAD_UP_S2_OCO4Sets6.Count; GBPCAD_OCO4S6_UP_S2++)
if (Base.GBPCAD_UP_S2_OCO4Sets6[GBPCAD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.GBPCAD_UP_S2_OCO4Sets6[GBPCAD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("GBPCAD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPCAD", order.Quantity, false, "GBPCAD_UP_S2_Entry_6__Time out_OCO4");
Base.GBPCAD_UP_S2_OCO4Sets6.Clear();
GBPCAD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPCAD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPCAD_UP_S2 = DOWM_GBPCAD_UP_S2 || DOWT_GBPCAD_UP_S2 || DOWW_GBPCAD_UP_S2 || DOWTH_GBPCAD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPCAD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPCAD_OCO1_UP_S2_IsReady == false ||
Base.GBPCAD_OCO2_UP_S2_IsReady == false ||
Base.GBPCAD_OCO3_UP_S2_IsReady == false ||
Base.GBPCAD_OCO4_UP_S2_IsReady == false)
{
Base.GBPCAD_OCO1_UP_S2_Monthly_IsReady = false;
Base.GBPCAD_OCO2_UP_S2_Monthly_IsReady = false;
Base.GBPCAD_OCO3_UP_S2_Monthly_IsReady = false;
Base.GBPCAD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPCAD_OCO1_UP_S2_Monthly_IsReady = true;
Base.GBPCAD_OCO2_UP_S2_Monthly_IsReady = true;
Base.GBPCAD_OCO3_UP_S2_Monthly_IsReady = true;
Base.GBPCAD_OCO4_UP_S2_Monthly_IsReady = true;
}
GBPCAD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPCAD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPCAD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (GBPCAD_Signal_Condition_UP_1)
{
GBPCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPCAD_Signal_Condition_UP_2)
{
GBPCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPCAD_Signal_Condition_UP_3)
{
GBPCAD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPCAD_Signal_Condition_UP_1)
{
GBPCAD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (GBPCAD_Signal_Condition_UP_2)
{
GBPCAD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (GBPCAD_Signal_Condition_UP_3)
{
GBPCAD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
GBPCAD_UP_S2_TP2 = GBPCAD_UP_S2_SL * 0;
GBPCAD_UP_S2_TP3 = GBPCAD_UP_S2_SL * 0;
GBPCAD_UP_S2_TP4 = GBPCAD_UP_S2_SL * 0;
GBPCAD_UP_S2_TP5 = GBPCAD_UP_S2_SL * 0;
GBPCAD_UP_S2_TP6 = GBPCAD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPCAD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPCAD_quantity_SL_UP_S2 = GBPCAD_quantity_UP_S2;
GBPCAD_quantity_TP1_UP_S2 = (int)Math.Floor(GBPCAD_quantity_UP_S2 * 1m);
GBPCAD_quantity_TP2_UP_S2 = (int)Math.Floor(GBPCAD_quantity_TP1_UP_S2 * 0m);
GBPCAD_quantity_TP3_UP_S2 = (int)Math.Floor(GBPCAD_quantity_TP2_UP_S2 * 0m);
GBPCAD_quantity_TP4_UP_S2 = (int)Math.Floor(GBPCAD_quantity_TP3_UP_S2 * 0m);
GBPCAD_quantity_TP5_UP_S2 = (int)Math.Floor(GBPCAD_quantity_TP4_UP_S2 * 0m);
GBPCAD_quantity_TP6_UP_S2 = (int)Math.Floor(GBPCAD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((GBPCAD_Signal_Condition_UP_1 || GBPCAD_Signal_Condition_UP_2 || GBPCAD_Signal_Condition_UP_3) &&
DOWR_GBPCAD_UP_S2 &&
Base.GBPCAD_OCO1_UP_S2_IsReady == true &&
Base.GBPCAD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.GBPCAD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP1_UP_S2, false,"GBPCAD_UP_S2_Entry_TP1_OCO1");
Base.GBPCAD_OCO1_EO1_UP_S2 = false;
Base.GBPCAD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP2_UP_S2, false,"GBPCAD_UP_S2_Entry_TP2_OCO1");
Base.GBPCAD_OCO1_EO2_UP_S2 = false;
Base.GBPCAD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP3_UP_S2, false,"GBPCAD_UP_S2_Entry_TP3_OCO1");
Base.GBPCAD_OCO1_EO3_UP_S2 = false;
Base.GBPCAD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP4_UP_S2, false,"GBPCAD_UP_S2_Entry_TP4_OCO1");
Base.GBPCAD_OCO1_EO4_UP_S2 = false;
Base.GBPCAD_OCO1_UP_S2_IsReady = false;
if (Base.GBPCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((GBPCAD_Signal_Condition_UP_1 || GBPCAD_Signal_Condition_UP_2 || GBPCAD_Signal_Condition_UP_3) &&
DOWR_GBPCAD_UP_S2 &&
Base.GBPCAD_OCO1_UP_S2_IsReady == false &&
Base.GBPCAD_OCO2_UP_S2_IsReady == true &&
Base.GBPCAD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.GBPCAD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP1_UP_S2, false,"GBPCAD_UP_S2_Entry_TP1_OCO2");
Base.GBPCAD_OCO2_EO1_UP_S2 = false;
Base.GBPCAD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP2_UP_S2, false,"GBPCAD_UP_S2_Entry_TP2_OCO2");
Base.GBPCAD_OCO2_EO2_UP_S2 = false;
Base.GBPCAD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP3_UP_S2, false,"GBPCAD_UP_S2_Entry_TP3_OCO2");
Base.GBPCAD_OCO2_EO3_UP_S2 = false;
Base.GBPCAD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP4_UP_S2, false,"GBPCAD_UP_S2_Entry_TP4_OCO2");
Base.GBPCAD_OCO2_EO4_UP_S2 = false;
Base.GBPCAD_OCO2_UP_S2_IsReady = false;
if (Base.GBPCAD_OCO2_UP_S2_IsReady == false && Base.GBPCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((GBPCAD_Signal_Condition_UP_1 || GBPCAD_Signal_Condition_UP_2 || GBPCAD_Signal_Condition_UP_3) &&
DOWR_GBPCAD_UP_S2 &&
Base.GBPCAD_OCO1_UP_S2_IsReady == false &&
Base.GBPCAD_OCO2_UP_S2_IsReady == false &&
Base.GBPCAD_OCO3_UP_S2_IsReady == true &&
Base.GBPCAD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.GBPCAD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP1_UP_S2, false,"GBPCAD_UP_S2_Entry_TP1_OCO3");
Base.GBPCAD_OCO3_EO1_UP_S2 = false;
Base.GBPCAD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP2_UP_S2, false,"GBPCAD_UP_S2_Entry_TP2_OCO3");
Base.GBPCAD_OCO3_EO2_UP_S2 = false;
Base.GBPCAD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP3_UP_S2, false,"GBPCAD_UP_S2_Entry_TP3_OCO3");
Base.GBPCAD_OCO3_EO3_UP_S2 = false;
Base.GBPCAD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP4_UP_S2, false,"GBPCAD_UP_S2_Entry_TP4_OCO3");
Base.GBPCAD_OCO3_EO4_UP_S2 = false;
Base.GBPCAD_OCO3_UP_S2_IsReady = false;
if (Base.GBPCAD_OCO3_UP_S2_IsReady == false && Base.GBPCAD_OCO2_UP_S2_IsReady == false && Base.GBPCAD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((GBPCAD_Signal_Condition_UP_1 || GBPCAD_Signal_Condition_UP_2 || GBPCAD_Signal_Condition_UP_3) &&
DOWR_GBPCAD_UP_S2 &&
Base.GBPCAD_OCO1_UP_S2_IsReady == false &&
Base.GBPCAD_OCO2_UP_S2_IsReady == false &&
Base.GBPCAD_OCO3_UP_S2_IsReady == false &&
Base.GBPCAD_OCO4_UP_S2_IsReady == true &&
Base.GBPCAD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.GBPCAD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP1_UP_S2, false,"GBPCAD_UP_S2_Entry_TP1_OCO4");
Base.GBPCAD_OCO4_EO1_UP_S2 = false;
Base.GBPCAD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP2_UP_S2, false,"GBPCAD_UP_S2_Entry_TP2_OCO4");
Base.GBPCAD_OCO4_EO2_UP_S2 = false;
Base.GBPCAD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP3_UP_S2, false,"GBPCAD_UP_S2_Entry_TP3_OCO4");
Base.GBPCAD_OCO4_EO3_UP_S2 = false;
Base.GBPCAD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPCAD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPCAD_quantity_TP4_UP_S2, false,"GBPCAD_UP_S2_Entry_TP4_OCO4");
Base.GBPCAD_OCO4_EO4_UP_S2 = false;
Base.GBPCAD_OCO4_UP_S2_IsReady = false;
if (Base.GBPCAD_OCO4_UP_S2_IsReady == false && Base.GBPCAD_OCO3_UP_S2_IsReady == false && Base.GBPCAD_OCO2_UP_S2_IsReady == false && Base.GBPCAD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURGBP_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURGBP_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURGBP_UP_S2_OCO1")))
{
Base.EURGBP_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURGBP_UP_S2_OCO2")))
{
Base.EURGBP_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURGBP_UP_S2_OCO3")))
{
Base.EURGBP_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURGBP_UP_S2_OCO4")))
{
Base.EURGBP_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURGBP_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURGBP_OCO1_EO1_UP_S2)
Base.EURGBP_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO2_UP_S2)
Base.EURGBP_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO3_UP_S2)
Base.EURGBP_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO4_UP_S2)
Base.EURGBP_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO5_UP_S2)
Base.EURGBP_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO6_UP_S2)
Base.EURGBP_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURGBP_UP_S2_OCO_DELAY_7DAY))
{
int EURGBP_OCO1S1_UP_S2 = 0;
for (; EURGBP_OCO1S1_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets1.Count; EURGBP_OCO1S1_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets1[EURGBP_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO1Sets1[EURGBP_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_1__Time out_OCO1");
Base.EURGBP_UP_S2_OCO1Sets1.Clear();
EURGBP_OCO1S1_UP_S2 = 0;
break;
}
int EURGBP_OCO1S2_UP_S2 = 0;
for (; EURGBP_OCO1S2_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets2.Count; EURGBP_OCO1S2_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets2[EURGBP_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO1Sets2[EURGBP_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_2__Time out_OCO1");
Base.EURGBP_UP_S2_OCO1Sets2.Clear();
EURGBP_OCO1S2_UP_S2 = 0;
break;
}
int EURGBP_OCO1S3_UP_S2 = 0;
for (; EURGBP_OCO1S3_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets3.Count; EURGBP_OCO1S3_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets3[EURGBP_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO1Sets3[EURGBP_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_3__Time out_OCO1");
Base.EURGBP_UP_S2_OCO1Sets3.Clear();
EURGBP_OCO1S3_UP_S2 = 0;
break;
}
int EURGBP_OCO1S4_UP_S2 = 0;
for (; EURGBP_OCO1S4_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets4.Count; EURGBP_OCO1S4_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets4[EURGBP_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO1Sets4[EURGBP_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_4__Time out_OCO1");
Base.EURGBP_UP_S2_OCO1Sets4.Clear();
EURGBP_OCO1S4_UP_S2 = 0;
break;
}
int EURGBP_OCO1S5_UP_S2 = 0;
for (; EURGBP_OCO1S5_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets5.Count; EURGBP_OCO1S5_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets5[EURGBP_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO1Sets5[EURGBP_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_5__Time out_OCO1");
Base.EURGBP_UP_S2_OCO1Sets5.Clear();
EURGBP_OCO1S5_UP_S2 = 0;
break;
}
int EURGBP_OCO1S6_UP_S2 = 0;
for (; EURGBP_OCO1S6_UP_S2 < Base.EURGBP_UP_S2_OCO1Sets6.Count; EURGBP_OCO1S6_UP_S2++)
if (Base.EURGBP_UP_S2_OCO1Sets6[EURGBP_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO1Sets6[EURGBP_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_6__Time out_OCO1");
Base.EURGBP_UP_S2_OCO1Sets6.Clear();
EURGBP_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO2_EO1_UP_S2)
Base.EURGBP_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO2_UP_S2)
Base.EURGBP_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO3_UP_S2)
Base.EURGBP_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO4_UP_S2)
Base.EURGBP_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO5_UP_S2)
Base.EURGBP_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO6_UP_S2)
Base.EURGBP_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURGBP_UP_S2_OCO_DELAY_7DAY))
{
int EURGBP_OCO2S1_UP_S2 = 0;
for (; EURGBP_OCO2S1_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets1.Count; EURGBP_OCO2S1_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets1[EURGBP_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO2Sets1[EURGBP_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_1__Time out_OCO2");
Base.EURGBP_UP_S2_OCO2Sets1.Clear();
EURGBP_OCO2S1_UP_S2 = 0;
break;
}
int EURGBP_OCO2S2_UP_S2 = 0;
for (; EURGBP_OCO2S2_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets2.Count; EURGBP_OCO2S2_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets2[EURGBP_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO2Sets2[EURGBP_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_2__Time out_OCO2");
Base.EURGBP_UP_S2_OCO2Sets2.Clear();
EURGBP_OCO2S2_UP_S2 = 0;
break;
}
int EURGBP_OCO2S3_UP_S2 = 0;
for (; EURGBP_OCO2S3_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets3.Count; EURGBP_OCO2S3_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets3[EURGBP_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO2Sets3[EURGBP_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_3__Time out_OCO2");
Base.EURGBP_UP_S2_OCO2Sets3.Clear();
EURGBP_OCO2S3_UP_S2 = 0;
break;
}
int EURGBP_OCO2S4_UP_S2 = 0;
for (; EURGBP_OCO2S4_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets4.Count; EURGBP_OCO2S4_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets4[EURGBP_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO2Sets4[EURGBP_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_4__Time out_OCO2");
Base.EURGBP_UP_S2_OCO2Sets4.Clear();
EURGBP_OCO2S4_UP_S2 = 0;
break;
}
int EURGBP_OCO2S5_UP_S2 = 0;
for (; EURGBP_OCO2S5_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets5.Count; EURGBP_OCO2S5_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets5[EURGBP_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO2Sets5[EURGBP_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_5__Time out_OCO2");
Base.EURGBP_UP_S2_OCO2Sets5.Clear();
EURGBP_OCO2S5_UP_S2 = 0;
break;
}
int EURGBP_OCO2S6_UP_S2 = 0;
for (; EURGBP_OCO2S6_UP_S2 < Base.EURGBP_UP_S2_OCO2Sets6.Count; EURGBP_OCO2S6_UP_S2++)
if (Base.EURGBP_UP_S2_OCO2Sets6[EURGBP_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO2Sets6[EURGBP_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_6__Time out_OCO2");
Base.EURGBP_UP_S2_OCO2Sets6.Clear();
EURGBP_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO3_EO1_UP_S2)
Base.EURGBP_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO2_UP_S2)
Base.EURGBP_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO3_UP_S2)
Base.EURGBP_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO4_UP_S2)
Base.EURGBP_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO5_UP_S2)
Base.EURGBP_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO6_UP_S2)
Base.EURGBP_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURGBP_UP_S2_OCO_DELAY_7DAY))
{
int EURGBP_OCO3S1_UP_S2 = 0;
for (; EURGBP_OCO3S1_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets1.Count; EURGBP_OCO3S1_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets1[EURGBP_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO3Sets1[EURGBP_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_1__Time out_OCO3");
Base.EURGBP_UP_S2_OCO3Sets1.Clear();
EURGBP_OCO3S1_UP_S2 = 0;
break;
}
int EURGBP_OCO3S2_UP_S2 = 0;
for (; EURGBP_OCO3S2_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets2.Count; EURGBP_OCO3S2_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets2[EURGBP_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO3Sets2[EURGBP_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_2__Time out_OCO3");
Base.EURGBP_UP_S2_OCO3Sets2.Clear();
EURGBP_OCO3S2_UP_S2 = 0;
break;
}
int EURGBP_OCO3S3_UP_S2 = 0;
for (; EURGBP_OCO3S3_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets3.Count; EURGBP_OCO3S3_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets3[EURGBP_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO3Sets3[EURGBP_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_3__Time out_OCO3");
Base.EURGBP_UP_S2_OCO3Sets3.Clear();
EURGBP_OCO3S3_UP_S2 = 0;
break;
}
int EURGBP_OCO3S4_UP_S2 = 0;
for (; EURGBP_OCO3S4_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets4.Count; EURGBP_OCO3S4_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets4[EURGBP_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO3Sets4[EURGBP_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_4__Time out_OCO3");
Base.EURGBP_UP_S2_OCO3Sets4.Clear();
EURGBP_OCO3S4_UP_S2 = 0;
break;
}
int EURGBP_OCO3S5_UP_S2 = 0;
for (; EURGBP_OCO3S5_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets5.Count; EURGBP_OCO3S5_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets5[EURGBP_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO3Sets5[EURGBP_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_5__Time out_OCO3");
Base.EURGBP_UP_S2_OCO3Sets5.Clear();
EURGBP_OCO3S5_UP_S2 = 0;
break;
}
int EURGBP_OCO3S6_UP_S2 = 0;
for (; EURGBP_OCO3S6_UP_S2 < Base.EURGBP_UP_S2_OCO3Sets6.Count; EURGBP_OCO3S6_UP_S2++)
if (Base.EURGBP_UP_S2_OCO3Sets6[EURGBP_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO3Sets6[EURGBP_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_6__Time out_OCO3");
Base.EURGBP_UP_S2_OCO3Sets6.Clear();
EURGBP_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO4_EO1_UP_S2)
Base.EURGBP_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO2_UP_S2)
Base.EURGBP_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO3_UP_S2)
Base.EURGBP_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO4_UP_S2)
Base.EURGBP_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO5_UP_S2)
Base.EURGBP_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO6_UP_S2)
Base.EURGBP_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURGBP_UP_S2_OCO_DELAY_7DAY))
{
int EURGBP_OCO4S1_UP_S2 = 0;
for (; EURGBP_OCO4S1_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets1.Count; EURGBP_OCO4S1_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets1[EURGBP_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO4Sets1[EURGBP_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_1__Time out_OCO4");
Base.EURGBP_UP_S2_OCO4Sets1.Clear();
EURGBP_OCO4S1_UP_S2 = 0;
break;
}
int EURGBP_OCO4S2_UP_S2 = 0;
for (; EURGBP_OCO4S2_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets2.Count; EURGBP_OCO4S2_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets2[EURGBP_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO4Sets2[EURGBP_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_2__Time out_OCO4");
Base.EURGBP_UP_S2_OCO4Sets2.Clear();
EURGBP_OCO4S2_UP_S2 = 0;
break;
}
int EURGBP_OCO4S3_UP_S2 = 0;
for (; EURGBP_OCO4S3_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets3.Count; EURGBP_OCO4S3_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets3[EURGBP_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO4Sets3[EURGBP_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_3__Time out_OCO4");
Base.EURGBP_UP_S2_OCO4Sets3.Clear();
EURGBP_OCO4S3_UP_S2 = 0;
break;
}
int EURGBP_OCO4S4_UP_S2 = 0;
for (; EURGBP_OCO4S4_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets4.Count; EURGBP_OCO4S4_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets4[EURGBP_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO4Sets4[EURGBP_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_4__Time out_OCO4");
Base.EURGBP_UP_S2_OCO4Sets4.Clear();
EURGBP_OCO4S4_UP_S2 = 0;
break;
}
int EURGBP_OCO4S5_UP_S2 = 0;
for (; EURGBP_OCO4S5_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets5.Count; EURGBP_OCO4S5_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets5[EURGBP_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO4Sets5[EURGBP_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_5__Time out_OCO4");
Base.EURGBP_UP_S2_OCO4Sets5.Clear();
EURGBP_OCO4S5_UP_S2 = 0;
break;
}
int EURGBP_OCO4S6_UP_S2 = 0;
for (; EURGBP_OCO4S6_UP_S2 < Base.EURGBP_UP_S2_OCO4Sets6.Count; EURGBP_OCO4S6_UP_S2++)
if (Base.EURGBP_UP_S2_OCO4Sets6[EURGBP_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.EURGBP_UP_S2_OCO4Sets6[EURGBP_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_UP_S2_Entry_6__Time out_OCO4");
Base.EURGBP_UP_S2_OCO4Sets6.Clear();
EURGBP_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURGBP_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURGBP_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURGBP_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURGBP_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURGBP_UP_S2 = DOWM_EURGBP_UP_S2 || DOWT_EURGBP_UP_S2 || DOWW_EURGBP_UP_S2 || DOWTH_EURGBP_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURGBP"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURGBP_OCO1_UP_S2_IsReady == false ||
Base.EURGBP_OCO2_UP_S2_IsReady == false ||
Base.EURGBP_OCO3_UP_S2_IsReady == false ||
Base.EURGBP_OCO4_UP_S2_IsReady == false)
{
Base.EURGBP_OCO1_UP_S2_Monthly_IsReady = false;
Base.EURGBP_OCO2_UP_S2_Monthly_IsReady = false;
Base.EURGBP_OCO3_UP_S2_Monthly_IsReady = false;
Base.EURGBP_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURGBP_OCO1_UP_S2_Monthly_IsReady = true;
Base.EURGBP_OCO2_UP_S2_Monthly_IsReady = true;
Base.EURGBP_OCO3_UP_S2_Monthly_IsReady = true;
Base.EURGBP_OCO4_UP_S2_Monthly_IsReady = true;
}
EURGBP_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURGBP_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURGBP_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size
&&
(
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m)
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (EURGBP_Signal_Condition_UP_1)
{
EURGBP_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURGBP_Signal_Condition_UP_2)
{
EURGBP_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURGBP_Signal_Condition_UP_3)
{
EURGBP_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURGBP_Signal_Condition_UP_1)
{
EURGBP_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (EURGBP_Signal_Condition_UP_2)
{
EURGBP_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (EURGBP_Signal_Condition_UP_3)
{
EURGBP_UP_S2_TP1 = Base.Oth_TP_3 ;
}
EURGBP_UP_S2_TP2 = EURGBP_UP_S2_SL * 0;
EURGBP_UP_S2_TP3 = EURGBP_UP_S2_SL * 0;
EURGBP_UP_S2_TP4 = EURGBP_UP_S2_SL * 0;
EURGBP_UP_S2_TP5 = EURGBP_UP_S2_SL * 0;
EURGBP_UP_S2_TP6 = EURGBP_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
EURGBP_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURGBP_quantity_SL_UP_S2 = EURGBP_quantity_UP_S2;
EURGBP_quantity_TP1_UP_S2 = (int)Math.Floor(EURGBP_quantity_UP_S2 * 1m);
EURGBP_quantity_TP2_UP_S2 = (int)Math.Floor(EURGBP_quantity_TP1_UP_S2 * 0m);
EURGBP_quantity_TP3_UP_S2 = (int)Math.Floor(EURGBP_quantity_TP2_UP_S2 * 0m);
EURGBP_quantity_TP4_UP_S2 = (int)Math.Floor(EURGBP_quantity_TP3_UP_S2 * 0m);
EURGBP_quantity_TP5_UP_S2 = (int)Math.Floor(EURGBP_quantity_TP4_UP_S2 * 0m);
EURGBP_quantity_TP6_UP_S2 = (int)Math.Floor(EURGBP_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((EURGBP_Signal_Condition_UP_1 || EURGBP_Signal_Condition_UP_2 || EURGBP_Signal_Condition_UP_3) &&
DOWR_EURGBP_UP_S2 &&
Base.EURGBP_OCO1_UP_S2_IsReady == true &&
Base.EURGBP_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.EURGBP_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP1_UP_S2, false,"EURGBP_UP_S2_Entry_TP1_OCO1");
Base.EURGBP_OCO1_EO1_UP_S2 = false;
Base.EURGBP_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP2_UP_S2, false,"EURGBP_UP_S2_Entry_TP2_OCO1");
Base.EURGBP_OCO1_EO2_UP_S2 = false;
Base.EURGBP_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP3_UP_S2, false,"EURGBP_UP_S2_Entry_TP3_OCO1");
Base.EURGBP_OCO1_EO3_UP_S2 = false;
Base.EURGBP_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP4_UP_S2, false,"EURGBP_UP_S2_Entry_TP4_OCO1");
Base.EURGBP_OCO1_EO4_UP_S2 = false;
Base.EURGBP_OCO1_UP_S2_IsReady = false;
if (Base.EURGBP_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((EURGBP_Signal_Condition_UP_1 || EURGBP_Signal_Condition_UP_2 || EURGBP_Signal_Condition_UP_3) &&
DOWR_EURGBP_UP_S2 &&
Base.EURGBP_OCO1_UP_S2_IsReady == false &&
Base.EURGBP_OCO2_UP_S2_IsReady == true &&
Base.EURGBP_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.EURGBP_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP1_UP_S2, false,"EURGBP_UP_S2_Entry_TP1_OCO2");
Base.EURGBP_OCO2_EO1_UP_S2 = false;
Base.EURGBP_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP2_UP_S2, false,"EURGBP_UP_S2_Entry_TP2_OCO2");
Base.EURGBP_OCO2_EO2_UP_S2 = false;
Base.EURGBP_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP3_UP_S2, false,"EURGBP_UP_S2_Entry_TP3_OCO2");
Base.EURGBP_OCO2_EO3_UP_S2 = false;
Base.EURGBP_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP4_UP_S2, false,"EURGBP_UP_S2_Entry_TP4_OCO2");
Base.EURGBP_OCO2_EO4_UP_S2 = false;
Base.EURGBP_OCO2_UP_S2_IsReady = false;
if (Base.EURGBP_OCO2_UP_S2_IsReady == false && Base.EURGBP_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((EURGBP_Signal_Condition_UP_1 || EURGBP_Signal_Condition_UP_2 || EURGBP_Signal_Condition_UP_3) &&
DOWR_EURGBP_UP_S2 &&
Base.EURGBP_OCO1_UP_S2_IsReady == false &&
Base.EURGBP_OCO2_UP_S2_IsReady == false &&
Base.EURGBP_OCO3_UP_S2_IsReady == true &&
Base.EURGBP_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.EURGBP_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP1_UP_S2, false,"EURGBP_UP_S2_Entry_TP1_OCO3");
Base.EURGBP_OCO3_EO1_UP_S2 = false;
Base.EURGBP_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP2_UP_S2, false,"EURGBP_UP_S2_Entry_TP2_OCO3");
Base.EURGBP_OCO3_EO2_UP_S2 = false;
Base.EURGBP_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP3_UP_S2, false,"EURGBP_UP_S2_Entry_TP3_OCO3");
Base.EURGBP_OCO3_EO3_UP_S2 = false;
Base.EURGBP_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP4_UP_S2, false,"EURGBP_UP_S2_Entry_TP4_OCO3");
Base.EURGBP_OCO3_EO4_UP_S2 = false;
Base.EURGBP_OCO3_UP_S2_IsReady = false;
if (Base.EURGBP_OCO3_UP_S2_IsReady == false && Base.EURGBP_OCO2_UP_S2_IsReady == false && Base.EURGBP_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((EURGBP_Signal_Condition_UP_1 || EURGBP_Signal_Condition_UP_2 || EURGBP_Signal_Condition_UP_3) &&
DOWR_EURGBP_UP_S2 &&
Base.EURGBP_OCO1_UP_S2_IsReady == false &&
Base.EURGBP_OCO2_UP_S2_IsReady == false &&
Base.EURGBP_OCO3_UP_S2_IsReady == false &&
Base.EURGBP_OCO4_UP_S2_IsReady == true &&
Base.EURGBP_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.EURGBP_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP1_UP_S2, false,"EURGBP_UP_S2_Entry_TP1_OCO4");
Base.EURGBP_OCO4_EO1_UP_S2 = false;
Base.EURGBP_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP2_UP_S2, false,"EURGBP_UP_S2_Entry_TP2_OCO4");
Base.EURGBP_OCO4_EO2_UP_S2 = false;
Base.EURGBP_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP3_UP_S2, false,"EURGBP_UP_S2_Entry_TP3_OCO4");
Base.EURGBP_OCO4_EO3_UP_S2 = false;
Base.EURGBP_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURGBP_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP4_UP_S2, false,"EURGBP_UP_S2_Entry_TP4_OCO4");
Base.EURGBP_OCO4_EO4_UP_S2 = false;
Base.EURGBP_OCO4_UP_S2_IsReady = false;
if (Base.EURGBP_OCO4_UP_S2_IsReady == false && Base.EURGBP_OCO3_UP_S2_IsReady == false && Base.EURGBP_OCO2_UP_S2_IsReady == false && Base.EURGBP_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct EURUSD_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public EURUSD_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue eurusd S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue eurusd S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue eurusd S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue eurusd S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue eurusd S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue eurusd S2");
}
if (OrderID.Tag.StartsWith("EURUSD OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("EURUSD OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue eurusd S2");
}
}
if (Base.EURUSD_OCO1_EO1_UP_S2)
Base.EURUSD_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO1_EO2_UP_S2)
Base.EURUSD_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO1_EO3_UP_S2)
Base.EURUSD_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO1_EO4_UP_S2)
Base.EURUSD_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO1_EO5_UP_S2)
Base.EURUSD_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO1_EO6_UP_S2)
Base.EURUSD_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO1_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP1,"TP1_EURUSD_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP1_EURUSD_UP_S2_OCO1"));
};
Base.EURUSD_UP_S2_OCO1Sets1.Add( Base.EURUSD_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO2_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP2,"TP2_EURUSD_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP2_EURUSD_UP_S2_OCO1"));
};
Base.EURUSD_UP_S2_OCO1Sets2.Add( Base.EURUSD_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO3_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP3,"TP3_EURUSD_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP3_EURUSD_UP_S2_OCO1"));
};
Base.EURUSD_UP_S2_OCO1Sets3.Add( Base.EURUSD_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO4_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP4,"TP4_EURUSD_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP4_EURUSD_UP_S2_OCO1"));
};
Base.EURUSD_UP_S2_OCO1Sets4.Add( Base.EURUSD_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO5_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP5,"TP5_EURUSD_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP5_EURUSD_UP_S2_OCO1"));
};
Base.EURUSD_UP_S2_OCO1Sets5.Add( Base.EURUSD_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO1_EO6_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP6,"TP6_EURUSD_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP6_EURUSD_UP_S2_OCO1"));
};
Base.EURUSD_UP_S2_OCO1Sets6.Add( Base.EURUSD_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO1_EO6_UP_S2_ID = -1;
}
int EURUSD_OCO1S1_UP_S2 = 0;
for (; EURUSD_OCO1S1_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets1.Count; EURUSD_OCO1S1_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets1[EURUSD_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO1Sets1[EURUSD_OCO1S1_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO1Sets1.RemoveAt(EURUSD_OCO1S1_UP_S2);
EURUSD_OCO1S1_UP_S2 = 0;
break;
}
int EURUSD_OCO1S2_UP_S2 = 0;
for (; EURUSD_OCO1S2_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets2.Count; EURUSD_OCO1S2_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets2[EURUSD_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO1Sets2[EURUSD_OCO1S2_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO1Sets2.RemoveAt(EURUSD_OCO1S2_UP_S2);
EURUSD_OCO1S2_UP_S2 = 0;
break;
}
int EURUSD_OCO1S3_UP_S2 = 0;
for (; EURUSD_OCO1S3_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets3.Count; EURUSD_OCO1S3_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets3[EURUSD_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO1Sets3[EURUSD_OCO1S3_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO1Sets3.RemoveAt(EURUSD_OCO1S3_UP_S2);
EURUSD_OCO1S3_UP_S2 = 0;
break;
}
int EURUSD_OCO1S4_UP_S2 = 0;
for (; EURUSD_OCO1S4_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets4.Count; EURUSD_OCO1S4_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets4[EURUSD_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO1Sets4[EURUSD_OCO1S4_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO1Sets4.RemoveAt(EURUSD_OCO1S4_UP_S2);
EURUSD_OCO1S4_UP_S2 = 0;
break;
}
int EURUSD_OCO1S5_UP_S2 = 0;
for (; EURUSD_OCO1S5_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets5.Count; EURUSD_OCO1S5_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets5[EURUSD_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO1Sets5[EURUSD_OCO1S5_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO1Sets5.RemoveAt(EURUSD_OCO1S5_UP_S2);
EURUSD_OCO1S5_UP_S2 = 0;
break;
}
int EURUSD_OCO1S6_UP_S2 = 0;
for (; EURUSD_OCO1S6_UP_S2 < Base.EURUSD_UP_S2_OCO1Sets6.Count; EURUSD_OCO1S6_UP_S2++)
if (Base.EURUSD_UP_S2_OCO1Sets6[EURUSD_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO1Sets6[EURUSD_OCO1S6_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO1Sets6.RemoveAt(EURUSD_OCO1S6_UP_S2);
EURUSD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO2_EO1_UP_S2)
Base.EURUSD_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO2_EO2_UP_S2)
Base.EURUSD_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO2_EO3_UP_S2)
Base.EURUSD_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO2_EO4_UP_S2)
Base.EURUSD_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO2_EO5_UP_S2)
Base.EURUSD_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO2_EO6_UP_S2)
Base.EURUSD_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO1_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP1,"TP1_EURUSD_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP1_EURUSD_UP_S2_OCO2"));
};
Base.EURUSD_UP_S2_OCO2Sets1.Add( Base.EURUSD_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO2_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP2,"TP2_EURUSD_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP2_EURUSD_UP_S2_OCO2"));
};
Base.EURUSD_UP_S2_OCO2Sets2.Add( Base.EURUSD_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO3_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP3,"TP3_EURUSD_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP3_EURUSD_UP_S2_OCO2"));
};
Base.EURUSD_UP_S2_OCO2Sets3.Add( Base.EURUSD_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO4_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP4,"TP4_EURUSD_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP4_EURUSD_UP_S2_OCO2"));
};
Base.EURUSD_UP_S2_OCO2Sets4.Add( Base.EURUSD_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO5_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP5,"TP5_EURUSD_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP5_EURUSD_UP_S2_OCO2"));
};
Base.EURUSD_UP_S2_OCO2Sets5.Add( Base.EURUSD_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO2_EO6_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP6,"TP6_EURUSD_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP6_EURUSD_UP_S2_OCO2"));
};
Base.EURUSD_UP_S2_OCO2Sets6.Add( Base.EURUSD_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO2_EO6_UP_S2_ID = -1;
}
int EURUSD_OCO2S1_UP_S2 = 0;
for (; EURUSD_OCO2S1_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets1.Count; EURUSD_OCO2S1_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets1[EURUSD_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO2Sets1[EURUSD_OCO2S1_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO2Sets1.RemoveAt(EURUSD_OCO2S1_UP_S2);
EURUSD_OCO2S1_UP_S2 = 0;
break;
}
int EURUSD_OCO2S2_UP_S2 = 0;
for (; EURUSD_OCO2S2_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets2.Count; EURUSD_OCO2S2_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets2[EURUSD_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO2Sets2[EURUSD_OCO2S2_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO2Sets2.RemoveAt(EURUSD_OCO2S2_UP_S2);
EURUSD_OCO2S2_UP_S2 = 0;
break;
}
int EURUSD_OCO2S3_UP_S2 = 0;
for (; EURUSD_OCO2S3_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets3.Count; EURUSD_OCO2S3_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets3[EURUSD_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO2Sets3[EURUSD_OCO2S3_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO2Sets3.RemoveAt(EURUSD_OCO2S3_UP_S2);
EURUSD_OCO2S3_UP_S2 = 0;
break;
}
int EURUSD_OCO2S4_UP_S2 = 0;
for (; EURUSD_OCO2S4_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets4.Count; EURUSD_OCO2S4_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets4[EURUSD_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO2Sets4[EURUSD_OCO2S4_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO2Sets4.RemoveAt(EURUSD_OCO2S4_UP_S2);
EURUSD_OCO2S4_UP_S2 = 0;
break;
}
int EURUSD_OCO2S5_UP_S2 = 0;
for (; EURUSD_OCO2S5_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets5.Count; EURUSD_OCO2S5_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets5[EURUSD_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO2Sets5[EURUSD_OCO2S5_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO2Sets5.RemoveAt(EURUSD_OCO2S5_UP_S2);
EURUSD_OCO2S5_UP_S2 = 0;
break;
}
int EURUSD_OCO2S6_UP_S2 = 0;
for (; EURUSD_OCO2S6_UP_S2 < Base.EURUSD_UP_S2_OCO2Sets6.Count; EURUSD_OCO2S6_UP_S2++)
if (Base.EURUSD_UP_S2_OCO2Sets6[EURUSD_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO2Sets6[EURUSD_OCO2S6_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO2Sets6.RemoveAt(EURUSD_OCO2S6_UP_S2);
EURUSD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO3_EO1_UP_S2)
Base.EURUSD_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO3_EO2_UP_S2)
Base.EURUSD_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO3_EO3_UP_S2)
Base.EURUSD_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO3_EO4_UP_S2)
Base.EURUSD_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO3_EO5_UP_S2)
Base.EURUSD_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO3_EO6_UP_S2)
Base.EURUSD_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO1_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP1,"TP1_EURUSD_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP1_EURUSD_UP_S2_OCO3"));
};
Base.EURUSD_UP_S2_OCO3Sets1.Add( Base.EURUSD_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO2_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP2,"TP2_EURUSD_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP2_EURUSD_UP_S2_OCO3"));
};
Base.EURUSD_UP_S2_OCO3Sets2.Add( Base.EURUSD_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO3_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP3,"TP3_EURUSD_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP3_EURUSD_UP_S2_OCO3"));
};
Base.EURUSD_UP_S2_OCO3Sets3.Add( Base.EURUSD_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO4_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP4,"TP4_EURUSD_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP4_EURUSD_UP_S2_OCO3"));
};
Base.EURUSD_UP_S2_OCO3Sets4.Add( Base.EURUSD_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO5_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP5,"TP5_EURUSD_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP5_EURUSD_UP_S2_OCO3"));
};
Base.EURUSD_UP_S2_OCO3Sets5.Add( Base.EURUSD_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO3_EO6_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP6,"TP6_EURUSD_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP6_EURUSD_UP_S2_OCO3"));
};
Base.EURUSD_UP_S2_OCO3Sets6.Add( Base.EURUSD_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO3_EO6_UP_S2_ID = -1;
}
int EURUSD_OCO3S1_UP_S2 = 0;
for (; EURUSD_OCO3S1_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets1.Count; EURUSD_OCO3S1_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets1[EURUSD_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO3Sets1[EURUSD_OCO3S1_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO3Sets1.RemoveAt(EURUSD_OCO3S1_UP_S2);
EURUSD_OCO3S1_UP_S2 = 0;
break;
}
int EURUSD_OCO3S2_UP_S2 = 0;
for (; EURUSD_OCO3S2_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets2.Count; EURUSD_OCO3S2_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets2[EURUSD_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO3Sets2[EURUSD_OCO3S2_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO3Sets2.RemoveAt(EURUSD_OCO3S2_UP_S2);
EURUSD_OCO3S2_UP_S2 = 0;
break;
}
int EURUSD_OCO3S3_UP_S2 = 0;
for (; EURUSD_OCO3S3_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets3.Count; EURUSD_OCO3S3_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets3[EURUSD_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO3Sets3[EURUSD_OCO3S3_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO3Sets3.RemoveAt(EURUSD_OCO3S3_UP_S2);
EURUSD_OCO3S3_UP_S2 = 0;
break;
}
int EURUSD_OCO3S4_UP_S2 = 0;
for (; EURUSD_OCO3S4_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets4.Count; EURUSD_OCO3S4_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets4[EURUSD_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO3Sets4[EURUSD_OCO3S4_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO3Sets4.RemoveAt(EURUSD_OCO3S4_UP_S2);
EURUSD_OCO3S4_UP_S2 = 0;
break;
}
int EURUSD_OCO3S5_UP_S2 = 0;
for (; EURUSD_OCO3S5_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets5.Count; EURUSD_OCO3S5_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets5[EURUSD_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO3Sets5[EURUSD_OCO3S5_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO3Sets5.RemoveAt(EURUSD_OCO3S5_UP_S2);
EURUSD_OCO3S5_UP_S2 = 0;
break;
}
int EURUSD_OCO3S6_UP_S2 = 0;
for (; EURUSD_OCO3S6_UP_S2 < Base.EURUSD_UP_S2_OCO3Sets6.Count; EURUSD_OCO3S6_UP_S2++)
if (Base.EURUSD_UP_S2_OCO3Sets6[EURUSD_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO3Sets6[EURUSD_OCO3S6_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO3Sets6.RemoveAt(EURUSD_OCO3S6_UP_S2);
EURUSD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURUSD_OCO4_EO1_UP_S2)
Base.EURUSD_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO4_EO2_UP_S2)
Base.EURUSD_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO4_EO3_UP_S2)
Base.EURUSD_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO4_EO4_UP_S2)
Base.EURUSD_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO4_EO5_UP_S2)
Base.EURUSD_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.EURUSD_OCO4_EO6_UP_S2)
Base.EURUSD_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO1_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP1,"TP1_EURUSD_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP1_EURUSD_UP_S2_OCO4"));
};
Base.EURUSD_UP_S2_OCO4Sets1.Add( Base.EURUSD_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO2_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP2,"TP2_EURUSD_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP2_EURUSD_UP_S2_OCO4"));
};
Base.EURUSD_UP_S2_OCO4Sets2.Add( Base.EURUSD_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO3_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP3,"TP3_EURUSD_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP3_EURUSD_UP_S2_OCO4"));
};
Base.EURUSD_UP_S2_OCO4Sets3.Add( Base.EURUSD_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO4_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP4,"TP4_EURUSD_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP4_EURUSD_UP_S2_OCO4"));
};
Base.EURUSD_UP_S2_OCO4Sets4.Add( Base.EURUSD_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO5_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP5,"TP5_EURUSD_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP5_EURUSD_UP_S2_OCO4"));
};
Base.EURUSD_UP_S2_OCO4Sets5.Add( Base.EURUSD_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.EURUSD_OCO4_EO6_UP_S2_ID)
{
Base.EURUSD_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new EURUSD_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.EURUSD_UP_S2_TP6,"TP6_EURUSD_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.EURUSD_UP_S2_SL,"SL_TP6_EURUSD_UP_S2_OCO4"));
};
Base.EURUSD_UP_S2_OCO4Sets6.Add( Base.EURUSD_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.EURUSD_OCO4_EO6_UP_S2_ID = -1;
}
int EURUSD_OCO4S1_UP_S2 = 0;
for (; EURUSD_OCO4S1_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets1.Count; EURUSD_OCO4S1_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets1[EURUSD_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO4Sets1[EURUSD_OCO4S1_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO4Sets1.RemoveAt(EURUSD_OCO4S1_UP_S2);
EURUSD_OCO4S1_UP_S2 = 0;
break;
}
int EURUSD_OCO4S2_UP_S2 = 0;
for (; EURUSD_OCO4S2_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets2.Count; EURUSD_OCO4S2_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets2[EURUSD_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO4Sets2[EURUSD_OCO4S2_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO4Sets2.RemoveAt(EURUSD_OCO4S2_UP_S2);
EURUSD_OCO4S2_UP_S2 = 0;
break;
}
int EURUSD_OCO4S3_UP_S2 = 0;
for (; EURUSD_OCO4S3_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets3.Count; EURUSD_OCO4S3_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets3[EURUSD_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO4Sets3[EURUSD_OCO4S3_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO4Sets3.RemoveAt(EURUSD_OCO4S3_UP_S2);
EURUSD_OCO4S3_UP_S2 = 0;
break;
}
int EURUSD_OCO4S4_UP_S2 = 0;
for (; EURUSD_OCO4S4_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets4.Count; EURUSD_OCO4S4_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets4[EURUSD_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO4Sets4[EURUSD_OCO4S4_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO4Sets4.RemoveAt(EURUSD_OCO4S4_UP_S2);
EURUSD_OCO4S4_UP_S2 = 0;
break;
}
int EURUSD_OCO4S5_UP_S2 = 0;
for (; EURUSD_OCO4S5_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets5.Count; EURUSD_OCO4S5_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets5[EURUSD_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO4Sets5[EURUSD_OCO4S5_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO4Sets5.RemoveAt(EURUSD_OCO4S5_UP_S2);
EURUSD_OCO4S5_UP_S2 = 0;
break;
}
int EURUSD_OCO4S6_UP_S2 = 0;
for (; EURUSD_OCO4S6_UP_S2 < Base.EURUSD_UP_S2_OCO4Sets6.Count; EURUSD_OCO4S6_UP_S2++)
if (Base.EURUSD_UP_S2_OCO4Sets6[EURUSD_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.EURUSD_UP_S2_OCO4Sets6[EURUSD_OCO4S6_UP_S2].Filled();
Base.EURUSD_UP_S2_OCO4Sets6.RemoveAt(EURUSD_OCO4S6_UP_S2);
EURUSD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPAUD_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPAUD_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPAUD_DOWN_S2_OCO1")))
{
Base.GBPAUD_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPAUD_DOWN_S2_OCO2")))
{
Base.GBPAUD_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPAUD_DOWN_S2_OCO3")))
{
Base.GBPAUD_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPAUD_DOWN_S2_OCO4")))
{
Base.GBPAUD_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPAUD_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPAUD_OCO1_EO1_DOWN_S2)
Base.GBPAUD_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO2_DOWN_S2)
Base.GBPAUD_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO3_DOWN_S2)
Base.GBPAUD_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO4_DOWN_S2)
Base.GBPAUD_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO5_DOWN_S2)
Base.GBPAUD_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO6_DOWN_S2)
Base.GBPAUD_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPAUD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPAUD_OCO1S1_DOWN_S2 = 0;
for (; GBPAUD_OCO1S1_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets1.Count; GBPAUD_OCO1S1_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets1[GBPAUD_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO1Sets1[GBPAUD_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_1__Time out_OCO1");
Base.GBPAUD_DOWN_S2_OCO1Sets1.Clear();
GBPAUD_OCO1S1_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO1S2_DOWN_S2 = 0;
for (; GBPAUD_OCO1S2_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets2.Count; GBPAUD_OCO1S2_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets2[GBPAUD_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO1Sets2[GBPAUD_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_2__Time out_OCO1");
Base.GBPAUD_DOWN_S2_OCO1Sets2.Clear();
GBPAUD_OCO1S2_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO1S3_DOWN_S2 = 0;
for (; GBPAUD_OCO1S3_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets3.Count; GBPAUD_OCO1S3_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets3[GBPAUD_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO1Sets3[GBPAUD_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_3__Time out_OCO1");
Base.GBPAUD_DOWN_S2_OCO1Sets3.Clear();
GBPAUD_OCO1S3_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO1S4_DOWN_S2 = 0;
for (; GBPAUD_OCO1S4_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets4.Count; GBPAUD_OCO1S4_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets4[GBPAUD_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO1Sets4[GBPAUD_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_4__Time out_OCO1");
Base.GBPAUD_DOWN_S2_OCO1Sets4.Clear();
GBPAUD_OCO1S4_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO1S5_DOWN_S2 = 0;
for (; GBPAUD_OCO1S5_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets5.Count; GBPAUD_OCO1S5_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets5[GBPAUD_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO1Sets5[GBPAUD_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_5__Time out_OCO1");
Base.GBPAUD_DOWN_S2_OCO1Sets5.Clear();
GBPAUD_OCO1S5_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO1S6_DOWN_S2 = 0;
for (; GBPAUD_OCO1S6_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO1Sets6.Count; GBPAUD_OCO1S6_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO1Sets6[GBPAUD_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO1Sets6[GBPAUD_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_6__Time out_OCO1");
Base.GBPAUD_DOWN_S2_OCO1Sets6.Clear();
GBPAUD_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO2_EO1_DOWN_S2)
Base.GBPAUD_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO2_DOWN_S2)
Base.GBPAUD_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO3_DOWN_S2)
Base.GBPAUD_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO4_DOWN_S2)
Base.GBPAUD_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO5_DOWN_S2)
Base.GBPAUD_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO6_DOWN_S2)
Base.GBPAUD_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPAUD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPAUD_OCO2S1_DOWN_S2 = 0;
for (; GBPAUD_OCO2S1_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets1.Count; GBPAUD_OCO2S1_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets1[GBPAUD_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO2Sets1[GBPAUD_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_1__Time out_OCO2");
Base.GBPAUD_DOWN_S2_OCO2Sets1.Clear();
GBPAUD_OCO2S1_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO2S2_DOWN_S2 = 0;
for (; GBPAUD_OCO2S2_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets2.Count; GBPAUD_OCO2S2_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets2[GBPAUD_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO2Sets2[GBPAUD_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_2__Time out_OCO2");
Base.GBPAUD_DOWN_S2_OCO2Sets2.Clear();
GBPAUD_OCO2S2_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO2S3_DOWN_S2 = 0;
for (; GBPAUD_OCO2S3_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets3.Count; GBPAUD_OCO2S3_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets3[GBPAUD_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO2Sets3[GBPAUD_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_3__Time out_OCO2");
Base.GBPAUD_DOWN_S2_OCO2Sets3.Clear();
GBPAUD_OCO2S3_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO2S4_DOWN_S2 = 0;
for (; GBPAUD_OCO2S4_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets4.Count; GBPAUD_OCO2S4_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets4[GBPAUD_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO2Sets4[GBPAUD_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_4__Time out_OCO2");
Base.GBPAUD_DOWN_S2_OCO2Sets4.Clear();
GBPAUD_OCO2S4_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO2S5_DOWN_S2 = 0;
for (; GBPAUD_OCO2S5_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets5.Count; GBPAUD_OCO2S5_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets5[GBPAUD_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO2Sets5[GBPAUD_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_5__Time out_OCO2");
Base.GBPAUD_DOWN_S2_OCO2Sets5.Clear();
GBPAUD_OCO2S5_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO2S6_DOWN_S2 = 0;
for (; GBPAUD_OCO2S6_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO2Sets6.Count; GBPAUD_OCO2S6_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO2Sets6[GBPAUD_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO2Sets6[GBPAUD_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_6__Time out_OCO2");
Base.GBPAUD_DOWN_S2_OCO2Sets6.Clear();
GBPAUD_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO3_EO1_DOWN_S2)
Base.GBPAUD_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO2_DOWN_S2)
Base.GBPAUD_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO3_DOWN_S2)
Base.GBPAUD_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO4_DOWN_S2)
Base.GBPAUD_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO5_DOWN_S2)
Base.GBPAUD_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO6_DOWN_S2)
Base.GBPAUD_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPAUD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPAUD_OCO3S1_DOWN_S2 = 0;
for (; GBPAUD_OCO3S1_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets1.Count; GBPAUD_OCO3S1_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets1[GBPAUD_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO3Sets1[GBPAUD_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_1__Time out_OCO3");
Base.GBPAUD_DOWN_S2_OCO3Sets1.Clear();
GBPAUD_OCO3S1_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO3S2_DOWN_S2 = 0;
for (; GBPAUD_OCO3S2_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets2.Count; GBPAUD_OCO3S2_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets2[GBPAUD_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO3Sets2[GBPAUD_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_2__Time out_OCO3");
Base.GBPAUD_DOWN_S2_OCO3Sets2.Clear();
GBPAUD_OCO3S2_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO3S3_DOWN_S2 = 0;
for (; GBPAUD_OCO3S3_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets3.Count; GBPAUD_OCO3S3_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets3[GBPAUD_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO3Sets3[GBPAUD_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_3__Time out_OCO3");
Base.GBPAUD_DOWN_S2_OCO3Sets3.Clear();
GBPAUD_OCO3S3_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO3S4_DOWN_S2 = 0;
for (; GBPAUD_OCO3S4_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets4.Count; GBPAUD_OCO3S4_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets4[GBPAUD_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO3Sets4[GBPAUD_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_4__Time out_OCO3");
Base.GBPAUD_DOWN_S2_OCO3Sets4.Clear();
GBPAUD_OCO3S4_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO3S5_DOWN_S2 = 0;
for (; GBPAUD_OCO3S5_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets5.Count; GBPAUD_OCO3S5_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets5[GBPAUD_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO3Sets5[GBPAUD_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_5__Time out_OCO3");
Base.GBPAUD_DOWN_S2_OCO3Sets5.Clear();
GBPAUD_OCO3S5_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO3S6_DOWN_S2 = 0;
for (; GBPAUD_OCO3S6_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO3Sets6.Count; GBPAUD_OCO3S6_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO3Sets6[GBPAUD_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO3Sets6[GBPAUD_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_6__Time out_OCO3");
Base.GBPAUD_DOWN_S2_OCO3Sets6.Clear();
GBPAUD_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO4_EO1_DOWN_S2)
Base.GBPAUD_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO2_DOWN_S2)
Base.GBPAUD_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO3_DOWN_S2)
Base.GBPAUD_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO4_DOWN_S2)
Base.GBPAUD_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO5_DOWN_S2)
Base.GBPAUD_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO6_DOWN_S2)
Base.GBPAUD_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPAUD_DOWN_S2_OCO_DELAY_7DAY))
{
int GBPAUD_OCO4S1_DOWN_S2 = 0;
for (; GBPAUD_OCO4S1_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets1.Count; GBPAUD_OCO4S1_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets1[GBPAUD_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO4Sets1[GBPAUD_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_1__Time out_OCO4");
Base.GBPAUD_DOWN_S2_OCO4Sets1.Clear();
GBPAUD_OCO4S1_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO4S2_DOWN_S2 = 0;
for (; GBPAUD_OCO4S2_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets2.Count; GBPAUD_OCO4S2_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets2[GBPAUD_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO4Sets2[GBPAUD_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_2__Time out_OCO4");
Base.GBPAUD_DOWN_S2_OCO4Sets2.Clear();
GBPAUD_OCO4S2_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO4S3_DOWN_S2 = 0;
for (; GBPAUD_OCO4S3_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets3.Count; GBPAUD_OCO4S3_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets3[GBPAUD_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO4Sets3[GBPAUD_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_3__Time out_OCO4");
Base.GBPAUD_DOWN_S2_OCO4Sets3.Clear();
GBPAUD_OCO4S3_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO4S4_DOWN_S2 = 0;
for (; GBPAUD_OCO4S4_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets4.Count; GBPAUD_OCO4S4_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets4[GBPAUD_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO4Sets4[GBPAUD_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_4__Time out_OCO4");
Base.GBPAUD_DOWN_S2_OCO4Sets4.Clear();
GBPAUD_OCO4S4_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO4S5_DOWN_S2 = 0;
for (; GBPAUD_OCO4S5_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets5.Count; GBPAUD_OCO4S5_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets5[GBPAUD_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO4Sets5[GBPAUD_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_5__Time out_OCO4");
Base.GBPAUD_DOWN_S2_OCO4Sets5.Clear();
GBPAUD_OCO4S5_DOWN_S2 = 0;
break;
}
int GBPAUD_OCO4S6_DOWN_S2 = 0;
for (; GBPAUD_OCO4S6_DOWN_S2 < Base.GBPAUD_DOWN_S2_OCO4Sets6.Count; GBPAUD_OCO4S6_DOWN_S2++)
if (Base.GBPAUD_DOWN_S2_OCO4Sets6[GBPAUD_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.GBPAUD_DOWN_S2_OCO4Sets6[GBPAUD_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_DOWN_S2_Entry_6__Time out_OCO4");
Base.GBPAUD_DOWN_S2_OCO4Sets6.Clear();
GBPAUD_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPAUD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPAUD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPAUD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPAUD_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPAUD_DOWN_S2 = DOWM_GBPAUD_DOWN_S2 || DOWT_GBPAUD_DOWN_S2 || DOWW_GBPAUD_DOWN_S2 || DOWTH_GBPAUD_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPAUD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPAUD_OCO1_DOWN_S2_IsReady == false ||
Base.GBPAUD_OCO2_DOWN_S2_IsReady == false ||
Base.GBPAUD_OCO3_DOWN_S2_IsReady == false ||
Base.GBPAUD_OCO4_DOWN_S2_IsReady == false)
{
Base.GBPAUD_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.GBPAUD_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.GBPAUD_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.GBPAUD_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPAUD_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.GBPAUD_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.GBPAUD_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.GBPAUD_OCO4_DOWN_S2_Monthly_IsReady = true;
}
GBPAUD_Signal_Condition_DOWN_S2 =
(
pricesM_BID_High[0] - pricesM_BID_Open[0] > prices_BID_Close[0] * 0.008m &&
pricesM_BID_High[1] - pricesM_BID_Open[1] > prices_BID_Close[0] * 0.008m &&
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > prices_BID_Close[0] * 0.000001m &&
pricesM_ASK_Open[1] - pricesM_BID_Close[1] > prices_BID_Close[0] * 0.000001m &&
prices_ASK_High[0] > pricesM_ASK_Close[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.001m
);
GBPAUD_DOWN_S2_SL = 0.0150m;
GBPAUD_DOWN_S2_TP1 = 0.0025m;
GBPAUD_DOWN_S2_TP2 = GBPAUD_DOWN_S2_SL * 0;
GBPAUD_DOWN_S2_TP3 = GBPAUD_DOWN_S2_SL * 0;
GBPAUD_DOWN_S2_TP4 = GBPAUD_DOWN_S2_SL * 0;
GBPAUD_DOWN_S2_TP5 = GBPAUD_DOWN_S2_SL * 0;
GBPAUD_DOWN_S2_TP6 = GBPAUD_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPAUD_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPAUD_quantity_SL_DOWN_S2 = GBPAUD_quantity_DOWN_S2;
GBPAUD_quantity_TP1_DOWN_S2 = (int)Math.Floor(GBPAUD_quantity_DOWN_S2 * 1m);
GBPAUD_quantity_TP2_DOWN_S2 = (int)Math.Floor(GBPAUD_quantity_TP1_DOWN_S2 * 0m);
GBPAUD_quantity_TP3_DOWN_S2 = (int)Math.Floor(GBPAUD_quantity_TP2_DOWN_S2 * 0m);
GBPAUD_quantity_TP4_DOWN_S2 = (int)Math.Floor(GBPAUD_quantity_TP3_DOWN_S2 * 0m);
GBPAUD_quantity_TP5_DOWN_S2 = (int)Math.Floor(GBPAUD_quantity_TP4_DOWN_S2 * 0m);
GBPAUD_quantity_TP6_DOWN_S2 = (int)Math.Floor(GBPAUD_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (GBPAUD_Signal_Condition_DOWN_S2 &&
DOWR_GBPAUD_DOWN_S2 &&
Base.GBPAUD_OCO1_DOWN_S2_IsReady == true &&
Base.GBPAUD_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPAUD_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP1_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP1_OCO1");
Base.GBPAUD_OCO1_EO1_DOWN_S2 = false;
Base.GBPAUD_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP2_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP2_OCO1");
Base.GBPAUD_OCO1_EO2_DOWN_S2 = false;
Base.GBPAUD_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP3_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP3_OCO1");
Base.GBPAUD_OCO1_EO3_DOWN_S2 = false;
Base.GBPAUD_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP4_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP4_OCO1");
Base.GBPAUD_OCO1_EO4_DOWN_S2 = false;
Base.GBPAUD_OCO1_DOWN_S2_IsReady = false;
if (Base.GBPAUD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (GBPAUD_Signal_Condition_DOWN_S2 &&
DOWR_GBPAUD_DOWN_S2 &&
Base.GBPAUD_OCO2_DOWN_S2_IsReady == true &&
Base.GBPAUD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPAUD_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPAUD_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP1_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP1_OCO2");
Base.GBPAUD_OCO2_EO1_DOWN_S2 = false;
Base.GBPAUD_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP2_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP2_OCO2");
Base.GBPAUD_OCO2_EO2_DOWN_S2 = false;
Base.GBPAUD_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP3_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP3_OCO2");
Base.GBPAUD_OCO2_EO3_DOWN_S2 = false;
Base.GBPAUD_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP4_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP4_OCO2");
Base.GBPAUD_OCO2_EO4_DOWN_S2 = false;
Base.GBPAUD_OCO2_DOWN_S2_IsReady = false;
if (Base.GBPAUD_OCO2_DOWN_S2_IsReady == false && Base.GBPAUD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (GBPAUD_Signal_Condition_DOWN_S2 &&
DOWR_GBPAUD_DOWN_S2 &&
Base.GBPAUD_OCO3_DOWN_S2_IsReady == true &&
Base.GBPAUD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPAUD_OCO2_DOWN_S2_IsReady == false &&
Base.GBPAUD_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPAUD_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP1_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP1_OCO3");
Base.GBPAUD_OCO3_EO1_DOWN_S2 = false;
Base.GBPAUD_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP2_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP2_OCO3");
Base.GBPAUD_OCO3_EO2_DOWN_S2 = false;
Base.GBPAUD_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP3_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP3_OCO3");
Base.GBPAUD_OCO3_EO3_DOWN_S2 = false;
Base.GBPAUD_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP4_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP4_OCO3");
Base.GBPAUD_OCO3_EO4_DOWN_S2 = false;
Base.GBPAUD_OCO3_DOWN_S2_IsReady = false;
if (Base.GBPAUD_OCO3_DOWN_S2_IsReady == false && Base.GBPAUD_OCO2_DOWN_S2_IsReady == false && Base.GBPAUD_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (GBPAUD_Signal_Condition_DOWN_S2 &&
DOWR_GBPAUD_DOWN_S2 &&
Base.GBPAUD_OCO4_DOWN_S2_IsReady == true &&
Base.GBPAUD_OCO1_DOWN_S2_IsReady == false &&
Base.GBPAUD_OCO2_DOWN_S2_IsReady == false &&
Base.GBPAUD_OCO3_DOWN_S2_IsReady == false &&
Base.GBPAUD_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.GBPAUD_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP1_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP1_OCO4");
Base.GBPAUD_OCO4_EO1_DOWN_S2 = false;
Base.GBPAUD_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP2_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP2_OCO4");
Base.GBPAUD_OCO4_EO2_DOWN_S2 = false;
Base.GBPAUD_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP3_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP3_OCO4");
Base.GBPAUD_OCO4_EO3_DOWN_S2 = false;
Base.GBPAUD_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
GBPAUD_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP4_DOWN_S2, false,"GBPAUD_DOWN_S2_Entry_TP4_OCO4");
Base.GBPAUD_OCO4_EO4_DOWN_S2 = false;
Base.GBPAUD_OCO4_DOWN_S2_IsReady = false;
if (Base.GBPAUD_OCO4_DOWN_S2_IsReady == false && Base.GBPAUD_OCO3_DOWN_S2_IsReady == false && Base.GBPAUD_OCO2_DOWN_S2_IsReady == false && Base.GBPAUD_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _USDJPY;
///oco1 up
public static OrderTicket USDJPY_OCO1_MO1_UP_S2;
public static OrderTicket USDJPY_OCO1_MO2_UP_S2;
public static OrderTicket USDJPY_OCO1_MO3_UP_S2;
public static OrderTicket USDJPY_OCO1_MO4_UP_S2;
public static OrderTicket USDJPY_OCO1_MO5_UP_S2;
public static OrderTicket USDJPY_OCO1_MO6_UP_S2;
public static int USDJPY_OCO1_EO1_UP_S2_ID ;
public static int USDJPY_OCO1_EO2_UP_S2_ID ;
public static int USDJPY_OCO1_EO3_UP_S2_ID ;
public static int USDJPY_OCO1_EO4_UP_S2_ID ;
public static int USDJPY_OCO1_EO5_UP_S2_ID ;
public static int USDJPY_OCO1_EO6_UP_S2_ID ;
public static bool USDJPY_OCO1_EO1_UP_S2 ;
public static bool USDJPY_OCO1_EO2_UP_S2 ;
public static bool USDJPY_OCO1_EO3_UP_S2 ;
public static bool USDJPY_OCO1_EO4_UP_S2 ;
public static bool USDJPY_OCO1_EO5_UP_S2 ;
public static bool USDJPY_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_UP_S2> USDJPY_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_UP_S2> USDJPY_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_UP_S2> USDJPY_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_UP_S2> USDJPY_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_UP_S2> USDJPY_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_UP_S2> USDJPY_OOFE_OCO1_UP_S2_6 ;
public static USDJPY_OCO1_UP_S2 USDJPY_PFO_OCO1_UP_S2_1 ;
public static USDJPY_OCO1_UP_S2 USDJPY_PFO_OCO1_UP_S2_2 ;
public static USDJPY_OCO1_UP_S2 USDJPY_PFO_OCO1_UP_S2_3 ;
public static USDJPY_OCO1_UP_S2 USDJPY_PFO_OCO1_UP_S2_4 ;
public static USDJPY_OCO1_UP_S2 USDJPY_PFO_OCO1_UP_S2_5 ;
public static USDJPY_OCO1_UP_S2 USDJPY_PFO_OCO1_UP_S2_6 ;
public static List<USDJPY_OCO1_UP_S2> USDJPY_UP_S2_OCO1Sets1 = new List<USDJPY_OCO1_UP_S2>();
public static List<USDJPY_OCO1_UP_S2> USDJPY_UP_S2_OCO1Sets2 = new List<USDJPY_OCO1_UP_S2>();
public static List<USDJPY_OCO1_UP_S2> USDJPY_UP_S2_OCO1Sets3 = new List<USDJPY_OCO1_UP_S2>();
public static List<USDJPY_OCO1_UP_S2> USDJPY_UP_S2_OCO1Sets4 = new List<USDJPY_OCO1_UP_S2>();
public static List<USDJPY_OCO1_UP_S2> USDJPY_UP_S2_OCO1Sets5 = new List<USDJPY_OCO1_UP_S2>();
public static List<USDJPY_OCO1_UP_S2> USDJPY_UP_S2_OCO1Sets6 = new List<USDJPY_OCO1_UP_S2>();
public static bool USDJPY_OCO1_UP_S2_IsReady = true;
public static bool USDJPY_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket USDJPY_OCO1_MO1_DOWN_S2 ;
public static OrderTicket USDJPY_OCO1_MO2_DOWN_S2 ;
public static OrderTicket USDJPY_OCO1_MO3_DOWN_S2 ;
public static OrderTicket USDJPY_OCO1_MO4_DOWN_S2 ;
public static OrderTicket USDJPY_OCO1_MO5_DOWN_S2 ;
public static OrderTicket USDJPY_OCO1_MO6_DOWN_S2 ;
public static int USDJPY_OCO1_EO1_DOWN_S2_ID ;
public static int USDJPY_OCO1_EO2_DOWN_S2_ID ;
public static int USDJPY_OCO1_EO3_DOWN_S2_ID ;
public static int USDJPY_OCO1_EO4_DOWN_S2_ID ;
public static int USDJPY_OCO1_EO5_DOWN_S2_ID ;
public static int USDJPY_OCO1_EO6_DOWN_S2_ID ;
public static bool USDJPY_OCO1_EO1_DOWN_S2 ;
public static bool USDJPY_OCO1_EO2_DOWN_S2 ;
public static bool USDJPY_OCO1_EO3_DOWN_S2 ;
public static bool USDJPY_OCO1_EO4_DOWN_S2 ;
public static bool USDJPY_OCO1_EO5_DOWN_S2 ;
public static bool USDJPY_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_DOWN_S2> USDJPY_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_DOWN_S2> USDJPY_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_DOWN_S2> USDJPY_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_DOWN_S2> USDJPY_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_DOWN_S2> USDJPY_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO1_DOWN_S2> USDJPY_OOFE_OCO1_DOWN_S2_6 ;
public static USDJPY_OCO1_DOWN_S2 USDJPY_PFO_OCO1_DOWN_S2_1 ;
public static USDJPY_OCO1_DOWN_S2 USDJPY_PFO_OCO1_DOWN_S2_2 ;
public static USDJPY_OCO1_DOWN_S2 USDJPY_PFO_OCO1_DOWN_S2_3 ;
public static USDJPY_OCO1_DOWN_S2 USDJPY_PFO_OCO1_DOWN_S2_4 ;
public static USDJPY_OCO1_DOWN_S2 USDJPY_PFO_OCO1_DOWN_S2_5 ;
public static USDJPY_OCO1_DOWN_S2 USDJPY_PFO_OCO1_DOWN_S2_6 ;
public static List<USDJPY_OCO1_DOWN_S2> USDJPY_DOWN_S2_OCO1Sets1 = new List<USDJPY_OCO1_DOWN_S2>();
public static List<USDJPY_OCO1_DOWN_S2> USDJPY_DOWN_S2_OCO1Sets2 = new List<USDJPY_OCO1_DOWN_S2>();
public static List<USDJPY_OCO1_DOWN_S2> USDJPY_DOWN_S2_OCO1Sets3 = new List<USDJPY_OCO1_DOWN_S2>();
public static List<USDJPY_OCO1_DOWN_S2> USDJPY_DOWN_S2_OCO1Sets4 = new List<USDJPY_OCO1_DOWN_S2>();
public static List<USDJPY_OCO1_DOWN_S2> USDJPY_DOWN_S2_OCO1Sets5 = new List<USDJPY_OCO1_DOWN_S2>();
public static List<USDJPY_OCO1_DOWN_S2> USDJPY_DOWN_S2_OCO1Sets6 = new List<USDJPY_OCO1_DOWN_S2>();
public static bool USDJPY_OCO1_DOWN_S2_IsReady = true;
public static bool USDJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket USDJPY_OCO2_MO1_UP_S2 ;
public static OrderTicket USDJPY_OCO2_MO2_UP_S2 ;
public static OrderTicket USDJPY_OCO2_MO3_UP_S2 ;
public static OrderTicket USDJPY_OCO2_MO4_UP_S2 ;
public static OrderTicket USDJPY_OCO2_MO5_UP_S2 ;
public static OrderTicket USDJPY_OCO2_MO6_UP_S2 ;
public static int USDJPY_OCO2_EO1_UP_S2_ID ;
public static int USDJPY_OCO2_EO2_UP_S2_ID ;
public static int USDJPY_OCO2_EO3_UP_S2_ID ;
public static int USDJPY_OCO2_EO4_UP_S2_ID ;
public static int USDJPY_OCO2_EO5_UP_S2_ID ;
public static int USDJPY_OCO2_EO6_UP_S2_ID ;
public static bool USDJPY_OCO2_EO1_UP_S2 ;
public static bool USDJPY_OCO2_EO2_UP_S2 ;
public static bool USDJPY_OCO2_EO3_UP_S2 ;
public static bool USDJPY_OCO2_EO4_UP_S2 ;
public static bool USDJPY_OCO2_EO5_UP_S2 ;
public static bool USDJPY_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_UP_S2> USDJPY_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_UP_S2> USDJPY_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_UP_S2> USDJPY_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_UP_S2> USDJPY_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_UP_S2> USDJPY_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_UP_S2> USDJPY_OOFE_OCO2_UP_S2_6 ;
public static USDJPY_OCO2_UP_S2 USDJPY_PFO_OCO2_UP_S2_1 ;
public static USDJPY_OCO2_UP_S2 USDJPY_PFO_OCO2_UP_S2_2 ;
public static USDJPY_OCO2_UP_S2 USDJPY_PFO_OCO2_UP_S2_3 ;
public static USDJPY_OCO2_UP_S2 USDJPY_PFO_OCO2_UP_S2_4 ;
public static USDJPY_OCO2_UP_S2 USDJPY_PFO_OCO2_UP_S2_5 ;
public static USDJPY_OCO2_UP_S2 USDJPY_PFO_OCO2_UP_S2_6 ;
public static List<USDJPY_OCO2_UP_S2> USDJPY_UP_S2_OCO2Sets1 = new List<USDJPY_OCO2_UP_S2>();
public static List<USDJPY_OCO2_UP_S2> USDJPY_UP_S2_OCO2Sets2 = new List<USDJPY_OCO2_UP_S2>();
public static List<USDJPY_OCO2_UP_S2> USDJPY_UP_S2_OCO2Sets3 = new List<USDJPY_OCO2_UP_S2>();
public static List<USDJPY_OCO2_UP_S2> USDJPY_UP_S2_OCO2Sets4 = new List<USDJPY_OCO2_UP_S2>();
public static List<USDJPY_OCO2_UP_S2> USDJPY_UP_S2_OCO2Sets5 = new List<USDJPY_OCO2_UP_S2>();
public static List<USDJPY_OCO2_UP_S2> USDJPY_UP_S2_OCO2Sets6 = new List<USDJPY_OCO2_UP_S2>();
public static bool USDJPY_OCO2_UP_S2_IsReady = true;
public static bool USDJPY_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket USDJPY_OCO2_MO1_DOWN_S2 ;
public static OrderTicket USDJPY_OCO2_MO2_DOWN_S2 ;
public static OrderTicket USDJPY_OCO2_MO3_DOWN_S2 ;
public static OrderTicket USDJPY_OCO2_MO4_DOWN_S2 ;
public static OrderTicket USDJPY_OCO2_MO5_DOWN_S2 ;
public static OrderTicket USDJPY_OCO2_MO6_DOWN_S2 ;
public static int USDJPY_OCO2_EO1_DOWN_S2_ID ;
public static int USDJPY_OCO2_EO2_DOWN_S2_ID ;
public static int USDJPY_OCO2_EO3_DOWN_S2_ID ;
public static int USDJPY_OCO2_EO4_DOWN_S2_ID ;
public static int USDJPY_OCO2_EO5_DOWN_S2_ID ;
public static int USDJPY_OCO2_EO6_DOWN_S2_ID ;
public static bool USDJPY_OCO2_EO1_DOWN_S2 ;
public static bool USDJPY_OCO2_EO2_DOWN_S2 ;
public static bool USDJPY_OCO2_EO3_DOWN_S2 ;
public static bool USDJPY_OCO2_EO4_DOWN_S2 ;
public static bool USDJPY_OCO2_EO5_DOWN_S2 ;
public static bool USDJPY_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_DOWN_S2> USDJPY_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_DOWN_S2> USDJPY_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_DOWN_S2> USDJPY_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_DOWN_S2> USDJPY_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_DOWN_S2> USDJPY_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO2_DOWN_S2> USDJPY_OOFE_OCO2_DOWN_S2_6 ;
public static USDJPY_OCO2_DOWN_S2 USDJPY_PFO_OCO2_DOWN_S2_1 ;
public static USDJPY_OCO2_DOWN_S2 USDJPY_PFO_OCO2_DOWN_S2_2 ;
public static USDJPY_OCO2_DOWN_S2 USDJPY_PFO_OCO2_DOWN_S2_3 ;
public static USDJPY_OCO2_DOWN_S2 USDJPY_PFO_OCO2_DOWN_S2_4 ;
public static USDJPY_OCO2_DOWN_S2 USDJPY_PFO_OCO2_DOWN_S2_5 ;
public static USDJPY_OCO2_DOWN_S2 USDJPY_PFO_OCO2_DOWN_S2_6 ;
public static List<USDJPY_OCO2_DOWN_S2> USDJPY_DOWN_S2_OCO2Sets1 = new List<USDJPY_OCO2_DOWN_S2>();
public static List<USDJPY_OCO2_DOWN_S2> USDJPY_DOWN_S2_OCO2Sets2 = new List<USDJPY_OCO2_DOWN_S2>();
public static List<USDJPY_OCO2_DOWN_S2> USDJPY_DOWN_S2_OCO2Sets3 = new List<USDJPY_OCO2_DOWN_S2>();
public static List<USDJPY_OCO2_DOWN_S2> USDJPY_DOWN_S2_OCO2Sets4 = new List<USDJPY_OCO2_DOWN_S2>();
public static List<USDJPY_OCO2_DOWN_S2> USDJPY_DOWN_S2_OCO2Sets5 = new List<USDJPY_OCO2_DOWN_S2>();
public static List<USDJPY_OCO2_DOWN_S2> USDJPY_DOWN_S2_OCO2Sets6 = new List<USDJPY_OCO2_DOWN_S2>();
public static bool USDJPY_OCO2_DOWN_S2_IsReady = true;
public static bool USDJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket USDJPY_OCO3_MO1_UP_S2 ;
public static OrderTicket USDJPY_OCO3_MO2_UP_S2 ;
public static OrderTicket USDJPY_OCO3_MO3_UP_S2 ;
public static OrderTicket USDJPY_OCO3_MO4_UP_S2 ;
public static OrderTicket USDJPY_OCO3_MO5_UP_S2 ;
public static OrderTicket USDJPY_OCO3_MO6_UP_S2 ;
public static int USDJPY_OCO3_EO1_UP_S2_ID ;
public static int USDJPY_OCO3_EO2_UP_S2_ID ;
public static int USDJPY_OCO3_EO3_UP_S2_ID ;
public static int USDJPY_OCO3_EO4_UP_S2_ID ;
public static int USDJPY_OCO3_EO5_UP_S2_ID ;
public static int USDJPY_OCO3_EO6_UP_S2_ID ;
public static bool USDJPY_OCO3_EO1_UP_S2 ;
public static bool USDJPY_OCO3_EO2_UP_S2 ;
public static bool USDJPY_OCO3_EO3_UP_S2 ;
public static bool USDJPY_OCO3_EO4_UP_S2 ;
public static bool USDJPY_OCO3_EO5_UP_S2 ;
public static bool USDJPY_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_UP_S2> USDJPY_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_UP_S2> USDJPY_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_UP_S2> USDJPY_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_UP_S2> USDJPY_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_UP_S2> USDJPY_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_UP_S2> USDJPY_OOFE_OCO3_UP_S2_6 ;
public static USDJPY_OCO3_UP_S2 USDJPY_PFO_OCO3_UP_S2_1 ;
public static USDJPY_OCO3_UP_S2 USDJPY_PFO_OCO3_UP_S2_2 ;
public static USDJPY_OCO3_UP_S2 USDJPY_PFO_OCO3_UP_S2_3 ;
public static USDJPY_OCO3_UP_S2 USDJPY_PFO_OCO3_UP_S2_4 ;
public static USDJPY_OCO3_UP_S2 USDJPY_PFO_OCO3_UP_S2_5 ;
public static USDJPY_OCO3_UP_S2 USDJPY_PFO_OCO3_UP_S2_6 ;
public static List<USDJPY_OCO3_UP_S2> USDJPY_UP_S2_OCO3Sets1 = new List<USDJPY_OCO3_UP_S2>();
public static List<USDJPY_OCO3_UP_S2> USDJPY_UP_S2_OCO3Sets2 = new List<USDJPY_OCO3_UP_S2>();
public static List<USDJPY_OCO3_UP_S2> USDJPY_UP_S2_OCO3Sets3 = new List<USDJPY_OCO3_UP_S2>();
public static List<USDJPY_OCO3_UP_S2> USDJPY_UP_S2_OCO3Sets4 = new List<USDJPY_OCO3_UP_S2>();
public static List<USDJPY_OCO3_UP_S2> USDJPY_UP_S2_OCO3Sets5 = new List<USDJPY_OCO3_UP_S2>();
public static List<USDJPY_OCO3_UP_S2> USDJPY_UP_S2_OCO3Sets6 = new List<USDJPY_OCO3_UP_S2>();
public static bool USDJPY_OCO3_UP_S2_IsReady = true;
public static bool USDJPY_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket USDJPY_OCO3_MO1_DOWN_S2 ;
public static OrderTicket USDJPY_OCO3_MO2_DOWN_S2 ;
public static OrderTicket USDJPY_OCO3_MO3_DOWN_S2 ;
public static OrderTicket USDJPY_OCO3_MO4_DOWN_S2 ;
public static OrderTicket USDJPY_OCO3_MO5_DOWN_S2 ;
public static OrderTicket USDJPY_OCO3_MO6_DOWN_S2 ;
public static int USDJPY_OCO3_EO1_DOWN_S2_ID ;
public static int USDJPY_OCO3_EO2_DOWN_S2_ID ;
public static int USDJPY_OCO3_EO3_DOWN_S2_ID ;
public static int USDJPY_OCO3_EO4_DOWN_S2_ID ;
public static int USDJPY_OCO3_EO5_DOWN_S2_ID ;
public static int USDJPY_OCO3_EO6_DOWN_S2_ID ;
public static bool USDJPY_OCO3_EO1_DOWN_S2 ;
public static bool USDJPY_OCO3_EO2_DOWN_S2 ;
public static bool USDJPY_OCO3_EO3_DOWN_S2 ;
public static bool USDJPY_OCO3_EO4_DOWN_S2 ;
public static bool USDJPY_OCO3_EO5_DOWN_S2 ;
public static bool USDJPY_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_DOWN_S2> USDJPY_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_DOWN_S2> USDJPY_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_DOWN_S2> USDJPY_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_DOWN_S2> USDJPY_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_DOWN_S2> USDJPY_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO3_DOWN_S2> USDJPY_OOFE_OCO3_DOWN_S2_6 ;
public static USDJPY_OCO3_DOWN_S2 USDJPY_PFO_OCO3_DOWN_S2_1 ;
public static USDJPY_OCO3_DOWN_S2 USDJPY_PFO_OCO3_DOWN_S2_2 ;
public static USDJPY_OCO3_DOWN_S2 USDJPY_PFO_OCO3_DOWN_S2_3 ;
public static USDJPY_OCO3_DOWN_S2 USDJPY_PFO_OCO3_DOWN_S2_4 ;
public static USDJPY_OCO3_DOWN_S2 USDJPY_PFO_OCO3_DOWN_S2_5 ;
public static USDJPY_OCO3_DOWN_S2 USDJPY_PFO_OCO3_DOWN_S2_6 ;
public static List<USDJPY_OCO3_DOWN_S2> USDJPY_DOWN_S2_OCO3Sets1 = new List<USDJPY_OCO3_DOWN_S2>();
public static List<USDJPY_OCO3_DOWN_S2> USDJPY_DOWN_S2_OCO3Sets2 = new List<USDJPY_OCO3_DOWN_S2>();
public static List<USDJPY_OCO3_DOWN_S2> USDJPY_DOWN_S2_OCO3Sets3 = new List<USDJPY_OCO3_DOWN_S2>();
public static List<USDJPY_OCO3_DOWN_S2> USDJPY_DOWN_S2_OCO3Sets4 = new List<USDJPY_OCO3_DOWN_S2>();
public static List<USDJPY_OCO3_DOWN_S2> USDJPY_DOWN_S2_OCO3Sets5 = new List<USDJPY_OCO3_DOWN_S2>();
public static List<USDJPY_OCO3_DOWN_S2> USDJPY_DOWN_S2_OCO3Sets6 = new List<USDJPY_OCO3_DOWN_S2>();
public static bool USDJPY_OCO3_DOWN_S2_IsReady = true;
public static bool USDJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket USDJPY_OCO4_MO1_UP_S2 ;
public static OrderTicket USDJPY_OCO4_MO2_UP_S2 ;
public static OrderTicket USDJPY_OCO4_MO3_UP_S2 ;
public static OrderTicket USDJPY_OCO4_MO4_UP_S2 ;
public static OrderTicket USDJPY_OCO4_MO5_UP_S2 ;
public static OrderTicket USDJPY_OCO4_MO6_UP_S2 ;
public static int USDJPY_OCO4_EO1_UP_S2_ID ;
public static int USDJPY_OCO4_EO2_UP_S2_ID ;
public static int USDJPY_OCO4_EO3_UP_S2_ID ;
public static int USDJPY_OCO4_EO4_UP_S2_ID ;
public static int USDJPY_OCO4_EO5_UP_S2_ID ;
public static int USDJPY_OCO4_EO6_UP_S2_ID ;
public static bool USDJPY_OCO4_EO1_UP_S2 ;
public static bool USDJPY_OCO4_EO2_UP_S2 ;
public static bool USDJPY_OCO4_EO3_UP_S2 ;
public static bool USDJPY_OCO4_EO4_UP_S2 ;
public static bool USDJPY_OCO4_EO5_UP_S2 ;
public static bool USDJPY_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_UP_S2> USDJPY_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_UP_S2> USDJPY_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_UP_S2> USDJPY_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_UP_S2> USDJPY_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_UP_S2> USDJPY_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_UP_S2> USDJPY_OOFE_OCO4_UP_S2_6 ;
public static USDJPY_OCO4_UP_S2 USDJPY_PFO_OCO4_UP_S2_1 ;
public static USDJPY_OCO4_UP_S2 USDJPY_PFO_OCO4_UP_S2_2 ;
public static USDJPY_OCO4_UP_S2 USDJPY_PFO_OCO4_UP_S2_3 ;
public static USDJPY_OCO4_UP_S2 USDJPY_PFO_OCO4_UP_S2_4 ;
public static USDJPY_OCO4_UP_S2 USDJPY_PFO_OCO4_UP_S2_5 ;
public static USDJPY_OCO4_UP_S2 USDJPY_PFO_OCO4_UP_S2_6 ;
public static List<USDJPY_OCO4_UP_S2> USDJPY_UP_S2_OCO4Sets1 = new List<USDJPY_OCO4_UP_S2>();
public static List<USDJPY_OCO4_UP_S2> USDJPY_UP_S2_OCO4Sets2 = new List<USDJPY_OCO4_UP_S2>();
public static List<USDJPY_OCO4_UP_S2> USDJPY_UP_S2_OCO4Sets3 = new List<USDJPY_OCO4_UP_S2>();
public static List<USDJPY_OCO4_UP_S2> USDJPY_UP_S2_OCO4Sets4 = new List<USDJPY_OCO4_UP_S2>();
public static List<USDJPY_OCO4_UP_S2> USDJPY_UP_S2_OCO4Sets5 = new List<USDJPY_OCO4_UP_S2>();
public static List<USDJPY_OCO4_UP_S2> USDJPY_UP_S2_OCO4Sets6 = new List<USDJPY_OCO4_UP_S2>();
public static bool USDJPY_OCO4_UP_S2_IsReady = true;
public static bool USDJPY_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket USDJPY_OCO4_MO1_DOWN_S2 ;
public static OrderTicket USDJPY_OCO4_MO2_DOWN_S2 ;
public static OrderTicket USDJPY_OCO4_MO3_DOWN_S2 ;
public static OrderTicket USDJPY_OCO4_MO4_DOWN_S2 ;
public static OrderTicket USDJPY_OCO4_MO5_DOWN_S2 ;
public static OrderTicket USDJPY_OCO4_MO6_DOWN_S2 ;
public static int USDJPY_OCO4_EO1_DOWN_S2_ID ;
public static int USDJPY_OCO4_EO2_DOWN_S2_ID ;
public static int USDJPY_OCO4_EO3_DOWN_S2_ID ;
public static int USDJPY_OCO4_EO4_DOWN_S2_ID ;
public static int USDJPY_OCO4_EO5_DOWN_S2_ID ;
public static int USDJPY_OCO4_EO6_DOWN_S2_ID ;
public static bool USDJPY_OCO4_EO1_DOWN_S2 ;
public static bool USDJPY_OCO4_EO2_DOWN_S2 ;
public static bool USDJPY_OCO4_EO3_DOWN_S2 ;
public static bool USDJPY_OCO4_EO4_DOWN_S2 ;
public static bool USDJPY_OCO4_EO5_DOWN_S2 ;
public static bool USDJPY_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_DOWN_S2> USDJPY_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_DOWN_S2> USDJPY_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_DOWN_S2> USDJPY_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_DOWN_S2> USDJPY_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_DOWN_S2> USDJPY_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, USDJPY_OCO4_DOWN_S2> USDJPY_OOFE_OCO4_DOWN_S2_6 ;
public static USDJPY_OCO4_DOWN_S2 USDJPY_PFO_OCO4_DOWN_S2_1 ;
public static USDJPY_OCO4_DOWN_S2 USDJPY_PFO_OCO4_DOWN_S2_2 ;
public static USDJPY_OCO4_DOWN_S2 USDJPY_PFO_OCO4_DOWN_S2_3 ;
public static USDJPY_OCO4_DOWN_S2 USDJPY_PFO_OCO4_DOWN_S2_4 ;
public static USDJPY_OCO4_DOWN_S2 USDJPY_PFO_OCO4_DOWN_S2_5 ;
public static USDJPY_OCO4_DOWN_S2 USDJPY_PFO_OCO4_DOWN_S2_6 ;
public static List<USDJPY_OCO4_DOWN_S2> USDJPY_DOWN_S2_OCO4Sets1 = new List<USDJPY_OCO4_DOWN_S2>();
public static List<USDJPY_OCO4_DOWN_S2> USDJPY_DOWN_S2_OCO4Sets2 = new List<USDJPY_OCO4_DOWN_S2>();
public static List<USDJPY_OCO4_DOWN_S2> USDJPY_DOWN_S2_OCO4Sets3 = new List<USDJPY_OCO4_DOWN_S2>();
public static List<USDJPY_OCO4_DOWN_S2> USDJPY_DOWN_S2_OCO4Sets4 = new List<USDJPY_OCO4_DOWN_S2>();
public static List<USDJPY_OCO4_DOWN_S2> USDJPY_DOWN_S2_OCO4Sets5 = new List<USDJPY_OCO4_DOWN_S2>();
public static List<USDJPY_OCO4_DOWN_S2> USDJPY_DOWN_S2_OCO4Sets6 = new List<USDJPY_OCO4_DOWN_S2>();
public static bool USDJPY_OCO4_DOWN_S2_IsReady = true;
public static bool USDJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal USDJPY_UP_S2_SL {get; set;}
public static decimal USDJPY_UP_S2_TP1 {get; set;}
public static decimal USDJPY_UP_S2_TP2 {get; set;}
public static decimal USDJPY_UP_S2_TP3 {get; set;}
public static decimal USDJPY_UP_S2_TP4 {get; set;}
public static decimal USDJPY_UP_S2_TP5 {get; set;}
public static decimal USDJPY_UP_S2_TP6 {get; set;}
public static decimal USDJPY_DOWN_S2_SL {get; set;}
public static decimal USDJPY_DOWN_S2_TP1 {get; set;}
public static decimal USDJPY_DOWN_S2_TP2 {get; set;}
public static decimal USDJPY_DOWN_S2_TP3 {get; set;}
public static decimal USDJPY_DOWN_S2_TP4 {get; set;}
public static decimal USDJPY_DOWN_S2_TP5 {get; set;}
public static decimal USDJPY_DOWN_S2_TP6 {get; set;}
public static bool USDJPY_Signal_Condition_UP_1 ;
public static bool USDJPY_Signal_Condition_UP_2 ;
public static bool USDJPY_Signal_Condition_UP_3 ;
public static bool USDJPY_Signal_Condition_DOWN_S2 ;
public static int USDJPY_UP_S2_OCO_DELAY_7DAY = 10080;
public static int USDJPY_UP_S2_OCOM_DELAY_DAY = 4320;
public static int USDJPY_UP_S2_OCOT_DELAY_DAY = 2880;
public static int USDJPY_UP_S2_OCOW_DELAY_DAY = 1440;
public static int USDJPY_UP_S2_OCOTH_DELAY_DAY = 720;
public static int USDJPY_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int USDJPY_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int USDJPY_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int USDJPY_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int USDJPY_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_USDJPY_UP_S2 ;
public static bool DOWM_USDJPY_UP_S2 ;
public static bool DOWT_USDJPY_UP_S2 ;
public static bool DOWW_USDJPY_UP_S2 ;
public static bool DOWTH_USDJPY_UP_S2 ;
public static bool DOWR_USDJPY_DOWN_S2 ;
public static bool DOWM_USDJPY_DOWN_S2 ;
public static bool DOWT_USDJPY_DOWN_S2 ;
public static bool DOWW_USDJPY_DOWN_S2 ;
public static bool DOWTH_USDJPY_DOWN_S2 ;
public static int USDJPY_quantity_UP_S2 ;
public static int USDJPY_quantity_SL_UP_S2 ;
public static int USDJPY_quantity_TP1_UP_S2 ;
public static int USDJPY_quantity_TP2_UP_S2 ;
public static int USDJPY_quantity_TP3_UP_S2 ;
public static int USDJPY_quantity_TP4_UP_S2 ;
public static int USDJPY_quantity_TP5_UP_S2;
public static int USDJPY_quantity_TP6_UP_S2 ;
public static int USDJPY_quantity_DOWN_S2 ;
public static int USDJPY_quantity_SL_DOWN_S2 ;
public static int USDJPY_quantity_TP1_DOWN_S2 ;
public static int USDJPY_quantity_TP2_DOWN_S2 ;
public static int USDJPY_quantity_TP3_DOWN_S2 ;
public static int USDJPY_quantity_TP4_DOWN_S2 ;
public static int USDJPY_quantity_TP5_DOWN_S2;
public static int USDJPY_quantity_TP6_DOWN_S2 ;
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_GBPAUD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_GBPAUD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("GBPAUD_UP_S2_OCO1")))
{
Base.GBPAUD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPAUD_UP_S2_OCO2")))
{
Base.GBPAUD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPAUD_UP_S2_OCO3")))
{
Base.GBPAUD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("GBPAUD_UP_S2_OCO4")))
{
Base.GBPAUD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("GBPAUD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.GBPAUD_OCO1_EO1_UP_S2)
Base.GBPAUD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO2_UP_S2)
Base.GBPAUD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO3_UP_S2)
Base.GBPAUD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO4_UP_S2)
Base.GBPAUD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO5_UP_S2)
Base.GBPAUD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO1_EO6_UP_S2)
Base.GBPAUD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPAUD_UP_S2_OCO_DELAY_7DAY))
{
int GBPAUD_OCO1S1_UP_S2 = 0;
for (; GBPAUD_OCO1S1_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets1.Count; GBPAUD_OCO1S1_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets1[GBPAUD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO1Sets1[GBPAUD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_1__Time out_OCO1");
Base.GBPAUD_UP_S2_OCO1Sets1.Clear();
GBPAUD_OCO1S1_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S2_UP_S2 = 0;
for (; GBPAUD_OCO1S2_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets2.Count; GBPAUD_OCO1S2_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets2[GBPAUD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO1Sets2[GBPAUD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_2__Time out_OCO1");
Base.GBPAUD_UP_S2_OCO1Sets2.Clear();
GBPAUD_OCO1S2_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S3_UP_S2 = 0;
for (; GBPAUD_OCO1S3_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets3.Count; GBPAUD_OCO1S3_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets3[GBPAUD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO1Sets3[GBPAUD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_3__Time out_OCO1");
Base.GBPAUD_UP_S2_OCO1Sets3.Clear();
GBPAUD_OCO1S3_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S4_UP_S2 = 0;
for (; GBPAUD_OCO1S4_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets4.Count; GBPAUD_OCO1S4_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets4[GBPAUD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO1Sets4[GBPAUD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_4__Time out_OCO1");
Base.GBPAUD_UP_S2_OCO1Sets4.Clear();
GBPAUD_OCO1S4_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S5_UP_S2 = 0;
for (; GBPAUD_OCO1S5_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets5.Count; GBPAUD_OCO1S5_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets5[GBPAUD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO1Sets5[GBPAUD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_5__Time out_OCO1");
Base.GBPAUD_UP_S2_OCO1Sets5.Clear();
GBPAUD_OCO1S5_UP_S2 = 0;
break;
}
int GBPAUD_OCO1S6_UP_S2 = 0;
for (; GBPAUD_OCO1S6_UP_S2 < Base.GBPAUD_UP_S2_OCO1Sets6.Count; GBPAUD_OCO1S6_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO1Sets6[GBPAUD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO1Sets6[GBPAUD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_6__Time out_OCO1");
Base.GBPAUD_UP_S2_OCO1Sets6.Clear();
GBPAUD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO2_EO1_UP_S2)
Base.GBPAUD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO2_UP_S2)
Base.GBPAUD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO3_UP_S2)
Base.GBPAUD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO4_UP_S2)
Base.GBPAUD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO5_UP_S2)
Base.GBPAUD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO2_EO6_UP_S2)
Base.GBPAUD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPAUD_UP_S2_OCO_DELAY_7DAY))
{
int GBPAUD_OCO2S1_UP_S2 = 0;
for (; GBPAUD_OCO2S1_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets1.Count; GBPAUD_OCO2S1_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets1[GBPAUD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO2Sets1[GBPAUD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_1__Time out_OCO2");
Base.GBPAUD_UP_S2_OCO2Sets1.Clear();
GBPAUD_OCO2S1_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S2_UP_S2 = 0;
for (; GBPAUD_OCO2S2_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets2.Count; GBPAUD_OCO2S2_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets2[GBPAUD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO2Sets2[GBPAUD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_2__Time out_OCO2");
Base.GBPAUD_UP_S2_OCO2Sets2.Clear();
GBPAUD_OCO2S2_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S3_UP_S2 = 0;
for (; GBPAUD_OCO2S3_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets3.Count; GBPAUD_OCO2S3_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets3[GBPAUD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO2Sets3[GBPAUD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_3__Time out_OCO2");
Base.GBPAUD_UP_S2_OCO2Sets3.Clear();
GBPAUD_OCO2S3_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S4_UP_S2 = 0;
for (; GBPAUD_OCO2S4_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets4.Count; GBPAUD_OCO2S4_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets4[GBPAUD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO2Sets4[GBPAUD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_4__Time out_OCO2");
Base.GBPAUD_UP_S2_OCO2Sets4.Clear();
GBPAUD_OCO2S4_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S5_UP_S2 = 0;
for (; GBPAUD_OCO2S5_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets5.Count; GBPAUD_OCO2S5_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets5[GBPAUD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO2Sets5[GBPAUD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_5__Time out_OCO2");
Base.GBPAUD_UP_S2_OCO2Sets5.Clear();
GBPAUD_OCO2S5_UP_S2 = 0;
break;
}
int GBPAUD_OCO2S6_UP_S2 = 0;
for (; GBPAUD_OCO2S6_UP_S2 < Base.GBPAUD_UP_S2_OCO2Sets6.Count; GBPAUD_OCO2S6_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO2Sets6[GBPAUD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO2Sets6[GBPAUD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_6__Time out_OCO2");
Base.GBPAUD_UP_S2_OCO2Sets6.Clear();
GBPAUD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO3_EO1_UP_S2)
Base.GBPAUD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO2_UP_S2)
Base.GBPAUD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO3_UP_S2)
Base.GBPAUD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO4_UP_S2)
Base.GBPAUD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO5_UP_S2)
Base.GBPAUD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO3_EO6_UP_S2)
Base.GBPAUD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPAUD_UP_S2_OCO_DELAY_7DAY))
{
int GBPAUD_OCO3S1_UP_S2 = 0;
for (; GBPAUD_OCO3S1_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets1.Count; GBPAUD_OCO3S1_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets1[GBPAUD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO3Sets1[GBPAUD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_1__Time out_OCO3");
Base.GBPAUD_UP_S2_OCO3Sets1.Clear();
GBPAUD_OCO3S1_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S2_UP_S2 = 0;
for (; GBPAUD_OCO3S2_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets2.Count; GBPAUD_OCO3S2_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets2[GBPAUD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO3Sets2[GBPAUD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_2__Time out_OCO3");
Base.GBPAUD_UP_S2_OCO3Sets2.Clear();
GBPAUD_OCO3S2_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S3_UP_S2 = 0;
for (; GBPAUD_OCO3S3_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets3.Count; GBPAUD_OCO3S3_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets3[GBPAUD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO3Sets3[GBPAUD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_3__Time out_OCO3");
Base.GBPAUD_UP_S2_OCO3Sets3.Clear();
GBPAUD_OCO3S3_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S4_UP_S2 = 0;
for (; GBPAUD_OCO3S4_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets4.Count; GBPAUD_OCO3S4_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets4[GBPAUD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO3Sets4[GBPAUD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_4__Time out_OCO3");
Base.GBPAUD_UP_S2_OCO3Sets4.Clear();
GBPAUD_OCO3S4_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S5_UP_S2 = 0;
for (; GBPAUD_OCO3S5_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets5.Count; GBPAUD_OCO3S5_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets5[GBPAUD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO3Sets5[GBPAUD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_5__Time out_OCO3");
Base.GBPAUD_UP_S2_OCO3Sets5.Clear();
GBPAUD_OCO3S5_UP_S2 = 0;
break;
}
int GBPAUD_OCO3S6_UP_S2 = 0;
for (; GBPAUD_OCO3S6_UP_S2 < Base.GBPAUD_UP_S2_OCO3Sets6.Count; GBPAUD_OCO3S6_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO3Sets6[GBPAUD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO3Sets6[GBPAUD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_6__Time out_OCO3");
Base.GBPAUD_UP_S2_OCO3Sets6.Clear();
GBPAUD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.GBPAUD_OCO4_EO1_UP_S2)
Base.GBPAUD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO2_UP_S2)
Base.GBPAUD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO3_UP_S2)
Base.GBPAUD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO4_UP_S2)
Base.GBPAUD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO5_UP_S2)
Base.GBPAUD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.GBPAUD_OCO4_EO6_UP_S2)
Base.GBPAUD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.GBPAUD_UP_S2_OCO_DELAY_7DAY))
{
int GBPAUD_OCO4S1_UP_S2 = 0;
for (; GBPAUD_OCO4S1_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets1.Count; GBPAUD_OCO4S1_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets1[GBPAUD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO4Sets1[GBPAUD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_1__Time out_OCO4");
Base.GBPAUD_UP_S2_OCO4Sets1.Clear();
GBPAUD_OCO4S1_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S2_UP_S2 = 0;
for (; GBPAUD_OCO4S2_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets2.Count; GBPAUD_OCO4S2_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets2[GBPAUD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO4Sets2[GBPAUD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_2__Time out_OCO4");
Base.GBPAUD_UP_S2_OCO4Sets2.Clear();
GBPAUD_OCO4S2_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S3_UP_S2 = 0;
for (; GBPAUD_OCO4S3_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets3.Count; GBPAUD_OCO4S3_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets3[GBPAUD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO4Sets3[GBPAUD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_3__Time out_OCO4");
Base.GBPAUD_UP_S2_OCO4Sets3.Clear();
GBPAUD_OCO4S3_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S4_UP_S2 = 0;
for (; GBPAUD_OCO4S4_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets4.Count; GBPAUD_OCO4S4_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets4[GBPAUD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO4Sets4[GBPAUD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_4__Time out_OCO4");
Base.GBPAUD_UP_S2_OCO4Sets4.Clear();
GBPAUD_OCO4S4_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S5_UP_S2 = 0;
for (; GBPAUD_OCO4S5_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets5.Count; GBPAUD_OCO4S5_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets5[GBPAUD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO4Sets5[GBPAUD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_5__Time out_OCO4");
Base.GBPAUD_UP_S2_OCO4Sets5.Clear();
GBPAUD_OCO4S5_UP_S2 = 0;
break;
}
int GBPAUD_OCO4S6_UP_S2 = 0;
for (; GBPAUD_OCO4S6_UP_S2 < Base.GBPAUD_UP_S2_OCO4Sets6.Count; GBPAUD_OCO4S6_UP_S2++)
if (Base.GBPAUD_UP_S2_OCO4Sets6[GBPAUD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.GBPAUD_UP_S2_OCO4Sets6[GBPAUD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("GBPAUD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("GBPAUD", order.Quantity, false, "GBPAUD_UP_S2_Entry_6__Time out_OCO4");
Base.GBPAUD_UP_S2_OCO4Sets6.Clear();
GBPAUD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_GBPAUD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_GBPAUD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_GBPAUD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_GBPAUD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_GBPAUD_UP_S2 = DOWM_GBPAUD_UP_S2 || DOWT_GBPAUD_UP_S2 || DOWW_GBPAUD_UP_S2 || DOWTH_GBPAUD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("GBPAUD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.GBPAUD_OCO1_UP_S2_IsReady == false ||
Base.GBPAUD_OCO2_UP_S2_IsReady == false ||
Base.GBPAUD_OCO3_UP_S2_IsReady == false ||
Base.GBPAUD_OCO4_UP_S2_IsReady == false)
{
Base.GBPAUD_OCO1_UP_S2_Monthly_IsReady = false;
Base.GBPAUD_OCO2_UP_S2_Monthly_IsReady = false;
Base.GBPAUD_OCO3_UP_S2_Monthly_IsReady = false;
Base.GBPAUD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.GBPAUD_OCO1_UP_S2_Monthly_IsReady = true;
Base.GBPAUD_OCO2_UP_S2_Monthly_IsReady = true;
Base.GBPAUD_OCO3_UP_S2_Monthly_IsReady = true;
Base.GBPAUD_OCO4_UP_S2_Monthly_IsReady = true;
}
GBPAUD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPAUD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
GBPAUD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs*2
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (GBPAUD_Signal_Condition_UP_1)
{
GBPAUD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPAUD_Signal_Condition_UP_2)
{
GBPAUD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPAUD_Signal_Condition_UP_3)
{
GBPAUD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (GBPAUD_Signal_Condition_UP_1)
{
GBPAUD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (GBPAUD_Signal_Condition_UP_2)
{
GBPAUD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (GBPAUD_Signal_Condition_UP_3)
{
GBPAUD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
GBPAUD_UP_S2_TP2 = GBPAUD_UP_S2_SL * 0;
GBPAUD_UP_S2_TP3 = GBPAUD_UP_S2_SL * 0;
GBPAUD_UP_S2_TP4 = GBPAUD_UP_S2_SL * 0;
GBPAUD_UP_S2_TP5 = GBPAUD_UP_S2_SL * 0;
GBPAUD_UP_S2_TP6 = GBPAUD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
GBPAUD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
GBPAUD_quantity_SL_UP_S2 = GBPAUD_quantity_UP_S2;
GBPAUD_quantity_TP1_UP_S2 = (int)Math.Floor(GBPAUD_quantity_UP_S2 * 1m);
GBPAUD_quantity_TP2_UP_S2 = (int)Math.Floor(GBPAUD_quantity_TP1_UP_S2 * 0m);
GBPAUD_quantity_TP3_UP_S2 = (int)Math.Floor(GBPAUD_quantity_TP2_UP_S2 * 0m);
GBPAUD_quantity_TP4_UP_S2 = (int)Math.Floor(GBPAUD_quantity_TP3_UP_S2 * 0m);
GBPAUD_quantity_TP5_UP_S2 = (int)Math.Floor(GBPAUD_quantity_TP4_UP_S2 * 0m);
GBPAUD_quantity_TP6_UP_S2 = (int)Math.Floor(GBPAUD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((GBPAUD_Signal_Condition_UP_1 || GBPAUD_Signal_Condition_UP_2 || GBPAUD_Signal_Condition_UP_3) &&
DOWR_GBPAUD_UP_S2 &&
Base.GBPAUD_OCO1_UP_S2_IsReady == true &&
Base.GBPAUD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.GBPAUD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP1_UP_S2, false,"GBPAUD_UP_S2_Entry_TP1_OCO1");
Base.GBPAUD_OCO1_EO1_UP_S2 = false;
Base.GBPAUD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP2_UP_S2, false,"GBPAUD_UP_S2_Entry_TP2_OCO1");
Base.GBPAUD_OCO1_EO2_UP_S2 = false;
Base.GBPAUD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP3_UP_S2, false,"GBPAUD_UP_S2_Entry_TP3_OCO1");
Base.GBPAUD_OCO1_EO3_UP_S2 = false;
Base.GBPAUD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP4_UP_S2, false,"GBPAUD_UP_S2_Entry_TP4_OCO1");
Base.GBPAUD_OCO1_EO4_UP_S2 = false;
Base.GBPAUD_OCO1_UP_S2_IsReady = false;
if (Base.GBPAUD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((GBPAUD_Signal_Condition_UP_1 || GBPAUD_Signal_Condition_UP_2 || GBPAUD_Signal_Condition_UP_3) &&
DOWR_GBPAUD_UP_S2 &&
Base.GBPAUD_OCO1_UP_S2_IsReady == false &&
Base.GBPAUD_OCO2_UP_S2_IsReady == true &&
Base.GBPAUD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.GBPAUD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP1_UP_S2, false,"GBPAUD_UP_S2_Entry_TP1_OCO2");
Base.GBPAUD_OCO2_EO1_UP_S2 = false;
Base.GBPAUD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP2_UP_S2, false,"GBPAUD_UP_S2_Entry_TP2_OCO2");
Base.GBPAUD_OCO2_EO2_UP_S2 = false;
Base.GBPAUD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP3_UP_S2, false,"GBPAUD_UP_S2_Entry_TP3_OCO2");
Base.GBPAUD_OCO2_EO3_UP_S2 = false;
Base.GBPAUD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP4_UP_S2, false,"GBPAUD_UP_S2_Entry_TP4_OCO2");
Base.GBPAUD_OCO2_EO4_UP_S2 = false;
Base.GBPAUD_OCO2_UP_S2_IsReady = false;
if (Base.GBPAUD_OCO2_UP_S2_IsReady == false && Base.GBPAUD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((GBPAUD_Signal_Condition_UP_1 || GBPAUD_Signal_Condition_UP_2 || GBPAUD_Signal_Condition_UP_3) &&
DOWR_GBPAUD_UP_S2 &&
Base.GBPAUD_OCO1_UP_S2_IsReady == false &&
Base.GBPAUD_OCO2_UP_S2_IsReady == false &&
Base.GBPAUD_OCO3_UP_S2_IsReady == true &&
Base.GBPAUD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.GBPAUD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP1_UP_S2, false,"GBPAUD_UP_S2_Entry_TP1_OCO3");
Base.GBPAUD_OCO3_EO1_UP_S2 = false;
Base.GBPAUD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP2_UP_S2, false,"GBPAUD_UP_S2_Entry_TP2_OCO3");
Base.GBPAUD_OCO3_EO2_UP_S2 = false;
Base.GBPAUD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP3_UP_S2, false,"GBPAUD_UP_S2_Entry_TP3_OCO3");
Base.GBPAUD_OCO3_EO3_UP_S2 = false;
Base.GBPAUD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP4_UP_S2, false,"GBPAUD_UP_S2_Entry_TP4_OCO3");
Base.GBPAUD_OCO3_EO4_UP_S2 = false;
Base.GBPAUD_OCO3_UP_S2_IsReady = false;
if (Base.GBPAUD_OCO3_UP_S2_IsReady == false && Base.GBPAUD_OCO2_UP_S2_IsReady == false && Base.GBPAUD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((GBPAUD_Signal_Condition_UP_1 || GBPAUD_Signal_Condition_UP_2 || GBPAUD_Signal_Condition_UP_3) &&
DOWR_GBPAUD_UP_S2 &&
Base.GBPAUD_OCO1_UP_S2_IsReady == false &&
Base.GBPAUD_OCO2_UP_S2_IsReady == false &&
Base.GBPAUD_OCO3_UP_S2_IsReady == false &&
Base.GBPAUD_OCO4_UP_S2_IsReady == true &&
Base.GBPAUD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.GBPAUD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP1_UP_S2, false,"GBPAUD_UP_S2_Entry_TP1_OCO4");
Base.GBPAUD_OCO4_EO1_UP_S2 = false;
Base.GBPAUD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP2_UP_S2, false,"GBPAUD_UP_S2_Entry_TP2_OCO4");
Base.GBPAUD_OCO4_EO2_UP_S2 = false;
Base.GBPAUD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP3_UP_S2, false,"GBPAUD_UP_S2_Entry_TP3_OCO4");
Base.GBPAUD_OCO4_EO3_UP_S2 = false;
Base.GBPAUD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
GBPAUD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, GBPAUD_quantity_TP4_UP_S2, false,"GBPAUD_UP_S2_Entry_TP4_OCO4");
Base.GBPAUD_OCO4_EO4_UP_S2 = false;
Base.GBPAUD_OCO4_UP_S2_IsReady = false;
if (Base.GBPAUD_OCO4_UP_S2_IsReady == false && Base.GBPAUD_OCO3_UP_S2_IsReady == false && Base.GBPAUD_OCO2_UP_S2_IsReady == false && Base.GBPAUD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _AUDCAD;
///oco1 up
public static OrderTicket AUDCAD_OCO1_MO1_UP_S2;
public static OrderTicket AUDCAD_OCO1_MO2_UP_S2;
public static OrderTicket AUDCAD_OCO1_MO3_UP_S2;
public static OrderTicket AUDCAD_OCO1_MO4_UP_S2;
public static OrderTicket AUDCAD_OCO1_MO5_UP_S2;
public static OrderTicket AUDCAD_OCO1_MO6_UP_S2;
public static int AUDCAD_OCO1_EO1_UP_S2_ID ;
public static int AUDCAD_OCO1_EO2_UP_S2_ID ;
public static int AUDCAD_OCO1_EO3_UP_S2_ID ;
public static int AUDCAD_OCO1_EO4_UP_S2_ID ;
public static int AUDCAD_OCO1_EO5_UP_S2_ID ;
public static int AUDCAD_OCO1_EO6_UP_S2_ID ;
public static bool AUDCAD_OCO1_EO1_UP_S2 ;
public static bool AUDCAD_OCO1_EO2_UP_S2 ;
public static bool AUDCAD_OCO1_EO3_UP_S2 ;
public static bool AUDCAD_OCO1_EO4_UP_S2 ;
public static bool AUDCAD_OCO1_EO5_UP_S2 ;
public static bool AUDCAD_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_UP_S2> AUDCAD_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_UP_S2> AUDCAD_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_UP_S2> AUDCAD_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_UP_S2> AUDCAD_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_UP_S2> AUDCAD_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_UP_S2> AUDCAD_OOFE_OCO1_UP_S2_6 ;
public static AUDCAD_OCO1_UP_S2 AUDCAD_PFO_OCO1_UP_S2_1 ;
public static AUDCAD_OCO1_UP_S2 AUDCAD_PFO_OCO1_UP_S2_2 ;
public static AUDCAD_OCO1_UP_S2 AUDCAD_PFO_OCO1_UP_S2_3 ;
public static AUDCAD_OCO1_UP_S2 AUDCAD_PFO_OCO1_UP_S2_4 ;
public static AUDCAD_OCO1_UP_S2 AUDCAD_PFO_OCO1_UP_S2_5 ;
public static AUDCAD_OCO1_UP_S2 AUDCAD_PFO_OCO1_UP_S2_6 ;
public static List<AUDCAD_OCO1_UP_S2> AUDCAD_UP_S2_OCO1Sets1 = new List<AUDCAD_OCO1_UP_S2>();
public static List<AUDCAD_OCO1_UP_S2> AUDCAD_UP_S2_OCO1Sets2 = new List<AUDCAD_OCO1_UP_S2>();
public static List<AUDCAD_OCO1_UP_S2> AUDCAD_UP_S2_OCO1Sets3 = new List<AUDCAD_OCO1_UP_S2>();
public static List<AUDCAD_OCO1_UP_S2> AUDCAD_UP_S2_OCO1Sets4 = new List<AUDCAD_OCO1_UP_S2>();
public static List<AUDCAD_OCO1_UP_S2> AUDCAD_UP_S2_OCO1Sets5 = new List<AUDCAD_OCO1_UP_S2>();
public static List<AUDCAD_OCO1_UP_S2> AUDCAD_UP_S2_OCO1Sets6 = new List<AUDCAD_OCO1_UP_S2>();
public static bool AUDCAD_OCO1_UP_S2_IsReady = true;
public static bool AUDCAD_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket AUDCAD_OCO1_MO1_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO1_MO2_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO1_MO3_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO1_MO4_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO1_MO5_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO1_MO6_DOWN_S2 ;
public static int AUDCAD_OCO1_EO1_DOWN_S2_ID ;
public static int AUDCAD_OCO1_EO2_DOWN_S2_ID ;
public static int AUDCAD_OCO1_EO3_DOWN_S2_ID ;
public static int AUDCAD_OCO1_EO4_DOWN_S2_ID ;
public static int AUDCAD_OCO1_EO5_DOWN_S2_ID ;
public static int AUDCAD_OCO1_EO6_DOWN_S2_ID ;
public static bool AUDCAD_OCO1_EO1_DOWN_S2 ;
public static bool AUDCAD_OCO1_EO2_DOWN_S2 ;
public static bool AUDCAD_OCO1_EO3_DOWN_S2 ;
public static bool AUDCAD_OCO1_EO4_DOWN_S2 ;
public static bool AUDCAD_OCO1_EO5_DOWN_S2 ;
public static bool AUDCAD_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_DOWN_S2> AUDCAD_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_DOWN_S2> AUDCAD_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_DOWN_S2> AUDCAD_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_DOWN_S2> AUDCAD_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_DOWN_S2> AUDCAD_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO1_DOWN_S2> AUDCAD_OOFE_OCO1_DOWN_S2_6 ;
public static AUDCAD_OCO1_DOWN_S2 AUDCAD_PFO_OCO1_DOWN_S2_1 ;
public static AUDCAD_OCO1_DOWN_S2 AUDCAD_PFO_OCO1_DOWN_S2_2 ;
public static AUDCAD_OCO1_DOWN_S2 AUDCAD_PFO_OCO1_DOWN_S2_3 ;
public static AUDCAD_OCO1_DOWN_S2 AUDCAD_PFO_OCO1_DOWN_S2_4 ;
public static AUDCAD_OCO1_DOWN_S2 AUDCAD_PFO_OCO1_DOWN_S2_5 ;
public static AUDCAD_OCO1_DOWN_S2 AUDCAD_PFO_OCO1_DOWN_S2_6 ;
public static List<AUDCAD_OCO1_DOWN_S2> AUDCAD_DOWN_S2_OCO1Sets1 = new List<AUDCAD_OCO1_DOWN_S2>();
public static List<AUDCAD_OCO1_DOWN_S2> AUDCAD_DOWN_S2_OCO1Sets2 = new List<AUDCAD_OCO1_DOWN_S2>();
public static List<AUDCAD_OCO1_DOWN_S2> AUDCAD_DOWN_S2_OCO1Sets3 = new List<AUDCAD_OCO1_DOWN_S2>();
public static List<AUDCAD_OCO1_DOWN_S2> AUDCAD_DOWN_S2_OCO1Sets4 = new List<AUDCAD_OCO1_DOWN_S2>();
public static List<AUDCAD_OCO1_DOWN_S2> AUDCAD_DOWN_S2_OCO1Sets5 = new List<AUDCAD_OCO1_DOWN_S2>();
public static List<AUDCAD_OCO1_DOWN_S2> AUDCAD_DOWN_S2_OCO1Sets6 = new List<AUDCAD_OCO1_DOWN_S2>();
public static bool AUDCAD_OCO1_DOWN_S2_IsReady = true;
public static bool AUDCAD_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket AUDCAD_OCO2_MO1_UP_S2 ;
public static OrderTicket AUDCAD_OCO2_MO2_UP_S2 ;
public static OrderTicket AUDCAD_OCO2_MO3_UP_S2 ;
public static OrderTicket AUDCAD_OCO2_MO4_UP_S2 ;
public static OrderTicket AUDCAD_OCO2_MO5_UP_S2 ;
public static OrderTicket AUDCAD_OCO2_MO6_UP_S2 ;
public static int AUDCAD_OCO2_EO1_UP_S2_ID ;
public static int AUDCAD_OCO2_EO2_UP_S2_ID ;
public static int AUDCAD_OCO2_EO3_UP_S2_ID ;
public static int AUDCAD_OCO2_EO4_UP_S2_ID ;
public static int AUDCAD_OCO2_EO5_UP_S2_ID ;
public static int AUDCAD_OCO2_EO6_UP_S2_ID ;
public static bool AUDCAD_OCO2_EO1_UP_S2 ;
public static bool AUDCAD_OCO2_EO2_UP_S2 ;
public static bool AUDCAD_OCO2_EO3_UP_S2 ;
public static bool AUDCAD_OCO2_EO4_UP_S2 ;
public static bool AUDCAD_OCO2_EO5_UP_S2 ;
public static bool AUDCAD_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_UP_S2> AUDCAD_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_UP_S2> AUDCAD_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_UP_S2> AUDCAD_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_UP_S2> AUDCAD_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_UP_S2> AUDCAD_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_UP_S2> AUDCAD_OOFE_OCO2_UP_S2_6 ;
public static AUDCAD_OCO2_UP_S2 AUDCAD_PFO_OCO2_UP_S2_1 ;
public static AUDCAD_OCO2_UP_S2 AUDCAD_PFO_OCO2_UP_S2_2 ;
public static AUDCAD_OCO2_UP_S2 AUDCAD_PFO_OCO2_UP_S2_3 ;
public static AUDCAD_OCO2_UP_S2 AUDCAD_PFO_OCO2_UP_S2_4 ;
public static AUDCAD_OCO2_UP_S2 AUDCAD_PFO_OCO2_UP_S2_5 ;
public static AUDCAD_OCO2_UP_S2 AUDCAD_PFO_OCO2_UP_S2_6 ;
public static List<AUDCAD_OCO2_UP_S2> AUDCAD_UP_S2_OCO2Sets1 = new List<AUDCAD_OCO2_UP_S2>();
public static List<AUDCAD_OCO2_UP_S2> AUDCAD_UP_S2_OCO2Sets2 = new List<AUDCAD_OCO2_UP_S2>();
public static List<AUDCAD_OCO2_UP_S2> AUDCAD_UP_S2_OCO2Sets3 = new List<AUDCAD_OCO2_UP_S2>();
public static List<AUDCAD_OCO2_UP_S2> AUDCAD_UP_S2_OCO2Sets4 = new List<AUDCAD_OCO2_UP_S2>();
public static List<AUDCAD_OCO2_UP_S2> AUDCAD_UP_S2_OCO2Sets5 = new List<AUDCAD_OCO2_UP_S2>();
public static List<AUDCAD_OCO2_UP_S2> AUDCAD_UP_S2_OCO2Sets6 = new List<AUDCAD_OCO2_UP_S2>();
public static bool AUDCAD_OCO2_UP_S2_IsReady = true;
public static bool AUDCAD_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket AUDCAD_OCO2_MO1_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO2_MO2_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO2_MO3_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO2_MO4_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO2_MO5_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO2_MO6_DOWN_S2 ;
public static int AUDCAD_OCO2_EO1_DOWN_S2_ID ;
public static int AUDCAD_OCO2_EO2_DOWN_S2_ID ;
public static int AUDCAD_OCO2_EO3_DOWN_S2_ID ;
public static int AUDCAD_OCO2_EO4_DOWN_S2_ID ;
public static int AUDCAD_OCO2_EO5_DOWN_S2_ID ;
public static int AUDCAD_OCO2_EO6_DOWN_S2_ID ;
public static bool AUDCAD_OCO2_EO1_DOWN_S2 ;
public static bool AUDCAD_OCO2_EO2_DOWN_S2 ;
public static bool AUDCAD_OCO2_EO3_DOWN_S2 ;
public static bool AUDCAD_OCO2_EO4_DOWN_S2 ;
public static bool AUDCAD_OCO2_EO5_DOWN_S2 ;
public static bool AUDCAD_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_DOWN_S2> AUDCAD_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_DOWN_S2> AUDCAD_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_DOWN_S2> AUDCAD_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_DOWN_S2> AUDCAD_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_DOWN_S2> AUDCAD_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO2_DOWN_S2> AUDCAD_OOFE_OCO2_DOWN_S2_6 ;
public static AUDCAD_OCO2_DOWN_S2 AUDCAD_PFO_OCO2_DOWN_S2_1 ;
public static AUDCAD_OCO2_DOWN_S2 AUDCAD_PFO_OCO2_DOWN_S2_2 ;
public static AUDCAD_OCO2_DOWN_S2 AUDCAD_PFO_OCO2_DOWN_S2_3 ;
public static AUDCAD_OCO2_DOWN_S2 AUDCAD_PFO_OCO2_DOWN_S2_4 ;
public static AUDCAD_OCO2_DOWN_S2 AUDCAD_PFO_OCO2_DOWN_S2_5 ;
public static AUDCAD_OCO2_DOWN_S2 AUDCAD_PFO_OCO2_DOWN_S2_6 ;
public static List<AUDCAD_OCO2_DOWN_S2> AUDCAD_DOWN_S2_OCO2Sets1 = new List<AUDCAD_OCO2_DOWN_S2>();
public static List<AUDCAD_OCO2_DOWN_S2> AUDCAD_DOWN_S2_OCO2Sets2 = new List<AUDCAD_OCO2_DOWN_S2>();
public static List<AUDCAD_OCO2_DOWN_S2> AUDCAD_DOWN_S2_OCO2Sets3 = new List<AUDCAD_OCO2_DOWN_S2>();
public static List<AUDCAD_OCO2_DOWN_S2> AUDCAD_DOWN_S2_OCO2Sets4 = new List<AUDCAD_OCO2_DOWN_S2>();
public static List<AUDCAD_OCO2_DOWN_S2> AUDCAD_DOWN_S2_OCO2Sets5 = new List<AUDCAD_OCO2_DOWN_S2>();
public static List<AUDCAD_OCO2_DOWN_S2> AUDCAD_DOWN_S2_OCO2Sets6 = new List<AUDCAD_OCO2_DOWN_S2>();
public static bool AUDCAD_OCO2_DOWN_S2_IsReady = true;
public static bool AUDCAD_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket AUDCAD_OCO3_MO1_UP_S2 ;
public static OrderTicket AUDCAD_OCO3_MO2_UP_S2 ;
public static OrderTicket AUDCAD_OCO3_MO3_UP_S2 ;
public static OrderTicket AUDCAD_OCO3_MO4_UP_S2 ;
public static OrderTicket AUDCAD_OCO3_MO5_UP_S2 ;
public static OrderTicket AUDCAD_OCO3_MO6_UP_S2 ;
public static int AUDCAD_OCO3_EO1_UP_S2_ID ;
public static int AUDCAD_OCO3_EO2_UP_S2_ID ;
public static int AUDCAD_OCO3_EO3_UP_S2_ID ;
public static int AUDCAD_OCO3_EO4_UP_S2_ID ;
public static int AUDCAD_OCO3_EO5_UP_S2_ID ;
public static int AUDCAD_OCO3_EO6_UP_S2_ID ;
public static bool AUDCAD_OCO3_EO1_UP_S2 ;
public static bool AUDCAD_OCO3_EO2_UP_S2 ;
public static bool AUDCAD_OCO3_EO3_UP_S2 ;
public static bool AUDCAD_OCO3_EO4_UP_S2 ;
public static bool AUDCAD_OCO3_EO5_UP_S2 ;
public static bool AUDCAD_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_UP_S2> AUDCAD_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_UP_S2> AUDCAD_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_UP_S2> AUDCAD_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_UP_S2> AUDCAD_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_UP_S2> AUDCAD_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_UP_S2> AUDCAD_OOFE_OCO3_UP_S2_6 ;
public static AUDCAD_OCO3_UP_S2 AUDCAD_PFO_OCO3_UP_S2_1 ;
public static AUDCAD_OCO3_UP_S2 AUDCAD_PFO_OCO3_UP_S2_2 ;
public static AUDCAD_OCO3_UP_S2 AUDCAD_PFO_OCO3_UP_S2_3 ;
public static AUDCAD_OCO3_UP_S2 AUDCAD_PFO_OCO3_UP_S2_4 ;
public static AUDCAD_OCO3_UP_S2 AUDCAD_PFO_OCO3_UP_S2_5 ;
public static AUDCAD_OCO3_UP_S2 AUDCAD_PFO_OCO3_UP_S2_6 ;
public static List<AUDCAD_OCO3_UP_S2> AUDCAD_UP_S2_OCO3Sets1 = new List<AUDCAD_OCO3_UP_S2>();
public static List<AUDCAD_OCO3_UP_S2> AUDCAD_UP_S2_OCO3Sets2 = new List<AUDCAD_OCO3_UP_S2>();
public static List<AUDCAD_OCO3_UP_S2> AUDCAD_UP_S2_OCO3Sets3 = new List<AUDCAD_OCO3_UP_S2>();
public static List<AUDCAD_OCO3_UP_S2> AUDCAD_UP_S2_OCO3Sets4 = new List<AUDCAD_OCO3_UP_S2>();
public static List<AUDCAD_OCO3_UP_S2> AUDCAD_UP_S2_OCO3Sets5 = new List<AUDCAD_OCO3_UP_S2>();
public static List<AUDCAD_OCO3_UP_S2> AUDCAD_UP_S2_OCO3Sets6 = new List<AUDCAD_OCO3_UP_S2>();
public static bool AUDCAD_OCO3_UP_S2_IsReady = true;
public static bool AUDCAD_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket AUDCAD_OCO3_MO1_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO3_MO2_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO3_MO3_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO3_MO4_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO3_MO5_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO3_MO6_DOWN_S2 ;
public static int AUDCAD_OCO3_EO1_DOWN_S2_ID ;
public static int AUDCAD_OCO3_EO2_DOWN_S2_ID ;
public static int AUDCAD_OCO3_EO3_DOWN_S2_ID ;
public static int AUDCAD_OCO3_EO4_DOWN_S2_ID ;
public static int AUDCAD_OCO3_EO5_DOWN_S2_ID ;
public static int AUDCAD_OCO3_EO6_DOWN_S2_ID ;
public static bool AUDCAD_OCO3_EO1_DOWN_S2 ;
public static bool AUDCAD_OCO3_EO2_DOWN_S2 ;
public static bool AUDCAD_OCO3_EO3_DOWN_S2 ;
public static bool AUDCAD_OCO3_EO4_DOWN_S2 ;
public static bool AUDCAD_OCO3_EO5_DOWN_S2 ;
public static bool AUDCAD_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_DOWN_S2> AUDCAD_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_DOWN_S2> AUDCAD_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_DOWN_S2> AUDCAD_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_DOWN_S2> AUDCAD_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_DOWN_S2> AUDCAD_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO3_DOWN_S2> AUDCAD_OOFE_OCO3_DOWN_S2_6 ;
public static AUDCAD_OCO3_DOWN_S2 AUDCAD_PFO_OCO3_DOWN_S2_1 ;
public static AUDCAD_OCO3_DOWN_S2 AUDCAD_PFO_OCO3_DOWN_S2_2 ;
public static AUDCAD_OCO3_DOWN_S2 AUDCAD_PFO_OCO3_DOWN_S2_3 ;
public static AUDCAD_OCO3_DOWN_S2 AUDCAD_PFO_OCO3_DOWN_S2_4 ;
public static AUDCAD_OCO3_DOWN_S2 AUDCAD_PFO_OCO3_DOWN_S2_5 ;
public static AUDCAD_OCO3_DOWN_S2 AUDCAD_PFO_OCO3_DOWN_S2_6 ;
public static List<AUDCAD_OCO3_DOWN_S2> AUDCAD_DOWN_S2_OCO3Sets1 = new List<AUDCAD_OCO3_DOWN_S2>();
public static List<AUDCAD_OCO3_DOWN_S2> AUDCAD_DOWN_S2_OCO3Sets2 = new List<AUDCAD_OCO3_DOWN_S2>();
public static List<AUDCAD_OCO3_DOWN_S2> AUDCAD_DOWN_S2_OCO3Sets3 = new List<AUDCAD_OCO3_DOWN_S2>();
public static List<AUDCAD_OCO3_DOWN_S2> AUDCAD_DOWN_S2_OCO3Sets4 = new List<AUDCAD_OCO3_DOWN_S2>();
public static List<AUDCAD_OCO3_DOWN_S2> AUDCAD_DOWN_S2_OCO3Sets5 = new List<AUDCAD_OCO3_DOWN_S2>();
public static List<AUDCAD_OCO3_DOWN_S2> AUDCAD_DOWN_S2_OCO3Sets6 = new List<AUDCAD_OCO3_DOWN_S2>();
public static bool AUDCAD_OCO3_DOWN_S2_IsReady = true;
public static bool AUDCAD_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket AUDCAD_OCO4_MO1_UP_S2 ;
public static OrderTicket AUDCAD_OCO4_MO2_UP_S2 ;
public static OrderTicket AUDCAD_OCO4_MO3_UP_S2 ;
public static OrderTicket AUDCAD_OCO4_MO4_UP_S2 ;
public static OrderTicket AUDCAD_OCO4_MO5_UP_S2 ;
public static OrderTicket AUDCAD_OCO4_MO6_UP_S2 ;
public static int AUDCAD_OCO4_EO1_UP_S2_ID ;
public static int AUDCAD_OCO4_EO2_UP_S2_ID ;
public static int AUDCAD_OCO4_EO3_UP_S2_ID ;
public static int AUDCAD_OCO4_EO4_UP_S2_ID ;
public static int AUDCAD_OCO4_EO5_UP_S2_ID ;
public static int AUDCAD_OCO4_EO6_UP_S2_ID ;
public static bool AUDCAD_OCO4_EO1_UP_S2 ;
public static bool AUDCAD_OCO4_EO2_UP_S2 ;
public static bool AUDCAD_OCO4_EO3_UP_S2 ;
public static bool AUDCAD_OCO4_EO4_UP_S2 ;
public static bool AUDCAD_OCO4_EO5_UP_S2 ;
public static bool AUDCAD_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_UP_S2> AUDCAD_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_UP_S2> AUDCAD_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_UP_S2> AUDCAD_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_UP_S2> AUDCAD_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_UP_S2> AUDCAD_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_UP_S2> AUDCAD_OOFE_OCO4_UP_S2_6 ;
public static AUDCAD_OCO4_UP_S2 AUDCAD_PFO_OCO4_UP_S2_1 ;
public static AUDCAD_OCO4_UP_S2 AUDCAD_PFO_OCO4_UP_S2_2 ;
public static AUDCAD_OCO4_UP_S2 AUDCAD_PFO_OCO4_UP_S2_3 ;
public static AUDCAD_OCO4_UP_S2 AUDCAD_PFO_OCO4_UP_S2_4 ;
public static AUDCAD_OCO4_UP_S2 AUDCAD_PFO_OCO4_UP_S2_5 ;
public static AUDCAD_OCO4_UP_S2 AUDCAD_PFO_OCO4_UP_S2_6 ;
public static List<AUDCAD_OCO4_UP_S2> AUDCAD_UP_S2_OCO4Sets1 = new List<AUDCAD_OCO4_UP_S2>();
public static List<AUDCAD_OCO4_UP_S2> AUDCAD_UP_S2_OCO4Sets2 = new List<AUDCAD_OCO4_UP_S2>();
public static List<AUDCAD_OCO4_UP_S2> AUDCAD_UP_S2_OCO4Sets3 = new List<AUDCAD_OCO4_UP_S2>();
public static List<AUDCAD_OCO4_UP_S2> AUDCAD_UP_S2_OCO4Sets4 = new List<AUDCAD_OCO4_UP_S2>();
public static List<AUDCAD_OCO4_UP_S2> AUDCAD_UP_S2_OCO4Sets5 = new List<AUDCAD_OCO4_UP_S2>();
public static List<AUDCAD_OCO4_UP_S2> AUDCAD_UP_S2_OCO4Sets6 = new List<AUDCAD_OCO4_UP_S2>();
public static bool AUDCAD_OCO4_UP_S2_IsReady = true;
public static bool AUDCAD_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket AUDCAD_OCO4_MO1_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO4_MO2_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO4_MO3_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO4_MO4_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO4_MO5_DOWN_S2 ;
public static OrderTicket AUDCAD_OCO4_MO6_DOWN_S2 ;
public static int AUDCAD_OCO4_EO1_DOWN_S2_ID ;
public static int AUDCAD_OCO4_EO2_DOWN_S2_ID ;
public static int AUDCAD_OCO4_EO3_DOWN_S2_ID ;
public static int AUDCAD_OCO4_EO4_DOWN_S2_ID ;
public static int AUDCAD_OCO4_EO5_DOWN_S2_ID ;
public static int AUDCAD_OCO4_EO6_DOWN_S2_ID ;
public static bool AUDCAD_OCO4_EO1_DOWN_S2 ;
public static bool AUDCAD_OCO4_EO2_DOWN_S2 ;
public static bool AUDCAD_OCO4_EO3_DOWN_S2 ;
public static bool AUDCAD_OCO4_EO4_DOWN_S2 ;
public static bool AUDCAD_OCO4_EO5_DOWN_S2 ;
public static bool AUDCAD_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_DOWN_S2> AUDCAD_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_DOWN_S2> AUDCAD_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_DOWN_S2> AUDCAD_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_DOWN_S2> AUDCAD_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_DOWN_S2> AUDCAD_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, AUDCAD_OCO4_DOWN_S2> AUDCAD_OOFE_OCO4_DOWN_S2_6 ;
public static AUDCAD_OCO4_DOWN_S2 AUDCAD_PFO_OCO4_DOWN_S2_1 ;
public static AUDCAD_OCO4_DOWN_S2 AUDCAD_PFO_OCO4_DOWN_S2_2 ;
public static AUDCAD_OCO4_DOWN_S2 AUDCAD_PFO_OCO4_DOWN_S2_3 ;
public static AUDCAD_OCO4_DOWN_S2 AUDCAD_PFO_OCO4_DOWN_S2_4 ;
public static AUDCAD_OCO4_DOWN_S2 AUDCAD_PFO_OCO4_DOWN_S2_5 ;
public static AUDCAD_OCO4_DOWN_S2 AUDCAD_PFO_OCO4_DOWN_S2_6 ;
public static List<AUDCAD_OCO4_DOWN_S2> AUDCAD_DOWN_S2_OCO4Sets1 = new List<AUDCAD_OCO4_DOWN_S2>();
public static List<AUDCAD_OCO4_DOWN_S2> AUDCAD_DOWN_S2_OCO4Sets2 = new List<AUDCAD_OCO4_DOWN_S2>();
public static List<AUDCAD_OCO4_DOWN_S2> AUDCAD_DOWN_S2_OCO4Sets3 = new List<AUDCAD_OCO4_DOWN_S2>();
public static List<AUDCAD_OCO4_DOWN_S2> AUDCAD_DOWN_S2_OCO4Sets4 = new List<AUDCAD_OCO4_DOWN_S2>();
public static List<AUDCAD_OCO4_DOWN_S2> AUDCAD_DOWN_S2_OCO4Sets5 = new List<AUDCAD_OCO4_DOWN_S2>();
public static List<AUDCAD_OCO4_DOWN_S2> AUDCAD_DOWN_S2_OCO4Sets6 = new List<AUDCAD_OCO4_DOWN_S2>();
public static bool AUDCAD_OCO4_DOWN_S2_IsReady = true;
public static bool AUDCAD_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal AUDCAD_UP_S2_SL {get; set;}
public static decimal AUDCAD_UP_S2_TP1 {get; set;}
public static decimal AUDCAD_UP_S2_TP2 {get; set;}
public static decimal AUDCAD_UP_S2_TP3 {get; set;}
public static decimal AUDCAD_UP_S2_TP4 {get; set;}
public static decimal AUDCAD_UP_S2_TP5 {get; set;}
public static decimal AUDCAD_UP_S2_TP6 {get; set;}
public static decimal AUDCAD_DOWN_S2_SL {get; set;}
public static decimal AUDCAD_DOWN_S2_TP1 {get; set;}
public static decimal AUDCAD_DOWN_S2_TP2 {get; set;}
public static decimal AUDCAD_DOWN_S2_TP3 {get; set;}
public static decimal AUDCAD_DOWN_S2_TP4 {get; set;}
public static decimal AUDCAD_DOWN_S2_TP5 {get; set;}
public static decimal AUDCAD_DOWN_S2_TP6 {get; set;}
public static bool AUDCAD_Signal_Condition_UP_1 ;
public static bool AUDCAD_Signal_Condition_UP_2 ;
public static bool AUDCAD_Signal_Condition_UP_3 ;
public static bool AUDCAD_Signal_Condition_DOWN_S2 ;
public static int AUDCAD_UP_S2_OCO_DELAY_7DAY = 10080;
public static int AUDCAD_UP_S2_OCOM_DELAY_DAY = 4320;
public static int AUDCAD_UP_S2_OCOT_DELAY_DAY = 2880;
public static int AUDCAD_UP_S2_OCOW_DELAY_DAY = 1440;
public static int AUDCAD_UP_S2_OCOTH_DELAY_DAY = 720;
public static int AUDCAD_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int AUDCAD_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int AUDCAD_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int AUDCAD_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int AUDCAD_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_AUDCAD_UP_S2 ;
public static bool DOWM_AUDCAD_UP_S2 ;
public static bool DOWT_AUDCAD_UP_S2 ;
public static bool DOWW_AUDCAD_UP_S2 ;
public static bool DOWTH_AUDCAD_UP_S2 ;
public static bool DOWR_AUDCAD_DOWN_S2 ;
public static bool DOWM_AUDCAD_DOWN_S2 ;
public static bool DOWT_AUDCAD_DOWN_S2 ;
public static bool DOWW_AUDCAD_DOWN_S2 ;
public static bool DOWTH_AUDCAD_DOWN_S2 ;
public static int AUDCAD_quantity_UP_S2 ;
public static int AUDCAD_quantity_SL_UP_S2 ;
public static int AUDCAD_quantity_TP1_UP_S2 ;
public static int AUDCAD_quantity_TP2_UP_S2 ;
public static int AUDCAD_quantity_TP3_UP_S2 ;
public static int AUDCAD_quantity_TP4_UP_S2 ;
public static int AUDCAD_quantity_TP5_UP_S2;
public static int AUDCAD_quantity_TP6_UP_S2 ;
public static int AUDCAD_quantity_DOWN_S2 ;
public static int AUDCAD_quantity_SL_DOWN_S2 ;
public static int AUDCAD_quantity_TP1_DOWN_S2 ;
public static int AUDCAD_quantity_TP2_DOWN_S2 ;
public static int AUDCAD_quantity_TP3_DOWN_S2 ;
public static int AUDCAD_quantity_TP4_DOWN_S2 ;
public static int AUDCAD_quantity_TP5_DOWN_S2;
public static int AUDCAD_quantity_TP6_DOWN_S2 ;
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURJPY_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURJPY_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURJPY_UP_S2_OCO1")))
{
Base.EURJPY_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURJPY_UP_S2_OCO2")))
{
Base.EURJPY_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURJPY_UP_S2_OCO3")))
{
Base.EURJPY_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURJPY_UP_S2_OCO4")))
{
Base.EURJPY_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURJPY_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURJPY_OCO1_EO1_UP_S2)
Base.EURJPY_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO2_UP_S2)
Base.EURJPY_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO3_UP_S2)
Base.EURJPY_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO4_UP_S2)
Base.EURJPY_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO5_UP_S2)
Base.EURJPY_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO6_UP_S2)
Base.EURJPY_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURJPY_UP_S2_OCO_DELAY_7DAY))
{
int EURJPY_OCO1S1_UP_S2 = 0;
for (; EURJPY_OCO1S1_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets1.Count; EURJPY_OCO1S1_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets1[EURJPY_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO1Sets1[EURJPY_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_1__Time out_OCO1");
Base.EURJPY_UP_S2_OCO1Sets1.Clear();
EURJPY_OCO1S1_UP_S2 = 0;
break;
}
int EURJPY_OCO1S2_UP_S2 = 0;
for (; EURJPY_OCO1S2_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets2.Count; EURJPY_OCO1S2_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets2[EURJPY_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO1Sets2[EURJPY_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_2__Time out_OCO1");
Base.EURJPY_UP_S2_OCO1Sets2.Clear();
EURJPY_OCO1S2_UP_S2 = 0;
break;
}
int EURJPY_OCO1S3_UP_S2 = 0;
for (; EURJPY_OCO1S3_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets3.Count; EURJPY_OCO1S3_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets3[EURJPY_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO1Sets3[EURJPY_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_3__Time out_OCO1");
Base.EURJPY_UP_S2_OCO1Sets3.Clear();
EURJPY_OCO1S3_UP_S2 = 0;
break;
}
int EURJPY_OCO1S4_UP_S2 = 0;
for (; EURJPY_OCO1S4_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets4.Count; EURJPY_OCO1S4_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets4[EURJPY_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO1Sets4[EURJPY_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_4__Time out_OCO1");
Base.EURJPY_UP_S2_OCO1Sets4.Clear();
EURJPY_OCO1S4_UP_S2 = 0;
break;
}
int EURJPY_OCO1S5_UP_S2 = 0;
for (; EURJPY_OCO1S5_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets5.Count; EURJPY_OCO1S5_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets5[EURJPY_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO1Sets5[EURJPY_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_5__Time out_OCO1");
Base.EURJPY_UP_S2_OCO1Sets5.Clear();
EURJPY_OCO1S5_UP_S2 = 0;
break;
}
int EURJPY_OCO1S6_UP_S2 = 0;
for (; EURJPY_OCO1S6_UP_S2 < Base.EURJPY_UP_S2_OCO1Sets6.Count; EURJPY_OCO1S6_UP_S2++)
if (Base.EURJPY_UP_S2_OCO1Sets6[EURJPY_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO1Sets6[EURJPY_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_6__Time out_OCO1");
Base.EURJPY_UP_S2_OCO1Sets6.Clear();
EURJPY_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO2_EO1_UP_S2)
Base.EURJPY_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO2_UP_S2)
Base.EURJPY_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO3_UP_S2)
Base.EURJPY_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO4_UP_S2)
Base.EURJPY_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO5_UP_S2)
Base.EURJPY_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO6_UP_S2)
Base.EURJPY_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURJPY_UP_S2_OCO_DELAY_7DAY))
{
int EURJPY_OCO2S1_UP_S2 = 0;
for (; EURJPY_OCO2S1_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets1.Count; EURJPY_OCO2S1_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets1[EURJPY_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO2Sets1[EURJPY_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_1__Time out_OCO2");
Base.EURJPY_UP_S2_OCO2Sets1.Clear();
EURJPY_OCO2S1_UP_S2 = 0;
break;
}
int EURJPY_OCO2S2_UP_S2 = 0;
for (; EURJPY_OCO2S2_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets2.Count; EURJPY_OCO2S2_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets2[EURJPY_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO2Sets2[EURJPY_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_2__Time out_OCO2");
Base.EURJPY_UP_S2_OCO2Sets2.Clear();
EURJPY_OCO2S2_UP_S2 = 0;
break;
}
int EURJPY_OCO2S3_UP_S2 = 0;
for (; EURJPY_OCO2S3_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets3.Count; EURJPY_OCO2S3_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets3[EURJPY_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO2Sets3[EURJPY_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_3__Time out_OCO2");
Base.EURJPY_UP_S2_OCO2Sets3.Clear();
EURJPY_OCO2S3_UP_S2 = 0;
break;
}
int EURJPY_OCO2S4_UP_S2 = 0;
for (; EURJPY_OCO2S4_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets4.Count; EURJPY_OCO2S4_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets4[EURJPY_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO2Sets4[EURJPY_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_4__Time out_OCO2");
Base.EURJPY_UP_S2_OCO2Sets4.Clear();
EURJPY_OCO2S4_UP_S2 = 0;
break;
}
int EURJPY_OCO2S5_UP_S2 = 0;
for (; EURJPY_OCO2S5_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets5.Count; EURJPY_OCO2S5_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets5[EURJPY_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO2Sets5[EURJPY_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_5__Time out_OCO2");
Base.EURJPY_UP_S2_OCO2Sets5.Clear();
EURJPY_OCO2S5_UP_S2 = 0;
break;
}
int EURJPY_OCO2S6_UP_S2 = 0;
for (; EURJPY_OCO2S6_UP_S2 < Base.EURJPY_UP_S2_OCO2Sets6.Count; EURJPY_OCO2S6_UP_S2++)
if (Base.EURJPY_UP_S2_OCO2Sets6[EURJPY_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO2Sets6[EURJPY_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_6__Time out_OCO2");
Base.EURJPY_UP_S2_OCO2Sets6.Clear();
EURJPY_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO3_EO1_UP_S2)
Base.EURJPY_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO2_UP_S2)
Base.EURJPY_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO3_UP_S2)
Base.EURJPY_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO4_UP_S2)
Base.EURJPY_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO5_UP_S2)
Base.EURJPY_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO6_UP_S2)
Base.EURJPY_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURJPY_UP_S2_OCO_DELAY_7DAY))
{
int EURJPY_OCO3S1_UP_S2 = 0;
for (; EURJPY_OCO3S1_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets1.Count; EURJPY_OCO3S1_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets1[EURJPY_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO3Sets1[EURJPY_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_1__Time out_OCO3");
Base.EURJPY_UP_S2_OCO3Sets1.Clear();
EURJPY_OCO3S1_UP_S2 = 0;
break;
}
int EURJPY_OCO3S2_UP_S2 = 0;
for (; EURJPY_OCO3S2_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets2.Count; EURJPY_OCO3S2_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets2[EURJPY_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO3Sets2[EURJPY_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_2__Time out_OCO3");
Base.EURJPY_UP_S2_OCO3Sets2.Clear();
EURJPY_OCO3S2_UP_S2 = 0;
break;
}
int EURJPY_OCO3S3_UP_S2 = 0;
for (; EURJPY_OCO3S3_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets3.Count; EURJPY_OCO3S3_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets3[EURJPY_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO3Sets3[EURJPY_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_3__Time out_OCO3");
Base.EURJPY_UP_S2_OCO3Sets3.Clear();
EURJPY_OCO3S3_UP_S2 = 0;
break;
}
int EURJPY_OCO3S4_UP_S2 = 0;
for (; EURJPY_OCO3S4_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets4.Count; EURJPY_OCO3S4_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets4[EURJPY_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO3Sets4[EURJPY_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_4__Time out_OCO3");
Base.EURJPY_UP_S2_OCO3Sets4.Clear();
EURJPY_OCO3S4_UP_S2 = 0;
break;
}
int EURJPY_OCO3S5_UP_S2 = 0;
for (; EURJPY_OCO3S5_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets5.Count; EURJPY_OCO3S5_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets5[EURJPY_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO3Sets5[EURJPY_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_5__Time out_OCO3");
Base.EURJPY_UP_S2_OCO3Sets5.Clear();
EURJPY_OCO3S5_UP_S2 = 0;
break;
}
int EURJPY_OCO3S6_UP_S2 = 0;
for (; EURJPY_OCO3S6_UP_S2 < Base.EURJPY_UP_S2_OCO3Sets6.Count; EURJPY_OCO3S6_UP_S2++)
if (Base.EURJPY_UP_S2_OCO3Sets6[EURJPY_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO3Sets6[EURJPY_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_6__Time out_OCO3");
Base.EURJPY_UP_S2_OCO3Sets6.Clear();
EURJPY_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO4_EO1_UP_S2)
Base.EURJPY_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO2_UP_S2)
Base.EURJPY_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO3_UP_S2)
Base.EURJPY_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO4_UP_S2)
Base.EURJPY_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO5_UP_S2)
Base.EURJPY_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO6_UP_S2)
Base.EURJPY_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURJPY_UP_S2_OCO_DELAY_7DAY))
{
int EURJPY_OCO4S1_UP_S2 = 0;
for (; EURJPY_OCO4S1_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets1.Count; EURJPY_OCO4S1_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets1[EURJPY_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO4Sets1[EURJPY_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_1__Time out_OCO4");
Base.EURJPY_UP_S2_OCO4Sets1.Clear();
EURJPY_OCO4S1_UP_S2 = 0;
break;
}
int EURJPY_OCO4S2_UP_S2 = 0;
for (; EURJPY_OCO4S2_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets2.Count; EURJPY_OCO4S2_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets2[EURJPY_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO4Sets2[EURJPY_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_2__Time out_OCO4");
Base.EURJPY_UP_S2_OCO4Sets2.Clear();
EURJPY_OCO4S2_UP_S2 = 0;
break;
}
int EURJPY_OCO4S3_UP_S2 = 0;
for (; EURJPY_OCO4S3_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets3.Count; EURJPY_OCO4S3_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets3[EURJPY_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO4Sets3[EURJPY_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_3__Time out_OCO4");
Base.EURJPY_UP_S2_OCO4Sets3.Clear();
EURJPY_OCO4S3_UP_S2 = 0;
break;
}
int EURJPY_OCO4S4_UP_S2 = 0;
for (; EURJPY_OCO4S4_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets4.Count; EURJPY_OCO4S4_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets4[EURJPY_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO4Sets4[EURJPY_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_4__Time out_OCO4");
Base.EURJPY_UP_S2_OCO4Sets4.Clear();
EURJPY_OCO4S4_UP_S2 = 0;
break;
}
int EURJPY_OCO4S5_UP_S2 = 0;
for (; EURJPY_OCO4S5_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets5.Count; EURJPY_OCO4S5_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets5[EURJPY_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO4Sets5[EURJPY_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_5__Time out_OCO4");
Base.EURJPY_UP_S2_OCO4Sets5.Clear();
EURJPY_OCO4S5_UP_S2 = 0;
break;
}
int EURJPY_OCO4S6_UP_S2 = 0;
for (; EURJPY_OCO4S6_UP_S2 < Base.EURJPY_UP_S2_OCO4Sets6.Count; EURJPY_OCO4S6_UP_S2++)
if (Base.EURJPY_UP_S2_OCO4Sets6[EURJPY_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.EURJPY_UP_S2_OCO4Sets6[EURJPY_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Down, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_UP_S2_Entry_6__Time out_OCO4");
Base.EURJPY_UP_S2_OCO4Sets6.Clear();
EURJPY_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURJPY_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURJPY_UP_S2 = DOWM_EURJPY_UP_S2 || DOWT_EURJPY_UP_S2 || DOWW_EURJPY_UP_S2 || DOWTH_EURJPY_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURJPY") && SY1D.Symbol.ID.Market == Market.FXCM)
{
if(SY1D.BQ[0].Open != 0)
{
algorithm.Debug("ID : " + SY1D.Symbol.ID.Market);
}
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURJPY_OCO1_UP_S2_IsReady == false ||
Base.EURJPY_OCO2_UP_S2_IsReady == false ||
Base.EURJPY_OCO3_UP_S2_IsReady == false ||
Base.EURJPY_OCO4_UP_S2_IsReady == false)
{
Base.EURJPY_OCO1_UP_S2_Monthly_IsReady = false;
Base.EURJPY_OCO2_UP_S2_Monthly_IsReady = false;
Base.EURJPY_OCO3_UP_S2_Monthly_IsReady = false;
Base.EURJPY_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURJPY_OCO1_UP_S2_Monthly_IsReady = true;
Base.EURJPY_OCO2_UP_S2_Monthly_IsReady = true;
Base.EURJPY_OCO3_UP_S2_Monthly_IsReady = true;
Base.EURJPY_OCO4_UP_S2_Monthly_IsReady = true;
}
EURJPY_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
EURJPY_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
EURJPY_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Yen_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Yen_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.681m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.681m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Yen_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Yen_Min_SPRD
);
if (EURJPY_Signal_Condition_UP_1)
{
EURJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURJPY_Signal_Condition_UP_2)
{
EURJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURJPY_Signal_Condition_UP_3)
{
EURJPY_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURJPY_Signal_Condition_UP_1)
{
EURJPY_UP_S2_TP1 = Base.Yen_TP_1 ;
}
if (EURJPY_Signal_Condition_UP_2)
{
EURJPY_UP_S2_TP1 = Base.Yen_TP_2 ;
}
if (EURJPY_Signal_Condition_UP_3)
{
EURJPY_UP_S2_TP1 = Base.Yen_TP_3 ;
}
EURJPY_UP_S2_TP2 = EURJPY_UP_S2_SL * 0;
EURJPY_UP_S2_TP3 = EURJPY_UP_S2_SL * 0;
EURJPY_UP_S2_TP4 = EURJPY_UP_S2_SL * 0;
EURJPY_UP_S2_TP5 = EURJPY_UP_S2_SL * 0;
EURJPY_UP_S2_TP6 = EURJPY_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
EURJPY_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURJPY_quantity_SL_UP_S2 = EURJPY_quantity_UP_S2;
EURJPY_quantity_TP1_UP_S2 = (int)Math.Floor(EURJPY_quantity_UP_S2 * 1m);
EURJPY_quantity_TP2_UP_S2 = (int)Math.Floor(EURJPY_quantity_TP1_UP_S2 * 0m);
EURJPY_quantity_TP3_UP_S2 = (int)Math.Floor(EURJPY_quantity_TP2_UP_S2 * 0m);
EURJPY_quantity_TP4_UP_S2 = (int)Math.Floor(EURJPY_quantity_TP3_UP_S2 * 0m);
EURJPY_quantity_TP5_UP_S2 = (int)Math.Floor(EURJPY_quantity_TP4_UP_S2 * 0m);
EURJPY_quantity_TP6_UP_S2 = (int)Math.Floor(EURJPY_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((EURJPY_Signal_Condition_UP_1 || EURJPY_Signal_Condition_UP_2 || EURJPY_Signal_Condition_UP_3) &&
DOWR_EURJPY_UP_S2 &&
Base.EURJPY_OCO1_UP_S2_IsReady == true &&
Base.EURJPY_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.EURJPY_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP1_UP_S2, false,"EURJPY_UP_S2_Entry_TP1_OCO1");
Base.EURJPY_OCO1_EO1_UP_S2 = false;
Base.EURJPY_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP2_UP_S2, false,"EURJPY_UP_S2_Entry_TP2_OCO1");
Base.EURJPY_OCO1_EO2_UP_S2 = false;
Base.EURJPY_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP3_UP_S2, false,"EURJPY_UP_S2_Entry_TP3_OCO1");
Base.EURJPY_OCO1_EO3_UP_S2 = false;
Base.EURJPY_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP4_UP_S2, false,"EURJPY_UP_S2_Entry_TP4_OCO1");
Base.EURJPY_OCO1_EO4_UP_S2 = false;
Base.EURJPY_OCO1_UP_S2_IsReady = false;
if (Base.EURJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((EURJPY_Signal_Condition_UP_1 || EURJPY_Signal_Condition_UP_2 || EURJPY_Signal_Condition_UP_3) &&
DOWR_EURJPY_UP_S2 &&
Base.EURJPY_OCO1_UP_S2_IsReady == false &&
Base.EURJPY_OCO2_UP_S2_IsReady == true &&
Base.EURJPY_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.EURJPY_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP1_UP_S2, false,"EURJPY_UP_S2_Entry_TP1_OCO2");
Base.EURJPY_OCO2_EO1_UP_S2 = false;
Base.EURJPY_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP2_UP_S2, false,"EURJPY_UP_S2_Entry_TP2_OCO2");
Base.EURJPY_OCO2_EO2_UP_S2 = false;
Base.EURJPY_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP3_UP_S2, false,"EURJPY_UP_S2_Entry_TP3_OCO2");
Base.EURJPY_OCO2_EO3_UP_S2 = false;
Base.EURJPY_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP4_UP_S2, false,"EURJPY_UP_S2_Entry_TP4_OCO2");
Base.EURJPY_OCO2_EO4_UP_S2 = false;
Base.EURJPY_OCO2_UP_S2_IsReady = false;
if (Base.EURJPY_OCO2_UP_S2_IsReady == false && Base.EURJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((EURJPY_Signal_Condition_UP_1 || EURJPY_Signal_Condition_UP_2 || EURJPY_Signal_Condition_UP_3) &&
DOWR_EURJPY_UP_S2 &&
Base.EURJPY_OCO1_UP_S2_IsReady == false &&
Base.EURJPY_OCO2_UP_S2_IsReady == false &&
Base.EURJPY_OCO3_UP_S2_IsReady == true &&
Base.EURJPY_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.EURJPY_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP1_UP_S2, false,"EURJPY_UP_S2_Entry_TP1_OCO3");
Base.EURJPY_OCO3_EO1_UP_S2 = false;
Base.EURJPY_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP2_UP_S2, false,"EURJPY_UP_S2_Entry_TP2_OCO3");
Base.EURJPY_OCO3_EO2_UP_S2 = false;
Base.EURJPY_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP3_UP_S2, false,"EURJPY_UP_S2_Entry_TP3_OCO3");
Base.EURJPY_OCO3_EO3_UP_S2 = false;
Base.EURJPY_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP4_UP_S2, false,"EURJPY_UP_S2_Entry_TP4_OCO3");
Base.EURJPY_OCO3_EO4_UP_S2 = false;
Base.EURJPY_OCO3_UP_S2_IsReady = false;
if (Base.EURJPY_OCO3_UP_S2_IsReady == false && Base.EURJPY_OCO2_UP_S2_IsReady == false && Base.EURJPY_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((EURJPY_Signal_Condition_UP_1 || EURJPY_Signal_Condition_UP_2 || EURJPY_Signal_Condition_UP_3) &&
DOWR_EURJPY_UP_S2 &&
Base.EURJPY_OCO1_UP_S2_IsReady == false &&
Base.EURJPY_OCO2_UP_S2_IsReady == false &&
Base.EURJPY_OCO3_UP_S2_IsReady == false &&
Base.EURJPY_OCO4_UP_S2_IsReady == true &&
Base.EURJPY_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.EURJPY_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP1_UP_S2, false,"EURJPY_UP_S2_Entry_TP1_OCO4");
Base.EURJPY_OCO4_EO1_UP_S2 = false;
Base.EURJPY_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP2_UP_S2, false,"EURJPY_UP_S2_Entry_TP2_OCO4");
Base.EURJPY_OCO4_EO2_UP_S2 = false;
Base.EURJPY_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP3_UP_S2, false,"EURJPY_UP_S2_Entry_TP3_OCO4");
Base.EURJPY_OCO4_EO3_UP_S2 = false;
Base.EURJPY_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURJPY_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP4_UP_S2, false,"EURJPY_UP_S2_Entry_TP4_OCO4");
Base.EURJPY_OCO4_EO4_UP_S2 = false;
Base.EURJPY_OCO4_UP_S2_IsReady = false;
if (Base.EURJPY_OCO4_UP_S2_IsReady == false && Base.EURJPY_OCO3_UP_S2_IsReady == false && Base.EURJPY_OCO2_UP_S2_IsReady == false && Base.EURJPY_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public struct AUDCHF_UP_S2_OnOrderEvent
{
private QCAlgorithm _algorithm;
public AUDCHF_UP_S2_OnOrderEvent(QCAlgorithm algorithm)
{
_algorithm = algorithm;
}
public void OnOrderEvent(QCAlgorithm _algorithm, OrderEvent orderEvent)
{
var OrderID = _algorithm.Transactions.GetOrderById(orderEvent.OrderId);
if (orderEvent.Status == OrderStatus.Filled)
{
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 1 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 1 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 2 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 2 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 3 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 3 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 4 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 4 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 5 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 5 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 6 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 6 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
if (OrderID.Tag.StartsWith("AUDCHF OCO1 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO2 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO3 CANCEL 7 UP S2") ||
OrderID.Tag.StartsWith("AUDCHF OCO4 CANCEL 7 UP S2"))
{
_algorithm.MarketOrder(OrderID.Symbol, -OrderID.Quantity, false, "OrderID rescue AUDCHF S2");
}
}
if (Base.AUDCHF_OCO1_EO1_UP_S2)
Base.AUDCHF_OCO1_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO1_EO2_UP_S2)
Base.AUDCHF_OCO1_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO1_EO3_UP_S2)
Base.AUDCHF_OCO1_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO1_EO4_UP_S2)
Base.AUDCHF_OCO1_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO1_EO5_UP_S2)
Base.AUDCHF_OCO1_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO1_EO6_UP_S2)
Base.AUDCHF_OCO1_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO1_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP1,"TP1_AUDCHF_UP_S2_OCO1"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP1_AUDCHF_UP_S2_OCO1"));
};
Base.AUDCHF_UP_S2_OCO1Sets1.Add( Base.AUDCHF_OOFE_OCO1_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO2_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP2,"TP2_AUDCHF_UP_S2_OCO1"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP2_AUDCHF_UP_S2_OCO1"));
};
Base.AUDCHF_UP_S2_OCO1Sets2.Add( Base.AUDCHF_OOFE_OCO1_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO3_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP3,"TP3_AUDCHF_UP_S2_OCO1"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP3_AUDCHF_UP_S2_OCO1"));
};
Base.AUDCHF_UP_S2_OCO1Sets3.Add( Base.AUDCHF_OOFE_OCO1_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO4_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP4,"TP4_AUDCHF_UP_S2_OCO1"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP4_AUDCHF_UP_S2_OCO1"));
};
Base.AUDCHF_UP_S2_OCO1Sets4.Add( Base.AUDCHF_OOFE_OCO1_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO5_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP5,"TP5_AUDCHF_UP_S2_OCO1"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP5_AUDCHF_UP_S2_OCO1"));
};
Base.AUDCHF_UP_S2_OCO1Sets5.Add( Base.AUDCHF_OOFE_OCO1_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO1_EO6_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO1_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO1_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP6,"TP6_AUDCHF_UP_S2_OCO1"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP6_AUDCHF_UP_S2_OCO1"));
};
Base.AUDCHF_UP_S2_OCO1Sets6.Add( Base.AUDCHF_OOFE_OCO1_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO1_EO6_UP_S2_ID = -1;
}
int AUDCHF_OCO1S1_UP_S2 = 0;
for (; AUDCHF_OCO1S1_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets1.Count; AUDCHF_OCO1S1_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets1[AUDCHF_OCO1S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO1Sets1[AUDCHF_OCO1S1_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO1Sets1.RemoveAt(AUDCHF_OCO1S1_UP_S2);
AUDCHF_OCO1S1_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S2_UP_S2 = 0;
for (; AUDCHF_OCO1S2_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets2.Count; AUDCHF_OCO1S2_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets2[AUDCHF_OCO1S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO1Sets2[AUDCHF_OCO1S2_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO1Sets2.RemoveAt(AUDCHF_OCO1S2_UP_S2);
AUDCHF_OCO1S2_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S3_UP_S2 = 0;
for (; AUDCHF_OCO1S3_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets3.Count; AUDCHF_OCO1S3_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets3[AUDCHF_OCO1S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO1Sets3[AUDCHF_OCO1S3_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO1Sets3.RemoveAt(AUDCHF_OCO1S3_UP_S2);
AUDCHF_OCO1S3_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S4_UP_S2 = 0;
for (; AUDCHF_OCO1S4_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets4.Count; AUDCHF_OCO1S4_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets4[AUDCHF_OCO1S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO1Sets4[AUDCHF_OCO1S4_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO1Sets4.RemoveAt(AUDCHF_OCO1S4_UP_S2);
AUDCHF_OCO1S4_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S5_UP_S2 = 0;
for (; AUDCHF_OCO1S5_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets5.Count; AUDCHF_OCO1S5_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets5[AUDCHF_OCO1S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO1Sets5[AUDCHF_OCO1S5_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO1Sets5.RemoveAt(AUDCHF_OCO1S5_UP_S2);
AUDCHF_OCO1S5_UP_S2 = 0;
break;
}
int AUDCHF_OCO1S6_UP_S2 = 0;
for (; AUDCHF_OCO1S6_UP_S2 < Base.AUDCHF_UP_S2_OCO1Sets6.Count; AUDCHF_OCO1S6_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO1Sets6[AUDCHF_OCO1S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO1Sets6[AUDCHF_OCO1S6_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO1Sets6.RemoveAt(AUDCHF_OCO1S6_UP_S2);
AUDCHF_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO2_EO1_UP_S2)
Base.AUDCHF_OCO2_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO2_EO2_UP_S2)
Base.AUDCHF_OCO2_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO2_EO3_UP_S2)
Base.AUDCHF_OCO2_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO2_EO4_UP_S2)
Base.AUDCHF_OCO2_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO2_EO5_UP_S2)
Base.AUDCHF_OCO2_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO2_EO6_UP_S2)
Base.AUDCHF_OCO2_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO1_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP1,"TP1_AUDCHF_UP_S2_OCO2"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP1_AUDCHF_UP_S2_OCO2"));
};
Base.AUDCHF_UP_S2_OCO2Sets1.Add( Base.AUDCHF_OOFE_OCO2_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO2_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP2,"TP2_AUDCHF_UP_S2_OCO2"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP2_AUDCHF_UP_S2_OCO2"));
};
Base.AUDCHF_UP_S2_OCO2Sets2.Add( Base.AUDCHF_OOFE_OCO2_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO3_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP3,"TP3_AUDCHF_UP_S2_OCO2"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP3_AUDCHF_UP_S2_OCO2"));
};
Base.AUDCHF_UP_S2_OCO2Sets3.Add( Base.AUDCHF_OOFE_OCO2_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO4_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP4,"TP4_AUDCHF_UP_S2_OCO2"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP4_AUDCHF_UP_S2_OCO2"));
};
Base.AUDCHF_UP_S2_OCO2Sets4.Add( Base.AUDCHF_OOFE_OCO2_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO5_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP5,"TP5_AUDCHF_UP_S2_OCO2"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP5_AUDCHF_UP_S2_OCO2"));
};
Base.AUDCHF_UP_S2_OCO2Sets5.Add( Base.AUDCHF_OOFE_OCO2_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO2_EO6_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO2_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO2_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP6,"TP6_AUDCHF_UP_S2_OCO2"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP6_AUDCHF_UP_S2_OCO2"));
};
Base.AUDCHF_UP_S2_OCO2Sets6.Add( Base.AUDCHF_OOFE_OCO2_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO2_EO6_UP_S2_ID = -1;
}
int AUDCHF_OCO2S1_UP_S2 = 0;
for (; AUDCHF_OCO2S1_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets1.Count; AUDCHF_OCO2S1_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets1[AUDCHF_OCO2S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO2Sets1[AUDCHF_OCO2S1_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO2Sets1.RemoveAt(AUDCHF_OCO2S1_UP_S2);
AUDCHF_OCO2S1_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S2_UP_S2 = 0;
for (; AUDCHF_OCO2S2_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets2.Count; AUDCHF_OCO2S2_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets2[AUDCHF_OCO2S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO2Sets2[AUDCHF_OCO2S2_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO2Sets2.RemoveAt(AUDCHF_OCO2S2_UP_S2);
AUDCHF_OCO2S2_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S3_UP_S2 = 0;
for (; AUDCHF_OCO2S3_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets3.Count; AUDCHF_OCO2S3_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets3[AUDCHF_OCO2S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO2Sets3[AUDCHF_OCO2S3_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO2Sets3.RemoveAt(AUDCHF_OCO2S3_UP_S2);
AUDCHF_OCO2S3_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S4_UP_S2 = 0;
for (; AUDCHF_OCO2S4_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets4.Count; AUDCHF_OCO2S4_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets4[AUDCHF_OCO2S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO2Sets4[AUDCHF_OCO2S4_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO2Sets4.RemoveAt(AUDCHF_OCO2S4_UP_S2);
AUDCHF_OCO2S4_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S5_UP_S2 = 0;
for (; AUDCHF_OCO2S5_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets5.Count; AUDCHF_OCO2S5_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets5[AUDCHF_OCO2S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO2Sets5[AUDCHF_OCO2S5_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO2Sets5.RemoveAt(AUDCHF_OCO2S5_UP_S2);
AUDCHF_OCO2S5_UP_S2 = 0;
break;
}
int AUDCHF_OCO2S6_UP_S2 = 0;
for (; AUDCHF_OCO2S6_UP_S2 < Base.AUDCHF_UP_S2_OCO2Sets6.Count; AUDCHF_OCO2S6_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO2Sets6[AUDCHF_OCO2S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO2Sets6[AUDCHF_OCO2S6_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO2Sets6.RemoveAt(AUDCHF_OCO2S6_UP_S2);
AUDCHF_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO3_EO1_UP_S2)
Base.AUDCHF_OCO3_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO3_EO2_UP_S2)
Base.AUDCHF_OCO3_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO3_EO3_UP_S2)
Base.AUDCHF_OCO3_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO3_EO4_UP_S2)
Base.AUDCHF_OCO3_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO3_EO5_UP_S2)
Base.AUDCHF_OCO3_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO3_EO6_UP_S2)
Base.AUDCHF_OCO3_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO1_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP1,"TP1_AUDCHF_UP_S2_OCO3"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP1_AUDCHF_UP_S2_OCO3"));
};
Base.AUDCHF_UP_S2_OCO3Sets1.Add( Base.AUDCHF_OOFE_OCO3_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO2_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP2,"TP2_AUDCHF_UP_S2_OCO3"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP2_AUDCHF_UP_S2_OCO3"));
};
Base.AUDCHF_UP_S2_OCO3Sets2.Add( Base.AUDCHF_OOFE_OCO3_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO3_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP3,"TP3_AUDCHF_UP_S2_OCO3"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP3_AUDCHF_UP_S2_OCO3"));
};
Base.AUDCHF_UP_S2_OCO3Sets3.Add( Base.AUDCHF_OOFE_OCO3_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO4_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP4,"TP4_AUDCHF_UP_S2_OCO3"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP4_AUDCHF_UP_S2_OCO3"));
};
Base.AUDCHF_UP_S2_OCO3Sets4.Add( Base.AUDCHF_OOFE_OCO3_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO5_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP5,"TP5_AUDCHF_UP_S2_OCO3"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP5_AUDCHF_UP_S2_OCO3"));
};
Base.AUDCHF_UP_S2_OCO3Sets5.Add( Base.AUDCHF_OOFE_OCO3_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO3_EO6_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO3_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO3_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP6,"TP6_AUDCHF_UP_S2_OCO3"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP6_AUDCHF_UP_S2_OCO3"));
};
Base.AUDCHF_UP_S2_OCO3Sets6.Add( Base.AUDCHF_OOFE_OCO3_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO3_EO6_UP_S2_ID = -1;
}
int AUDCHF_OCO3S1_UP_S2 = 0;
for (; AUDCHF_OCO3S1_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets1.Count; AUDCHF_OCO3S1_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets1[AUDCHF_OCO3S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO3Sets1[AUDCHF_OCO3S1_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO3Sets1.RemoveAt(AUDCHF_OCO3S1_UP_S2);
AUDCHF_OCO3S1_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S2_UP_S2 = 0;
for (; AUDCHF_OCO3S2_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets2.Count; AUDCHF_OCO3S2_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets2[AUDCHF_OCO3S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO3Sets2[AUDCHF_OCO3S2_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO3Sets2.RemoveAt(AUDCHF_OCO3S2_UP_S2);
AUDCHF_OCO3S2_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S3_UP_S2 = 0;
for (; AUDCHF_OCO3S3_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets3.Count; AUDCHF_OCO3S3_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets3[AUDCHF_OCO3S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO3Sets3[AUDCHF_OCO3S3_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO3Sets3.RemoveAt(AUDCHF_OCO3S3_UP_S2);
AUDCHF_OCO3S3_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S4_UP_S2 = 0;
for (; AUDCHF_OCO3S4_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets4.Count; AUDCHF_OCO3S4_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets4[AUDCHF_OCO3S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO3Sets4[AUDCHF_OCO3S4_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO3Sets4.RemoveAt(AUDCHF_OCO3S4_UP_S2);
AUDCHF_OCO3S4_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S5_UP_S2 = 0;
for (; AUDCHF_OCO3S5_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets5.Count; AUDCHF_OCO3S5_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets5[AUDCHF_OCO3S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO3Sets5[AUDCHF_OCO3S5_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO3Sets5.RemoveAt(AUDCHF_OCO3S5_UP_S2);
AUDCHF_OCO3S5_UP_S2 = 0;
break;
}
int AUDCHF_OCO3S6_UP_S2 = 0;
for (; AUDCHF_OCO3S6_UP_S2 < Base.AUDCHF_UP_S2_OCO3Sets6.Count; AUDCHF_OCO3S6_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO3Sets6[AUDCHF_OCO3S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO3Sets6[AUDCHF_OCO3S6_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO3Sets6.RemoveAt(AUDCHF_OCO3S6_UP_S2);
AUDCHF_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.AUDCHF_OCO4_EO1_UP_S2)
Base.AUDCHF_OCO4_EO1_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO4_EO2_UP_S2)
Base.AUDCHF_OCO4_EO2_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO4_EO3_UP_S2)
Base.AUDCHF_OCO4_EO3_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO4_EO4_UP_S2)
Base.AUDCHF_OCO4_EO4_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO4_EO5_UP_S2)
Base.AUDCHF_OCO4_EO5_UP_S2_ID = orderEvent.OrderId;
if (Base.AUDCHF_OCO4_EO6_UP_S2)
Base.AUDCHF_OCO4_EO6_UP_S2_ID = orderEvent.OrderId;
if (orderEvent.Status == OrderStatus.Filled || orderEvent.Status == OrderStatus.PartiallyFilled)
{
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO1_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_UP_S2_1 = (algo1, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_UP_S2(
algo1.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP1,"TP1_AUDCHF_UP_S2_OCO4"),
algo1.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP1_AUDCHF_UP_S2_OCO4"));
};
Base.AUDCHF_UP_S2_OCO4Sets1.Add( Base.AUDCHF_OOFE_OCO4_UP_S2_1(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO1_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO2_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_UP_S2_2 = (algo2, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_UP_S2(
algo2.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP2,"TP2_AUDCHF_UP_S2_OCO4"),
algo2.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP2_AUDCHF_UP_S2_OCO4"));
};
Base.AUDCHF_UP_S2_OCO4Sets2.Add( Base.AUDCHF_OOFE_OCO4_UP_S2_2(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO2_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO3_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_UP_S2_3 = (algo3, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_UP_S2(
algo3.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP3,"TP3_AUDCHF_UP_S2_OCO4"),
algo3.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP3_AUDCHF_UP_S2_OCO4"));
};
Base.AUDCHF_UP_S2_OCO4Sets3.Add( Base.AUDCHF_OOFE_OCO4_UP_S2_3(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO3_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO4_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_UP_S2_4 = (algo4, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_UP_S2(
algo4.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP4,"TP4_AUDCHF_UP_S2_OCO4"),
algo4.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP4_AUDCHF_UP_S2_OCO4"));
};
Base.AUDCHF_UP_S2_OCO4Sets4.Add( Base.AUDCHF_OOFE_OCO4_UP_S2_4(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO4_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO5_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_UP_S2_5 = (algo5, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_UP_S2(
algo5.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP5,"TP5_AUDCHF_UP_S2_OCO4"),
algo5.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP5_AUDCHF_UP_S2_OCO4"));
};
Base.AUDCHF_UP_S2_OCO4Sets5.Add( Base.AUDCHF_OOFE_OCO4_UP_S2_5(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO5_UP_S2_ID = -1;
}
if (orderEvent.OrderId == Base.AUDCHF_OCO4_EO6_UP_S2_ID)
{
Base.AUDCHF_OOFE_OCO4_UP_S2_6 = (algo6, symbol, filledPrice, fillQ) =>
{
return new AUDCHF_OCO4_UP_S2(
algo6.LimitOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice + Base.AUDCHF_UP_S2_TP6,"TP6_AUDCHF_UP_S2_OCO4"),
algo6.StopMarketOrder(orderEvent.Symbol, -orderEvent.Quantity, orderEvent.FillPrice - Base.AUDCHF_UP_S2_SL,"SL_TP6_AUDCHF_UP_S2_OCO4"));
};
Base.AUDCHF_UP_S2_OCO4Sets6.Add( Base.AUDCHF_OOFE_OCO4_UP_S2_6(_algorithm, orderEvent.Symbol, orderEvent.FillPrice, orderEvent.Quantity));
Base.AUDCHF_OCO4_EO6_UP_S2_ID = -1;
}
int AUDCHF_OCO4S1_UP_S2 = 0;
for (; AUDCHF_OCO4S1_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets1.Count; AUDCHF_OCO4S1_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets1[AUDCHF_OCO4S1_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO4Sets1[AUDCHF_OCO4S1_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO4Sets1.RemoveAt(AUDCHF_OCO4S1_UP_S2);
AUDCHF_OCO4S1_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S2_UP_S2 = 0;
for (; AUDCHF_OCO4S2_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets2.Count; AUDCHF_OCO4S2_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets2[AUDCHF_OCO4S2_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO4Sets2[AUDCHF_OCO4S2_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO4Sets2.RemoveAt(AUDCHF_OCO4S2_UP_S2);
AUDCHF_OCO4S2_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S3_UP_S2 = 0;
for (; AUDCHF_OCO4S3_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets3.Count; AUDCHF_OCO4S3_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets3[AUDCHF_OCO4S3_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO4Sets3[AUDCHF_OCO4S3_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO4Sets3.RemoveAt(AUDCHF_OCO4S3_UP_S2);
AUDCHF_OCO4S3_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S4_UP_S2 = 0;
for (; AUDCHF_OCO4S4_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets4.Count; AUDCHF_OCO4S4_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets4[AUDCHF_OCO4S4_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO4Sets4[AUDCHF_OCO4S4_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO4Sets4.RemoveAt(AUDCHF_OCO4S4_UP_S2);
AUDCHF_OCO4S4_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S5_UP_S2 = 0;
for (; AUDCHF_OCO4S5_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets5.Count; AUDCHF_OCO4S5_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets5[AUDCHF_OCO4S5_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO4Sets5[AUDCHF_OCO4S5_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO4Sets5.RemoveAt(AUDCHF_OCO4S5_UP_S2);
AUDCHF_OCO4S5_UP_S2 = 0;
break;
}
int AUDCHF_OCO4S6_UP_S2 = 0;
for (; AUDCHF_OCO4S6_UP_S2 < Base.AUDCHF_UP_S2_OCO4Sets6.Count; AUDCHF_OCO4S6_UP_S2++)
if (Base.AUDCHF_UP_S2_OCO4Sets6[AUDCHF_OCO4S6_UP_S2].InOrders(orderEvent.OrderId))
{
Base.AUDCHF_UP_S2_OCO4Sets6[AUDCHF_OCO4S6_UP_S2].Filled();
Base.AUDCHF_UP_S2_OCO4Sets6.RemoveAt(AUDCHF_OCO4S6_UP_S2);
AUDCHF_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base
{
public static Symbol _EURGBP;
///oco1 up
public static OrderTicket EURGBP_OCO1_MO1_UP_S2;
public static OrderTicket EURGBP_OCO1_MO2_UP_S2;
public static OrderTicket EURGBP_OCO1_MO3_UP_S2;
public static OrderTicket EURGBP_OCO1_MO4_UP_S2;
public static OrderTicket EURGBP_OCO1_MO5_UP_S2;
public static OrderTicket EURGBP_OCO1_MO6_UP_S2;
public static int EURGBP_OCO1_EO1_UP_S2_ID ;
public static int EURGBP_OCO1_EO2_UP_S2_ID ;
public static int EURGBP_OCO1_EO3_UP_S2_ID ;
public static int EURGBP_OCO1_EO4_UP_S2_ID ;
public static int EURGBP_OCO1_EO5_UP_S2_ID ;
public static int EURGBP_OCO1_EO6_UP_S2_ID ;
public static bool EURGBP_OCO1_EO1_UP_S2 ;
public static bool EURGBP_OCO1_EO2_UP_S2 ;
public static bool EURGBP_OCO1_EO3_UP_S2 ;
public static bool EURGBP_OCO1_EO4_UP_S2 ;
public static bool EURGBP_OCO1_EO5_UP_S2 ;
public static bool EURGBP_OCO1_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_UP_S2> EURGBP_OOFE_OCO1_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_UP_S2> EURGBP_OOFE_OCO1_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_UP_S2> EURGBP_OOFE_OCO1_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_UP_S2> EURGBP_OOFE_OCO1_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_UP_S2> EURGBP_OOFE_OCO1_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_UP_S2> EURGBP_OOFE_OCO1_UP_S2_6 ;
public static EURGBP_OCO1_UP_S2 EURGBP_PFO_OCO1_UP_S2_1 ;
public static EURGBP_OCO1_UP_S2 EURGBP_PFO_OCO1_UP_S2_2 ;
public static EURGBP_OCO1_UP_S2 EURGBP_PFO_OCO1_UP_S2_3 ;
public static EURGBP_OCO1_UP_S2 EURGBP_PFO_OCO1_UP_S2_4 ;
public static EURGBP_OCO1_UP_S2 EURGBP_PFO_OCO1_UP_S2_5 ;
public static EURGBP_OCO1_UP_S2 EURGBP_PFO_OCO1_UP_S2_6 ;
public static List<EURGBP_OCO1_UP_S2> EURGBP_UP_S2_OCO1Sets1 = new List<EURGBP_OCO1_UP_S2>();
public static List<EURGBP_OCO1_UP_S2> EURGBP_UP_S2_OCO1Sets2 = new List<EURGBP_OCO1_UP_S2>();
public static List<EURGBP_OCO1_UP_S2> EURGBP_UP_S2_OCO1Sets3 = new List<EURGBP_OCO1_UP_S2>();
public static List<EURGBP_OCO1_UP_S2> EURGBP_UP_S2_OCO1Sets4 = new List<EURGBP_OCO1_UP_S2>();
public static List<EURGBP_OCO1_UP_S2> EURGBP_UP_S2_OCO1Sets5 = new List<EURGBP_OCO1_UP_S2>();
public static List<EURGBP_OCO1_UP_S2> EURGBP_UP_S2_OCO1Sets6 = new List<EURGBP_OCO1_UP_S2>();
public static bool EURGBP_OCO1_UP_S2_IsReady = true;
public static bool EURGBP_OCO1_UP_S2_Monthly_IsReady = true;
//oco1 down
public static OrderTicket EURGBP_OCO1_MO1_DOWN_S2 ;
public static OrderTicket EURGBP_OCO1_MO2_DOWN_S2 ;
public static OrderTicket EURGBP_OCO1_MO3_DOWN_S2 ;
public static OrderTicket EURGBP_OCO1_MO4_DOWN_S2 ;
public static OrderTicket EURGBP_OCO1_MO5_DOWN_S2 ;
public static OrderTicket EURGBP_OCO1_MO6_DOWN_S2 ;
public static int EURGBP_OCO1_EO1_DOWN_S2_ID ;
public static int EURGBP_OCO1_EO2_DOWN_S2_ID ;
public static int EURGBP_OCO1_EO3_DOWN_S2_ID ;
public static int EURGBP_OCO1_EO4_DOWN_S2_ID ;
public static int EURGBP_OCO1_EO5_DOWN_S2_ID ;
public static int EURGBP_OCO1_EO6_DOWN_S2_ID ;
public static bool EURGBP_OCO1_EO1_DOWN_S2 ;
public static bool EURGBP_OCO1_EO2_DOWN_S2 ;
public static bool EURGBP_OCO1_EO3_DOWN_S2 ;
public static bool EURGBP_OCO1_EO4_DOWN_S2 ;
public static bool EURGBP_OCO1_EO5_DOWN_S2 ;
public static bool EURGBP_OCO1_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_DOWN_S2> EURGBP_OOFE_OCO1_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_DOWN_S2> EURGBP_OOFE_OCO1_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_DOWN_S2> EURGBP_OOFE_OCO1_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_DOWN_S2> EURGBP_OOFE_OCO1_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_DOWN_S2> EURGBP_OOFE_OCO1_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO1_DOWN_S2> EURGBP_OOFE_OCO1_DOWN_S2_6 ;
public static EURGBP_OCO1_DOWN_S2 EURGBP_PFO_OCO1_DOWN_S2_1 ;
public static EURGBP_OCO1_DOWN_S2 EURGBP_PFO_OCO1_DOWN_S2_2 ;
public static EURGBP_OCO1_DOWN_S2 EURGBP_PFO_OCO1_DOWN_S2_3 ;
public static EURGBP_OCO1_DOWN_S2 EURGBP_PFO_OCO1_DOWN_S2_4 ;
public static EURGBP_OCO1_DOWN_S2 EURGBP_PFO_OCO1_DOWN_S2_5 ;
public static EURGBP_OCO1_DOWN_S2 EURGBP_PFO_OCO1_DOWN_S2_6 ;
public static List<EURGBP_OCO1_DOWN_S2> EURGBP_DOWN_S2_OCO1Sets1 = new List<EURGBP_OCO1_DOWN_S2>();
public static List<EURGBP_OCO1_DOWN_S2> EURGBP_DOWN_S2_OCO1Sets2 = new List<EURGBP_OCO1_DOWN_S2>();
public static List<EURGBP_OCO1_DOWN_S2> EURGBP_DOWN_S2_OCO1Sets3 = new List<EURGBP_OCO1_DOWN_S2>();
public static List<EURGBP_OCO1_DOWN_S2> EURGBP_DOWN_S2_OCO1Sets4 = new List<EURGBP_OCO1_DOWN_S2>();
public static List<EURGBP_OCO1_DOWN_S2> EURGBP_DOWN_S2_OCO1Sets5 = new List<EURGBP_OCO1_DOWN_S2>();
public static List<EURGBP_OCO1_DOWN_S2> EURGBP_DOWN_S2_OCO1Sets6 = new List<EURGBP_OCO1_DOWN_S2>();
public static bool EURGBP_OCO1_DOWN_S2_IsReady = true;
public static bool EURGBP_OCO1_DOWN_S2_Monthly_IsReady = true;
//oco2 up
public static OrderTicket EURGBP_OCO2_MO1_UP_S2 ;
public static OrderTicket EURGBP_OCO2_MO2_UP_S2 ;
public static OrderTicket EURGBP_OCO2_MO3_UP_S2 ;
public static OrderTicket EURGBP_OCO2_MO4_UP_S2 ;
public static OrderTicket EURGBP_OCO2_MO5_UP_S2 ;
public static OrderTicket EURGBP_OCO2_MO6_UP_S2 ;
public static int EURGBP_OCO2_EO1_UP_S2_ID ;
public static int EURGBP_OCO2_EO2_UP_S2_ID ;
public static int EURGBP_OCO2_EO3_UP_S2_ID ;
public static int EURGBP_OCO2_EO4_UP_S2_ID ;
public static int EURGBP_OCO2_EO5_UP_S2_ID ;
public static int EURGBP_OCO2_EO6_UP_S2_ID ;
public static bool EURGBP_OCO2_EO1_UP_S2 ;
public static bool EURGBP_OCO2_EO2_UP_S2 ;
public static bool EURGBP_OCO2_EO3_UP_S2 ;
public static bool EURGBP_OCO2_EO4_UP_S2 ;
public static bool EURGBP_OCO2_EO5_UP_S2 ;
public static bool EURGBP_OCO2_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_UP_S2> EURGBP_OOFE_OCO2_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_UP_S2> EURGBP_OOFE_OCO2_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_UP_S2> EURGBP_OOFE_OCO2_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_UP_S2> EURGBP_OOFE_OCO2_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_UP_S2> EURGBP_OOFE_OCO2_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_UP_S2> EURGBP_OOFE_OCO2_UP_S2_6 ;
public static EURGBP_OCO2_UP_S2 EURGBP_PFO_OCO2_UP_S2_1 ;
public static EURGBP_OCO2_UP_S2 EURGBP_PFO_OCO2_UP_S2_2 ;
public static EURGBP_OCO2_UP_S2 EURGBP_PFO_OCO2_UP_S2_3 ;
public static EURGBP_OCO2_UP_S2 EURGBP_PFO_OCO2_UP_S2_4 ;
public static EURGBP_OCO2_UP_S2 EURGBP_PFO_OCO2_UP_S2_5 ;
public static EURGBP_OCO2_UP_S2 EURGBP_PFO_OCO2_UP_S2_6 ;
public static List<EURGBP_OCO2_UP_S2> EURGBP_UP_S2_OCO2Sets1 = new List<EURGBP_OCO2_UP_S2>();
public static List<EURGBP_OCO2_UP_S2> EURGBP_UP_S2_OCO2Sets2 = new List<EURGBP_OCO2_UP_S2>();
public static List<EURGBP_OCO2_UP_S2> EURGBP_UP_S2_OCO2Sets3 = new List<EURGBP_OCO2_UP_S2>();
public static List<EURGBP_OCO2_UP_S2> EURGBP_UP_S2_OCO2Sets4 = new List<EURGBP_OCO2_UP_S2>();
public static List<EURGBP_OCO2_UP_S2> EURGBP_UP_S2_OCO2Sets5 = new List<EURGBP_OCO2_UP_S2>();
public static List<EURGBP_OCO2_UP_S2> EURGBP_UP_S2_OCO2Sets6 = new List<EURGBP_OCO2_UP_S2>();
public static bool EURGBP_OCO2_UP_S2_IsReady = true;
public static bool EURGBP_OCO2_UP_S2_Monthly_IsReady = true;
//oco2 down
public static OrderTicket EURGBP_OCO2_MO1_DOWN_S2 ;
public static OrderTicket EURGBP_OCO2_MO2_DOWN_S2 ;
public static OrderTicket EURGBP_OCO2_MO3_DOWN_S2 ;
public static OrderTicket EURGBP_OCO2_MO4_DOWN_S2 ;
public static OrderTicket EURGBP_OCO2_MO5_DOWN_S2 ;
public static OrderTicket EURGBP_OCO2_MO6_DOWN_S2 ;
public static int EURGBP_OCO2_EO1_DOWN_S2_ID ;
public static int EURGBP_OCO2_EO2_DOWN_S2_ID ;
public static int EURGBP_OCO2_EO3_DOWN_S2_ID ;
public static int EURGBP_OCO2_EO4_DOWN_S2_ID ;
public static int EURGBP_OCO2_EO5_DOWN_S2_ID ;
public static int EURGBP_OCO2_EO6_DOWN_S2_ID ;
public static bool EURGBP_OCO2_EO1_DOWN_S2 ;
public static bool EURGBP_OCO2_EO2_DOWN_S2 ;
public static bool EURGBP_OCO2_EO3_DOWN_S2 ;
public static bool EURGBP_OCO2_EO4_DOWN_S2 ;
public static bool EURGBP_OCO2_EO5_DOWN_S2 ;
public static bool EURGBP_OCO2_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_DOWN_S2> EURGBP_OOFE_OCO2_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_DOWN_S2> EURGBP_OOFE_OCO2_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_DOWN_S2> EURGBP_OOFE_OCO2_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_DOWN_S2> EURGBP_OOFE_OCO2_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_DOWN_S2> EURGBP_OOFE_OCO2_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO2_DOWN_S2> EURGBP_OOFE_OCO2_DOWN_S2_6 ;
public static EURGBP_OCO2_DOWN_S2 EURGBP_PFO_OCO2_DOWN_S2_1 ;
public static EURGBP_OCO2_DOWN_S2 EURGBP_PFO_OCO2_DOWN_S2_2 ;
public static EURGBP_OCO2_DOWN_S2 EURGBP_PFO_OCO2_DOWN_S2_3 ;
public static EURGBP_OCO2_DOWN_S2 EURGBP_PFO_OCO2_DOWN_S2_4 ;
public static EURGBP_OCO2_DOWN_S2 EURGBP_PFO_OCO2_DOWN_S2_5 ;
public static EURGBP_OCO2_DOWN_S2 EURGBP_PFO_OCO2_DOWN_S2_6 ;
public static List<EURGBP_OCO2_DOWN_S2> EURGBP_DOWN_S2_OCO2Sets1 = new List<EURGBP_OCO2_DOWN_S2>();
public static List<EURGBP_OCO2_DOWN_S2> EURGBP_DOWN_S2_OCO2Sets2 = new List<EURGBP_OCO2_DOWN_S2>();
public static List<EURGBP_OCO2_DOWN_S2> EURGBP_DOWN_S2_OCO2Sets3 = new List<EURGBP_OCO2_DOWN_S2>();
public static List<EURGBP_OCO2_DOWN_S2> EURGBP_DOWN_S2_OCO2Sets4 = new List<EURGBP_OCO2_DOWN_S2>();
public static List<EURGBP_OCO2_DOWN_S2> EURGBP_DOWN_S2_OCO2Sets5 = new List<EURGBP_OCO2_DOWN_S2>();
public static List<EURGBP_OCO2_DOWN_S2> EURGBP_DOWN_S2_OCO2Sets6 = new List<EURGBP_OCO2_DOWN_S2>();
public static bool EURGBP_OCO2_DOWN_S2_IsReady = true;
public static bool EURGBP_OCO2_DOWN_S2_Monthly_IsReady = true;
//oco3 up
public static OrderTicket EURGBP_OCO3_MO1_UP_S2 ;
public static OrderTicket EURGBP_OCO3_MO2_UP_S2 ;
public static OrderTicket EURGBP_OCO3_MO3_UP_S2 ;
public static OrderTicket EURGBP_OCO3_MO4_UP_S2 ;
public static OrderTicket EURGBP_OCO3_MO5_UP_S2 ;
public static OrderTicket EURGBP_OCO3_MO6_UP_S2 ;
public static int EURGBP_OCO3_EO1_UP_S2_ID ;
public static int EURGBP_OCO3_EO2_UP_S2_ID ;
public static int EURGBP_OCO3_EO3_UP_S2_ID ;
public static int EURGBP_OCO3_EO4_UP_S2_ID ;
public static int EURGBP_OCO3_EO5_UP_S2_ID ;
public static int EURGBP_OCO3_EO6_UP_S2_ID ;
public static bool EURGBP_OCO3_EO1_UP_S2 ;
public static bool EURGBP_OCO3_EO2_UP_S2 ;
public static bool EURGBP_OCO3_EO3_UP_S2 ;
public static bool EURGBP_OCO3_EO4_UP_S2 ;
public static bool EURGBP_OCO3_EO5_UP_S2 ;
public static bool EURGBP_OCO3_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_UP_S2> EURGBP_OOFE_OCO3_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_UP_S2> EURGBP_OOFE_OCO3_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_UP_S2> EURGBP_OOFE_OCO3_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_UP_S2> EURGBP_OOFE_OCO3_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_UP_S2> EURGBP_OOFE_OCO3_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_UP_S2> EURGBP_OOFE_OCO3_UP_S2_6 ;
public static EURGBP_OCO3_UP_S2 EURGBP_PFO_OCO3_UP_S2_1 ;
public static EURGBP_OCO3_UP_S2 EURGBP_PFO_OCO3_UP_S2_2 ;
public static EURGBP_OCO3_UP_S2 EURGBP_PFO_OCO3_UP_S2_3 ;
public static EURGBP_OCO3_UP_S2 EURGBP_PFO_OCO3_UP_S2_4 ;
public static EURGBP_OCO3_UP_S2 EURGBP_PFO_OCO3_UP_S2_5 ;
public static EURGBP_OCO3_UP_S2 EURGBP_PFO_OCO3_UP_S2_6 ;
public static List<EURGBP_OCO3_UP_S2> EURGBP_UP_S2_OCO3Sets1 = new List<EURGBP_OCO3_UP_S2>();
public static List<EURGBP_OCO3_UP_S2> EURGBP_UP_S2_OCO3Sets2 = new List<EURGBP_OCO3_UP_S2>();
public static List<EURGBP_OCO3_UP_S2> EURGBP_UP_S2_OCO3Sets3 = new List<EURGBP_OCO3_UP_S2>();
public static List<EURGBP_OCO3_UP_S2> EURGBP_UP_S2_OCO3Sets4 = new List<EURGBP_OCO3_UP_S2>();
public static List<EURGBP_OCO3_UP_S2> EURGBP_UP_S2_OCO3Sets5 = new List<EURGBP_OCO3_UP_S2>();
public static List<EURGBP_OCO3_UP_S2> EURGBP_UP_S2_OCO3Sets6 = new List<EURGBP_OCO3_UP_S2>();
public static bool EURGBP_OCO3_UP_S2_IsReady = true;
public static bool EURGBP_OCO3_UP_S2_Monthly_IsReady = true;
//oco3 down
public static OrderTicket EURGBP_OCO3_MO1_DOWN_S2 ;
public static OrderTicket EURGBP_OCO3_MO2_DOWN_S2 ;
public static OrderTicket EURGBP_OCO3_MO3_DOWN_S2 ;
public static OrderTicket EURGBP_OCO3_MO4_DOWN_S2 ;
public static OrderTicket EURGBP_OCO3_MO5_DOWN_S2 ;
public static OrderTicket EURGBP_OCO3_MO6_DOWN_S2 ;
public static int EURGBP_OCO3_EO1_DOWN_S2_ID ;
public static int EURGBP_OCO3_EO2_DOWN_S2_ID ;
public static int EURGBP_OCO3_EO3_DOWN_S2_ID ;
public static int EURGBP_OCO3_EO4_DOWN_S2_ID ;
public static int EURGBP_OCO3_EO5_DOWN_S2_ID ;
public static int EURGBP_OCO3_EO6_DOWN_S2_ID ;
public static bool EURGBP_OCO3_EO1_DOWN_S2 ;
public static bool EURGBP_OCO3_EO2_DOWN_S2 ;
public static bool EURGBP_OCO3_EO3_DOWN_S2 ;
public static bool EURGBP_OCO3_EO4_DOWN_S2 ;
public static bool EURGBP_OCO3_EO5_DOWN_S2 ;
public static bool EURGBP_OCO3_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_DOWN_S2> EURGBP_OOFE_OCO3_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_DOWN_S2> EURGBP_OOFE_OCO3_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_DOWN_S2> EURGBP_OOFE_OCO3_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_DOWN_S2> EURGBP_OOFE_OCO3_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_DOWN_S2> EURGBP_OOFE_OCO3_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO3_DOWN_S2> EURGBP_OOFE_OCO3_DOWN_S2_6 ;
public static EURGBP_OCO3_DOWN_S2 EURGBP_PFO_OCO3_DOWN_S2_1 ;
public static EURGBP_OCO3_DOWN_S2 EURGBP_PFO_OCO3_DOWN_S2_2 ;
public static EURGBP_OCO3_DOWN_S2 EURGBP_PFO_OCO3_DOWN_S2_3 ;
public static EURGBP_OCO3_DOWN_S2 EURGBP_PFO_OCO3_DOWN_S2_4 ;
public static EURGBP_OCO3_DOWN_S2 EURGBP_PFO_OCO3_DOWN_S2_5 ;
public static EURGBP_OCO3_DOWN_S2 EURGBP_PFO_OCO3_DOWN_S2_6 ;
public static List<EURGBP_OCO3_DOWN_S2> EURGBP_DOWN_S2_OCO3Sets1 = new List<EURGBP_OCO3_DOWN_S2>();
public static List<EURGBP_OCO3_DOWN_S2> EURGBP_DOWN_S2_OCO3Sets2 = new List<EURGBP_OCO3_DOWN_S2>();
public static List<EURGBP_OCO3_DOWN_S2> EURGBP_DOWN_S2_OCO3Sets3 = new List<EURGBP_OCO3_DOWN_S2>();
public static List<EURGBP_OCO3_DOWN_S2> EURGBP_DOWN_S2_OCO3Sets4 = new List<EURGBP_OCO3_DOWN_S2>();
public static List<EURGBP_OCO3_DOWN_S2> EURGBP_DOWN_S2_OCO3Sets5 = new List<EURGBP_OCO3_DOWN_S2>();
public static List<EURGBP_OCO3_DOWN_S2> EURGBP_DOWN_S2_OCO3Sets6 = new List<EURGBP_OCO3_DOWN_S2>();
public static bool EURGBP_OCO3_DOWN_S2_IsReady = true;
public static bool EURGBP_OCO3_DOWN_S2_Monthly_IsReady = true;
//oco4 up
public static OrderTicket EURGBP_OCO4_MO1_UP_S2 ;
public static OrderTicket EURGBP_OCO4_MO2_UP_S2 ;
public static OrderTicket EURGBP_OCO4_MO3_UP_S2 ;
public static OrderTicket EURGBP_OCO4_MO4_UP_S2 ;
public static OrderTicket EURGBP_OCO4_MO5_UP_S2 ;
public static OrderTicket EURGBP_OCO4_MO6_UP_S2 ;
public static int EURGBP_OCO4_EO1_UP_S2_ID ;
public static int EURGBP_OCO4_EO2_UP_S2_ID ;
public static int EURGBP_OCO4_EO3_UP_S2_ID ;
public static int EURGBP_OCO4_EO4_UP_S2_ID ;
public static int EURGBP_OCO4_EO5_UP_S2_ID ;
public static int EURGBP_OCO4_EO6_UP_S2_ID ;
public static bool EURGBP_OCO4_EO1_UP_S2 ;
public static bool EURGBP_OCO4_EO2_UP_S2 ;
public static bool EURGBP_OCO4_EO3_UP_S2 ;
public static bool EURGBP_OCO4_EO4_UP_S2 ;
public static bool EURGBP_OCO4_EO5_UP_S2 ;
public static bool EURGBP_OCO4_EO6_UP_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_UP_S2> EURGBP_OOFE_OCO4_UP_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_UP_S2> EURGBP_OOFE_OCO4_UP_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_UP_S2> EURGBP_OOFE_OCO4_UP_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_UP_S2> EURGBP_OOFE_OCO4_UP_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_UP_S2> EURGBP_OOFE_OCO4_UP_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_UP_S2> EURGBP_OOFE_OCO4_UP_S2_6 ;
public static EURGBP_OCO4_UP_S2 EURGBP_PFO_OCO4_UP_S2_1 ;
public static EURGBP_OCO4_UP_S2 EURGBP_PFO_OCO4_UP_S2_2 ;
public static EURGBP_OCO4_UP_S2 EURGBP_PFO_OCO4_UP_S2_3 ;
public static EURGBP_OCO4_UP_S2 EURGBP_PFO_OCO4_UP_S2_4 ;
public static EURGBP_OCO4_UP_S2 EURGBP_PFO_OCO4_UP_S2_5 ;
public static EURGBP_OCO4_UP_S2 EURGBP_PFO_OCO4_UP_S2_6 ;
public static List<EURGBP_OCO4_UP_S2> EURGBP_UP_S2_OCO4Sets1 = new List<EURGBP_OCO4_UP_S2>();
public static List<EURGBP_OCO4_UP_S2> EURGBP_UP_S2_OCO4Sets2 = new List<EURGBP_OCO4_UP_S2>();
public static List<EURGBP_OCO4_UP_S2> EURGBP_UP_S2_OCO4Sets3 = new List<EURGBP_OCO4_UP_S2>();
public static List<EURGBP_OCO4_UP_S2> EURGBP_UP_S2_OCO4Sets4 = new List<EURGBP_OCO4_UP_S2>();
public static List<EURGBP_OCO4_UP_S2> EURGBP_UP_S2_OCO4Sets5 = new List<EURGBP_OCO4_UP_S2>();
public static List<EURGBP_OCO4_UP_S2> EURGBP_UP_S2_OCO4Sets6 = new List<EURGBP_OCO4_UP_S2>();
public static bool EURGBP_OCO4_UP_S2_IsReady = true;
public static bool EURGBP_OCO4_UP_S2_Monthly_IsReady = true;
//oco4 down
public static OrderTicket EURGBP_OCO4_MO1_DOWN_S2 ;
public static OrderTicket EURGBP_OCO4_MO2_DOWN_S2 ;
public static OrderTicket EURGBP_OCO4_MO3_DOWN_S2 ;
public static OrderTicket EURGBP_OCO4_MO4_DOWN_S2 ;
public static OrderTicket EURGBP_OCO4_MO5_DOWN_S2 ;
public static OrderTicket EURGBP_OCO4_MO6_DOWN_S2 ;
public static int EURGBP_OCO4_EO1_DOWN_S2_ID ;
public static int EURGBP_OCO4_EO2_DOWN_S2_ID ;
public static int EURGBP_OCO4_EO3_DOWN_S2_ID ;
public static int EURGBP_OCO4_EO4_DOWN_S2_ID ;
public static int EURGBP_OCO4_EO5_DOWN_S2_ID ;
public static int EURGBP_OCO4_EO6_DOWN_S2_ID ;
public static bool EURGBP_OCO4_EO1_DOWN_S2 ;
public static bool EURGBP_OCO4_EO2_DOWN_S2 ;
public static bool EURGBP_OCO4_EO3_DOWN_S2 ;
public static bool EURGBP_OCO4_EO4_DOWN_S2 ;
public static bool EURGBP_OCO4_EO5_DOWN_S2 ;
public static bool EURGBP_OCO4_EO6_DOWN_S2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_DOWN_S2> EURGBP_OOFE_OCO4_DOWN_S2_1 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_DOWN_S2> EURGBP_OOFE_OCO4_DOWN_S2_2 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_DOWN_S2> EURGBP_OOFE_OCO4_DOWN_S2_3 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_DOWN_S2> EURGBP_OOFE_OCO4_DOWN_S2_4 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_DOWN_S2> EURGBP_OOFE_OCO4_DOWN_S2_5 ;
public static Func<QCAlgorithm, string, decimal, decimal, EURGBP_OCO4_DOWN_S2> EURGBP_OOFE_OCO4_DOWN_S2_6 ;
public static EURGBP_OCO4_DOWN_S2 EURGBP_PFO_OCO4_DOWN_S2_1 ;
public static EURGBP_OCO4_DOWN_S2 EURGBP_PFO_OCO4_DOWN_S2_2 ;
public static EURGBP_OCO4_DOWN_S2 EURGBP_PFO_OCO4_DOWN_S2_3 ;
public static EURGBP_OCO4_DOWN_S2 EURGBP_PFO_OCO4_DOWN_S2_4 ;
public static EURGBP_OCO4_DOWN_S2 EURGBP_PFO_OCO4_DOWN_S2_5 ;
public static EURGBP_OCO4_DOWN_S2 EURGBP_PFO_OCO4_DOWN_S2_6 ;
public static List<EURGBP_OCO4_DOWN_S2> EURGBP_DOWN_S2_OCO4Sets1 = new List<EURGBP_OCO4_DOWN_S2>();
public static List<EURGBP_OCO4_DOWN_S2> EURGBP_DOWN_S2_OCO4Sets2 = new List<EURGBP_OCO4_DOWN_S2>();
public static List<EURGBP_OCO4_DOWN_S2> EURGBP_DOWN_S2_OCO4Sets3 = new List<EURGBP_OCO4_DOWN_S2>();
public static List<EURGBP_OCO4_DOWN_S2> EURGBP_DOWN_S2_OCO4Sets4 = new List<EURGBP_OCO4_DOWN_S2>();
public static List<EURGBP_OCO4_DOWN_S2> EURGBP_DOWN_S2_OCO4Sets5 = new List<EURGBP_OCO4_DOWN_S2>();
public static List<EURGBP_OCO4_DOWN_S2> EURGBP_DOWN_S2_OCO4Sets6 = new List<EURGBP_OCO4_DOWN_S2>();
public static bool EURGBP_OCO4_DOWN_S2_IsReady = true;
public static bool EURGBP_OCO4_DOWN_S2_Monthly_IsReady = true;
////////////////////////////
public static decimal EURGBP_UP_S2_SL {get; set;}
public static decimal EURGBP_UP_S2_TP1 {get; set;}
public static decimal EURGBP_UP_S2_TP2 {get; set;}
public static decimal EURGBP_UP_S2_TP3 {get; set;}
public static decimal EURGBP_UP_S2_TP4 {get; set;}
public static decimal EURGBP_UP_S2_TP5 {get; set;}
public static decimal EURGBP_UP_S2_TP6 {get; set;}
public static decimal EURGBP_DOWN_S2_SL {get; set;}
public static decimal EURGBP_DOWN_S2_TP1 {get; set;}
public static decimal EURGBP_DOWN_S2_TP2 {get; set;}
public static decimal EURGBP_DOWN_S2_TP3 {get; set;}
public static decimal EURGBP_DOWN_S2_TP4 {get; set;}
public static decimal EURGBP_DOWN_S2_TP5 {get; set;}
public static decimal EURGBP_DOWN_S2_TP6 {get; set;}
public static bool EURGBP_Signal_Condition_UP_1 ;
public static bool EURGBP_Signal_Condition_UP_2 ;
public static bool EURGBP_Signal_Condition_UP_3 ;
public static bool EURGBP_Signal_Condition_DOWN_S2 ;
public static int EURGBP_UP_S2_OCO_DELAY_7DAY = 10080;
public static int EURGBP_UP_S2_OCOM_DELAY_DAY = 4320;
public static int EURGBP_UP_S2_OCOT_DELAY_DAY = 2880;
public static int EURGBP_UP_S2_OCOW_DELAY_DAY = 1440;
public static int EURGBP_UP_S2_OCOTH_DELAY_DAY = 720;
public static int EURGBP_DOWN_S2_OCO_DELAY_7DAY = 10080;
public static int EURGBP_DOWN_S2_OCOM_DELAY_DAY = 4320;
public static int EURGBP_DOWN_S2_OCOT_DELAY_DAY = 2880;
public static int EURGBP_DOWN_S2_OCOW_DELAY_DAY = 1440;
public static int EURGBP_DOWN_S2_OCOTH_DELAY_DAY = 720;
public static bool DOWR_EURGBP_UP_S2 ;
public static bool DOWM_EURGBP_UP_S2 ;
public static bool DOWT_EURGBP_UP_S2 ;
public static bool DOWW_EURGBP_UP_S2 ;
public static bool DOWTH_EURGBP_UP_S2 ;
public static bool DOWR_EURGBP_DOWN_S2 ;
public static bool DOWM_EURGBP_DOWN_S2 ;
public static bool DOWT_EURGBP_DOWN_S2 ;
public static bool DOWW_EURGBP_DOWN_S2 ;
public static bool DOWTH_EURGBP_DOWN_S2 ;
public static int EURGBP_quantity_UP_S2 ;
public static int EURGBP_quantity_SL_UP_S2 ;
public static int EURGBP_quantity_TP1_UP_S2 ;
public static int EURGBP_quantity_TP2_UP_S2 ;
public static int EURGBP_quantity_TP3_UP_S2 ;
public static int EURGBP_quantity_TP4_UP_S2 ;
public static int EURGBP_quantity_TP5_UP_S2;
public static int EURGBP_quantity_TP6_UP_S2 ;
public static int EURGBP_quantity_DOWN_S2 ;
public static int EURGBP_quantity_SL_DOWN_S2 ;
public static int EURGBP_quantity_TP1_DOWN_S2 ;
public static int EURGBP_quantity_TP2_DOWN_S2 ;
public static int EURGBP_quantity_TP3_DOWN_S2 ;
public static int EURGBP_quantity_TP4_DOWN_S2 ;
public static int EURGBP_quantity_TP5_DOWN_S2;
public static int EURGBP_quantity_TP6_DOWN_S2 ;
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct EURUSD_OCO1_DOWN_S2
{
public EURUSD_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURUSD_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURUSD_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURUSD_OCO1_UP_S2
{
public EURUSD_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURUSD_UP_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURUSD_UP_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURUSD_UP_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURUSD_UP_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURUSD_UP_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURUSD_UP_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURUSD_UP_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURUSD_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURUSD_UP_S2_OCO1")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURUSD_OCO2_DOWN_S2
{
public EURUSD_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURUSD_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURUSD_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURUSD_OCO2_UP_S2
{
public EURUSD_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURUSD_UP_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURUSD_UP_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURUSD_UP_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURUSD_UP_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURUSD_UP_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURUSD_UP_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURUSD_UP_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURUSD_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURUSD_UP_S2_OCO2")
{
orderTicket.Cancel("EURUSD OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURUSD_OCO3_DOWN_S2
{
public EURUSD_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURUSD_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURUSD_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURUSD_OCO3_UP_S2
{
public EURUSD_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURUSD_UP_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURUSD_UP_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURUSD_UP_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURUSD_UP_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURUSD_UP_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURUSD_UP_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURUSD_UP_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURUSD_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURUSD_UP_S2_OCO3")
{
orderTicket.Cancel("EURUSD OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURUSD_OCO4_DOWN_S2
{
public EURUSD_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURUSD_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURUSD_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURUSD_OCO4_UP_S2
{
public EURUSD_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURUSD_UP_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURUSD_UP_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURUSD_UP_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURUSD_UP_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURUSD_UP_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURUSD_UP_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURUSD_UP_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURUSD_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURUSD_UP_S2_OCO4")
{
orderTicket.Cancel("EURUSD OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}using System.Linq;
using System.Collections.Generic;
using QuantConnect.Orders;
using NodaTime;
using NodaTime.TimeZones;
namespace QuantConnect
{
public struct EURGBP_OCO1_DOWN_S2
{
public EURGBP_OCO1_DOWN_S2(params OrderTicket[] orderTickets)
{
this.OrderTickets = orderTickets;
}
private OrderTicket[] OrderTickets { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURGBP_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURGBP_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURGBP_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURGBP_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURGBP_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURGBP_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURGBP_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTickets)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURGBP_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURGBP_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURGBP_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURGBP_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURGBP_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURGBP_DOWN_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURGBP_DOWN_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTickets)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURGBP_OCO1_UP_S2
{
public EURGBP_OCO1_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURGBP_UP_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURGBP_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURGBP_UP_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURGBP_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURGBP_UP_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURGBP_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURGBP_UP_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_UP_S2_OCO1" || orderTicket.Tag =="SL_TP1_EURGBP_UP_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURGBP_UP_S2_OCO1" || orderTicket.Tag =="SL_TP2_EURGBP_UP_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURGBP_UP_S2_OCO1" || orderTicket.Tag =="SL_TP3_EURGBP_UP_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURGBP_UP_S2_OCO1" || orderTicket.Tag =="SL_TP4_EURGBP_UP_S2_OCO1")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURGBP_OCO2_DOWN_S2
{
public EURGBP_OCO2_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURGBP_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURGBP_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURGBP_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURGBP_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURGBP_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURGBP_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURGBP_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURGBP_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURGBP_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURGBP_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURGBP_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURGBP_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURGBP_DOWN_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURGBP_DOWN_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO1 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURGBP_OCO2_UP_S2
{
public EURGBP_OCO2_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURGBP_UP_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURGBP_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURGBP_UP_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURGBP_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURGBP_UP_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURGBP_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURGBP_UP_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_UP_S2_OCO2" || orderTicket.Tag =="SL_TP1_EURGBP_UP_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURGBP_UP_S2_OCO2" || orderTicket.Tag =="SL_TP2_EURGBP_UP_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURGBP_UP_S2_OCO2" || orderTicket.Tag =="SL_TP3_EURGBP_UP_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURGBP_UP_S2_OCO2" || orderTicket.Tag =="SL_TP4_EURGBP_UP_S2_OCO2")
{
orderTicket.Cancel("EURGBP OCO2 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURGBP_OCO3_DOWN_S2
{
public EURGBP_OCO3_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURGBP_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURGBP_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURGBP_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURGBP_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURGBP_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURGBP_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURGBP_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURGBP_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURGBP_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURGBP_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURGBP_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURGBP_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURGBP_DOWN_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURGBP_DOWN_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURGBP_OCO3_UP_S2
{
public EURGBP_OCO3_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURGBP_UP_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURGBP_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURGBP_UP_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURGBP_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURGBP_UP_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURGBP_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURGBP_UP_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_UP_S2_OCO3" || orderTicket.Tag =="SL_TP1_EURGBP_UP_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURGBP_UP_S2_OCO3" || orderTicket.Tag =="SL_TP2_EURGBP_UP_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURGBP_UP_S2_OCO3" || orderTicket.Tag =="SL_TP3_EURGBP_UP_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURGBP_UP_S2_OCO3" || orderTicket.Tag =="SL_TP4_EURGBP_UP_S2_OCO3")
{
orderTicket.Cancel("EURGBP OCO3 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURGBP_OCO4_DOWN_S2
{
public EURGBP_OCO4_DOWN_S2(params OrderTicket[] orderTicketsDown)
{
this.OrderTicketsDown = orderTicketsDown;
}
private OrderTicket[] OrderTicketsDown { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURGBP_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 1 DOWN S2");
}
if(orderTicket.Tag =="TP2_EURGBP_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURGBP_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 2 DOWN S2");
}
if(orderTicket.Tag =="TP3_EURGBP_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURGBP_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 3 DOWN S2");
}
if(orderTicket.Tag =="TP4_EURGBP_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURGBP_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 4 DOWN S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsDown)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURGBP_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 1 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURGBP_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURGBP_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 2 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURGBP_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURGBP_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 3 DOWN S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURGBP_DOWN_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURGBP_DOWN_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 4 DOWN S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsDown)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
public struct EURGBP_OCO4_UP_S2
{
public EURGBP_OCO4_UP_S2(params OrderTicket[] orderTicketsUp)
{
this.OrderTicketsUp = orderTicketsUp;
}
private OrderTicket[] OrderTicketsUp { get; set; }
public void Filled()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURGBP_UP_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 1 UP S2");
}
if(orderTicket.Tag =="TP2_EURGBP_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURGBP_UP_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 2 UP S2");
}
if(orderTicket.Tag =="TP3_EURGBP_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURGBP_UP_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 3 UP S2");
}
if(orderTicket.Tag =="TP4_EURGBP_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURGBP_UP_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 4 UP S2");
}
}
}
}
public void TimeOut()
{
// Cancel all the outstanding tickets.
foreach (var orderTicket in this.OrderTicketsUp)
{
if (orderTicket.Status == OrderStatus.Submitted)
{
if(orderTicket.Tag =="TP1_EURGBP_UP_S2_OCO4" || orderTicket.Tag =="SL_TP1_EURGBP_UP_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 1 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP2_EURGBP_UP_S2_OCO4" || orderTicket.Tag =="SL_TP2_EURGBP_UP_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 2 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP3_EURGBP_UP_S2_OCO4" || orderTicket.Tag =="SL_TP3_EURGBP_UP_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 3 UP S2 TIMEOUT");
}
if(orderTicket.Tag =="TP4_EURGBP_UP_S2_OCO4" || orderTicket.Tag =="SL_TP4_EURGBP_UP_S2_OCO4")
{
orderTicket.Cancel("EURGBP OCO4 CANCEL 4 UP S2 TIMEOUT");
}
}
}
}
public bool InOrders(int orderId)
{
foreach (var orderTicket in this.OrderTicketsUp)
if (orderTicket.OrderId == orderId)
return true;
return false;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURGBP_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURGBP_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURGBP_DOWN_S2_OCO1")))
{
Base.EURGBP_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURGBP_DOWN_S2_OCO2")))
{
Base.EURGBP_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURGBP_DOWN_S2_OCO3")))
{
Base.EURGBP_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURGBP_DOWN_S2_OCO4")))
{
Base.EURGBP_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURGBP_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURGBP_OCO1_EO1_DOWN_S2)
Base.EURGBP_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO2_DOWN_S2)
Base.EURGBP_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO3_DOWN_S2)
Base.EURGBP_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO4_DOWN_S2)
Base.EURGBP_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO5_DOWN_S2)
Base.EURGBP_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO1_EO6_DOWN_S2)
Base.EURGBP_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURGBP_DOWN_S2_OCO_DELAY_7DAY))
{
int EURGBP_OCO1S1_DOWN_S2 = 0;
for (; EURGBP_OCO1S1_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets1.Count; EURGBP_OCO1S1_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets1[EURGBP_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO1Sets1[EURGBP_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_1__Time out_OCO1");
Base.EURGBP_DOWN_S2_OCO1Sets1.Clear();
EURGBP_OCO1S1_DOWN_S2 = 0;
break;
}
int EURGBP_OCO1S2_DOWN_S2 = 0;
for (; EURGBP_OCO1S2_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets2.Count; EURGBP_OCO1S2_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets2[EURGBP_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO1Sets2[EURGBP_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_2__Time out_OCO1");
Base.EURGBP_DOWN_S2_OCO1Sets2.Clear();
EURGBP_OCO1S2_DOWN_S2 = 0;
break;
}
int EURGBP_OCO1S3_DOWN_S2 = 0;
for (; EURGBP_OCO1S3_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets3.Count; EURGBP_OCO1S3_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets3[EURGBP_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO1Sets3[EURGBP_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_3__Time out_OCO1");
Base.EURGBP_DOWN_S2_OCO1Sets3.Clear();
EURGBP_OCO1S3_DOWN_S2 = 0;
break;
}
int EURGBP_OCO1S4_DOWN_S2 = 0;
for (; EURGBP_OCO1S4_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets4.Count; EURGBP_OCO1S4_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets4[EURGBP_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO1Sets4[EURGBP_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_4__Time out_OCO1");
Base.EURGBP_DOWN_S2_OCO1Sets4.Clear();
EURGBP_OCO1S4_DOWN_S2 = 0;
break;
}
int EURGBP_OCO1S5_DOWN_S2 = 0;
for (; EURGBP_OCO1S5_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets5.Count; EURGBP_OCO1S5_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets5[EURGBP_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO1Sets5[EURGBP_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_5__Time out_OCO1");
Base.EURGBP_DOWN_S2_OCO1Sets5.Clear();
EURGBP_OCO1S5_DOWN_S2 = 0;
break;
}
int EURGBP_OCO1S6_DOWN_S2 = 0;
for (; EURGBP_OCO1S6_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO1Sets6.Count; EURGBP_OCO1S6_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO1Sets6[EURGBP_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO1Sets6[EURGBP_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_6__Time out_OCO1");
Base.EURGBP_DOWN_S2_OCO1Sets6.Clear();
EURGBP_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO2_EO1_DOWN_S2)
Base.EURGBP_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO2_DOWN_S2)
Base.EURGBP_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO3_DOWN_S2)
Base.EURGBP_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO4_DOWN_S2)
Base.EURGBP_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO5_DOWN_S2)
Base.EURGBP_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO2_EO6_DOWN_S2)
Base.EURGBP_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURGBP_DOWN_S2_OCO_DELAY_7DAY))
{
int EURGBP_OCO2S1_DOWN_S2 = 0;
for (; EURGBP_OCO2S1_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets1.Count; EURGBP_OCO2S1_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets1[EURGBP_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO2Sets1[EURGBP_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_1__Time out_OCO2");
Base.EURGBP_DOWN_S2_OCO2Sets1.Clear();
EURGBP_OCO2S1_DOWN_S2 = 0;
break;
}
int EURGBP_OCO2S2_DOWN_S2 = 0;
for (; EURGBP_OCO2S2_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets2.Count; EURGBP_OCO2S2_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets2[EURGBP_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO2Sets2[EURGBP_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_2__Time out_OCO2");
Base.EURGBP_DOWN_S2_OCO2Sets2.Clear();
EURGBP_OCO2S2_DOWN_S2 = 0;
break;
}
int EURGBP_OCO2S3_DOWN_S2 = 0;
for (; EURGBP_OCO2S3_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets3.Count; EURGBP_OCO2S3_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets3[EURGBP_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO2Sets3[EURGBP_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_3__Time out_OCO2");
Base.EURGBP_DOWN_S2_OCO2Sets3.Clear();
EURGBP_OCO2S3_DOWN_S2 = 0;
break;
}
int EURGBP_OCO2S4_DOWN_S2 = 0;
for (; EURGBP_OCO2S4_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets4.Count; EURGBP_OCO2S4_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets4[EURGBP_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO2Sets4[EURGBP_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_4__Time out_OCO2");
Base.EURGBP_DOWN_S2_OCO2Sets4.Clear();
EURGBP_OCO2S4_DOWN_S2 = 0;
break;
}
int EURGBP_OCO2S5_DOWN_S2 = 0;
for (; EURGBP_OCO2S5_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets5.Count; EURGBP_OCO2S5_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets5[EURGBP_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO2Sets5[EURGBP_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_5__Time out_OCO2");
Base.EURGBP_DOWN_S2_OCO2Sets5.Clear();
EURGBP_OCO2S5_DOWN_S2 = 0;
break;
}
int EURGBP_OCO2S6_DOWN_S2 = 0;
for (; EURGBP_OCO2S6_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO2Sets6.Count; EURGBP_OCO2S6_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO2Sets6[EURGBP_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO2Sets6[EURGBP_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_6__Time out_OCO2");
Base.EURGBP_DOWN_S2_OCO2Sets6.Clear();
EURGBP_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO3_EO1_DOWN_S2)
Base.EURGBP_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO2_DOWN_S2)
Base.EURGBP_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO3_DOWN_S2)
Base.EURGBP_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO4_DOWN_S2)
Base.EURGBP_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO5_DOWN_S2)
Base.EURGBP_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO3_EO6_DOWN_S2)
Base.EURGBP_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURGBP_DOWN_S2_OCO_DELAY_7DAY))
{
int EURGBP_OCO3S1_DOWN_S2 = 0;
for (; EURGBP_OCO3S1_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets1.Count; EURGBP_OCO3S1_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets1[EURGBP_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO3Sets1[EURGBP_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_1__Time out_OCO3");
Base.EURGBP_DOWN_S2_OCO3Sets1.Clear();
EURGBP_OCO3S1_DOWN_S2 = 0;
break;
}
int EURGBP_OCO3S2_DOWN_S2 = 0;
for (; EURGBP_OCO3S2_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets2.Count; EURGBP_OCO3S2_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets2[EURGBP_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO3Sets2[EURGBP_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_2__Time out_OCO3");
Base.EURGBP_DOWN_S2_OCO3Sets2.Clear();
EURGBP_OCO3S2_DOWN_S2 = 0;
break;
}
int EURGBP_OCO3S3_DOWN_S2 = 0;
for (; EURGBP_OCO3S3_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets3.Count; EURGBP_OCO3S3_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets3[EURGBP_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO3Sets3[EURGBP_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_3__Time out_OCO3");
Base.EURGBP_DOWN_S2_OCO3Sets3.Clear();
EURGBP_OCO3S3_DOWN_S2 = 0;
break;
}
int EURGBP_OCO3S4_DOWN_S2 = 0;
for (; EURGBP_OCO3S4_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets4.Count; EURGBP_OCO3S4_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets4[EURGBP_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO3Sets4[EURGBP_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_4__Time out_OCO3");
Base.EURGBP_DOWN_S2_OCO3Sets4.Clear();
EURGBP_OCO3S4_DOWN_S2 = 0;
break;
}
int EURGBP_OCO3S5_DOWN_S2 = 0;
for (; EURGBP_OCO3S5_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets5.Count; EURGBP_OCO3S5_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets5[EURGBP_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO3Sets5[EURGBP_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_5__Time out_OCO3");
Base.EURGBP_DOWN_S2_OCO3Sets5.Clear();
EURGBP_OCO3S5_DOWN_S2 = 0;
break;
}
int EURGBP_OCO3S6_DOWN_S2 = 0;
for (; EURGBP_OCO3S6_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO3Sets6.Count; EURGBP_OCO3S6_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO3Sets6[EURGBP_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO3Sets6[EURGBP_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_6__Time out_OCO3");
Base.EURGBP_DOWN_S2_OCO3Sets6.Clear();
EURGBP_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURGBP_OCO4_EO1_DOWN_S2)
Base.EURGBP_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO2_DOWN_S2)
Base.EURGBP_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO3_DOWN_S2)
Base.EURGBP_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO4_DOWN_S2)
Base.EURGBP_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO5_DOWN_S2)
Base.EURGBP_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.EURGBP_OCO4_EO6_DOWN_S2)
Base.EURGBP_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURGBP_DOWN_S2_OCO_DELAY_7DAY))
{
int EURGBP_OCO4S1_DOWN_S2 = 0;
for (; EURGBP_OCO4S1_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets1.Count; EURGBP_OCO4S1_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets1[EURGBP_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO4Sets1[EURGBP_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_1__Time out_OCO4");
Base.EURGBP_DOWN_S2_OCO4Sets1.Clear();
EURGBP_OCO4S1_DOWN_S2 = 0;
break;
}
int EURGBP_OCO4S2_DOWN_S2 = 0;
for (; EURGBP_OCO4S2_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets2.Count; EURGBP_OCO4S2_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets2[EURGBP_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO4Sets2[EURGBP_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_2__Time out_OCO4");
Base.EURGBP_DOWN_S2_OCO4Sets2.Clear();
EURGBP_OCO4S2_DOWN_S2 = 0;
break;
}
int EURGBP_OCO4S3_DOWN_S2 = 0;
for (; EURGBP_OCO4S3_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets3.Count; EURGBP_OCO4S3_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets3[EURGBP_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO4Sets3[EURGBP_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_3__Time out_OCO4");
Base.EURGBP_DOWN_S2_OCO4Sets3.Clear();
EURGBP_OCO4S3_DOWN_S2 = 0;
break;
}
int EURGBP_OCO4S4_DOWN_S2 = 0;
for (; EURGBP_OCO4S4_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets4.Count; EURGBP_OCO4S4_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets4[EURGBP_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO4Sets4[EURGBP_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_4__Time out_OCO4");
Base.EURGBP_DOWN_S2_OCO4Sets4.Clear();
EURGBP_OCO4S4_DOWN_S2 = 0;
break;
}
int EURGBP_OCO4S5_DOWN_S2 = 0;
for (; EURGBP_OCO4S5_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets5.Count; EURGBP_OCO4S5_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets5[EURGBP_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO4Sets5[EURGBP_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_5__Time out_OCO4");
Base.EURGBP_DOWN_S2_OCO4Sets5.Clear();
EURGBP_OCO4S5_DOWN_S2 = 0;
break;
}
int EURGBP_OCO4S6_DOWN_S2 = 0;
for (; EURGBP_OCO4S6_DOWN_S2 < Base.EURGBP_DOWN_S2_OCO4Sets6.Count; EURGBP_OCO4S6_DOWN_S2++)
if (Base.EURGBP_DOWN_S2_OCO4Sets6[EURGBP_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.EURGBP_DOWN_S2_OCO4Sets6[EURGBP_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURGBP", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURGBP", order.Quantity, false, "EURGBP_DOWN_S2_Entry_6__Time out_OCO4");
Base.EURGBP_DOWN_S2_OCO4Sets6.Clear();
EURGBP_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURGBP_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURGBP_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURGBP_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURGBP_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURGBP_DOWN_S2 = DOWM_EURGBP_DOWN_S2 || DOWT_EURGBP_DOWN_S2 || DOWW_EURGBP_DOWN_S2 || DOWTH_EURGBP_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURGBP"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURGBP_OCO1_DOWN_S2_IsReady == false ||
Base.EURGBP_OCO2_DOWN_S2_IsReady == false ||
Base.EURGBP_OCO3_DOWN_S2_IsReady == false ||
Base.EURGBP_OCO4_DOWN_S2_IsReady == false)
{
Base.EURGBP_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.EURGBP_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.EURGBP_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.EURGBP_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURGBP_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.EURGBP_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.EURGBP_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.EURGBP_OCO4_DOWN_S2_Monthly_IsReady = true;
}
EURGBP_Signal_Condition_DOWN_S2 =
(
pricesM_BID_High[0] - pricesM_BID_Open[0] > prices_BID_Close[0] * 0.00001m &&
pricesM_BID_High[1] - pricesM_BID_Open[1] > prices_BID_Close[0] * 0.00001m &&
pricesM_ASK_Open[0] - pricesM_BID_Close[0] > prices_BID_Close[0] * 0.0001m &&
pricesM_ASK_Open[1] - pricesM_BID_Close[1] > prices_BID_Close[0] * 0.01m &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.001m
);
EURGBP_DOWN_S2_SL = 0.02m;
EURGBP_DOWN_S2_TP1 = 0.0025m;
EURGBP_DOWN_S2_TP2 = EURGBP_DOWN_S2_SL * 0;
EURGBP_DOWN_S2_TP3 = EURGBP_DOWN_S2_SL * 0;
EURGBP_DOWN_S2_TP4 = EURGBP_DOWN_S2_SL * 0;
EURGBP_DOWN_S2_TP5 = EURGBP_DOWN_S2_SL * 0;
EURGBP_DOWN_S2_TP6 = EURGBP_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
EURGBP_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURGBP_quantity_SL_DOWN_S2 = EURGBP_quantity_DOWN_S2;
EURGBP_quantity_TP1_DOWN_S2 = (int)Math.Floor(EURGBP_quantity_DOWN_S2 * 1m);
EURGBP_quantity_TP2_DOWN_S2 = (int)Math.Floor(EURGBP_quantity_TP1_DOWN_S2 * 0m);
EURGBP_quantity_TP3_DOWN_S2 = (int)Math.Floor(EURGBP_quantity_TP2_DOWN_S2 * 0m);
EURGBP_quantity_TP4_DOWN_S2 = (int)Math.Floor(EURGBP_quantity_TP3_DOWN_S2 * 0m);
EURGBP_quantity_TP5_DOWN_S2 = (int)Math.Floor(EURGBP_quantity_TP4_DOWN_S2 * 0m);
EURGBP_quantity_TP6_DOWN_S2 = (int)Math.Floor(EURGBP_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (EURGBP_Signal_Condition_DOWN_S2 &&
DOWR_EURGBP_DOWN_S2 &&
Base.EURGBP_OCO1_DOWN_S2_IsReady == true &&
Base.EURGBP_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.EURGBP_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP1_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP1_OCO1");
Base.EURGBP_OCO1_EO1_DOWN_S2 = false;
Base.EURGBP_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP2_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP2_OCO1");
Base.EURGBP_OCO1_EO2_DOWN_S2 = false;
Base.EURGBP_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP3_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP3_OCO1");
Base.EURGBP_OCO1_EO3_DOWN_S2 = false;
Base.EURGBP_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP4_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP4_OCO1");
Base.EURGBP_OCO1_EO4_DOWN_S2 = false;
Base.EURGBP_OCO1_DOWN_S2_IsReady = false;
if (Base.EURGBP_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (EURGBP_Signal_Condition_DOWN_S2 &&
DOWR_EURGBP_DOWN_S2 &&
Base.EURGBP_OCO2_DOWN_S2_IsReady == true &&
Base.EURGBP_OCO1_DOWN_S2_IsReady == false &&
Base.EURGBP_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.EURGBP_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP1_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP1_OCO2");
Base.EURGBP_OCO2_EO1_DOWN_S2 = false;
Base.EURGBP_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP2_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP2_OCO2");
Base.EURGBP_OCO2_EO2_DOWN_S2 = false;
Base.EURGBP_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP3_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP3_OCO2");
Base.EURGBP_OCO2_EO3_DOWN_S2 = false;
Base.EURGBP_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP4_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP4_OCO2");
Base.EURGBP_OCO2_EO4_DOWN_S2 = false;
Base.EURGBP_OCO2_DOWN_S2_IsReady = false;
if (Base.EURGBP_OCO2_DOWN_S2_IsReady == false && Base.EURGBP_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (EURGBP_Signal_Condition_DOWN_S2 &&
DOWR_EURGBP_DOWN_S2 &&
Base.EURGBP_OCO3_DOWN_S2_IsReady == true &&
Base.EURGBP_OCO1_DOWN_S2_IsReady == false &&
Base.EURGBP_OCO2_DOWN_S2_IsReady == false &&
Base.EURGBP_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.EURGBP_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP1_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP1_OCO3");
Base.EURGBP_OCO3_EO1_DOWN_S2 = false;
Base.EURGBP_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP2_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP2_OCO3");
Base.EURGBP_OCO3_EO2_DOWN_S2 = false;
Base.EURGBP_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP3_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP3_OCO3");
Base.EURGBP_OCO3_EO3_DOWN_S2 = false;
Base.EURGBP_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP4_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP4_OCO3");
Base.EURGBP_OCO3_EO4_DOWN_S2 = false;
Base.EURGBP_OCO3_DOWN_S2_IsReady = false;
if (Base.EURGBP_OCO3_DOWN_S2_IsReady == false && Base.EURGBP_OCO2_DOWN_S2_IsReady == false && Base.EURGBP_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (EURGBP_Signal_Condition_DOWN_S2 &&
DOWR_EURGBP_DOWN_S2 &&
Base.EURGBP_OCO4_DOWN_S2_IsReady == true &&
Base.EURGBP_OCO1_DOWN_S2_IsReady == false &&
Base.EURGBP_OCO2_DOWN_S2_IsReady == false &&
Base.EURGBP_OCO3_DOWN_S2_IsReady == false &&
Base.EURGBP_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.EURGBP_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP1_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP1_OCO4");
Base.EURGBP_OCO4_EO1_DOWN_S2 = false;
Base.EURGBP_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP2_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP2_OCO4");
Base.EURGBP_OCO4_EO2_DOWN_S2 = false;
Base.EURGBP_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP3_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP3_OCO4");
Base.EURGBP_OCO4_EO3_DOWN_S2 = false;
Base.EURGBP_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURGBP_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURGBP_quantity_TP4_DOWN_S2, false,"EURGBP_DOWN_S2_Entry_TP4_OCO4");
Base.EURGBP_OCO4_EO4_DOWN_S2 = false;
Base.EURGBP_OCO4_DOWN_S2_IsReady = false;
if (Base.EURGBP_OCO4_DOWN_S2_IsReady == false && Base.EURGBP_OCO3_DOWN_S2_IsReady == false && Base.EURGBP_OCO2_DOWN_S2_IsReady == false && Base.EURGBP_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURNZD_UP_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURNZD_UP_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURNZD_UP_S2_OCO1")))
{
Base.EURNZD_OCO1_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURNZD_UP_S2_OCO2")))
{
Base.EURNZD_OCO2_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURNZD_UP_S2_OCO3")))
{
Base.EURNZD_OCO3_UP_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURNZD_UP_S2_OCO4")))
{
Base.EURNZD_OCO4_UP_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURNZD_UP_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURNZD_OCO1_EO1_UP_S2)
Base.EURNZD_OCO1_EO1_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO2_UP_S2)
Base.EURNZD_OCO1_EO2_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO3_UP_S2)
Base.EURNZD_OCO1_EO3_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO4_UP_S2)
Base.EURNZD_OCO1_EO4_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO5_UP_S2)
Base.EURNZD_OCO1_EO5_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO1_EO6_UP_S2)
Base.EURNZD_OCO1_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURNZD_UP_S2_OCO_DELAY_7DAY))
{
int EURNZD_OCO1S1_UP_S2 = 0;
for (; EURNZD_OCO1S1_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets1.Count; EURNZD_OCO1S1_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets1[EURNZD_OCO1S1_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO1Sets1[EURNZD_OCO1S1_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_1__Time out_OCO1");
Base.EURNZD_UP_S2_OCO1Sets1.Clear();
EURNZD_OCO1S1_UP_S2 = 0;
break;
}
int EURNZD_OCO1S2_UP_S2 = 0;
for (; EURNZD_OCO1S2_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets2.Count; EURNZD_OCO1S2_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets2[EURNZD_OCO1S2_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO1Sets2[EURNZD_OCO1S2_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_2__Time out_OCO1");
Base.EURNZD_UP_S2_OCO1Sets2.Clear();
EURNZD_OCO1S2_UP_S2 = 0;
break;
}
int EURNZD_OCO1S3_UP_S2 = 0;
for (; EURNZD_OCO1S3_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets3.Count; EURNZD_OCO1S3_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets3[EURNZD_OCO1S3_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO1Sets3[EURNZD_OCO1S3_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_3__Time out_OCO1");
Base.EURNZD_UP_S2_OCO1Sets3.Clear();
EURNZD_OCO1S3_UP_S2 = 0;
break;
}
int EURNZD_OCO1S4_UP_S2 = 0;
for (; EURNZD_OCO1S4_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets4.Count; EURNZD_OCO1S4_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets4[EURNZD_OCO1S4_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO1Sets4[EURNZD_OCO1S4_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_4__Time out_OCO1");
Base.EURNZD_UP_S2_OCO1Sets4.Clear();
EURNZD_OCO1S4_UP_S2 = 0;
break;
}
int EURNZD_OCO1S5_UP_S2 = 0;
for (; EURNZD_OCO1S5_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets5.Count; EURNZD_OCO1S5_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets5[EURNZD_OCO1S5_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO1Sets5[EURNZD_OCO1S5_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_5__Time out_OCO1");
Base.EURNZD_UP_S2_OCO1Sets5.Clear();
EURNZD_OCO1S5_UP_S2 = 0;
break;
}
int EURNZD_OCO1S6_UP_S2 = 0;
for (; EURNZD_OCO1S6_UP_S2 < Base.EURNZD_UP_S2_OCO1Sets6.Count; EURNZD_OCO1S6_UP_S2++)
if (Base.EURNZD_UP_S2_OCO1Sets6[EURNZD_OCO1S6_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO1Sets6[EURNZD_OCO1S6_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_6__Time out_OCO1");
Base.EURNZD_UP_S2_OCO1Sets6.Clear();
EURNZD_OCO1S6_UP_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO2_EO1_UP_S2)
Base.EURNZD_OCO2_EO1_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO2_UP_S2)
Base.EURNZD_OCO2_EO2_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO3_UP_S2)
Base.EURNZD_OCO2_EO3_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO4_UP_S2)
Base.EURNZD_OCO2_EO4_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO5_UP_S2)
Base.EURNZD_OCO2_EO5_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO2_EO6_UP_S2)
Base.EURNZD_OCO2_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURNZD_UP_S2_OCO_DELAY_7DAY))
{
int EURNZD_OCO2S1_UP_S2 = 0;
for (; EURNZD_OCO2S1_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets1.Count; EURNZD_OCO2S1_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets1[EURNZD_OCO2S1_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO2Sets1[EURNZD_OCO2S1_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_1__Time out_OCO2");
Base.EURNZD_UP_S2_OCO2Sets1.Clear();
EURNZD_OCO2S1_UP_S2 = 0;
break;
}
int EURNZD_OCO2S2_UP_S2 = 0;
for (; EURNZD_OCO2S2_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets2.Count; EURNZD_OCO2S2_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets2[EURNZD_OCO2S2_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO2Sets2[EURNZD_OCO2S2_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_2__Time out_OCO2");
Base.EURNZD_UP_S2_OCO2Sets2.Clear();
EURNZD_OCO2S2_UP_S2 = 0;
break;
}
int EURNZD_OCO2S3_UP_S2 = 0;
for (; EURNZD_OCO2S3_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets3.Count; EURNZD_OCO2S3_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets3[EURNZD_OCO2S3_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO2Sets3[EURNZD_OCO2S3_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_3__Time out_OCO2");
Base.EURNZD_UP_S2_OCO2Sets3.Clear();
EURNZD_OCO2S3_UP_S2 = 0;
break;
}
int EURNZD_OCO2S4_UP_S2 = 0;
for (; EURNZD_OCO2S4_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets4.Count; EURNZD_OCO2S4_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets4[EURNZD_OCO2S4_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO2Sets4[EURNZD_OCO2S4_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_4__Time out_OCO2");
Base.EURNZD_UP_S2_OCO2Sets4.Clear();
EURNZD_OCO2S4_UP_S2 = 0;
break;
}
int EURNZD_OCO2S5_UP_S2 = 0;
for (; EURNZD_OCO2S5_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets5.Count; EURNZD_OCO2S5_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets5[EURNZD_OCO2S5_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO2Sets5[EURNZD_OCO2S5_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_5__Time out_OCO2");
Base.EURNZD_UP_S2_OCO2Sets5.Clear();
EURNZD_OCO2S5_UP_S2 = 0;
break;
}
int EURNZD_OCO2S6_UP_S2 = 0;
for (; EURNZD_OCO2S6_UP_S2 < Base.EURNZD_UP_S2_OCO2Sets6.Count; EURNZD_OCO2S6_UP_S2++)
if (Base.EURNZD_UP_S2_OCO2Sets6[EURNZD_OCO2S6_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO2Sets6[EURNZD_OCO2S6_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_6__Time out_OCO2");
Base.EURNZD_UP_S2_OCO2Sets6.Clear();
EURNZD_OCO2S6_UP_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO3_EO1_UP_S2)
Base.EURNZD_OCO3_EO1_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO2_UP_S2)
Base.EURNZD_OCO3_EO2_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO3_UP_S2)
Base.EURNZD_OCO3_EO3_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO4_UP_S2)
Base.EURNZD_OCO3_EO4_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO5_UP_S2)
Base.EURNZD_OCO3_EO5_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO3_EO6_UP_S2)
Base.EURNZD_OCO3_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURNZD_UP_S2_OCO_DELAY_7DAY))
{
int EURNZD_OCO3S1_UP_S2 = 0;
for (; EURNZD_OCO3S1_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets1.Count; EURNZD_OCO3S1_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets1[EURNZD_OCO3S1_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO3Sets1[EURNZD_OCO3S1_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_1__Time out_OCO3");
Base.EURNZD_UP_S2_OCO3Sets1.Clear();
EURNZD_OCO3S1_UP_S2 = 0;
break;
}
int EURNZD_OCO3S2_UP_S2 = 0;
for (; EURNZD_OCO3S2_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets2.Count; EURNZD_OCO3S2_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets2[EURNZD_OCO3S2_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO3Sets2[EURNZD_OCO3S2_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_2__Time out_OCO3");
Base.EURNZD_UP_S2_OCO3Sets2.Clear();
EURNZD_OCO3S2_UP_S2 = 0;
break;
}
int EURNZD_OCO3S3_UP_S2 = 0;
for (; EURNZD_OCO3S3_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets3.Count; EURNZD_OCO3S3_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets3[EURNZD_OCO3S3_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO3Sets3[EURNZD_OCO3S3_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_3__Time out_OCO3");
Base.EURNZD_UP_S2_OCO3Sets3.Clear();
EURNZD_OCO3S3_UP_S2 = 0;
break;
}
int EURNZD_OCO3S4_UP_S2 = 0;
for (; EURNZD_OCO3S4_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets4.Count; EURNZD_OCO3S4_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets4[EURNZD_OCO3S4_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO3Sets4[EURNZD_OCO3S4_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_4__Time out_OCO3");
Base.EURNZD_UP_S2_OCO3Sets4.Clear();
EURNZD_OCO3S4_UP_S2 = 0;
break;
}
int EURNZD_OCO3S5_UP_S2 = 0;
for (; EURNZD_OCO3S5_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets5.Count; EURNZD_OCO3S5_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets5[EURNZD_OCO3S5_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO3Sets5[EURNZD_OCO3S5_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_5__Time out_OCO3");
Base.EURNZD_UP_S2_OCO3Sets5.Clear();
EURNZD_OCO3S5_UP_S2 = 0;
break;
}
int EURNZD_OCO3S6_UP_S2 = 0;
for (; EURNZD_OCO3S6_UP_S2 < Base.EURNZD_UP_S2_OCO3Sets6.Count; EURNZD_OCO3S6_UP_S2++)
if (Base.EURNZD_UP_S2_OCO3Sets6[EURNZD_OCO3S6_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO3Sets6[EURNZD_OCO3S6_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_6__Time out_OCO3");
Base.EURNZD_UP_S2_OCO3Sets6.Clear();
EURNZD_OCO3S6_UP_S2 = 0;
break;
}
}
if (Base.EURNZD_OCO4_EO1_UP_S2)
Base.EURNZD_OCO4_EO1_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO2_UP_S2)
Base.EURNZD_OCO4_EO2_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO3_UP_S2)
Base.EURNZD_OCO4_EO3_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO4_UP_S2)
Base.EURNZD_OCO4_EO4_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO5_UP_S2)
Base.EURNZD_OCO4_EO5_UP_S2_ID = order.Id;
if (Base.EURNZD_OCO4_EO6_UP_S2)
Base.EURNZD_OCO4_EO6_UP_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURNZD_UP_S2_OCO_DELAY_7DAY))
{
int EURNZD_OCO4S1_UP_S2 = 0;
for (; EURNZD_OCO4S1_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets1.Count; EURNZD_OCO4S1_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets1[EURNZD_OCO4S1_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO4Sets1[EURNZD_OCO4S1_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_1__Time out_OCO4");
Base.EURNZD_UP_S2_OCO4Sets1.Clear();
EURNZD_OCO4S1_UP_S2 = 0;
break;
}
int EURNZD_OCO4S2_UP_S2 = 0;
for (; EURNZD_OCO4S2_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets2.Count; EURNZD_OCO4S2_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets2[EURNZD_OCO4S2_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO4Sets2[EURNZD_OCO4S2_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_2__Time out_OCO4");
Base.EURNZD_UP_S2_OCO4Sets2.Clear();
EURNZD_OCO4S2_UP_S2 = 0;
break;
}
int EURNZD_OCO4S3_UP_S2 = 0;
for (; EURNZD_OCO4S3_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets3.Count; EURNZD_OCO4S3_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets3[EURNZD_OCO4S3_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO4Sets3[EURNZD_OCO4S3_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_3__Time out_OCO4");
Base.EURNZD_UP_S2_OCO4Sets3.Clear();
EURNZD_OCO4S3_UP_S2 = 0;
break;
}
int EURNZD_OCO4S4_UP_S2 = 0;
for (; EURNZD_OCO4S4_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets4.Count; EURNZD_OCO4S4_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets4[EURNZD_OCO4S4_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO4Sets4[EURNZD_OCO4S4_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_4__Time out_OCO4");
Base.EURNZD_UP_S2_OCO4Sets4.Clear();
EURNZD_OCO4S4_UP_S2 = 0;
break;
}
int EURNZD_OCO4S5_UP_S2 = 0;
for (; EURNZD_OCO4S5_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets5.Count; EURNZD_OCO4S5_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets5[EURNZD_OCO4S5_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO4Sets5[EURNZD_OCO4S5_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_5__Time out_OCO4");
Base.EURNZD_UP_S2_OCO4Sets5.Clear();
EURNZD_OCO4S5_UP_S2 = 0;
break;
}
int EURNZD_OCO4S6_UP_S2 = 0;
for (; EURNZD_OCO4S6_UP_S2 < Base.EURNZD_UP_S2_OCO4Sets6.Count; EURNZD_OCO4S6_UP_S2++)
if (Base.EURNZD_UP_S2_OCO4Sets6[EURNZD_OCO4S6_UP_S2].InOrders(order.Id))
{
Base.EURNZD_UP_S2_OCO4Sets6[EURNZD_OCO4S6_UP_S2].TimeOut();
yield return Insight.Price("EURNZD", TimeSpan.FromMilliseconds(1001), InsightDirection.Down);
algorithm.MarketOrder("EURNZD", order.Quantity, false, "EURNZD_UP_S2_Entry_6__Time out_OCO4");
Base.EURNZD_UP_S2_OCO4Sets6.Clear();
EURNZD_OCO4S6_UP_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURNZD_UP_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURNZD_UP_S2 = DOWM_EURNZD_UP_S2 || DOWT_EURNZD_UP_S2 || DOWW_EURNZD_UP_S2 || DOWTH_EURNZD_UP_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURNZD"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURNZD_OCO1_UP_S2_IsReady == false ||
Base.EURNZD_OCO2_UP_S2_IsReady == false ||
Base.EURNZD_OCO3_UP_S2_IsReady == false ||
Base.EURNZD_OCO4_UP_S2_IsReady == false)
{
Base.EURNZD_OCO1_UP_S2_Monthly_IsReady = false;
Base.EURNZD_OCO2_UP_S2_Monthly_IsReady = false;
Base.EURNZD_OCO3_UP_S2_Monthly_IsReady = false;
Base.EURNZD_OCO4_UP_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURNZD_OCO1_UP_S2_Monthly_IsReady = true;
Base.EURNZD_OCO2_UP_S2_Monthly_IsReady = true;
Base.EURNZD_OCO3_UP_S2_Monthly_IsReady = true;
Base.EURNZD_OCO4_UP_S2_Monthly_IsReady = true;
}
EURNZD_Signal_Condition_UP_1 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.382m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURNZD_Signal_Condition_UP_2 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.5m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
EURNZD_Signal_Condition_UP_3 =
(
pricesM_BID_Close[0] - pricesM_ASK_Open[0] > Base.Oth_Min_Size &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low > 0 &&
SY1D.BQ[7].Ask.High - SY1D.BQ[0].Bid.Low < Base.Oth_Min_Size_bs
&&
(
prices_BID_Low[7] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
prices_BID_Low[0] < pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*1.618m) &&
(pricesM_BID_Low[0] - ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*0.382m)) - prices_BID_Low[0] > Base.Oth_Min_Size_bs
)
&&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < Base.Oth_Min_SPRD
);
if (EURNZD_Signal_Condition_UP_1)
{
EURNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURNZD_Signal_Condition_UP_2)
{
EURNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURNZD_Signal_Condition_UP_3)
{
EURNZD_UP_S2_SL = ((pricesM_ASK_High[0] - pricesM_BID_Low[0])*Base.Coef_SL);
}
if (EURNZD_Signal_Condition_UP_1)
{
EURNZD_UP_S2_TP1 = Base.Oth_TP_1 ;
}
if (EURNZD_Signal_Condition_UP_2)
{
EURNZD_UP_S2_TP1 = Base.Oth_TP_2 ;
}
if (EURNZD_Signal_Condition_UP_3)
{
EURNZD_UP_S2_TP1 = Base.Oth_TP_3 ;
}
EURNZD_UP_S2_TP2 = EURNZD_UP_S2_SL * 0;
EURNZD_UP_S2_TP3 = EURNZD_UP_S2_SL * 0;
EURNZD_UP_S2_TP4 = EURNZD_UP_S2_SL * 0;
EURNZD_UP_S2_TP5 = EURNZD_UP_S2_SL * 0;
EURNZD_UP_S2_TP6 = EURNZD_UP_S2_SL * 0;
if (coefIntS2 != 0)
{
EURNZD_quantity_UP_S2 = (int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURNZD_quantity_SL_UP_S2 = EURNZD_quantity_UP_S2;
EURNZD_quantity_TP1_UP_S2 = (int)Math.Floor(EURNZD_quantity_UP_S2 * 1m);
EURNZD_quantity_TP2_UP_S2 = (int)Math.Floor(EURNZD_quantity_TP1_UP_S2 * 0m);
EURNZD_quantity_TP3_UP_S2 = (int)Math.Floor(EURNZD_quantity_TP2_UP_S2 * 0m);
EURNZD_quantity_TP4_UP_S2 = (int)Math.Floor(EURNZD_quantity_TP3_UP_S2 * 0m);
EURNZD_quantity_TP5_UP_S2 = (int)Math.Floor(EURNZD_quantity_TP4_UP_S2 * 0m);
EURNZD_quantity_TP6_UP_S2 = (int)Math.Floor(EURNZD_quantity_TP5_UP_S2 * 0m);
}
oco1:
if ((EURNZD_Signal_Condition_UP_1 || EURNZD_Signal_Condition_UP_2 || EURNZD_Signal_Condition_UP_3) &&
DOWR_EURNZD_UP_S2 &&
Base.EURNZD_OCO1_UP_S2_IsReady == true &&
Base.EURNZD_OCO1_UP_S2_Monthly_IsReady == true)
{
Base.EURNZD_OCO1_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO1_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP1_UP_S2, false,"EURNZD_UP_S2_Entry_TP1_OCO1");
Base.EURNZD_OCO1_EO1_UP_S2 = false;
Base.EURNZD_OCO1_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO1_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP2_UP_S2, false,"EURNZD_UP_S2_Entry_TP2_OCO1");
Base.EURNZD_OCO1_EO2_UP_S2 = false;
Base.EURNZD_OCO1_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO1_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP3_UP_S2, false,"EURNZD_UP_S2_Entry_TP3_OCO1");
Base.EURNZD_OCO1_EO3_UP_S2 = false;
Base.EURNZD_OCO1_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO1_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP4_UP_S2, false,"EURNZD_UP_S2_Entry_TP4_OCO1");
Base.EURNZD_OCO1_EO4_UP_S2 = false;
Base.EURNZD_OCO1_UP_S2_IsReady = false;
if (Base.EURNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco2:
if ((EURNZD_Signal_Condition_UP_1 || EURNZD_Signal_Condition_UP_2 || EURNZD_Signal_Condition_UP_3) &&
DOWR_EURNZD_UP_S2 &&
Base.EURNZD_OCO1_UP_S2_IsReady == false &&
Base.EURNZD_OCO2_UP_S2_IsReady == true &&
Base.EURNZD_OCO2_UP_S2_Monthly_IsReady == true)
{
Base.EURNZD_OCO2_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO2_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP1_UP_S2, false,"EURNZD_UP_S2_Entry_TP1_OCO2");
Base.EURNZD_OCO2_EO1_UP_S2 = false;
Base.EURNZD_OCO2_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO2_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP2_UP_S2, false,"EURNZD_UP_S2_Entry_TP2_OCO2");
Base.EURNZD_OCO2_EO2_UP_S2 = false;
Base.EURNZD_OCO2_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO2_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP3_UP_S2, false,"EURNZD_UP_S2_Entry_TP3_OCO2");
Base.EURNZD_OCO2_EO3_UP_S2 = false;
Base.EURNZD_OCO2_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO2_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP4_UP_S2, false,"EURNZD_UP_S2_Entry_TP4_OCO2");
Base.EURNZD_OCO2_EO4_UP_S2 = false;
Base.EURNZD_OCO2_UP_S2_IsReady = false;
if (Base.EURNZD_OCO2_UP_S2_IsReady == false && Base.EURNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco3:
if ((EURNZD_Signal_Condition_UP_1 || EURNZD_Signal_Condition_UP_2 || EURNZD_Signal_Condition_UP_3) &&
DOWR_EURNZD_UP_S2 &&
Base.EURNZD_OCO1_UP_S2_IsReady == false &&
Base.EURNZD_OCO2_UP_S2_IsReady == false &&
Base.EURNZD_OCO3_UP_S2_IsReady == true &&
Base.EURNZD_OCO3_UP_S2_Monthly_IsReady == true)
{
Base.EURNZD_OCO3_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO3_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP1_UP_S2, false,"EURNZD_UP_S2_Entry_TP1_OCO3");
Base.EURNZD_OCO3_EO1_UP_S2 = false;
Base.EURNZD_OCO3_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO3_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP2_UP_S2, false,"EURNZD_UP_S2_Entry_TP2_OCO3");
Base.EURNZD_OCO3_EO2_UP_S2 = false;
Base.EURNZD_OCO3_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO3_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP3_UP_S2, false,"EURNZD_UP_S2_Entry_TP3_OCO3");
Base.EURNZD_OCO3_EO3_UP_S2 = false;
Base.EURNZD_OCO3_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO3_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP4_UP_S2, false,"EURNZD_UP_S2_Entry_TP4_OCO3");
Base.EURNZD_OCO3_EO4_UP_S2 = false;
Base.EURNZD_OCO3_UP_S2_IsReady = false;
if (Base.EURNZD_OCO3_UP_S2_IsReady == false && Base.EURNZD_OCO2_UP_S2_IsReady == false && Base.EURNZD_OCO1_UP_S2_IsReady == false)
break;
}
oco4:
if ((EURNZD_Signal_Condition_UP_1 || EURNZD_Signal_Condition_UP_2 || EURNZD_Signal_Condition_UP_3) &&
DOWR_EURNZD_UP_S2 &&
Base.EURNZD_OCO1_UP_S2_IsReady == false &&
Base.EURNZD_OCO2_UP_S2_IsReady == false &&
Base.EURNZD_OCO3_UP_S2_IsReady == false &&
Base.EURNZD_OCO4_UP_S2_IsReady == true &&
Base.EURNZD_OCO4_UP_S2_Monthly_IsReady == true)
{
Base.EURNZD_OCO4_EO1_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO4_MO1_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP1_UP_S2, false,"EURNZD_UP_S2_Entry_TP1_OCO4");
Base.EURNZD_OCO4_EO1_UP_S2 = false;
Base.EURNZD_OCO4_EO2_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO4_MO2_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP2_UP_S2, false,"EURNZD_UP_S2_Entry_TP2_OCO4");
Base.EURNZD_OCO4_EO2_UP_S2 = false;
Base.EURNZD_OCO4_EO3_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO4_MO3_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP3_UP_S2, false,"EURNZD_UP_S2_Entry_TP3_OCO4");
Base.EURNZD_OCO4_EO3_UP_S2 = false;
Base.EURNZD_OCO4_EO4_UP_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Up, null, null, null, 1);
EURNZD_OCO4_MO4_UP_S2 = algorithm.MarketOrder(SY1D.Symbol, EURNZD_quantity_TP4_UP_S2, false,"EURNZD_UP_S2_Entry_TP4_OCO4");
Base.EURNZD_OCO4_EO4_UP_S2 = false;
Base.EURNZD_OCO4_UP_S2_IsReady = false;
if (Base.EURNZD_OCO4_UP_S2_IsReady == false && Base.EURNZD_OCO3_UP_S2_IsReady == false && Base.EURNZD_OCO2_UP_S2_IsReady == false && Base.EURNZD_OCO1_UP_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using QuantConnect.Algorithm.Framework.Alphas;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Portfolio;
using QuantConnect.Algorithm.Framework.Selection;
namespace QuantConnect
{
public partial class Base : QCAlgorithm
{
public static TimeSpan BP1m = TimeSpan.FromMinutes(1);
public static TimeSpan BP1M = TimeSpan.FromDays(1);
public static int RLLWS = 8;
public static int RLLWSM = 8;
public static int RLLWS_1440 = 1440;
public static int RLLWS_720 = 720;
public static int RLLWS_360 = 360;
public static int RLLWS_60 = 60;
public static int RLLWS_15 = 15;
public static decimal Yen_Min_SPRD = 0.01m;
public static decimal Oth_Min_SPRD = 0.001m;
public static decimal Yen_Min_Size = 0.5m;
public static decimal Oth_Min_Size = 0.005m;
public static decimal Coef_SL = 0.382m;
public static decimal Yen_Min_Size_bs = 0.05m;
public static decimal Oth_Min_Size_bs = 0.001m;
public static decimal Yen_TP_1 = 0.05m;
public static decimal Yen_TP_2 = 0.05m;
public static decimal Yen_TP_3 = 0.05m;
public static decimal Oth_TP_1 = 0.0005m;
public static decimal Oth_TP_2 = 0.0005m;
public static decimal Oth_TP_3 = 0.0005m;
public static decimal Static_Yen_TP_1 = 1m;
public static decimal Static_Yen_TP_2 = 1m;
public static decimal Static_Yen_TP_3 = 1m;
public static decimal Static_Oth_TP_1 = 1m;
public static decimal Static_Oth_TP_2 = 1m;
public static decimal Static_Oth_TP_3 = 1m;
public static int SymbolCount = 0;
public static Dictionary<string, SY1D> D1D = new Dictionary<string, SY1D>();
private EURUSD_UP_S2_OnOrderEvent eurusd_UP_S2_OnOrderEvent;
private EURUSD_DOWN_S2_OnOrderEvent eurusd_DOWN_S2_OnOrderEvent;
private EURGBP_UP_S2_OnOrderEvent eurgbp_UP_S2_OnOrderEvent;
private EURGBP_DOWN_S2_OnOrderEvent eurgbp_DOWN_S2_OnOrderEvent;
private EURCHF_UP_S2_OnOrderEvent eurchf_UP_S2_OnOrderEvent;
private EURCHF_DOWN_S2_OnOrderEvent eurchf_DOWN_S2_OnOrderEvent;
private EURJPY_UP_S2_OnOrderEvent eurjpy_UP_S2_OnOrderEvent;
private EURJPY_DOWN_S2_OnOrderEvent eurjpy_DOWN_S2_OnOrderEvent;
private EURCAD_UP_S2_OnOrderEvent eurcad_UP_S2_OnOrderEvent;
private EURCAD_DOWN_S2_OnOrderEvent eurcad_DOWN_S2_OnOrderEvent;
private EURAUD_UP_S2_OnOrderEvent euraud_UP_S2_OnOrderEvent;
private EURAUD_DOWN_S2_OnOrderEvent euraud_DOWN_S2_OnOrderEvent;
private EURNZD_UP_S2_OnOrderEvent eurnzd_UP_S2_OnOrderEvent;
private EURNZD_DOWN_S2_OnOrderEvent eurnzd_DOWN_S2_OnOrderEvent;
private USDJPY_UP_S2_OnOrderEvent usdjpy_UP_S2_OnOrderEvent;
private USDJPY_DOWN_S2_OnOrderEvent usdjpy_DOWN_S2_OnOrderEvent;
private USDCAD_UP_S2_OnOrderEvent usdcad_UP_S2_OnOrderEvent;
private USDCAD_DOWN_S2_OnOrderEvent usdcad_DOWN_S2_OnOrderEvent;
private USDCHF_UP_S2_OnOrderEvent usdchf_UP_S2_OnOrderEvent;
private USDCHF_DOWN_S2_OnOrderEvent usdchf_DOWN_S2_OnOrderEvent;
private GBPUSD_UP_S2_OnOrderEvent gbpusd_UP_S2_OnOrderEvent;
private GBPUSD_DOWN_S2_OnOrderEvent gbpusd_DOWN_S2_OnOrderEvent;
private GBPCHF_UP_S2_OnOrderEvent gbpchf_UP_S2_OnOrderEvent;
private GBPCHF_DOWN_S2_OnOrderEvent gbpchf_DOWN_S2_OnOrderEvent;
private GBPJPY_UP_S2_OnOrderEvent gbpjpy_UP_S2_OnOrderEvent;
private GBPJPY_DOWN_S2_OnOrderEvent gbpjpy_DOWN_S2_OnOrderEvent;
private GBPCAD_UP_S2_OnOrderEvent gbpcad_UP_S2_OnOrderEvent;
private GBPCAD_DOWN_S2_OnOrderEvent gbpcad_DOWN_S2_OnOrderEvent;
private GBPAUD_UP_S2_OnOrderEvent gbpaud_UP_S2_OnOrderEvent;
private GBPAUD_DOWN_S2_OnOrderEvent gbpaud_DOWN_S2_OnOrderEvent;
private GBPNZD_UP_S2_OnOrderEvent gbpnzd_UP_S2_OnOrderEvent;
private GBPNZD_DOWN_S2_OnOrderEvent gbpnzd_DOWN_S2_OnOrderEvent;
private CHFJPY_UP_S2_OnOrderEvent chfjpy_UP_S2_OnOrderEvent;
private CHFJPY_DOWN_S2_OnOrderEvent chfjpy_DOWN_S2_OnOrderEvent;
private CADJPY_UP_S2_OnOrderEvent cadjpy_UP_S2_OnOrderEvent;
private CADJPY_DOWN_S2_OnOrderEvent cadjpy_DOWN_S2_OnOrderEvent;
private AUDCHF_UP_S2_OnOrderEvent audchf_UP_S2_OnOrderEvent;
private AUDCHF_DOWN_S2_OnOrderEvent audchf_DOWN_S2_OnOrderEvent;
private AUDCAD_UP_S2_OnOrderEvent audcad_UP_S2_OnOrderEvent;
private AUDCAD_DOWN_S2_OnOrderEvent audcad_DOWN_S2_OnOrderEvent;
private AUDJPY_UP_S2_OnOrderEvent audjpy_UP_S2_OnOrderEvent;
private AUDJPY_DOWN_S2_OnOrderEvent audjpy_DOWN_S2_OnOrderEvent;
private AUDNZD_UP_S2_OnOrderEvent audnzd_UP_S2_OnOrderEvent;
private AUDNZD_DOWN_S2_OnOrderEvent audnzd_DOWN_S2_OnOrderEvent;
private AUDUSD_UP_S2_OnOrderEvent audusd_UP_S2_OnOrderEvent;
private AUDUSD_DOWN_S2_OnOrderEvent audusd_DOWN_S2_OnOrderEvent;
private NZDCAD_UP_S2_OnOrderEvent nzdcad_UP_S2_OnOrderEvent;
private NZDCAD_DOWN_S2_OnOrderEvent nzdcad_DOWN_S2_OnOrderEvent;
private NZDCHF_UP_S2_OnOrderEvent nzdchf_UP_S2_OnOrderEvent;
private NZDCHF_DOWN_S2_OnOrderEvent nzdchf_DOWN_S2_OnOrderEvent;
private NZDJPY_UP_S2_OnOrderEvent nzdjpy_UP_S2_OnOrderEvent;
private NZDJPY_DOWN_S2_OnOrderEvent nzdjpy_DOWN_S2_OnOrderEvent;
private NZDUSD_UP_S2_OnOrderEvent nzdusd_UP_S2_OnOrderEvent;
private NZDUSD_DOWN_S2_OnOrderEvent nzdusd_DOWN_S2_OnOrderEvent;
List<string> Pairs = new List<string>
{
"EURUSD",
"EURGBP",
"EURCHF",
"EURJPY",
"EURCAD",
"EURAUD",
"EURNZD",
"USDJPY",
"USDCAD",
"USDCHF",
"GBPUSD",
"GBPCHF",
"GBPJPY",
"GBPCAD",
"GBPAUD",
"GBPNZD",
"CHFJPY",
"CADJPY",
"AUDJPY",
"AUDUSD",
"AUDCAD",
"AUDCHF",
"AUDNZD",
"NZDJPY",
"NZDCAD",
"NZDCHF",
"NZDUSD"
};
public override void Initialize()
{
SetStartDate(2010, 10, 1);
SetEndDate(DateTime.Now);
// SetEndDate(2016, 1, 1);
SetCash(1000000);
Settings.RebalancePortfolioOnInsightChanges = false;
Settings.RebalancePortfolioOnSecurityChanges = false;
SetBrokerageModel(BrokerageName.AlphaStreams);
foreach (var symbol in Pairs)
{
var _symbol = AddForex(symbol, Resolution.Minute, Market.FXCM);
D1D.Add(symbol, new SY1D(_symbol.Symbol, BP1m, BP1M, RLLWS, RLLWSM));
}
eurusd_UP_S2_OnOrderEvent = new EURUSD_UP_S2_OnOrderEvent(this);
eurusd_DOWN_S2_OnOrderEvent = new EURUSD_DOWN_S2_OnOrderEvent(this);
eurgbp_UP_S2_OnOrderEvent = new EURGBP_UP_S2_OnOrderEvent(this);
eurgbp_DOWN_S2_OnOrderEvent = new EURGBP_DOWN_S2_OnOrderEvent(this);
eurchf_UP_S2_OnOrderEvent = new EURCHF_UP_S2_OnOrderEvent(this);
eurchf_DOWN_S2_OnOrderEvent = new EURCHF_DOWN_S2_OnOrderEvent(this);
eurjpy_UP_S2_OnOrderEvent = new EURJPY_UP_S2_OnOrderEvent(this);
eurjpy_DOWN_S2_OnOrderEvent = new EURJPY_DOWN_S2_OnOrderEvent(this);
eurcad_UP_S2_OnOrderEvent = new EURCAD_UP_S2_OnOrderEvent(this);
eurcad_DOWN_S2_OnOrderEvent = new EURCAD_DOWN_S2_OnOrderEvent(this);
euraud_UP_S2_OnOrderEvent = new EURAUD_UP_S2_OnOrderEvent(this);
euraud_DOWN_S2_OnOrderEvent = new EURAUD_DOWN_S2_OnOrderEvent(this);
eurnzd_UP_S2_OnOrderEvent = new EURNZD_UP_S2_OnOrderEvent(this);
eurnzd_DOWN_S2_OnOrderEvent = new EURNZD_DOWN_S2_OnOrderEvent(this);
usdjpy_UP_S2_OnOrderEvent = new USDJPY_UP_S2_OnOrderEvent(this);
usdjpy_DOWN_S2_OnOrderEvent = new USDJPY_DOWN_S2_OnOrderEvent(this);
usdcad_UP_S2_OnOrderEvent = new USDCAD_UP_S2_OnOrderEvent(this);
usdcad_DOWN_S2_OnOrderEvent = new USDCAD_DOWN_S2_OnOrderEvent(this);
usdchf_UP_S2_OnOrderEvent = new USDCHF_UP_S2_OnOrderEvent(this);
usdchf_DOWN_S2_OnOrderEvent = new USDCHF_DOWN_S2_OnOrderEvent(this);
gbpusd_UP_S2_OnOrderEvent = new GBPUSD_UP_S2_OnOrderEvent(this);
gbpusd_DOWN_S2_OnOrderEvent = new GBPUSD_DOWN_S2_OnOrderEvent(this);
gbpchf_UP_S2_OnOrderEvent = new GBPCHF_UP_S2_OnOrderEvent(this);
gbpchf_DOWN_S2_OnOrderEvent = new GBPCHF_DOWN_S2_OnOrderEvent(this);
gbpjpy_UP_S2_OnOrderEvent = new GBPJPY_UP_S2_OnOrderEvent(this);
gbpjpy_DOWN_S2_OnOrderEvent = new GBPJPY_DOWN_S2_OnOrderEvent(this);
gbpcad_UP_S2_OnOrderEvent = new GBPCAD_UP_S2_OnOrderEvent(this);
gbpcad_DOWN_S2_OnOrderEvent = new GBPCAD_DOWN_S2_OnOrderEvent(this);
gbpaud_UP_S2_OnOrderEvent = new GBPAUD_UP_S2_OnOrderEvent(this);
gbpaud_DOWN_S2_OnOrderEvent = new GBPAUD_DOWN_S2_OnOrderEvent(this);
gbpnzd_UP_S2_OnOrderEvent = new GBPNZD_UP_S2_OnOrderEvent(this);
gbpnzd_DOWN_S2_OnOrderEvent = new GBPNZD_DOWN_S2_OnOrderEvent(this);
chfjpy_UP_S2_OnOrderEvent = new CHFJPY_UP_S2_OnOrderEvent(this);
chfjpy_DOWN_S2_OnOrderEvent = new CHFJPY_DOWN_S2_OnOrderEvent(this);
cadjpy_UP_S2_OnOrderEvent = new CADJPY_UP_S2_OnOrderEvent(this);
cadjpy_DOWN_S2_OnOrderEvent = new CADJPY_DOWN_S2_OnOrderEvent(this);
audjpy_UP_S2_OnOrderEvent = new AUDJPY_UP_S2_OnOrderEvent(this);
audjpy_DOWN_S2_OnOrderEvent = new AUDJPY_DOWN_S2_OnOrderEvent(this);
audcad_UP_S2_OnOrderEvent = new AUDCAD_UP_S2_OnOrderEvent(this);
audcad_DOWN_S2_OnOrderEvent = new AUDCAD_DOWN_S2_OnOrderEvent(this);
audchf_UP_S2_OnOrderEvent = new AUDCHF_UP_S2_OnOrderEvent(this);
audchf_DOWN_S2_OnOrderEvent = new AUDCHF_DOWN_S2_OnOrderEvent(this);
audusd_UP_S2_OnOrderEvent = new AUDUSD_UP_S2_OnOrderEvent(this);
audusd_DOWN_S2_OnOrderEvent = new AUDUSD_DOWN_S2_OnOrderEvent(this);
audnzd_UP_S2_OnOrderEvent = new AUDNZD_UP_S2_OnOrderEvent(this);
audnzd_DOWN_S2_OnOrderEvent = new AUDNZD_DOWN_S2_OnOrderEvent(this);
nzdjpy_UP_S2_OnOrderEvent = new NZDJPY_UP_S2_OnOrderEvent(this);
nzdjpy_DOWN_S2_OnOrderEvent = new NZDJPY_DOWN_S2_OnOrderEvent(this);
nzdcad_UP_S2_OnOrderEvent = new NZDCAD_UP_S2_OnOrderEvent(this);
nzdcad_DOWN_S2_OnOrderEvent = new NZDCAD_DOWN_S2_OnOrderEvent(this);
nzdchf_UP_S2_OnOrderEvent = new NZDCHF_UP_S2_OnOrderEvent(this);
nzdchf_DOWN_S2_OnOrderEvent = new NZDCHF_DOWN_S2_OnOrderEvent(this);
nzdusd_UP_S2_OnOrderEvent = new NZDUSD_UP_S2_OnOrderEvent(this);
nzdusd_DOWN_S2_OnOrderEvent = new NZDUSD_DOWN_S2_OnOrderEvent(this);
foreach (var kvp in D1D)
{
var SY1D = kvp.Value;
var consolidator1D_Q = (IDataConsolidator)new QuoteBarConsolidator(BP1m);
var consolidator1D_QM = (IDataConsolidator)new QuoteBarConsolidator(CalendarTypee.Weekly);
consolidator1D_Q.DataConsolidated += (sender, baseData) =>
{
var bar = (QuoteBar)baseData;
SY1D.BQ.Add(bar);
};
SubscriptionManager.AddConsolidator(SY1D.Symbol, consolidator1D_Q);
consolidator1D_QM.DataConsolidated += (sender, baseData) =>
{
var bar = (QuoteBar)baseData;
SY1D.BQM.Add(bar);
};
SubscriptionManager.AddConsolidator(SY1D.Symbol, consolidator1D_QM);
}
AddAlpha(new Alpha_EURUSD_UP_S2(_EURUSD)); //ok
//AddAlpha(new Alpha_EURUSD_DOWN_S2(_EURUSD)); //ok
AddAlpha(new Alpha_EURGBP_UP_S2(_EURGBP)); //ok
//AddAlpha(new Alpha_EURGBP_DOWN_S2(_EURGBP)); //ok
AddAlpha(new Alpha_EURCHF_UP_S2(_EURCHF)); //ok
//AddAlpha(new Alpha_EURCHF_DOWN_S2(_EURCHF)); //ok
AddAlpha(new Alpha_EURJPY_UP_S2(_EURJPY)); //ok
//AddAlpha(new Alpha_EURJPY_DOWN_S2(_EURJPY)); //OK
AddAlpha(new Alpha_EURCAD_UP_S2(_EURCAD)); //ok
//AddAlpha(new Alpha_EURCAD_DOWN_S2(_EURCAD)); //ok
AddAlpha(new Alpha_EURAUD_UP_S2(_EURAUD)); //ok
//AddAlpha(new Alpha_EURAUD_DOWN_S2(_EURAUD)); //ok
AddAlpha(new Alpha_EURNZD_UP_S2(_EURNZD)); //Ok
//AddAlpha(new Alpha_EURNZD_DOWN_S2(_EURNZD)); //Ok
AddAlpha(new Alpha_USDJPY_UP_S2(_USDJPY)); //ok
//AddAlpha(new Alpha_USDJPY_DOWN_S2(_USDJPY)); //ok
AddAlpha(new Alpha_USDCAD_UP_S2(_USDCAD)); //OK
//AddAlpha(new Alpha_USDCAD_DOWN_S2(_USDCAD)); //ok
AddAlpha(new Alpha_USDCHF_UP_S2(_USDCHF)); //ok
//AddAlpha(new Alpha_USDCHF_DOWN_S2(_USDCHF)); //ok
AddAlpha(new Alpha_GBPUSD_UP_S2(_GBPUSD)); //ok
//AddAlpha(new Alpha_GBPUSD_DOWN_S2(_GBPUSD)); //ok
AddAlpha(new Alpha_GBPCHF_UP_S2(_GBPCHF)); //ok
//AddAlpha(new Alpha_GBPCHF_DOWN_S2(_GBPCHF)); //ok
AddAlpha(new Alpha_GBPJPY_UP_S2(_GBPJPY)); //ok
//AddAlpha(new Alpha_GBPJPY_DOWN_S2(_GBPJPY)); //ok
AddAlpha(new Alpha_GBPCAD_UP_S2(_GBPCAD)); //ok A baisser pour opti psr
//AddAlpha(new Alpha_GBPCAD_DOWN_S2(_GBPCAD)); //ok
AddAlpha(new Alpha_GBPAUD_UP_S2(_GBPAUD)); //ok
//AddAlpha(new Alpha_GBPAUD_DOWN_S2(_GBPAUD)); //ok
AddAlpha(new Alpha_GBPNZD_UP_S2(_GBPNZD)); //ok
//AddAlpha(new Alpha_GBPNZD_DOWN_S2(_GBPNZD)); //ok
AddAlpha(new Alpha_CHFJPY_UP_S2(_CHFJPY)); //ok
//AddAlpha(new Alpha_CHFJPY_DOWN_S2(_CHFJPY)); //ok
AddAlpha(new Alpha_CADJPY_UP_S2(_CADJPY)); //ok
//AddAlpha(new Alpha_CADJPY_DOWN_S2(_CADJPY)); //ok
AddAlpha(new Alpha_AUDJPY_UP_S2(_AUDJPY)); //ok
//AddAlpha(new Alpha_AUDJPY_DOWN_S2(_AUDJPY)); //ok
AddAlpha(new Alpha_AUDCAD_UP_S2(_AUDCAD)); //OK
//AddAlpha(new Alpha_AUDCAD_DOWN_S2(_AUDCAD)); //OK
AddAlpha(new Alpha_AUDCHF_UP_S2(_AUDCHF)); //ok
//AddAlpha(new Alpha_AUDCHF_DOWN_S2(_AUDCHF)); //ok
AddAlpha(new Alpha_AUDNZD_UP_S2(_AUDNZD)); //ok
//AddAlpha(new Alpha_AUDNZD_DOWN_S2(_AUDNZD)); //ok
AddAlpha(new Alpha_AUDUSD_UP_S2(_AUDUSD)); //ok
//AddAlpha(new Alpha_AUDUSD_DOWN_S2(_AUDUSD)); //ok
AddAlpha(new Alpha_NZDJPY_UP_S2(_NZDJPY)); //ok
//AddAlpha(new Alpha_NZDJPY_DOWN_S2(_NZDJPY)); //ok
AddAlpha(new Alpha_NZDCAD_UP_S2(_NZDCAD)); //ok
//AddAlpha(new Alpha_NZDCAD_DOWN_S2(_NZDCAD)); //ok
AddAlpha(new Alpha_NZDUSD_UP_S2(_NZDUSD)); //ok
//AddAlpha(new Alpha_NZDUSD_DOWN_S2(_NZDUSD)); //ok
AddAlpha(new Alpha_NZDCHF_UP_S2(_NZDCHF)); //ok
//AddAlpha(new Alpha_NZDCHF_DOWN_S2(_NZDCHF)); //ok
}
public override void OnOrderEvent(OrderEvent orderEvent)
{
eurusd_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurusd_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurgbp_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurgbp_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurchf_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurchf_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurjpy_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurjpy_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurcad_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurcad_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
euraud_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
euraud_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurnzd_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
eurnzd_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
usdjpy_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
usdjpy_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
usdcad_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
usdcad_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
usdchf_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
usdchf_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpusd_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpusd_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpchf_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpchf_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpjpy_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpjpy_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpcad_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpcad_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpaud_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpaud_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpnzd_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
gbpnzd_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
chfjpy_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
chfjpy_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
cadjpy_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
cadjpy_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audjpy_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audjpy_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audchf_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audchf_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audcad_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audcad_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audnzd_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audnzd_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audusd_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
audusd_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
nzdjpy_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
nzdjpy_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
nzdcad_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
nzdcad_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
nzdusd_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
nzdusd_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
nzdchf_UP_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
nzdchf_DOWN_S2_OnOrderEvent.OnOrderEvent(this, orderEvent);
}
public void OnInsightsGeneratedVerifier(IAlgorithm algorithm, GeneratedInsightsCollection insightsCollection)
{
if (
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("EURUSD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("EURGBP")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("EURCHF")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("EURJPY")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("EURCAD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("EURAUD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("EURNZD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("USDJPY")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("USDCAD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("USDCHF")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("GBPUSD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("GBPNZD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("GBPJPY")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("GBPCHF")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("GBPCAD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("GBPAUD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("CHFJPY")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("CADJPY")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("AUDJPY")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("AUDCHF")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("AUDCAD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("AUDNZD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("AUDUSD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("NZDJPY")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("NZDCHF")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("NZDUSD")) != 1 ||
insightsCollection.Insights.Count(insight => insight.Symbol.Value.Equals("NZDCAD")) != 1
)
{
throw new Exception("Unexpected insights were emitted");
}
}
}
public class SY1D
{
public readonly Symbol Symbol;
public readonly RollingWindow<QuoteBar> BQ;
public readonly RollingWindow<QuoteBar> BQM;
public readonly TimeSpan BP1m;
public readonly TimeSpan BP1M;
public SY1D(Symbol symbol, TimeSpan bP1m, TimeSpan BARM, int RLLWSM, int RLLWS)
{
Symbol = symbol;
BP1m = bP1m;
BP1M = BARM;
BQ = new RollingWindow<QuoteBar>(RLLWS);
BQM = new RollingWindow<QuoteBar>(RLLWSM);
}
public bool BQIsReady
{
get { return
BQ.IsReady &&
BQM.IsReady
;}
}
public bool WasJustUpdated(DateTime current)
{
return
BQ.Count > 0 &&
BQM.Count > 0 &&
BQ[0].Time == current - BP1m;
}
}
}namespace QuantConnect
{
public partial class Base ///ONDATA
{
public class Alpha_EURJPY_DOWN_S2 : AlphaModel
{
private readonly Symbol _symbol;
public Alpha_EURJPY_DOWN_S2(Symbol symbol)
{
_symbol = symbol;
}
public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data)
{
var open_orders = algorithm.Transactions.GetOpenOrders(x=>x.Status == OrderStatus.Submitted);
if (!open_orders.Any(x=>x.Tag.Contains("EURJPY_DOWN_S2_OCO1")))
{
Base.EURJPY_OCO1_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURJPY_DOWN_S2_OCO2")))
{
Base.EURJPY_OCO2_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURJPY_DOWN_S2_OCO3")))
{
Base.EURJPY_OCO3_DOWN_S2_IsReady = true;
}
if (!open_orders.Any(x=>x.Tag.Contains("EURJPY_DOWN_S2_OCO4")))
{
Base.EURJPY_OCO4_DOWN_S2_IsReady = true;
}
if (open_orders.Any(x=>x.Tag.Contains("EURJPY_DOWN_S2")))
{
foreach (var order in open_orders)
{
if (Base.EURJPY_OCO1_EO1_DOWN_S2)
Base.EURJPY_OCO1_EO1_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO2_DOWN_S2)
Base.EURJPY_OCO1_EO2_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO3_DOWN_S2)
Base.EURJPY_OCO1_EO3_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO4_DOWN_S2)
Base.EURJPY_OCO1_EO4_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO5_DOWN_S2)
Base.EURJPY_OCO1_EO5_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO1_EO6_DOWN_S2)
Base.EURJPY_OCO1_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int EURJPY_OCO1S1_DOWN_S2 = 0;
for (; EURJPY_OCO1S1_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets1.Count; EURJPY_OCO1S1_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets1[EURJPY_OCO1S1_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO1Sets1[EURJPY_OCO1S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_1__Time out_OCO1");
Base.EURJPY_DOWN_S2_OCO1Sets1.Clear();
EURJPY_OCO1S1_DOWN_S2 = 0;
break;
}
int EURJPY_OCO1S2_DOWN_S2 = 0;
for (; EURJPY_OCO1S2_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets2.Count; EURJPY_OCO1S2_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets2[EURJPY_OCO1S2_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO1Sets2[EURJPY_OCO1S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_2__Time out_OCO1");
Base.EURJPY_DOWN_S2_OCO1Sets2.Clear();
EURJPY_OCO1S2_DOWN_S2 = 0;
break;
}
int EURJPY_OCO1S3_DOWN_S2 = 0;
for (; EURJPY_OCO1S3_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets3.Count; EURJPY_OCO1S3_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets3[EURJPY_OCO1S3_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO1Sets3[EURJPY_OCO1S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_3__Time out_OCO1");
Base.EURJPY_DOWN_S2_OCO1Sets3.Clear();
EURJPY_OCO1S3_DOWN_S2 = 0;
break;
}
int EURJPY_OCO1S4_DOWN_S2 = 0;
for (; EURJPY_OCO1S4_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets4.Count; EURJPY_OCO1S4_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets4[EURJPY_OCO1S4_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO1Sets4[EURJPY_OCO1S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_4__Time out_OCO1");
Base.EURJPY_DOWN_S2_OCO1Sets4.Clear();
EURJPY_OCO1S4_DOWN_S2 = 0;
break;
}
int EURJPY_OCO1S5_DOWN_S2 = 0;
for (; EURJPY_OCO1S5_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets5.Count; EURJPY_OCO1S5_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets5[EURJPY_OCO1S5_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO1Sets5[EURJPY_OCO1S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_5__Time out_OCO1");
Base.EURJPY_DOWN_S2_OCO1Sets5.Clear();
EURJPY_OCO1S5_DOWN_S2 = 0;
break;
}
int EURJPY_OCO1S6_DOWN_S2 = 0;
for (; EURJPY_OCO1S6_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO1Sets6.Count; EURJPY_OCO1S6_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO1Sets6[EURJPY_OCO1S6_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO1Sets6[EURJPY_OCO1S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_6__Time out_OCO1");
Base.EURJPY_DOWN_S2_OCO1Sets6.Clear();
EURJPY_OCO1S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO2_EO1_DOWN_S2)
Base.EURJPY_OCO2_EO1_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO2_DOWN_S2)
Base.EURJPY_OCO2_EO2_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO3_DOWN_S2)
Base.EURJPY_OCO2_EO3_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO4_DOWN_S2)
Base.EURJPY_OCO2_EO4_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO5_DOWN_S2)
Base.EURJPY_OCO2_EO5_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO2_EO6_DOWN_S2)
Base.EURJPY_OCO2_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int EURJPY_OCO2S1_DOWN_S2 = 0;
for (; EURJPY_OCO2S1_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets1.Count; EURJPY_OCO2S1_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets1[EURJPY_OCO2S1_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO2Sets1[EURJPY_OCO2S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_1__Time out_OCO2");
Base.EURJPY_DOWN_S2_OCO2Sets1.Clear();
EURJPY_OCO2S1_DOWN_S2 = 0;
break;
}
int EURJPY_OCO2S2_DOWN_S2 = 0;
for (; EURJPY_OCO2S2_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets2.Count; EURJPY_OCO2S2_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets2[EURJPY_OCO2S2_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO2Sets2[EURJPY_OCO2S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_2__Time out_OCO2");
Base.EURJPY_DOWN_S2_OCO2Sets2.Clear();
EURJPY_OCO2S2_DOWN_S2 = 0;
break;
}
int EURJPY_OCO2S3_DOWN_S2 = 0;
for (; EURJPY_OCO2S3_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets3.Count; EURJPY_OCO2S3_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets3[EURJPY_OCO2S3_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO2Sets3[EURJPY_OCO2S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_3__Time out_OCO2");
Base.EURJPY_DOWN_S2_OCO2Sets3.Clear();
EURJPY_OCO2S3_DOWN_S2 = 0;
break;
}
int EURJPY_OCO2S4_DOWN_S2 = 0;
for (; EURJPY_OCO2S4_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets4.Count; EURJPY_OCO2S4_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets4[EURJPY_OCO2S4_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO2Sets4[EURJPY_OCO2S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_4__Time out_OCO2");
Base.EURJPY_DOWN_S2_OCO2Sets4.Clear();
EURJPY_OCO2S4_DOWN_S2 = 0;
break;
}
int EURJPY_OCO2S5_DOWN_S2 = 0;
for (; EURJPY_OCO2S5_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets5.Count; EURJPY_OCO2S5_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets5[EURJPY_OCO2S5_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO2Sets5[EURJPY_OCO2S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_5__Time out_OCO2");
Base.EURJPY_DOWN_S2_OCO2Sets5.Clear();
EURJPY_OCO2S5_DOWN_S2 = 0;
break;
}
int EURJPY_OCO2S6_DOWN_S2 = 0;
for (; EURJPY_OCO2S6_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO2Sets6.Count; EURJPY_OCO2S6_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO2Sets6[EURJPY_OCO2S6_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO2Sets6[EURJPY_OCO2S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_6__Time out_OCO2");
Base.EURJPY_DOWN_S2_OCO2Sets6.Clear();
EURJPY_OCO2S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO3_EO1_DOWN_S2)
Base.EURJPY_OCO3_EO1_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO2_DOWN_S2)
Base.EURJPY_OCO3_EO2_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO3_DOWN_S2)
Base.EURJPY_OCO3_EO3_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO4_DOWN_S2)
Base.EURJPY_OCO3_EO4_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO5_DOWN_S2)
Base.EURJPY_OCO3_EO5_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO3_EO6_DOWN_S2)
Base.EURJPY_OCO3_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int EURJPY_OCO3S1_DOWN_S2 = 0;
for (; EURJPY_OCO3S1_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets1.Count; EURJPY_OCO3S1_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets1[EURJPY_OCO3S1_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO3Sets1[EURJPY_OCO3S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_1__Time out_OCO3");
Base.EURJPY_DOWN_S2_OCO3Sets1.Clear();
EURJPY_OCO3S1_DOWN_S2 = 0;
break;
}
int EURJPY_OCO3S2_DOWN_S2 = 0;
for (; EURJPY_OCO3S2_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets2.Count; EURJPY_OCO3S2_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets2[EURJPY_OCO3S2_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO3Sets2[EURJPY_OCO3S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_2__Time out_OCO3");
Base.EURJPY_DOWN_S2_OCO3Sets2.Clear();
EURJPY_OCO3S2_DOWN_S2 = 0;
break;
}
int EURJPY_OCO3S3_DOWN_S2 = 0;
for (; EURJPY_OCO3S3_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets3.Count; EURJPY_OCO3S3_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets3[EURJPY_OCO3S3_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO3Sets3[EURJPY_OCO3S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_3__Time out_OCO3");
Base.EURJPY_DOWN_S2_OCO3Sets3.Clear();
EURJPY_OCO3S3_DOWN_S2 = 0;
break;
}
int EURJPY_OCO3S4_DOWN_S2 = 0;
for (; EURJPY_OCO3S4_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets4.Count; EURJPY_OCO3S4_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets4[EURJPY_OCO3S4_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO3Sets4[EURJPY_OCO3S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_4__Time out_OCO3");
Base.EURJPY_DOWN_S2_OCO3Sets4.Clear();
EURJPY_OCO3S4_DOWN_S2 = 0;
break;
}
int EURJPY_OCO3S5_DOWN_S2 = 0;
for (; EURJPY_OCO3S5_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets5.Count; EURJPY_OCO3S5_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets5[EURJPY_OCO3S5_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO3Sets5[EURJPY_OCO3S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_5__Time out_OCO3");
Base.EURJPY_DOWN_S2_OCO3Sets5.Clear();
EURJPY_OCO3S5_DOWN_S2 = 0;
break;
}
int EURJPY_OCO3S6_DOWN_S2 = 0;
for (; EURJPY_OCO3S6_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO3Sets6.Count; EURJPY_OCO3S6_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO3Sets6[EURJPY_OCO3S6_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO3Sets6[EURJPY_OCO3S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_6__Time out_OCO3");
Base.EURJPY_DOWN_S2_OCO3Sets6.Clear();
EURJPY_OCO3S6_DOWN_S2 = 0;
break;
}
}
if (Base.EURJPY_OCO4_EO1_DOWN_S2)
Base.EURJPY_OCO4_EO1_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO2_DOWN_S2)
Base.EURJPY_OCO4_EO2_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO3_DOWN_S2)
Base.EURJPY_OCO4_EO3_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO4_DOWN_S2)
Base.EURJPY_OCO4_EO4_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO5_DOWN_S2)
Base.EURJPY_OCO4_EO5_DOWN_S2_ID = order.Id;
if (Base.EURJPY_OCO4_EO6_DOWN_S2)
Base.EURJPY_OCO4_EO6_DOWN_S2_ID = order.Id;
if (algorithm.Time - order.CreatedTime >= TimeSpan.FromMinutes(Base.EURJPY_DOWN_S2_OCO_DELAY_7DAY))
{
int EURJPY_OCO4S1_DOWN_S2 = 0;
for (; EURJPY_OCO4S1_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets1.Count; EURJPY_OCO4S1_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets1[EURJPY_OCO4S1_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO4Sets1[EURJPY_OCO4S1_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_1__Time out_OCO4");
Base.EURJPY_DOWN_S2_OCO4Sets1.Clear();
EURJPY_OCO4S1_DOWN_S2 = 0;
break;
}
int EURJPY_OCO4S2_DOWN_S2 = 0;
for (; EURJPY_OCO4S2_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets2.Count; EURJPY_OCO4S2_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets2[EURJPY_OCO4S2_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO4Sets2[EURJPY_OCO4S2_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_2__Time out_OCO4");
Base.EURJPY_DOWN_S2_OCO4Sets2.Clear();
EURJPY_OCO4S2_DOWN_S2 = 0;
break;
}
int EURJPY_OCO4S3_DOWN_S2 = 0;
for (; EURJPY_OCO4S3_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets3.Count; EURJPY_OCO4S3_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets3[EURJPY_OCO4S3_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO4Sets3[EURJPY_OCO4S3_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_3__Time out_OCO4");
Base.EURJPY_DOWN_S2_OCO4Sets3.Clear();
EURJPY_OCO4S3_DOWN_S2 = 0;
break;
}
int EURJPY_OCO4S4_DOWN_S2 = 0;
for (; EURJPY_OCO4S4_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets4.Count; EURJPY_OCO4S4_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets4[EURJPY_OCO4S4_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO4Sets4[EURJPY_OCO4S4_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_4__Time out_OCO4");
Base.EURJPY_DOWN_S2_OCO4Sets4.Clear();
EURJPY_OCO4S4_DOWN_S2 = 0;
break;
}
int EURJPY_OCO4S5_DOWN_S2 = 0;
for (; EURJPY_OCO4S5_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets5.Count; EURJPY_OCO4S5_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets5[EURJPY_OCO4S5_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO4Sets5[EURJPY_OCO4S5_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_5__Time out_OCO4");
Base.EURJPY_DOWN_S2_OCO4Sets5.Clear();
EURJPY_OCO4S5_DOWN_S2 = 0;
break;
}
int EURJPY_OCO4S6_DOWN_S2 = 0;
for (; EURJPY_OCO4S6_DOWN_S2 < Base.EURJPY_DOWN_S2_OCO4Sets6.Count; EURJPY_OCO4S6_DOWN_S2++)
if (Base.EURJPY_DOWN_S2_OCO4Sets6[EURJPY_OCO4S6_DOWN_S2].InOrders(order.Id))
{
Base.EURJPY_DOWN_S2_OCO4Sets6[EURJPY_OCO4S6_DOWN_S2].TimeOut();
yield return Insight.Price("EURJPY", TimeSpan.FromMilliseconds(1001), InsightDirection.Up, null, null, null, 1);
algorithm.MarketOrder("EURJPY", order.Quantity, false, "EURJPY_DOWN_S2_Entry_6__Time out_OCO4");
Base.EURJPY_DOWN_S2_OCO4Sets6.Clear();
EURJPY_OCO4S6_DOWN_S2 = 0;
break;
}
}
}
}
foreach (var SY1D in D1D.Values)
{
if (SY1D.BQIsReady && SY1D.WasJustUpdated(algorithm.Time))
{
if (SY1D.BQ[0] != SY1D.BQ[1])
{
Base.SymbolCount = SY1D.Symbol.Value.Count();
}
DOWM_EURJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Monday);
DOWT_EURJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Tuesday);
DOWW_EURJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Wednesday);
DOWTH_EURJPY_DOWN_S2 = (algorithm.Time.DayOfWeek == DayOfWeek.Thursday);
DOWR_EURJPY_DOWN_S2 = DOWM_EURJPY_DOWN_S2 || DOWT_EURJPY_DOWN_S2 || DOWW_EURJPY_DOWN_S2 || DOWTH_EURJPY_DOWN_S2 || algorithm.Time.DayOfWeek == DayOfWeek.Friday;
if (SY1D.Symbol.Equals("EURJPY"))
{
var prices_BID_Open = SY1D.BQ.Select(x => x.Bid.Open).ToList();
var prices_ASK_Open = SY1D.BQ.Select(x => x.Ask.Open).ToList();
var prices_ASK_Close = SY1D.BQ.Select(x => x.Ask.Close).ToList(); //
var prices_BID_Close = SY1D.BQ.Select(x => x.Bid.Close).ToList(); //
var prices_ASK_Low = SY1D.BQ.Select(x => x.Ask.Low).ToList(); //
var prices_BID_Low = SY1D.BQ.Select(x => x.Bid.Low).ToList(); //
var prices_ASK_High = SY1D.BQ.Select(x => x.Ask.High).ToList(); //
var prices_BID_High = SY1D.BQ.Select(x => x.Bid.High).ToList(); //
var pricesM_BID_Open = SY1D.BQM.Select(x => x.Bid.Open).ToList();
var pricesM_ASK_Open = SY1D.BQM.Select(x => x.Ask.Open).ToList();
var pricesM_ASK_Close = SY1D.BQM.Select(x => x.Ask.Close).ToList(); //
var pricesM_BID_Close = SY1D.BQM.Select(x => x.Bid.Close).ToList(); //
var pricesM_ASK_Low = SY1D.BQM.Select(x => x.Ask.Low).ToList(); //
var pricesM_BID_Low = SY1D.BQM.Select(x => x.Bid.Low).ToList(); //
var pricesM_ASK_High = SY1D.BQM.Select(x => x.Ask.High).ToList(); //
var pricesM_BID_High = SY1D.BQM.Select(x => x.Bid.High).ToList(); //
decimal coefS2 = prices_ASK_Close[0] - prices_BID_Close[0];
int coefIntS2 = (int)(coefS2/0.0001m);
if (Base.EURJPY_OCO1_DOWN_S2_IsReady == false ||
Base.EURJPY_OCO2_DOWN_S2_IsReady == false ||
Base.EURJPY_OCO3_DOWN_S2_IsReady == false ||
Base.EURJPY_OCO4_DOWN_S2_IsReady == false)
{
Base.EURJPY_OCO1_DOWN_S2_Monthly_IsReady = false;
Base.EURJPY_OCO2_DOWN_S2_Monthly_IsReady = false;
Base.EURJPY_OCO3_DOWN_S2_Monthly_IsReady = false;
Base.EURJPY_OCO4_DOWN_S2_Monthly_IsReady = false;
}
if (algorithm.Time == SY1D.BQM[0].EndTime)
{
Base.EURJPY_OCO1_DOWN_S2_Monthly_IsReady = true;
Base.EURJPY_OCO2_DOWN_S2_Monthly_IsReady = true;
Base.EURJPY_OCO3_DOWN_S2_Monthly_IsReady = true;
Base.EURJPY_OCO4_DOWN_S2_Monthly_IsReady = true;
}
EURJPY_Signal_Condition_DOWN_S2 =
(
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] > prices_ASK_Close[0] * 0.0000001m &&
//pricesM_ASK_High[0] - pricesM_ASK_Close[0] < prices_ASK_Close[0] * 0.04m &&
//prices_ASK_Low[0] > pricesM_ASK_Close[0] &&
//prices_ASK_High[0] < pricesM_ASK_High[0] &&
//prices_ASK_High[0] - pricesM_BID_High[1] > prices_ASK_Close[0] * 0.02m &&
//pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 && //yuhukj
//prices_BID_Open[0] - prices_ASK_Close[0] > 0 &&
//prices_BID_Close[0] > pricesM_ASK_High[0] &&
//prices_ASK_High[0] > pricesM_ASK_High[0] &&
pricesM_BID_Open[0] - pricesM_ASK_Close[0] > 0 &&
pricesM_BID_Open[1] - pricesM_ASK_Close[1] > 0 &&
//pricesM_BID_High[0] - pricesM_ASK_Open[0] > pricesM_BID_High[1] - pricesM_ASK_Open[1] &&
//pricesM_BID_High[0] > pricesM_BID_High[1] &&
//prices_BID_Close[0] > prices_ASK_Close[0]
//prices_BID_Close[0] - prices_ASK_Open[0] > prices_ASK_Open[0] * 0.00001m &&
prices_ASK_High[0] > pricesM_ASK_High[0] &&
//prices_BID_Close[0] < pricesM_BID_High[0] &&
prices_ASK_Close[0] - prices_BID_Close[0] > 0 &&
prices_ASK_Close[0] - prices_BID_Close[0] < 0.1m
);
EURJPY_DOWN_S2_SL = 0.5m;
EURJPY_DOWN_S2_TP1 = 1.5m;
EURJPY_DOWN_S2_TP2 = EURJPY_DOWN_S2_TP1 * 1m;
EURJPY_DOWN_S2_TP3 = EURJPY_DOWN_S2_TP1 * 0;
EURJPY_DOWN_S2_TP4 = EURJPY_DOWN_S2_TP1 * 0;
EURJPY_DOWN_S2_TP5 = EURJPY_DOWN_S2_SL * 0;
EURJPY_DOWN_S2_TP6 = EURJPY_DOWN_S2_SL * 0;
if (coefIntS2 != 0)
{
EURJPY_quantity_DOWN_S2 = -(int)Math.Floor(algorithm.Portfolio.GetBuyingPower(SY1D.Symbol, 0)/Base.SymbolCount*0.2m);
EURJPY_quantity_SL_DOWN_S2 = EURJPY_quantity_DOWN_S2;
EURJPY_quantity_TP1_DOWN_S2 = (int)Math.Floor(EURJPY_quantity_DOWN_S2 * 1m);
EURJPY_quantity_TP2_DOWN_S2 = (int)Math.Floor(EURJPY_quantity_TP1_DOWN_S2 * 0m);
EURJPY_quantity_TP3_DOWN_S2 = (int)Math.Floor(EURJPY_quantity_TP2_DOWN_S2 * 0m);
EURJPY_quantity_TP4_DOWN_S2 = (int)Math.Floor(EURJPY_quantity_TP3_DOWN_S2 * 0m);
EURJPY_quantity_TP5_DOWN_S2 = (int)Math.Floor(EURJPY_quantity_TP4_DOWN_S2 * 0m);
EURJPY_quantity_TP6_DOWN_S2 = (int)Math.Floor(EURJPY_quantity_TP5_DOWN_S2 * 0m);
}
oco1:
if (EURJPY_Signal_Condition_DOWN_S2 &&
DOWR_EURJPY_DOWN_S2 &&
Base.EURJPY_OCO1_DOWN_S2_IsReady == true &&
Base.EURJPY_OCO1_DOWN_S2_Monthly_IsReady == true)
{
Base.EURJPY_OCO1_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO1_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP1_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP1_OCO1");
Base.EURJPY_OCO1_EO1_DOWN_S2 = false;
Base.EURJPY_OCO1_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO1_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP2_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP2_OCO1");
Base.EURJPY_OCO1_EO2_DOWN_S2 = false;
Base.EURJPY_OCO1_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO1_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP3_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP3_OCO1");
Base.EURJPY_OCO1_EO3_DOWN_S2 = false;
Base.EURJPY_OCO1_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO1_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP4_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP4_OCO1");
Base.EURJPY_OCO1_EO4_DOWN_S2 = false;
Base.EURJPY_OCO1_DOWN_S2_IsReady = false;
if (Base.EURJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco2:
if (EURJPY_Signal_Condition_DOWN_S2 &&
DOWR_EURJPY_DOWN_S2 &&
Base.EURJPY_OCO2_DOWN_S2_IsReady == true &&
Base.EURJPY_OCO1_DOWN_S2_IsReady == false &&
Base.EURJPY_OCO2_DOWN_S2_Monthly_IsReady == true)
{
Base.EURJPY_OCO2_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO2_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP1_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP1_OCO2");
Base.EURJPY_OCO2_EO1_DOWN_S2 = false;
Base.EURJPY_OCO2_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO2_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP2_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP2_OCO2");
Base.EURJPY_OCO2_EO2_DOWN_S2 = false;
Base.EURJPY_OCO2_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO2_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP3_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP3_OCO2");
Base.EURJPY_OCO2_EO3_DOWN_S2 = false;
Base.EURJPY_OCO2_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO2_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP4_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP4_OCO2");
Base.EURJPY_OCO2_EO4_DOWN_S2 = false;
Base.EURJPY_OCO2_DOWN_S2_IsReady = false;
if (Base.EURJPY_OCO2_DOWN_S2_IsReady == false && Base.EURJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco3:
if (EURJPY_Signal_Condition_DOWN_S2 &&
DOWR_EURJPY_DOWN_S2 &&
Base.EURJPY_OCO3_DOWN_S2_IsReady == true &&
Base.EURJPY_OCO1_DOWN_S2_IsReady == false &&
Base.EURJPY_OCO2_DOWN_S2_IsReady == false &&
Base.EURJPY_OCO3_DOWN_S2_Monthly_IsReady == true)
{
Base.EURJPY_OCO3_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO3_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP1_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP1_OCO3");
Base.EURJPY_OCO3_EO1_DOWN_S2 = false;
Base.EURJPY_OCO3_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO3_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP2_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP2_OCO3");
Base.EURJPY_OCO3_EO2_DOWN_S2 = false;
Base.EURJPY_OCO3_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO3_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP3_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP3_OCO3");
Base.EURJPY_OCO3_EO3_DOWN_S2 = false;
Base.EURJPY_OCO3_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO3_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP4_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP4_OCO3");
Base.EURJPY_OCO3_EO4_DOWN_S2 = false;
Base.EURJPY_OCO3_DOWN_S2_IsReady = false;
if (Base.EURJPY_OCO3_DOWN_S2_IsReady == false && Base.EURJPY_OCO2_DOWN_S2_IsReady == false && Base.EURJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
oco4:
if (EURJPY_Signal_Condition_DOWN_S2 &&
DOWR_EURJPY_DOWN_S2 &&
Base.EURJPY_OCO4_DOWN_S2_IsReady == true &&
Base.EURJPY_OCO1_DOWN_S2_IsReady == false &&
Base.EURJPY_OCO2_DOWN_S2_IsReady == false &&
Base.EURJPY_OCO3_DOWN_S2_IsReady == false &&
Base.EURJPY_OCO4_DOWN_S2_Monthly_IsReady == true)
{
Base.EURJPY_OCO4_EO1_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO4_MO1_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP1_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP1_OCO4");
Base.EURJPY_OCO4_EO1_DOWN_S2 = false;
Base.EURJPY_OCO4_EO2_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO4_MO2_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP2_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP2_OCO4");
Base.EURJPY_OCO4_EO2_DOWN_S2 = false;
Base.EURJPY_OCO4_EO3_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO4_MO3_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP3_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP3_OCO4");
Base.EURJPY_OCO4_EO3_DOWN_S2 = false;
Base.EURJPY_OCO4_EO4_DOWN_S2 = true;
yield return Insight.Price(SY1D.Symbol, TimeSpan.FromMinutes(5), InsightDirection.Down, null, null, null, 1);
EURJPY_OCO4_MO4_DOWN_S2 = algorithm.MarketOrder(SY1D.Symbol, EURJPY_quantity_TP4_DOWN_S2, false,"EURJPY_DOWN_S2_Entry_TP4_OCO4");
Base.EURJPY_OCO4_EO4_DOWN_S2 = false;
Base.EURJPY_OCO4_DOWN_S2_IsReady = false;
if (Base.EURJPY_OCO4_DOWN_S2_IsReady == false && Base.EURJPY_OCO3_DOWN_S2_IsReady == false && Base.EURJPY_OCO2_DOWN_S2_IsReady == false && Base.EURJPY_OCO1_DOWN_S2_IsReady == false)
break;
}
yield break;
}
}
}
}
}
}
}