Skip to content

Commit

Permalink
#22 prepare
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul Bouquet committed Oct 1, 2018
1 parent b0da17b commit 7d4c66f
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 5 deletions.
4 changes: 4 additions & 0 deletions Evaluator/Strategies/SimpleMixedStrategiesEvaluator.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"required_time_frames" : ["30m", "1h", "2h", "4h", "1d"],
"required_evaluators" : ["*"]
}
51 changes: 47 additions & 4 deletions Evaluator/Strategies/mixed_strategies_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"subtype": "Strategies",
"version": "1.0.0",
"requirements": ["instant_fluctuations_evaluator", "news_evaluator"],
"config_files": ["FullMixedStrategiesEvaluator.json", "InstantSocialReactionMixedStrategiesEvaluator.json"],
"config_files": ["FullMixedStrategiesEvaluator.json", "InstantSocialReactionMixedStrategiesEvaluator.json", "SimpleMixedStrategiesEvaluator.json"],
"tests":["test_full_mixed_strategies_evaluator"]
}
"""
Expand All @@ -20,9 +20,8 @@


class FullMixedStrategiesEvaluator(MixedStrategiesEvaluator):

DESCRIPTION = "FullMixedStrategiesEvaluator uses all activated evaluators and averages their evaluation \n" \
"to make the strategy evaluation"
"to make the strategy evaluation"

def __init__(self):
super().__init__()
Expand Down Expand Up @@ -132,7 +131,7 @@ def eval_impl(self) -> None:
# TODO : This is an example
if InstantFluctuationsEvaluator.get_name() in self.matrix[EvaluatorMatrixTypes.REAL_TIME]:
if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.REAL_TIME][
InstantFluctuationsEvaluator.get_name()]):
InstantFluctuationsEvaluator.get_name()]):
self.instant_evaluation += self.matrix[EvaluatorMatrixTypes.REAL_TIME][
InstantFluctuationsEvaluator.get_name()]
self.inc_instant_counter()
Expand Down Expand Up @@ -173,3 +172,47 @@ def finalize(self):

if category > 0:
self.eval_note = eval_temp / category


class SimpleMixedStrategiesEvaluator(MixedStrategiesEvaluator):
DESCRIPTION = "SimpleMixedStrategiesEvaluator uses all activated evaluators and averages their evaluation \n" \
"to make the strategy evaluation"

def __init__(self):
super().__init__()
self.create_divergence_analyser()
self.counter = 0
self.evaluation = 0

def set_matrix(self, matrix):
super().set_matrix(matrix)

# TODO temp with notification
# self.get_divergence()

def eval_impl(self) -> None:
self.counter = 0
self.evaluation = 0

for rt in self.matrix[EvaluatorMatrixTypes.REAL_TIME]:
if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.REAL_TIME][rt]):
self.evaluation += self.matrix[EvaluatorMatrixTypes.REAL_TIME][rt]
self.counter += 1

for ta in self.matrix[EvaluatorMatrixTypes.TA]:
if self.matrix[EvaluatorMatrixTypes.TA][ta]:
for ta_time_frame in self.matrix[EvaluatorMatrixTypes.TA][ta]:
if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.TA][ta][ta_time_frame]):
self.evaluation += self.matrix[EvaluatorMatrixTypes.TA][ta][ta_time_frame]
self.counter += 1

for social in self.matrix[EvaluatorMatrixTypes.SOCIAL]:
if check_valid_eval_note(self.matrix[EvaluatorMatrixTypes.SOCIAL][social]):
self.evaluation += self.matrix[EvaluatorMatrixTypes.SOCIAL][social]
self.counter += 1

self.finalize()

def finalize(self):
if self.counter > 0:
self.eval_note += self.evaluation / self.counter
2 changes: 1 addition & 1 deletion tentacles_list.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"instant_fluctuations_evaluator": {"name": "instant_fluctuations_evaluator", "type": "Evaluator", "subtype": "RealTime", "version": "1.0.0", "requirements": []}, "orderbook_evaluator": {"name": "orderbook_evaluator", "type": "Evaluator", "subtype": "RealTime", "version": "1.0.0", "requirements": []}, "forum_evaluator": {"name": "forum_evaluator", "type": "Evaluator", "subtype": "Social", "version": "1.0.0", "requirements": [], "config_files": ["RedditForumEvaluator.json"]}, "news_evaluator": {"name": "news_evaluator", "type": "Evaluator", "subtype": "Social", "version": "1.0.0", "requirements": [], "config_files": ["TwitterNewsEvaluator.json"]}, "stats_evaluator": {"name": "stats_evaluator", "type": "Evaluator", "subtype": "Social", "version": "1.0.0", "requirements": [], "config_files": ["GoogleTrendStatsEvaluator.json"]}, "high_frequency_strategy_evaluator": {"name": "high_frequency_strategy_evaluator", "type": "Evaluator", "subtype": "Strategies", "version": "1.0.0", "requirements": ["instant_fluctuations_evaluator"], "config_files": ["HighFrequencyStrategiesEvaluator.json"]}, "market_stability_strategy_evaluator": {"name": "market_stability_strategy_evaluator", "type": "Evaluator", "subtype": "Strategies", "version": "1.0.0", "requirements": ["instant_fluctuations_evaluator"], "config_files": ["MarketStabilityStrategiesEvaluator.json"]}, "mixed_strategies_evaluator": {"name": "mixed_strategies_evaluator", "type": "Evaluator", "subtype": "Strategies", "version": "1.0.0", "requirements": ["instant_fluctuations_evaluator", "news_evaluator"], "config_files": ["FullMixedStrategiesEvaluator.json", "InstantSocialReactionMixedStrategiesEvaluator.json"], "tests": ["test_full_mixed_strategies_evaluator"]}, "move_signals_strategy_evaluator": {"name": "move_signals_strategy_evaluator", "type": "Evaluator", "subtype": "Strategies", "version": "1.0.0", "requirements": ["momentum_evaluator", "trend_evaluator", "instant_fluctuations_evaluator"], "config_files": ["MoveSignalsStrategyEvaluator.json"], "tests": ["test_move_signals_strategy_evaluator"]}, "momentum_evaluator": {"package_name": "OctoBot-Tentacles", "name": "momentum_evaluator", "type": "Evaluator", "subtype": "TA", "version": "1.0.0", "requirements": [], "tests": ["test_adx_TA_evaluator", "test_bollinger_bands_momentum_TA_evaluator", "test_macd_TA_evaluator", "test_rsi_TA_evaluator", "test_klinger_TA_evaluator"]}, "trend_evaluator": {"name": "trend_evaluator", "type": "Evaluator", "subtype": "TA", "version": "1.0.0", "requirements": [], "tests": ["test_double_moving_averages_TA_evaluator"]}, "volatility_evaluator": {"name": "volatility_evaluator", "type": "Evaluator", "subtype": "TA", "version": "1.0.0", "requirements": []}, "overall_state_analysis": {"name": "overall_state_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "pattern_analysis": {"name": "pattern_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "statistics_analysis": {"name": "statistics_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "text_analysis": {"name": "text_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "trend_analysis": {"name": "trend_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "daily_trading_mode": {"package_name": "OctoBot-Tentacles", "name": "daily_trading_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": ["mixed_strategies_evaluator"], "config_files": ["DailyTradingMode.json"], "tests": ["test_daily_trading_mode_creator", "test_daily_trading_mode_decider"]}, "high_frequency_mode": {"name": "high_frequency_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": ["high_frequency_strategy_evaluator"], "config_files": ["HighFrequencyMode.json"], "developing": true}, "hybrid_trading_mode": {"name": "hybrid_trading_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": ["daily_trading_mode", "high_frequency_mode", "market_stability_strategy_evaluator"], "config_files": ["HybridTradingMode.json"], "developing": true}, "investor_mode": {"name": "investor_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": [], "config_files": ["InvestorMode.json"], "developing": true}, "objective_mode": {"name": "objective_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": [], "config_files": ["ObjectiveMode.json"], "developing": true}, "opportunity_mode": {"name": "opportunity_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": [], "config_files": ["OpportunityMode.json"], "developing": true}, "safe_profit_mode": {"name": "safe_profit_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": [], "config_files": ["SafeProfitMode.json"], "developing": true}, "signal_trading_mode": {"name": "signal_trading_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": ["move_signals_strategy_evaluator", "daily_trading_mode"], "config_files": ["SignalTradingMode.json"]}}
{"instant_fluctuations_evaluator": {"name": "instant_fluctuations_evaluator", "type": "Evaluator", "subtype": "RealTime", "version": "1.0.0", "requirements": []}, "orderbook_evaluator": {"name": "orderbook_evaluator", "type": "Evaluator", "subtype": "RealTime", "version": "1.0.0", "requirements": []}, "forum_evaluator": {"name": "forum_evaluator", "type": "Evaluator", "subtype": "Social", "version": "1.0.0", "requirements": [], "config_files": ["RedditForumEvaluator.json"]}, "news_evaluator": {"name": "news_evaluator", "type": "Evaluator", "subtype": "Social", "version": "1.0.0", "requirements": [], "config_files": ["TwitterNewsEvaluator.json"]}, "stats_evaluator": {"name": "stats_evaluator", "type": "Evaluator", "subtype": "Social", "version": "1.0.0", "requirements": [], "config_files": ["GoogleTrendStatsEvaluator.json"]}, "high_frequency_strategy_evaluator": {"name": "high_frequency_strategy_evaluator", "type": "Evaluator", "subtype": "Strategies", "version": "1.0.0", "requirements": ["instant_fluctuations_evaluator"], "config_files": ["HighFrequencyStrategiesEvaluator.json"]}, "market_stability_strategy_evaluator": {"name": "market_stability_strategy_evaluator", "type": "Evaluator", "subtype": "Strategies", "version": "1.0.0", "requirements": ["instant_fluctuations_evaluator"], "config_files": ["MarketStabilityStrategiesEvaluator.json"]}, "mixed_strategies_evaluator": {"name": "mixed_strategies_evaluator", "type": "Evaluator", "subtype": "Strategies", "version": "1.0.0", "requirements": ["instant_fluctuations_evaluator", "news_evaluator"], "config_files": ["FullMixedStrategiesEvaluator.json", "InstantSocialReactionMixedStrategiesEvaluator.json", "SimpleMixedStrategiesEvaluator.json"], "tests": ["test_full_mixed_strategies_evaluator"]}, "move_signals_strategy_evaluator": {"name": "move_signals_strategy_evaluator", "type": "Evaluator", "subtype": "Strategies", "version": "1.0.0", "requirements": ["momentum_evaluator", "trend_evaluator", "instant_fluctuations_evaluator"], "config_files": ["MoveSignalsStrategyEvaluator.json"], "tests": ["test_move_signals_strategy_evaluator"]}, "momentum_evaluator": {"name": "momentum_evaluator", "type": "Evaluator", "subtype": "TA", "version": "1.0.0", "requirements": [], "tests": ["test_adx_TA_evaluator", "test_bollinger_bands_momentum_TA_evaluator", "test_macd_TA_evaluator", "test_rsi_TA_evaluator", "test_klinger_TA_evaluator"]}, "trend_evaluator": {"name": "trend_evaluator", "type": "Evaluator", "subtype": "TA", "version": "1.0.0", "requirements": [], "tests": ["test_double_moving_averages_TA_evaluator"]}, "volatility_evaluator": {"name": "volatility_evaluator", "type": "Evaluator", "subtype": "TA", "version": "1.0.0", "requirements": []}, "overall_state_analysis": {"name": "overall_state_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "pattern_analysis": {"name": "pattern_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "statistics_analysis": {"name": "statistics_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "text_analysis": {"name": "text_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "trend_analysis": {"name": "trend_analysis", "type": "Evaluator", "subtype": "Util", "version": "1.0.0", "requirements": []}, "daily_trading_mode": {"name": "daily_trading_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": ["mixed_strategies_evaluator"], "config_files": ["DailyTradingMode.json"], "tests": ["test_daily_trading_mode_creator", "test_daily_trading_mode_decider"]}, "high_frequency_mode": {"name": "high_frequency_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": ["high_frequency_strategy_evaluator"], "config_files": ["HighFrequencyMode.json"], "developing": true}, "hybrid_trading_mode": {"name": "hybrid_trading_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": ["daily_trading_mode", "high_frequency_mode", "market_stability_strategy_evaluator"], "config_files": ["HybridTradingMode.json"], "developing": true}, "investor_mode": {"name": "investor_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": [], "config_files": ["InvestorMode.json"], "developing": true}, "objective_mode": {"name": "objective_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": [], "config_files": ["ObjectiveMode.json"], "developing": true}, "opportunity_mode": {"name": "opportunity_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": [], "config_files": ["OpportunityMode.json"], "developing": true}, "safe_profit_mode": {"name": "safe_profit_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": [], "config_files": ["SafeProfitMode.json"], "developing": true}, "signal_trading_mode": {"name": "signal_trading_mode", "type": "Trading", "subtype": "Mode", "version": "1.0.0", "requirements": ["move_signals_strategy_evaluator", "daily_trading_mode"], "config_files": ["SignalTradingMode.json"]}}

0 comments on commit 7d4c66f

Please sign in to comment.