Я пытаюсь понять, как создать несколько Лонг-ордеров в одном скрипте.
Например, я собрал один скрипт, который имеет 3 условия покупки/продажи, и я хотел бы, чтобы у каждого были свои параметры входа/выхода. Выяснение того, как упорядочить несколько длинных записей в одном скрипте, является моим текущим препятствием.
В настоящее время существует стратегия Main, Fast и Vol.
Что бы я ни пытался, каждый из них работает сам по себе, но когда они работают вместе, тот из них, который работает быстрее, по сути, запускает все. Может быть, один из 100 раз проскочит более низкий, а затем иногда другой страт будет продавать / открывать длинные позиции по этой сделке, вместо того, чтобы позволить страту, купившему его, определить, когда его продавать.
Вещи, которые я пробовал, включают вложенные циклы, а также группы Strategy.oca. Я просматривал документацию, но ни одна из них не демонстрирует мой сценарий — сценарии, которые я нашел, представляли собой несколько входов с одним большим выходом. Я хочу, чтобы каждая стратегия входила и выходила сама по себе. У меня есть пирамида на 3. Я пытался использовать Strategy.position_size == 0 записей, а также пытался добавить переменную, чтобы остановить условный порядок от заказа, если у него уже есть заказ, но ничего из того, что я пробовал, не работает.
Если это имеет значение, я не буду использовать маржу.
if OrderLong and not OrderShort
strategy.cancel(id="Sell")
strategy.entry(id="Buy", long=true, comment="Buy") //strategy.entry(id="Buy", long=true, stop=high, comment="Buy", limit=(OrderLimit))
if OrderShort and not OrderLong and not OrderShortFast
strategy.cancel(id="Buy")
strategy.exit("Sell", "Buy", stop=low, limit=(OrderLimit),comment="Sell")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if OrderLongFast and not OrderShortFast
strategy.cancel(id="SellFast")
strategy.entry(id="BuyFast", long=true, comment="Buy Fast") //strategy.entry("BuyFast", long=true, stop=high, comment="Buy Fast", limit=(OrderLimit))
if OrderShortFast and not OrderShort
strategy.cancel(id="BuyFast")
strategy.exit("SellFast", "BuyFast", stop=low, limit=(OrderLimit),comment="Sell Fast")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if OrderLongVol
strategy.cancel(id="SellVol")
strategy.entry(id="BuyVol", long=true, comment="Buy Vol") //strategy.entry("BuyFast", long=true, stop=high, comment="Buy Fast", limit=(OrderLimit))
if OrderShortVol
strategy.cancel(id="BuyVol")
strategy.exit("SellVol", "BuyVol", stop=low, limit=(OrderLimit),comment="Sell Vol")