deltaray-io / mesosim-tracker Goto Github PK
View Code? Open in Web Editor NEWPublic โจ Feature and Bug ๐ Tracker for the MesoSim project
Home Page: https://portal.deltaray.io
Public โจ Feature and Bug ๐ Tracker for the MesoSim project
Home Page: https://portal.deltaray.io
Setting Stop Loss in a crypto run (BTCUSD) is ineffective. Reference: ....-c9b92d2eb133
Pandas just released 2.0.0, which breaks QuantStats:
QuantStats defines pandas dependency as pandas>=0.24.0
which brings in the new 2.0.0 version of Pandas.
Our html report fails with:
Error creating html report: pivot() takes 1 positional argument but 4 were given
Reported by Alberto:
It would be convenient to use variables defined via Entry.VarDefines in Entry.AbortConditions.
Today this isn't possible.
The Settlement Count and the NAV during settlement events are not reported correctly.
It is important to note that this is just a representation glitch in the events file/viewer:
The number of settlements, settlement amount and NAV are all correct throughout the simulation.
Given a backtest where Multiple Positions in Flight is enabled and ReEntryDays is set to 1.
When two parallel positions are finishing one day after an other.
Then the entry of the first finished position is delayed further by one day as the second
position's end date will be considered during calculation of the next potential entry.
Solution is to keep track of each parallel lane/track/slot 's exit time and enable re-entering
when any track is closed past ReentryDays.
hello slackers!
Alan (N) reported:
Given a job definition with External Data, where the strikes of the contracts selected using variables
coming from the External Data. During execution the variables are not evaluated and selecting strikes
using external vars are not possible.
Currently Entry|Adjustment|Exit.Schedule
disallows scheduling for Sunday and Saturday.
These days should be available for Crypto Assets, but not for SPX.
DIT is calculated using (Now-entry).Days. In case of Entry being on normal day,
after 13:00, and the next day is an early close day then the reported DIT for EndOfDayEvent will be: DIT=0.
Expected behavior: DIT=1
To greater flexibility, add an Execute step where the user allowed to enter custom lua statements.
The lua statements can define variables which will become available at Entry / Exit and Adjustment conditions
Initial design example:
"Execute": [
{
"Schedule": {
"Every": "5min"
},
"Statements": [
"if underlying_price > leg_ll_strike then max_days_in_trade = 10 end"
]
},
{
"Schedule": {
"Every": "post-trade"
},
"Statements": {
"price_after_trade = underlying_price",
"iv_after_trade = underlying_iv"
}
]
Explore if we can load ONE's report file and present it as a backtest.
When trying to save a new template, hitting cancel freezes the site
Reported by Umr
As soon as CBOE delivers the historical data should be ingested and validated.
Purchase, ingest and validate VIX options data and make it available to our users.
Further heuristics should be added to reduce the 'PriceZero' and 'MissingData' events in the trade.
MesoSim fills on close, while ONE fills on open.
This should be documented and explained why.
Create infrastructure to Forward Test MesoSim strategies:
Given a Calendar specified by the user.
When the MaxDIT is greater than the days defined by the short expiration.
Then one leg will be settled, leaving the structure half entered, half settled
Report Reg-T margin of the structures created either via graphs and/or via events in the events.json file.
The Delta Hedging section lacks documentation
on how to hedge, when multiple contracts are traded.
Section should be extended, explaining the calculation.
The Intra-Trade PnL chart shows larger than observed drawdowns when a contract's
data is missing.
Reported by Mr. KWF: The DIT is wrongly reported (reset back to 0 after adjustment) when:
the conditional adjustment changes the first leg of the structure.
Fix: track the entry date instead of using the first leg's entry as reference point.
Seeing underlying_price is helpful in debugging iterating, so please add underlying_price as one of the columns in Events
Brent's proposal:
Extend the adjustments with an adjustment type that changes the quantity of a previously declared leg.
Additionally, Legs at initiation could be set to 0, so they don't contribute to portfolio performance until their Qtys is changed in either direction.
See title ;)
Request from Karim:
I want to test a campaign that isn't based on time but rather based on how many points the market has moved since the last entry. For example, enter one tranche when there is a 50 point SPX move from where the market was at during the previous entry.
As of today there is no way to persist the underlying_price
on exit and re-use in next entry.
Even if it were, campaign mode makes it difficult to distinguish between which underlying_price are we referring to.
Hence, this change is targetting our JobDefinition overhaul which will address all the shortcomings we've observed so far.
Add John Locke's M3 trade to our strategy library.
exports generated with following example opera is not accepted by ONE.
Import fails. I believe these are from before July 2010.
SYF040320P500.0000
SYF040320P500.0000
SZP040417P1200.0000
SZP040417P1200.0000
SZP040522P1200.0000
SZP040522P1200.0000
SYG040619P650.0000
SYG040619P650.0000
SYG040717P675.0000
SYG040717P675.0000
SZP040821P1200.0000
Reported by Pramod.
It has been requested by Matthias and GS:
In the case of intraday trades, we should be able to exit X minutes before close.
Currently this isn't possible as the MaxDaysInTrade granularity doesn't allow the user to specify to exit before close.
One potential solution: Expose the time part (e.g. minutes_after_open
and minutes_until_close
) to the user
so that the EOD exit can be implemented via Exit.Conditions
Given a backtest run that yields negative returns over time.
When we represent the Log Returns graph, there will be a big spike down at the most negative NAV level.
Contrary, the Full Tearsheet Log Graph looks normal -- see the attached screenshots.
The key issue here is how we calculate the Log Return graph:
As the negative values log is undefined, we normalize the return data as the most negative number becomes 0.
QuantStats doing this differently - yet to be figured out how.
Solution: stick to QuantStat's representation in our Log Return graph.
Add Leg Adjustment enables users to add a Leg after the position is initiated.
The flexibility of adding a leg must be similar to the flexibility present at trade initiation:
"ConditionalAdjustments": {
"pos_delta > 40": {
"MoveLegAdjustment": null,
"RemoveLegAdjustment": null,
"AddLegAdjustment": {
"LegName": "to_be_added",
"Qty": "1",
"Expiration": {
"Name": "exp2",
"DTE": "expiration_exp1_dte",
"Min": null,
"Max": null,
"Roots": null
},
"OptionType": "Call",
"StrikeSelector": {
"Delta": "12"
},
"AbortConditions": [
"leg_to_be_added_price > 2"
]
}
}
},
"MaxAdjustmentCount": null
},
Leverage Gomb project and extend MesoSim with indicators which are optimized using ML algorithms.
Study Rhino trade and create a public template.
Far OTM options are often end up with one-sided market (where bids are missing).
These scenarios are difficult to simulate and difficult to trade through (one can't exit your position due to lack of liquidity).
Our docs should provide this information to warn users about using far OTM options.
Request by Teresa W:
I'd like to use the adjust single leg feature (to get my overall position back closer to delta neutral), but I want to prevent an over-adjustment beyond half of the current position delta. For example, I've noticed in manual backtesting that if I have a +10 pos_delta, sometimes the next closest available strike would create a -5 Delta, which causes an over-adjustment.
One potential solution to this request would be to add AbortConditions (similar to the one in AddLegsAdjustment) to MoveLegAdjustment.
Lua statements are more flexible than int/float fields in the Job Definition.
It can also be confusing for users that somewhere int, while at other places strings should be specified.
Change the Job Definition so that every numeric field becomes a statement:
Choose multiple backtests and combine them into a portfolio.
Show statistics and graphs for the joint run.
For better user experience, we should show the Job Definition Reference right next to the job editor.
This means we'll need to move from our current docs solution and rely on api-docs style documentation.
To support moving/rolling legs to a new expiration the optional 'Expiration' field should be added to the MoveLegAdjustment.
It must be backward compatible, such that if no Expiration is specified ("Expiration": null
) then the leg's previous expiration is used.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.