File size: 2,734 Bytes
e97cf97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import json
import os

# Load YOLO detection data (from the given file)
yolo_file_path = '/media/gjin/New Volume/BACKTEST_DATA/black_edition_rolling_window_20_candlestick_5/json_data_folder/LINK_USDT_2024-12-02/LINK_USDT_17-27-55.json'

with open(yolo_file_path, 'r') as f:
    yolo_data = json.load(f)

# Load Zscore signal data (from the given file)
zscore_file_path = '/home/gjin/Documents/zscore/signalsLINK.json'

with open(zscore_file_path, 'r') as f:
    zscore_data = json.load(f)

# Define a function to update the YOLO trend based on zscore detection
def update_trend_with_zscore(yolo_data, zscore_data):
    for yolo_entry in yolo_data:
        symbol = yolo_entry['symbol']
        date_and_time = yolo_entry['date_and_time']

        # Normalize the symbol from zscore data (remove slash to match YOLO format)
        normalized_symbol = symbol.replace('/', '')  # Example: "ADA/USDT" becomes "ADAUSDT"

        # Match the YOLO entry with the zscore entry by symbol and timestamp
        zscore_entry = next((item for item in zscore_data if item['symbol'].replace('/', '') == normalized_symbol and item['date_and_time'] == date_and_time), None)

        if zscore_entry:
            # If zscore detection is True and trend is "no trend", keep it as "no trend"
            if zscore_entry['detection'] == 'True':
                # Do not modify the trend if already set
                if yolo_entry['trend'] == "no trend":
                    # Only set zscore detection flag if trend is "no trend"
                    yolo_entry['zscore_detection'] = True
                else:
                    # Keep existing trend, just add zscore detection flag
                    if 'zscore_detection' not in yolo_entry:
                        yolo_entry['zscore_detection'] = True
            else:
                # If zscore detection is False, set the trend to "no trend based on zscore detection"
                yolo_entry['trend'] = "no trend based on zscore detection"
                if 'zscore_detection' in yolo_entry:
                    del yolo_entry['zscore_detection']

        else:
            print(f"No zscore data found for {symbol} at {date_and_time}")

# Apply the function to update the YOLO data
update_trend_with_zscore(yolo_data, zscore_data)

# Define the output file path where the updated YOLO data will be saved
output_file_path = '/home/gjin/Documents/zscore/YOLO_WITH_ZSCORE/LINK_USDT_19-09-41_updated.json'

# Ensure the directory exists
os.makedirs(os.path.dirname(output_file_path), exist_ok=True)

# Save the updated YOLO data to the output file
with open(output_file_path, 'w') as f:
    json.dump(yolo_data, f, indent=4)

print(f"Updated YOLO data has been saved to {output_file_path}")