Skip to main content
. 2025 Feb 18;11:e2690. doi: 10.7717/peerj-cs.2690

Algorithm 1. Pseudocode for adaptive data structure in RL agents.

1: Input: Full dataset D, window configurations windows={yearly,semiannual,quarterly}
2: Output: Trained agents for specific time periods
3:
4: Function TrainRLAgnets (D, windows):
5:    data_splits SplitDataset(D, windows)
6:    agents{} {Initialize empty dictionary for storing agents}
7:   for each window_type in windows:
8:     for each segment in data_splits[window_type]:
9:        agent InitializeRLModel()
10:       Train(agent, segment.data) {Train agent on data segment}
11:        agents[segment]agent
12:   return agents
13:
14: Function SplitDataset(D, windows):
15:    data_splits{}
16:   for each window_type in windows:
17:     if window_type==yearly”:
18:        data_splits[window_type] SplitByYear(D)
19:     if window_type== "semiannual":
20:        data_splits[window_type] SplitBySixMonths(D)
21:     if window_type== "quarterly":
22:        data_splits[window_type] SplitByThreeMonths(D)
23:   return data_splits
24:
25: Main Program:
26: D LoadMarketData()
27: windows{yearly,semiannual,quarterly}
28: trained_agents TrainRLAgents(D, windows)
29: Print(“Agents trained:", trained_agents.keys())