𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟮: 𝗢𝗽𝘁𝗶𝗼𝗻 𝗧𝗮𝗿𝗴𝗲𝘁 𝗣𝗿𝗶𝗰𝗶𝗻𝗴 𝗕𝗼𝘂𝗻𝗱𝗮𝗿𝘆

QuantConnect Lean ਵਿੱਚ ਓਪਸ਼ਨ ਟਾਰਗੇਟ ਸਾਈਜ਼ਿੰਗ ਵਿੱਚ ਇੱਕ ਗੰਭੀਰ ਬੱਗ ਸੀ।

ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਓਪਸ਼ਨ ਪੋਜੀਸ਼ਨ ਲਈ 10% ਟਾਰਗੇਟ ਦੀ ਮੰਗ ਕੀਤੀ ਸੀ, ਤਾਂ ਇੰਜਣ ਤੁਹਾਡੀ ਮੰਗ ਤੋਂ ਵੱਧ ਦੇ ਸਕਦਾ ਸੀ।

ਇਹ ਇਸ ਲਈ ਹੋਇਆ ਕਿਉਂਕਿ ਸਿਸਟਮ ਨੇ ਮਾਤਰਾ (quantity) ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ ਗਲਤ ਕੀਮਤ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਸੀ। ਇਸਨੇ ਅਸਲ ਕੀਮਤ ਦੀ ਬਜਾਏ ਮਿਡ (mid) ਜਾਂ ਲਾਸਟ (last) ਕੀਮਤ ਦੀ ਵਰਤੋਂ ਕੀਤੀ, ਜੋ ਕਿ ਤੁਹਾਨੂੰ ਓਪਸ਼ਨ ਖਰੀਦਣ ਲਈ ਅਦਾ ਕਰਨੀ ਪੈਂਦੀ ਹੈ।

ਜਦੋਂ ਬਿਡ/ਆਸਕ ਸਪਰੈਡ (bid/ask spread) ਜ਼ਿਆਦਾ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਹ ਗਲਤੀ ਵਧ ਜਾਂਦੀ ਹੈ।

ਇੰਜਣ ਮਾਰਜਿਨ ਗਣਨਾਵਾਂ ਲਈ security.Price ਦੀ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਸੀ। ਲੌਂਗ ਓਪਸ਼ਨ ਲਈ, ਤੁਹਾਨੂੰ ਆਸਕ (ask) ਕੀਮਤ 'ਤੇ ਖਰੀਦਣਾ ਚਾਹੀਦਾ ਹੈ। ਜੇਕਰ ਇੰਜਣ ਘੱਟ ਮਿਡ-ਪ੍ਰਾਈਸ ਦੇ ਅਧਾਰ 'ਤੇ ਸਾਈਜ਼ਿੰਗ ਦੀ ਗਣਨਾ ਕਰਦਾ ਹੈ, ਤਾਂ ਆਰਡਰ ਪੂਰਾ ਹੋਣ ਤੋਂ ਬਾਅਦ ਤੁਹਾਡੀ ਅੰਤਿਮ ਪੋਜੀਸ਼ਨ ਤੁਹਾਡੇ ਟਾਰਗੇਟ ਵੇਟ ਤੋਂ ਵੱਧ ਜਾਵੇਗੀ।

ਅਸੀਂ ਸਹੀ ਰਿਪੇਅਰ ਬਾਊਂਡਰੀ ਦੀ ਪਛਾਣ ਕੀਤੀ ਹੈ।

ਅਸੀਂ ਪੂਰੇ ਪੋਰਟਫੋਲੀਓ ਕੰਸਟ੍ਰਕਸ਼ਨ ਇੰਜਣ ਨੂੰ ਦੁਬਾਰਾ ਨਹੀਂ ਲਿਖਿਆ। ਅਸੀਂ ਹਰ ਸੁਰੱਖਿਆ ਕਿਸਮ (security type) ਦੇ ਕੰਮ ਕਰਨ ਦੇ ਤਰੀਕੇ ਨੂੰ ਨਹੀਂ ਬਦਲਿਆ। ਅਸੀਂ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਲੇਅਰ ਨੂੰ ਨਹੀਂ ਬਦਲਿਆ।

ਇਸ ਦੀ ਬਜਾਏ, ਅਸੀਂ ਓਪਸ਼ਨ-ਵਿਸ਼ੇਸ਼ ਮਾਰਜਿਨ ਪ੍ਰਾਈਸਿੰਗ ਪਾਥ ਨੂੰ ਠੀਕ ਕੀਤਾ।

ਇਹ ਫਿਕਸ ਇਹਨਾਂ ਨਿਯਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:

ਇਹ ਰਿਪੇਅਰ ਨੂੰ ਸਥਾਨਕ ਅਤੇ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ। ਇਹ ਉੱਤਮ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇਹ ਮੌਜੂਦ ਹੁੰਦਾ ਹੈ, ਪਰ ਜਦੋਂ ਨਹੀਂ ਹੁੰਦਾ ਤਾਂ ਪੁਰਾਣੇ ਵਿਵਹਾਰ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਦਾ ਹੈ।

ਵੈਲੀਡੇਸ਼ਨ ਨਤੀਜੇ:

ਇਹ ਫਿਕਸ ਸਾਈਜ਼ਿੰਗ ਲਈ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਕੀਮਤਾਂ (executable prices) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਇੰਜਣ ਤੁਹਾਡੇ ਰਿਸਕ ਕੰਟਰੈਕਟ ਦਾ ਸਤਿਕਾਰ ਕਰੇ।

Source: https://dev.to/scarab-systems/scarab-diagnostic-field-test-031-quantconnect-lean-option-target-quote-side-pricing-boundary-4f94

Optional learning community: https://t.me/GyaanSetuAi