Back

Prohibit entry orders after a certain time

Hi !

Could you help me to prevent entry orders after a certain time ?

I am searching on the forum and no issue.

I already implement Schedule.Event to close all order at a certain time and day.

Schedule.Event().Every(DayOfWeek.Friday).At(15, 44).Run(() =>
{
foreach (var holding in Portfolio.Values)
{
if (holding.HoldStock)
{
MarketOnCloseOrder(holding.Symbol, -holding.Quantity, tag: "Liquidate Market Close");
}
}
});

But what i read that not prevent algo to send order after this time.

 

Update Backtest







0

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


Hi !

I make that, it's not smart but seems to work.

if (Portfolio.Invested)
{
Schedule.Event().Every(DayOfWeek.Friday).At(15, 44).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 45).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 46).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 47).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 48).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 49).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 50).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 51).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 52).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 53).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 54).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 55).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 56).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 57).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 58).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 59).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(15, 60).Run(() =>
Schedule.Event().Every(DayOfWeek.Friday).At(16, 00).Run(() =>
{
foreach (var holding in Portfolio.Values)
{
if (holding.HoldStock)
{
MarketOrder(holding.Symbol, -holding.Quantity, tag: "Liquidate Market Close");
}
}

}))))))))))))))))));
}

 

0

Hi Gmamuze:

You could declare a variable called "entryHours" which is set to False by default. You could schedule an event at whichever time you would like to start looking for entry points that changes the variable to True, and at the event where you liquidate everything, change it back to False. 

Then, when you're checking for entry points, you could add a check to see if "entryHours" == "True"

0

Hi Dave!

Like this way ?

https://www.quantconnect.com/forum/discussion/5941/how-to-only-request-trades-during-market-hours/p1

 

0


I primarly use Python for my algorithm development but couldn't you use the self.Time property in the OnData method. self.Time is a DateTime object. If I were trying to "prevent entry orders after a certain time". I would use

def OnData(self, data):
if self.Time.Hour > 13:
return;

as an example, this would prevent the code from executing if the time is past 1pm. I think Schedule.Event() calls should only be made in the Initialize() method.

0

Update Backtest





0

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


Loading...

This discussion is closed