指定

import pandas as pd
import numpy as np

def generate_signals(data):
    signals = pd.DataFrame(index=data.index)
    signals['price'] = data['Close']
    
    # Calculate moving averages
    signals['short_ma'] = data['Close'].rolling(window=20, min_periods=1).mean()
    signals['long_ma'] = data['Close'].rolling(window=50, min_periods=1).mean()
    
    # Generate buy signals
    signals['buy_signal'] = np.where(signals['short_ma'] > signals['long_ma'], 1, 0)
    
    # Generate sell signals
    signals['sell_signal'] = np.where(signals['short_ma'] < signals['long_ma'], -1, 0)
    
    return signals

def backtest_strategy(signals, initial_capital=10000):
    positions = pd.DataFrame(index=signals.index).fillna(0.0)
    positions['asset'] = 1000 * signals['buy_signal'] + -1000 * signals['sell_signal']
    
    # Calculate portfolio value
    portfolio = positions.multiply(signals['price'], axis=0)
    pos_diff = positions.diff()
    portfolio['holdings'] = (positions.multiply(signals['price'], axis=0)).sum(axis=1)
    portfolio['cash'] = initial_capital - (pos_diff.multiply(signals['price'], axis=0)).sum(axis=1).cumsum()
    portfolio['total'] = portfolio['cash'] + portfolio['holdings']
    portfolio['returns'] = portfolio['total'].pct_change()
    
    return portfolio

# Example usage:
# Assuming 'data' is a DataFrame containing historical price data with 'Date' as index and 'Close' as a column
# signals = generate_signals(data)
# portfolio = backtest_strategy(signals)
# print(portfolio.tail())

反馈

1
开发者 1
等级
(279)
项目
378
72%
仲裁
19
32% / 47%
逾期
16
4%
空闲
发布者: 15 代码
2
开发者 2
等级
(252)
项目
462
26%
仲裁
139
20% / 60%
逾期
100
22%
空闲
3
开发者 3
等级
(298)
项目
478
40%
仲裁
105
40% / 24%
逾期
82
17%
已载入
发布者: 2 代码
相似订单
PHANTOM PROTOCOL V1 35 - 150 USD
PHANTOM PROTOCOL V1 – MT5 EXPERT ADVISOR SPECIFICATION Develop a professional MetaTrader 5 (MT5) Expert Advisor named “PHANTOM PROTOCOL V1”. PRIMARY MARKET: - XAUUSD (Gold) - Designed primarily for M15 and H1 timeframes. - The EA must work with both 3-digit and 2-digit gold pricing where applicable. TRADING LOGIC: Use pure price-action and market-structure analysis rather than relying on a single indicator. The EA
Most of the expert is already coded . Create a panel to show the Ratio for the Range . Trigger is based on ratio . Show Distribution / project starts after we clear Distribution

项目信息

预算
30 - 50 USD
截止日期
从 1 到 14 天