prompt:
ETF Uptrend Screener adında, tek bir HTML dosyası (etf_screener.html) oluştur. Tamamen kendi içinde çalışsın: tek dosya, sadece vanilla HTML/CSS/JS, her şey inline, CDN yok, framework yok, build adımı yok, sunucu yok. Diskten çift tık / file:// ile açılınca çalışmalı (bunun için API çağrısı CORS-safelisted header ile yapılır — bkz. aşağı).
GÖREV 3 ADIM:
1) Veri kaynağını doğrula: TEK bir curl çağrısı. Aşağıdaki JSON body'yi POST ile https://t.co/QicO5bRSCB adresine gönder, header: Content-Type: text/plain;charset=UTF-8 (ASLA application/json kullanma — bu header CORS-safelisted olduğu için preflight gönderilmez; endpoint Origin:null'e izin verir, yani file:// çalışır). JSON içinde totalCount ve data dönerse devam et; hata dönerse kullanıcıya hatayı göster ve sormayı bırak.
2) etf_screener.html dosyasını yaz.
3) macOS'ta "open etf_screener.html" ile aç, bir cümle söyle, dur.
API ÇAĞRISI (birebir kopyala, "iyileştirme"):
- URL ve header yukarıdakiyle aynı.
- Body (JSON.stringify ile):
{
"markets": ["america"],
"options": { "lang": "en" },
"columns": ["name","description","close","change","volume","Value.Traded","aum","expense_ratio"],
"filter": [
{"left":"volume","operation":"greater","right":100000},
{"left":"close","operation":"greater","right":"EMA5"},
{"left":"EMA5","operation":"greater","right":"EMA13"},
{"left":"EMA13","operation":"greater","right":"EMA50"}
],
"filter2": {
"operator":"and",
"operands": [
{"expression":{"left":"type","operation":"equal","right":"fund"}},
{"expression":{"left":"typespecs","operation":"has","right":["etf"]}}
]
},
"sort": {"sortBy":"aum","sortOrder":"desc"},
"range": [0,100],
"ignore_unknown_fields": false
}
Not: Bu sorgu tüm ETF'leri getirir (2x/3x kaldıraçlı olanlar dahil). Kaldıraç ve sektör bilgisini API vermez; bunları İSTEMCİ TARAFINDA (client-side) türet — aşağıda açıklandığı gibi.
- Yanıt şekli: { totalCount, data: [ { s, d } ] } — s = "EXCHANGE:TICKER", d[i] = columns[i]'nin değeri (positional). Hata durumunda error alanı gelir, önce onu kontrol et.
- Eğer json.error varsa hata fırlat.
SAYFA ÖZELLİKLERİ:
Başlık: "ETF Uptrend Screener". Altbaşlık: "US ETFs where price > EMA5 > EMA13 > EMA50 (daily) — live from TradingView, sorted by fund size. Toggle to show only 2x/3x leveraged funds; sector is read from each fund's name."
- Açılışta otomatik fetch; "Refresh" butonu yeniden çeker. Fetch sırasında "Loading…", başarıda toplam eşleşme sayısı + güncelleme saati göster, başarısızlıkta friendly hata kutusu: "Couldn't reach TradingView — check your internet connection and press Refresh" + altında küçük teknik detay.
- Toggle (iki butonlu grup): "All ETFs" ve "2x / 3x Leveraged". Leveraged modunda sadece 2x/3x ETF'ler gösterilir ve her satırdaki sembolün yanına küçük bir "2X" veya "3X" badge'i eklenir. Leveraged modunda eşleşme yoksa "No 2x/3x leveraged ETFs are in a daily uptrend right now." mesajı göster.
- Kaldıraç tespiti (client-side, description üzerinden, case-insensitive):
* 3x: /\b3x\b/i.test(desc) VEYA (/ultrapro/i.test(desc) VE !/short/i.test(desc))
* 2x: /\b2x\b/i.test(desc) VEYA (/ultra/i.test(desc) VE !/ultra-?short/i.test(desc) VE !/short/i.test(desc))
* 3x önce kontrol edilir. Bu, Direxion/GraniteShares "Bull 2X/3X" adlandırmasını ve ProShares "Ultra"(2x)/"UltraPro"(3x) adlandırmasını yakalar; inverse/short ürünlerini ("UltraShort","Ultra Short") dışlar.
- Sektör sütunu (client-side, name+description üzerinden regex ile türetilir). Kurallar (sırayla, ilk eşleşen döner):
semiconductor -> "Semiconductors"
biotech|health|pharma|medical|drug -> "Healthcare"
energy|oil|gas|crude|petrol|solar|wind|clean energy -> "Energy"
bank|financial|financi -> "Financials"
real estate|reit -> "Real Estate"
utilit -> "Utilities"
gold|silver|copper|mining|metal|commodit|platinum|palladium -> "Materials"
industri|manufactur|machiner -> "Industrials"
consumer|retail|discr -> "Consumer"
technolog|tech|internet|software|cyber|cloud|nasdaq|qqq|comput|commun|5g|fiber -> "Technology"
small cap|mid cap|micro cap|russell|s&p|sp 500|dow jones|broad market|total market|1000 value|1000 growth -> "Broad Market"
bond|income|treasury|agg|yield|dividend|muni|corporate|floating -> "Fixed Income"
volatil|vix|futures|managed futures|trend -> "Alternatives"
bitcoin|crypto|blockchain|ethereum|digital -> "Crypto"
eşleşme yoksa "—"
- Tablo sütunları (sırayla, başına hepsi sort edilebilir): Symbol | Name | Sector | Price | Change % | Volume | $ Volume | AUM | Expense %
- Formatlama:
* Symbol: ticker (s'nin ":" sonrası). Kaldıraçlıysa yanına badge.
* Price: 2 ondalık.
* Change %: signed (+/−), 2 ondalık, renkli (yeşil yukarı, kırmızı aşağı, sıfır gri). "−0.39%" gibi.
* Volume ve $ Volume ve AUM: humanize (1.23K, 4.56M, 7.89B, 1.23T). $ Volume ve AUM başına "$".
* Expense: yüzde olarak, 2 ondalık (0.06%).
* Eksik değer: "—".
- Sütun başlıklarına tıklayınca sırala (asc/desc toggle, ok göstergesi ▲/▼, aktif sütun accent renkte). Metin sütunları (name, description, sector) için ilk tıklamada ascending, sayısal sütunlar için descending başla. Boş/null değerler sıralamada en sona gitsin.
- Satıra tıklayınca https://t.co/HS3qN6BWO7<s> (s'nin tamamı, "EXCHANGE:TICKER" formatında) yeni sekmede açılsın.
- OKUNAKLILIK (önemli): Tablo width:100%, SABİT min-width yok (min-width KULLANMA — sağ sütunları keser). Name sütununa max-width:240px; white-space:normal; word-break:break-word ver ki uzun fon adları sığsın ve AUM/Expense sütunları ekrandan kaybolmasın. Tablo .table-wrap div'i içinde overflow-x:auto ile yatay kayar; dar ekranda tablo kayar, sayfa kaymaz. Tüm sütunlar masaüstünde ekranda görünmeli.
- Stil: modern, temiz. Light + dark prefers-color-scheme ile. Sistem font stack. Badge küçük, accent renkli, chip arka planlı. Toggle segmented control görünümünde (aktif buton accent dolgu). Hata kutusu kırmızı kenarlıklı. SVG/emoji icon inline.
- HTML'de herhangi bir dış kaynak (CDN, font, script, image URL) OLMASIN. CORS header'ı fetch'te {"Content-Type":"text/plain;charset=UTF-8"} olarak ayarla, body'i yukarıdaki JSON'un JSON.stringify edilmiş haliyle gönder.
- fetch akışı: fetch -> res.ok değilse throw -> json -> json.error varsa throw -> data'yı map'le (vals + sector + lev/mult) -> status + render. catch'te hata kutusu + boş tablo. finally'de refresh butonu aktif.
KATI SINIRLAR — open komutu çalışınca görev biter:
- Sayfanın açıldığını/doğru render olduğunu DOĞRULAMA.
- Browser otomasyonu, ekran görüntüsü, lint, sunucu, syntax check ÇALIŞTIRMA.
- Başka dosya oluşturma/düzenleme.
- İzin verilen tek ağ çağrısı: 1. adımdaki tek curl. Tek doğrulama da o curl.
@AlicanKiraz0 Aynı zamanda yatırım.Birşey yapamazsan koy data centera saatlik kirala😅.Yapay zeka ile uğraşan herkezin rüyasına giriyor.24 gb Vram ile 3 gün sürdü https://t.co/Tdp52lEcQc datasını eğitim yaptırmam. Bu makina ile herhalde 4-5 saat.
EXPOSED: 200+ AI Agents have been LEAKED...
These Agents SELL for $5,000+ per build and cover 20+ industries...
Inside the file you’ll get:
→Social Media Agents ($8k+)
→Creative Content Agents ($3k+)
→Cold outreach Agents ($3k+)
→Lead Booking Agents ($6k+)
→Customer support agents ($5k+)
→Data & Scraping Agent ($8k+)
→Lead qualification agents ($4k+)
→Productivity, HR, Analytics, DevOps & legal Agents also!
100s of plug & play systems that save you time AND money.
Follow + RT + Comment “AGENTS” and I’ll send you the drive for FREE!
BONUS: An n8n Masterclass, so you know how to run, customize, and scale every workflow.
PS: I'm only keeping this live for 48 hours. After that, it's back to $5k+ per agent. Your move.