Vollautomatisches Trading-System für den DAX mit zeitbasierten Strategien. Features: Dynamisches Risk Management (0.2% pro Trade), Trailing Stop-Loss, Break-Even Management und saisonale Filter. Backtested über mehrere Jahre mit konsistenten Ergebnissen.
// Risk Management & Position Sizing
double calcLotsize(double stop){
double riskMoney = AccountInfoDouble(ACCOUNT_BALANCE)/(100/risk);
riskMoney = riskMoney / stop / SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE);
if(SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP) == 0.01){
riskMoney = NormalizeDouble(riskMoney, 2);
}
return riskMoney;
}
// Breakeven & Trailing Stop Implementation
if(PositionGetDouble(POSITION_PRICE_OPEN) - PositionGetDouble(POSITION_PRICE_CURRENT) > BE
&& PositionGetDouble(POSITION_SL) > PositionGetDouble(POSITION_PRICE_OPEN)){
trade.PositionModify(_Symbol, PositionGetDouble(POSITION_PRICE_OPEN) - SL_Push,
PositionGetDouble(POSITION_TP));
}
Umfassendes Analyse-Tool für S&P 500 Aktien. Automatisiertes Web-Scraping von Wikipedia, Batch-Download von Kursdaten, Risk-Return Analyse und Sektor-Korrelationen. Visualisiert die Top-Performer mit interaktiven Charts.
# Risk-Return Analysis mit Sharpe Ratio
def analyze_stocks(tickers, industries, start_date, end_date):
# Download mit Retry-Logic und Rate Limiting
close, failed = download_ticker_data(tickers, start_date, end_date, batch_size=50)
# Performance Metriken berechnen
returns = close.pct_change().dropna()
annual_return = returns.mean() * 252 * 100
annual_risk = returns.std() * np.sqrt(252) * 100
# Visualisierung der Top 20 Performer
summary = pd.DataFrame({
'Return': annual_return,
'Risk': annual_risk,
'Sharpe': annual_return / annual_risk,
'Industry': [industries.get(t, 'Unknown') for t in annual_return.index]
})
Sammlung von 5 Zertifizierungs-Projekten aus dem FreeCodeCamp Scientific Computing Kurs: Arithmetic Formatter, Time Calculator, Budget App mit Visualisierung, Polygon Area Calculator und Probability Calculator mit Monte Carlo Simulation.
# Monte Carlo Probability Calculator
def experiment(hat, expected_balls, num_balls_drawn, num_experiments):
success = 0
for _ in range(num_experiments):
copy_hat = Hat(**color_counts)
drawn_balls = copy_hat.draw(num_balls_drawn)
# Check if all expected balls were drawn
all_match = True
for color, min_count in expected_balls.items():
if color_drawn.get(color, 0) < min_count:
all_match = False
break
if all_match:
success += 1
return success / num_experiments
Implementierung fortgeschrittener Algorithmen und Datenstrukturen: Binary Search Tree, Vigenère Cipher, Dijkstra's Shortest Path, Merge Sort, Vector Space Operations und mehr. Fokus auf Clean Code und Effizienz.
# Dijkstra's Shortest Path Algorithm
def shortest_path(graph, start, target=''):
unvisited = list(graph)
distances = {node: 0 if node == start else float('inf') for node in graph}
paths = {node: [] for node in graph}
while unvisited:
current = min(unvisited, key=distances.get)
for node, distance in graph[current]:
if distance + distances[current] < distances[node]:
distances[node] = distance + distances[current]
paths[node] = paths[current] + [node]
unvisited.remove(current)
return distances, paths
Interaktive Web-Anwendung zur Berechnung von Edelsteinpreisen. Features: Verschiedene Edelsteintypen, Qualitätsstufen, Karatgewicht-Berechnung und responsive Design. Praktisches Tool für Juweliere und Sammler.
// Preisberechnung basierend auf Edelstein-Eigenschaften
function calculateGemPrice(gemType, quality, carats) {
const basePrices = {
'diamond': { excellent: 5000, good: 3000, fair: 1500 },
'ruby': { excellent: 3000, good: 1800, fair: 900 },
'emerald': { excellent: 2500, good: 1500, fair: 750 }
};
const basePrice = basePrices[gemType][quality];
const price = basePrice * carats * getQualityMultiplier(quality);
return formatCurrency(price);
}
Grundlagen, OOP, Algorithmen
pandas, NumPy, matplotlib
MQL5, MetaTrader 5, Backtesting
HTML, CSS, JavaScript
Git, GitHub
Sortierung, Graphen, Datenstrukturen
Interessiert an einer Zusammenarbeit? Lass uns in Kontakt treten!