diff --git a/StrategySpace/ConstNewStrategy.js b/StrategySpace/ConstNewStrategy.js index e69de29bb..197c07277 100644 --- a/StrategySpace/ConstNewStrategy.js +++ b/StrategySpace/ConstNewStrategy.js @@ -0,0 +1,267 @@ + const GRAPHQL_MUTATION_UPDATE_STRATEGY = Apollo.gql` +mutation { + strategizer_EditStrategy( + id: "sdfs" + strategy: { + subStrategies: [ + { + active: true + name: "Trend Following" + entryPoint: { + situations: [ + { + name: "Price Collapsing" + conditions: [ + { + name: "%B Moving Average going down" + code: "percentageBandwidth.previous.direction === 'down' && percentageBandwidth.direction === 'down'" + } + { + name: "%B Bandwidth going up" + code: "percentageBandwidth.previous.previous.bandwidth < percentageBandwidth.previous.bandwidth && percentageBandwidth.previous.bandwidth < percentageBandwidth.bandwidth" + } + { + name: "Candles Min going down" + code: "candle.previous.previous.min > candle.previous.min && candle.previous.min > candle.min" + } + ] + } + ] + } + exitPoint: { + situations: [ + { + name: "Market Reversing" + conditions: [ + { + name: "Close above Band Moving Average" + code: "candle.close > bollingerBand.movingAverage" + } + ] + } + ] + } + sellPoint: { + situations: [ + { + name: "Min below lower bollingerBand." + conditions: [ + { + name: "3 Candles MIN below Lower Band" + code: "candle.previous.previous.min < bollingerBand.previous.previous.movingAverage - bollingerBand.previous.previous.deviation && candle.previous.min < bollingerBand.previous.movingAverage - bollingerBand.previous.deviation && candle.min < bollingerBand.movingAverage - bollingerBand.deviation" + } + ] + } + ] + } + stopLoss: { + phases: [ + { + name: "Following Sell Rate" + code: "newStopLoss = sellRate + sellRate * (stopLossPercentage - stopLossDecay) / 100" + situations: [ + { + name: "Candle below Moving Average" + conditions: [ + { + name: "Candle fully below Band Moving Average" + code: "candle.max < bollingerBand.movingAverage" + } + { + name: "Band Moving Average going down" + code: "bollingerBand.direction === 'down'" + } + ] + } + ] + } + { + name: "Above Bands Moving Average" + code: "newStopLoss = bollingerBand.movingAverage + bollingerBand.movingAverage * (stopLossPercentage - stopLossDecay) / 100" + situations: [ + { + name: "Candle below Moving Average" + conditions: [ + { + name: "Candle MAX below lower band" + code: "candle.max < bollingerBand.movingAverage - bollingerBand.deviation" + } + ] + } + ] + } + { + name: "At Bands Moving Average" + code: "newStopLoss = bollingerBand.movingAverage" + situations: [] + } + ] + } + buyOrder: { + phases: [ + { + name: "12 times standard deviation" + code: "buyOrder = bollingerBand.movingAverage - bollingerBand.standardDeviation * 12" + situations: [ + { + name: "Candle cut by lower band" + conditions: [ + { +name: "Max above lower band" + code: "candle.max > bollingerBand.movingAverage - bollingerBand.deviation" + } + { + name: "MIN below lower band" + code: "candle.min < bollingerBand.movingAverage - bollingerBand.deviation" + } + { + name: "Band Moving Average going down" + code: "bollingerBand.previous.movingAverage > bollingerBand.movingAverage" + } + ] + } + ] + } + { + name: "10 times standard deviation" + code: "buyOrder = bollingerBand.movingAverage - bollingerBand.standardDeviation * 10" + situations: [ + { + name: "%B starting to revert" + conditions: [ + { + name: "%B Moving Average going up" + code: "percentageBandwidth.direction === 'up'" + } + { + name: "%B Moving Average above 0" + code: "percentageBandwidth.movingAverage > 0" + } + ] + } + ] + } + { + name: "4 times standard deviation" + code: "buyOrder = bollingerBand.movingAverage - bollingerBand.standardDeviation * 4" + situations: [ + { + name: "%B going down again" + conditions: [ + { + name: "%B Moving Average going down" + code: "percentageBandwidth.direction === 'down'" + } + ] + } + ] + } + { + name: "3 times standard deviation" + code: "buyOrder = bollingerBand.movingAverage - bollingerBand.standardDeviation * 3" + situations: [ + { + name: "%B going up and above 30" + conditions: [ + { + name: "%B Moving Average going up" + code: "percentageBandwidth.direction === 'up'" + } + { + name: "%B Moving Average above 30" + code: "percentageBandwidth.movingAverage > 30" + } + ] + } + ] + } + { + name: "At lower band" + code: "buyOrder = bollingerBand.movingAverage - bollingerBand.standardDeviation * 2" + situations: [] + } + ] + } + } + { + active: true + name: "Range Trading" + entryPoint: { + situations: [ + { + name: "Gentle Up Trend" + conditions: [ + { + name: "Sub-Channel going up" + code: "subChannel.direction === 'up'" + } + { + name: "Sub-Channel Side|Gentle|Medium" + code: "subChannel.slope === 'Side' || subChannel.slope === 'Gentle' || subChannel.slope === 'Medium'" + } + { + name: "Candle Close above Lower Band" + code: "candle.close > bollingerBand.movingAverage + bollingerBand.deviation" + } + ] + } + ] + } + exitPoint: { + situations: [ + { + name: "Outside Sub-Channel" + conditions: [ + { + name: "Going down or too Steep" + code: "subChannel.direction === 'Down' || subChannel.slope === 'Steep' || subChannel.slope === 'Extreme'" + + +} + ] + } + ] + } + sellPoint: { + situations: [ + { + name: "Min below lower bollingerBand." + conditions: [ + { + name: "%B Moving Average going down" + code: "percentageBandwidth.previous.movingAverage > percentageBandwidth.movingAverage" + } + { + name: "%B Moving Average above 90" + code: "percentageBandwidth.previous.movingAverage > 90" + } + ] + } + ] + } + stopLoss: { + phases: [ + { + name: "Following Sell Rate" + code: "newStopLoss = sellRate + sellRate * (stopLossPercentage - stopLossDecay) / 100" + situations: [] + } + ] + } + buyOrder: { + phases: [ + { + name: "Between Band Moving Average and Lower Band" + code: "buyOrder = bollingerBand.movingAverage - bollingerBand.standardDeviation" + situations: [] + } + ] + } + } + ] + } + ) { + id + } +} +` diff --git a/StrategySpace/ConstUpdateStrategy.js b/StrategySpace/ConstUpdateStrategy.js index e69de29bb..72be45218 100644 --- a/StrategySpace/ConstUpdateStrategy.js +++ b/StrategySpace/ConstUpdateStrategy.js @@ -0,0 +1,85 @@ +const GRAPHQL_MUTATION_UPDATE_STRATEGY = Apollo.gql` + query($fbSlug: String!){ + + strategizer_StrategyByFb(fbSlug: $fbSlug){ + subStrategies(activeOnly: true){ + name + entryPoint{ + situations{ + name + conditions{ + name + code + } + } + } + exitPoint{ + situations{ + name + conditions{ + name + code + } + } + } + sellPoint{ + situations{ + name + conditions{ + name + code + } + } + } + buyPoint{ + situations{ + name + conditions{ + name + code + } + } + } + stopLoss{ + phases{ + name + code + situations{ + name + conditions{ + name + code + } + } + } + } + buyOrder{ + phases{ + name + code + situations{ + name + conditions{ + name + code + } + } + } + } + sellOrder{ + phases{ + name + code + situations{ + name + conditions{ + name + code + } + } + } + } + } + } + } + `