Väljakutsete ületamine kohandatud Pine Scripti aktsiasõeluri ehitamisel
Kas olete kunagi mõelnud, kas Pine Scriptis on võimalik hankida väärtpabereid konkreetselt börsilt, filtreerida neid kohandatud tingimuste kaudu ja seejärel kuvada diagrammil? Sa ei ole üksi! Paljud arendajad ja kauplejad on püüdnud seda ideed murda, kuid seisavad silmitsi piirangutega Pine Scripti sisseehitatud funktsioonides. 🤔
Kuigi Pine Script sobib suurepäraselt tehniliste näitajate ja visualiseeringute rakendamisega, ei ole aktsiasõeluri loomine konkreetsetel börsidel dünaamiliseks töötamiseks loomulik funktsioon. Õige kodeerimisloogika ja loovusega saate nendest piirangutest siiski mööda minna. Väljakutse seisneb mõistmises, kuidas turbeandmeid tõhusalt hankida ja töödelda.
Oma isiklikul teekonnal seisin silmitsi sarnaste teetõketega. Näiteks kui proovisin luua konkreetse börsi tehniliste aktsiate jaoks skriinijat, mõistsin kiiresti, et Pine Scriptil puudub võimalus börsil kõigi väärtpaberite kohta otse päringuid teha. See nõudis karbist välja mõtlemist ja välise andmetöötluse ühendamist Pine Scripti võimalustega. 💻
Selles artiklis käsitletakse selle kohandatud funktsiooni rakendamise põhiprobleeme, eriti väärtpaberite toomise algetappi. Uurime koos, kas see ambitsioonikas plaan on teostatav, ja avastame praktilised lahendused teie sõelumisseadme ellu äratamiseks. 🚀
Käsk | Kasutusnäide |
---|---|
array.new_string() | Loob Pine Scriptis uue massiivi spetsiaalselt stringide salvestamiseks. Kasulik tickerite või väärtpaberite loendite dünaamiliseks haldamiseks. |
array.push() | Lisab massiivi lõppu elemendi. Sel juhul kasutatakse seda tickeri sümbolite dünaamiliseks lisamiseks väärtpaberite nimekirja. |
request.security() | Toob andmed konkreetse märgisümboli jaoks erinevast ajaraamist või diagrammist. See võimaldab Pine Scriptil filtreerimise eesmärgil turvateabele juurde pääseda. |
label.new() | Loob määratud kohas diagrammile uue sildi. Kasutatakse siin filtreeritud tickerite kuvamiseks visuaalse kohandamisega otse diagrammil. |
str.split() | Jaotab stringi määratud eraldaja alusel alamstringi massiiviks. Kasulik ühe stringina imporditud tickerite loendite töötlemiseks. |
input.string() | Võimaldab kasutajatel Pine Scripti sätete kaudu stringi sisestada. Selles näites kasutatakse seda väliste tickeriandmete laadimiseks skripti. |
for loop | Kordab üle massiivi või üksuste loendi. Sel juhul kasutatakse väärtpaberite või filtreeritud loendi iga märgi töötlemiseks. |
axios.get() | Täidab JavaScriptis HTTP GET päringu. Kasutatakse väärtpaberiandmete toomiseks välisest API-st eelfiltreerimise eesmärgil. |
response.data.filter() | Filtreerib kohandatud loogika alusel JavaScripti andmeobjektide massiivi. Siin kasutatakse seda väärtpaberite filtreerimiseks mahu järgi enne nende edastamist Pine Scriptile. |
fs.writeFileSync() | Kirjutab andmed sünkroonselt Node.js-i faili. Kasutatakse siin JavaScriptist filtreeritud tickerite salvestamiseks, et neid hiljem Pine Scriptis kasutada. |
Pine Scripti ja väliste tööriistadega kohandatud varusõeluri loomine
Varem esitatud skriptide eesmärk on lahendada kohandatud aktsiasõeluri loomise probleem Männi skript, ületades platvormi olemuslikud piirangud. Esimene skript töötab täielikult Pine Scripti sees, kasutades massiive, et käsitsi hallata märgisümbolite loendit. See kasutab selle loendi dünaamiliseks täitmiseks käske "array.new_string()" ja "array.push()". Kui märgid on määratletud, kasutab skript iga sümboli jaoks andmete toomiseks käsku "request.security()", mis võimaldab reaalajas filtreerimist eelmääratletud tingimustel, näiteks helitugevuse lävedel. Massiivis itereerides tuvastab ja tõstab skript esile kriteeriumidele vastavad märgid otse diagrammil, kasutades atribuuti „label.new()”. See lähenemisviis on lihtne, kuid käsitsi, nõudes skripti sisestust. 🚀
Teine skript kasutab kombineerimise teel täpsemat marsruuti JavaScript andmete koondamiseks ja Pine Scripti visualiseerimiseks. JavaScripti kasutatakse välise API-ga suhtlemiseks, hankides väärtpaberiandmeid dünaamiliselt vastavalt määratud börsile. Käsk "axios.get()" hangib andmed ja funktsioon "response.data.filter()" rakendab selliseid filtreid nagu helitugevus. See võimaldab reaalajas programmilist kontrolli väärtpaberite valiku protsessi üle. Filtreeritud märgid salvestatakse `fs.writeFileSync()' abil faili, mida Pine Script saab hiljem lugeda ja kasutada visualiseerimiseks. See meetod lihtsustab protsessi, kuid nõuab kaheastmelist töövoogu, mis hõlmab väliseid tööriistu. 🤔
Pythoni-põhine lahendus kasutab sarnast hübriidlähenemist, kasutades API-delt andmete toomiseks ja töötlemiseks Pythoni tugevaid teeke. Skript määratleb funktsiooni "fetch_securities()", mis kasutab API-kõnede tegemiseks Pythoni taotluste teeki ja filtreerib väärtpabereid mahulävede alusel. Seejärel kirjutatakse märgid faili, sarnaselt JavaScripti lahendusega, kuid Pythoni lihtsa süntaksiga. Neid andmeid saab lõplikuks visualiseerimiseks importida Pine Scripti. Pythoni paindlikkus ja kasutuslihtsus teevad sellest suurepärase valiku taustatöötluseks selles seadistuses, eriti kui tegemist on suurte andmekogumite või keerukate filtritega. 💡
Sisuliselt näitavad need lahendused, kuidas ületada lõhet Pine Scripti kaardistamise tugevuste ja andmete hankimise piirangute vahel. Olenemata sellest, kas kasutate puhast Pine Scripti või integreerite väliseid tööriistu, nagu JavaScript või Python, on võti andmete filtreerimise ja visualiseerimise optimeeritud meetodite võimendamises. Kasutades selliseid käske nagu "request.security()" Pine Scriptis või "axios.get()" JavaScriptis, saavad arendajad luua võimsaid ja kohandatud sõelujaid, mis on kohandatud nende ainulaadsetele vajadustele. Tööriistade kombinatsioon mitte ainult ei laienda Pine Scripti võimalusi, vaid tagab ka tõhusama ja skaleeritavama lähenemise väärtpaberianalüüsile. 🚀
Dünaamiline aktsiasõelur Pine Scriptis: väärtpaberite toomine, filtreerimine ja kuvamine
Pine Scripti taustalahendus väärtpaberite filtreerimiseks modulaarse loogikaga
// Step 1: Define security list (manual input as Pine Script lacks database access)
var securities = array.new_string(0)
array.push(securities, "AAPL") // Example: Apple Inc.
array.push(securities, "GOOGL") // Example: Alphabet Inc.
array.push(securities, "MSFT") // Example: Microsoft Corp.
// Step 2: Input filter criteria
filter_criteria = input.float(100, title="Minimum Volume (in millions)")
// Step 3: Loop through securities and fetch data
f_get_filtered_securities() =>
var filtered_securities = array.new_string(0)
for i = 0 to array.size(securities) - 1
ticker = array.get(securities, i)
[close, volume] = request.security(ticker, "D", [close, volume])
if volume > filter_criteria
array.push(filtered_securities, ticker)
filtered_securities
// Step 4: Plot filtered securities on the chart
var filtered_securities = f_get_filtered_securities()
for i = 0 to array.size(filtered_securities) - 1
ticker = array.get(filtered_securities, i)
label.new(bar_index, high, ticker, style=label.style_circle, color=color.green)
Alternatiivne lähenemisviis: JavaScripti kasutamine andmete koondamiseks ja Pine Scripti kasutamine diagrammideks
JavaScripti kombineerimine andmete eeltöötluseks Pine Scriptiga tulemuste visualiseerimiseks
// JavaScript Code: Fetch and filter securities from an API
const axios = require('axios');
async function fetchSecurities(exchange) {
const response = await axios.get(`https://api.example.com/securities?exchange=${exchange}`);
const filtered = response.data.filter(security => security.volume > 1000000);
return filtered.map(security => security.ticker);
}
// Save tickers to a file for Pine Script
const fs = require('fs');
fetchSecurities('NASDAQ').then(tickers => {
fs.writeFileSync('filtered_tickers.txt', tickers.join(','));
});
// Pine Script Code: Import and visualize filtered securities
// Load tickers from an external source
filtered_tickers = str.split(input.string("AAPL,GOOGL,MSFT", "Filtered Tickers"), ",")
// Plot the tickers on the chart
for i = 0 to array.size(filtered_tickers) - 1
ticker = array.get(filtered_tickers, i)
label.new(bar_index, high, ticker, style=label.style_circle, color=color.green)
Pythoni kasutamine andmehalduseks ja Pine Scripti kasutamine renderdamiseks
Pythoni taustaprogramm andmete toomiseks ja väärtpaberite eelfiltreerimiseks
# Python Code: Fetch securities and write filtered data to a file
import requests
def fetch_securities(exchange):
response = requests.get(f'https://api.example.com/securities?exchange={exchange}')
data = response.json()
return [sec['ticker'] for sec in data if sec['volume'] > 1000000]
tickers = fetch_securities('NASDAQ')
with open('filtered_tickers.txt', 'w') as file:
file.write(','.join(tickers))
// Pine Script Code: Visualize pre-filtered data
filtered_tickers = str.split(input.string("AAPL,GOOGL,MSFT", "Filtered Tickers"), ",")
for i = 0 to array.size(filtered_tickers) - 1
ticker = array.get(filtered_tickers, i)
label.new(bar_index, high, ticker, style=label.style_circle, color=color.green)
Pine Scripti sõelurite kohandamine täiustatud funktsionaalsuse jaoks
Üks oluline aspekt varude sõelumisseadme loomisel Männi skript mõistab oma piiranguid andmetele otse vahetustest juurdepääsul. Kuigi Pine Script saab hakkama täpsemate arvutuste ja diagrammide ülekatetega, ei toeta see algselt väärtpaberite täieliku loendi hankimist börsilt. Selle probleemi lahendamiseks ühendavad arendajad sageli Pine Scripti väliste andmeallikatega. Näiteks API-de, nagu Alpha Vantage või Quandl, kasutamine võib aidata hankida andmeid, mida saab seejärel töödelda selliste tingimuste jaoks nagu helitugevuse läved, RSI väärtused või liikuva keskmise ristmikud. See lähenemisviis võimaldab kauplejatel lisada oma strateegiatesse andmepõhiseid teadmisi. 📊
Teine tehnika on Pine Scripti kasutamine turvalisus loovalt toimida. Kuigi traditsiooniliselt kasutatakse seda konkreetse sümboli ajavahemike lõikes andmete kogumiseks, kasutavad mõned arendajad seda mõõdikute hankimiseks mitmest eelmääratletud märgist. See meetod hõlmab tickerite massiivi seadistamist, nende läbimist ja diagrammi dünaamilist värskendamist vastavalt täidetud tingimustele. Kuigi see meetod ei ole uute tickerite puhul dünaamiline, töötab see hästi eelmääratletud jälgimisloendite või populaarsete indeksite puhul. 💡
Sõeluja tõhususe tagamiseks on oluline optimeerida filtreerimistingimusi. Näiteks selliste reeglite lisamine, nagu „Kuva ainult tähised, mille maht on suurem kui 1 miljon ja sulgemishind üle 50-päevase SMA”, võib muuta sõeluja toimivaks. Selliste reeglite abil aitavad visuaalsed abivahendid, nagu värvilised sildid või süžeemarkerid, potentsiaalseid kandidaate kiiresti tuvastada. Kombineerides Pine Scripti funktsioone välise andmetöötlusega, saavad kauplejad meisterdada väga kohandatud sõelureid, mis on kohandatud nende ainulaadsetele kauplemisstrateegiatele. 🚀
Vastused korduma kippuvatele küsimustele Pine Scripti kohandatud sõelarite kohta
- Mis on Pine Scripti peamine piirang sõelujate loomisel?
- Pine Script ei saa dünaamiliselt tuua börsilt kõigi väärtpaberite loendit. Selleks peate sisestama märgid käsitsi või kasutama väliseid API-sid.
- Can Pine Script security funktsiooni tõmbamise andmed mitme tickeri jaoks?
- Jah, kuid peate massiivi märgid käsitsi määrama. See töötab hästi eelmääratletud loendite puhul, kuid ei toeta reaalajas toomist.
- Kuidas saavad välised API-d Pine Scripti täiendada?
- API-d, nagu Alpha Vantage või Quandl, saavad hankida kogu vahetust hõlmavaid andmeid. Saate seda töödelda Pythoni või JavaScriptiga ja kasutada tulemusi Pine Scriptis.
- Kas on võimalik dünaamiliselt joonistada mitut sümbolit?
- Otseselt mitte. Peate sümbolid eelmääratlema või loendi importima ja seejärel kasutama label.new() või plot() et neid visualiseerida.
- Millised on Pine Scripti parimad filtrid aktsiasõelte jaoks?
- Levinud filtrid hõlmavad helitugevuse lävesid, SMA ristandmeid, RSI üleostetud/ülemüüdud tasemeid ja MACD signaale. Need on kodeeritud tingimustega ja rakendatud silmuste kaudu.
Kohandatud sõelumislahenduste meisterdamine
Pine Scripti abil varude sõeluja loomine nõuab loovust ja selle funktsioonide mõistmist. Kasutades selliseid tööriistu nagu turvalisus ja väline skriptimine dünaamilise andmeotsingu jaoks, saate ületada platvormi piirangud. See lähenemisviis võimaldab kauplejatel kohandatud filtreid oma strateegiatesse tõhusalt integreerida. 💡
Kuigi Pine Script ei pruugi algselt toetada väärtpaberite toomist börsidelt, ületab selle graafiku tugevuste kombineerimine väliste lahendustega lõhe. Õigete filtreerimis- ja visualiseerimistehnikate abil saavad kauplejad luua praktilisi teadmisi ja parandada oma otsustusprotsesse turul. Võimalused on laiad neile, kes mõtlevad väljaspool kasti! 📊
Allikad ja viited Pine Script Screeneri arendamiseks
- Käsitleb Pine Scripti võimalusi ja piiranguid. Dokumentatsiooni allikas: TradingView Pine skripti dokumentatsioon .
- Uurib API-integratsiooni täiustatud andmetöötluse jaoks. Väline allikas: Alpha Vantage API .
- Arutab JavaScripti ja Pythoni loomingulist kasutamist kauplemise automatiseerimisel. Blogi allikas: Keskmine – programmeerimine ja kauplemine .
- Annab ülevaate välisandmete kombineerimise kohta Pine Scriptiga aktsiasõelurite jaoks. Kogukonna arutelu: Stack Overflow – Pine Scripti silt .