Browse Source

QQQ10f

- adjust LONG entry proba
Alexey Kim 1 month ago
parent
commit
2aa11b3cab
2 changed files with 1 additions and 135 deletions
  1. 0 134
      strategy/alpaca/qqq04f/strategy.go
  2. 1 1
      strategy/alpaca/qqq10f/strategy.go

+ 0 - 134
strategy/alpaca/qqq04f/strategy.go

@@ -1,134 +0,0 @@
-package main
-
-import (
-	"git.beejay.kim/Gshopper/sentio"
-)
-
-var Strategy = alpacaQQQ{}
-
-type alpacaQQQ struct{}
-
-func (s alpacaQQQ) Name() string {
-	return "Alpaca: QQQ / SQQQ"
-}
-
-func (s alpacaQQQ) Model() string {
-	return "qqq05f"
-}
-
-func (s alpacaQQQ) MarketId() string {
-	return "alpaca"
-}
-
-func (s alpacaQQQ) PositionSymbols() map[sentio.Side]string {
-	return map[sentio.Side]string{
-		sentio.LONG:  "QQQ",
-		sentio.SHORT: "SQQQ",
-	}
-}
-
-func (s alpacaQQQ) Handle(market sentio.Market, proba float64) ([]sentio.StrategyOrder, error) {
-	if !market.IsMarketOpened() {
-		return nil, sentio.ErrMarketClosed
-	}
-
-	var (
-		portfolio sentio.Portfolio
-		orders    []sentio.StrategyOrder
-		ok        bool
-		err       error
-	)
-
-	if portfolio, err = market.Portfolio(); err != nil {
-		return nil, err
-	}
-
-	for side, symbol := range s.PositionSymbols() {
-		var (
-			position sentio.Position
-			t        = market.Time().Now()
-		)
-
-		if portfolio != nil {
-			position, ok = portfolio.Get(symbol)
-			ok = ok && position.GetSize() != 0
-		} else {
-			ok = false
-		}
-
-		// Close positions before market closed
-		if ok && t.Hour() == 19 && t.Minute() > 30 {
-			orders = append(orders, sentio.StrategyOrder{
-				Symbol: symbol,
-				Action: sentio.OrderSell,
-				Ratio:  1,
-			})
-			continue
-		}
-
-		if proba < 0 {
-			continue
-		}
-
-		// Close LONG position
-		if ok && sentio.LONG == side && proba < 1.00009 {
-			orders = append(orders, sentio.StrategyOrder{
-				Symbol: symbol,
-				Action: sentio.OrderSell,
-				Ratio:  1,
-			})
-		}
-
-		if ok && sentio.SHORT == side && proba > .9999 {
-			orders = append(orders, sentio.StrategyOrder{
-				Symbol: symbol,
-				Action: sentio.OrderSell,
-				Ratio:  1,
-			})
-		}
-
-		if t.Hour() == 19 && t.Minute() > 29 {
-			continue
-		}
-
-		if sentio.LONG == side && proba > 1.00109 {
-			if ok && position != nil && position.GetCurrentPrice() > position.GetAvgPrice() {
-				continue
-			}
-
-			orders = append(orders, sentio.StrategyOrder{
-				Symbol: symbol,
-				Action: sentio.OrderBuy,
-				Ratio: func() float64 {
-					if ok {
-						return .6
-					} else {
-						return .3
-					}
-				}(),
-			})
-			continue
-		}
-
-		if sentio.SHORT == side && proba < .9999 {
-			if ok && position != nil && position.GetCurrentPrice() > position.GetAvgPrice() {
-				continue
-			}
-
-			orders = append(orders, sentio.StrategyOrder{
-				Symbol: symbol,
-				Action: sentio.OrderBuy,
-				Ratio: func() float64 {
-					if ok {
-						return .6
-					} else {
-						return .3
-					}
-				}(),
-			})
-			continue
-		}
-	}
-
-	return orders, nil
-}

+ 1 - 1
strategy/alpaca/qqq10f/strategy.go

@@ -96,7 +96,7 @@ func (s alpacaQQQ) Handle(market sentio.Market, proba float64) ([]sentio.Strateg
 			continue
 			continue
 		}
 		}
 
 
-		if sentio.LONG == side && proba > 1.0005 {
+		if sentio.LONG == side && proba > 1.0009 {
 			if ok && position != nil && position.GetCurrentPrice() > position.GetAvgPrice() {
 			if ok && position != nil && position.GetCurrentPrice() > position.GetAvgPrice() {
 				continue
 				continue
 			}
 			}