Initial commit: IBKRTrader

.NET WinForms-Anwendung (Core, Modules/CongressTrading, UI).
Enthaelt .gitignore und settings.example.json als Konfigurationsvorlage.
Echte settings.json mit Zugangsdaten ist bewusst ausgeschlossen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-07-26 18:19:47 +02:00
co-authored by Claude Opus 4.8
commit ebeb035e92
47 changed files with 4527 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
$content = Get-Content 'j:\Softwareprojekte\IBKRTrader\IBKRTrader\ct_raw.html' -Raw
# Simuliere UnescapeHtmlPayload
$marker = 'self.__next_f.push([1,"'
$searchFrom = 0
$allPayload = ""
while ($true) {
$idx = $content.IndexOf($marker, $searchFrom)
if ($idx -lt 0) { break }
$contentStart = $idx + $marker.Length
# Finde Ende des Strings (nicht-escaped ")
$end = -1
$i = $contentStart
while ($i -lt $content.Length) {
if ($content[$i] -eq '\' ) { $i += 2; continue }
if ($content[$i] -eq '"' ) { $end = $i; break }
$i++
}
if ($end -lt 0) { break }
$chunk = $content.Substring($contentStart, $end - $contentStart)
# Un-escape \" → "
$chunk = $chunk -replace '\\"', '"'
$chunk = $chunk -replace '\\/', '/'
$allPayload += $chunk
$searchFrom = $end + 2
}
Write-Host "Payload length: $($allPayload.Length)"
# Finde "data":[
$dataIdx = $allPayload.IndexOf('"data":[')
Write-Host "data array at: $dataIdx"
if ($dataIdx -gt 0) {
Write-Host "=== data array preview (first 500 chars) ==="
$start = $dataIdx
$len = [Math]::Min(500, $allPayload.Length - $start)
Write-Host $allPayload.Substring($start, $len)
# totalPages
$tpMatch = [regex]::Match($allPayload, '"totalPages"\s*:\s*(\d+)')
if ($tpMatch.Success) {
Write-Host ""
Write-Host "=== totalPages: $($tpMatch.Groups[1].Value) ==="
}
# _txId Anzahl zählen
$txCount = ([regex]::Matches($allPayload, '"_txId"')).Count
Write-Host "=== _txId Vorkommen: $txCount ==="
} else {
Write-Host "=== KEIN data Array - zeige erste 1000 chars des Payload ==="
Write-Host $allPayload.Substring(0, [Math]::Min(1000, $allPayload.Length))
}