| 
														
															@@ -26,6 +26,10 @@ func (strategy qqq) Interval() uint8 { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	return 1 
														 | 
														
														 | 
														
															 	return 1 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+func (strategy qqq) EnableStopLoss() bool { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	return false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 func (strategy qqq) PositionSymbols() map[sentio.Side]string { 
														 | 
														
														 | 
														
															 func (strategy qqq) PositionSymbols() map[sentio.Side]string { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	return map[sentio.Side]string{ 
														 | 
														
														 | 
														
															 	return map[sentio.Side]string{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		sentio.BASE:  "QQQ", 
														 | 
														
														 | 
														
															 		sentio.BASE:  "QQQ", 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -61,6 +65,10 @@ func (strategy qqq) Handle(turn *sentio.Turn, market sentio.Market, rs sentio.Ri 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		return util.CloseAllOrders(market, strategy) 
														 | 
														
														 | 
														
															 		return util.CloseAllOrders(market, strategy) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	if quotes, err = market.Quotes(); err != nil { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		return err 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	// retrieve running orders 
														 | 
														
														 | 
														
															 	// retrieve running orders 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if orders, err = market.Orders(sentio.OrderListCriteria{ 
														 | 
														
														 | 
														
															 	if orders, err = market.Orders(sentio.OrderListCriteria{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		Status:  util.ToPtr("open"), 
														 | 
														
														 | 
														
															 		Status:  util.ToPtr("open"), 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -69,7 +77,7 @@ func (strategy qqq) Handle(turn *sentio.Turn, market sentio.Market, rs sentio.Ri 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		return err 
														 | 
														
														 | 
														
															 		return err 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	// update stoplosses or close running orders 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	// update StopLosses or close running orders 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	var hasClosedOrders = false 
														 | 
														
														 | 
														
															 	var hasClosedOrders = false 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	for i := range orders { 
														 | 
														
														 | 
														
															 	for i := range orders { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -102,7 +110,16 @@ func (strategy qqq) Handle(turn *sentio.Turn, market sentio.Market, rs sentio.Ri 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			continue 
														 | 
														
														 | 
														
															 			continue 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		if err = market.UpdateOrder(orders[i].GetId(), rs); err != nil { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		opts := sentio.OrderUpdateOptions{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			TakeProfit: util.ToPtr(rs.TakeProfit(orders[i].GetSymbol(), quotes[orders[i].GetSymbol()].BidPrice)), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			StopLoss:   util.ToPtr(rs.StopLoss(orders[i].GetSymbol(), quotes[orders[i].GetSymbol()].BidPrice)), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		if !strategy.EnableStopLoss() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			opts.StopLoss = nil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		if err = market.UpdateOrder(orders[i].GetId(), opts); err != nil { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			return err 
														 | 
														
														 | 
														
															 			return err 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -117,17 +134,15 @@ func (strategy qqq) Handle(turn *sentio.Turn, market sentio.Market, rs sentio.Ri 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		return nil 
														 | 
														
														 | 
														
															 		return nil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	if quotes, err = market.Quotes(); err != nil { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		return err 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	var opts sentio.OrderOptions 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	var opts sentio.OrderCreateOptions 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if opts, err = util.NewOrder(market, strategy, turn.Action, quotes, rs); err != nil { 
														 | 
														
														 | 
														
															 	if opts, err = util.NewOrder(market, strategy, turn.Action, quotes, rs); err != nil { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		return err 
														 | 
														
														 | 
														
															 		return err 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	// Disable StopLoss 
														 | 
														
														 | 
														
															 	// Disable StopLoss 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	opts.StopLoss = nil 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	if !strategy.EnableStopLoss() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		opts.StopLoss = nil 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	return market.CreateOrder(opts) 
														 | 
														
														 | 
														
															 	return market.CreateOrder(opts) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |