Ostke limiit ja saavutage limiit õigel ajal. Trade Scheduler – Expert Advisor Ootel tellimuste eksperdi töö piiramine

Täna räägime Trade Scheduleri robotist, millel on väga huvitav funktsioon. Kas olete Forexi kauplemisel automatiseeritud süsteeme kasutades märganud, et teatud nädalapäevadel või kellaaegadel tekitavad need tõenäolisemalt kahjumit? Näiteks nädala esimesel päeval avab nõustaja väga vähe tehinguid ning enamik neist on ka kahjumlikud. Sellistel juhtudel on mõttekas enne laupäeva nõustaja keelata ja teisipäeval sisse lülitada. Saate seda lihtsat toimingut teha käsitsi, kuid võite ka lihtsalt unustada nõustaja õigel ajal keelamise või lubamise.

Selle probleemi (ja paari muu) lahendus võiks olla robotit kasutades Trade Scheduler, mis ise ei kauple, kuid võimaldab piirata teiste nõustajate tööaega vastavalt graafikule, mis on koostatud nende nõustajate töö analüüsi põhjal.

Enne aja töörežiimi reguleerimist tuleb välja selgitada, millistel hetkedel kaupleb see kõige sagedamini miinuses. Sel juhul on abiks MyFXbooki teenus, mis pakub süsteemi üksikasjalikku kauplemisstatistikat nädalapäevade ja tundide kaupa. Optimaalne kauplemisperiood süsteemi toimimise analüüsimiseks on 3 kuud. Selle teostamiseks peate alustama teenuse jälgimist. Roboti paigaldamise kohta saate lugeda MyFXbookist. Näitena vaatame eksperdi töö tulemusi, kelle monitooringu leiab pildile klikkides:

Riis. 1. Transient Zones 2.0 nõustaja töö jälgimine MyFXbook teenuses.

Võimalusena neile, kellel pole veel piisavalt roboti kauplemisajalugu reaalsel kontol analüüsimiseks, kuid samas saab seda testida, siis laadige teenusest saadud aruanne julgelt teenusesse üles.

Pärast jälgimise allalaadimist ja töötlemist peate minema täpsema statistika jaotisesse, vahekaardile Iga päev. Siit leiate teavet suhteliste koguste kohta nädalapäevade kaupa. Meie näites toimub kõige rohkem kaotavaid tehinguid neljapäeval ja reedel, mis tähendab, et nendel päevadel oleks mõistlik Expert Advisori töö peatada. Sellise käitumise põhjus võib peituda turutingimustes, mis tänapäeval roboti strateegia jaoks ei sobi ja selle arvutused on vähem täpsed:


Riis. 2. Transient Zones 2.0 nõustaja kasumlike ja kahjumlike tehingute suhe nädala kohta.

Pärast päevade kaupa analüüsimist saate analüüsida töö efektiivsust tundide kaupa. Selleks tuleb minna vahekaardile Tunnid ja vaadata, millal on kaotavate tehingute suhteline arv suurem:


Riis. 3. Kaotavate ja kasumlike tehingute suhteline arv tundide kaupa.

Järeldus: kauplemisprotsess oleks mõistlik lõpetada neljapäeval, reedel ja muudel päevadel uue päeva kahel esimesel tunnil ja päeval nendel tundidel, mil tehingud on ülekaalus - eriti kell 12. , 13, 14 pärastlõunal . See tähendab, et jätke see tööle öösel kella 2–8 (kaasa arvatud) ja päeval kella 13–21. Nõustaja töö tulemus peaks oluliselt paranema.

Spetsialisti paigaldamine ja seadistamine.

Trade Scheduleri abinõustaja paigaldamine toimub analoogselt kõigi teiste nõustajatega. Allolevalt lingilt saate koos eksperdiga arhiivi alla laadida:

Laadi alla trade-scheduler.rar (allalaadimisi: 139)

Pakkige lahti arhiiv trade-scheduler.rar ja kopeerige TradeScheduler v2.3.ex4 ekspertfail kausta data_directory\MQL4\Experts\. Andmekataloogi avamiseks valige menüüst Fail käsk Open Data Directory. Seejärel terminal taaskäivitub ja pärast seda leiab nõustaja aknast Navigator - Advisors.

Expert Advisori graafikule paigaldamisel määratakse seadete aknas vajalik tööaeg nädalapäevade ja tundide kaupa. Kellaaeg määratakse sõltuvalt terminali ajast, mis on ühtlasi ka kellaaeg. Iga päeva kohta on 3 sisendparameetrit. Esimene parameeter vastutab roboti sisse/välja lülitamise eest kindlal nädalapäeval, teine ​​parameeter on kauplemise algusaja, kolmas on peatumisaeg. Kellaaeg on näidatud vormingus tunnid: minutid:


Riis. 4. Pärast nõustaja töö analüüsimist täpsustatud sisendparameetrid.

Seadetes on ka lisaparameeter CloseBeforeSwitchOFF. Kui see on seatud väärtusele CloseAll, suletakse kõik tehingud automaatselt enne roboti väljalülitamist. Kui CloseAllProfitable - ainult kasumlikud tellimused suletakse, kui No - tehinguid ei suleta. Parameeter Slip vastutab maksimaalse lubatud libisemise eest.

Veenduge, et terminalis on lubatud automaatne kauplemine ja funktsioonide importimine DLL-idest. Ühe terminali jaoks on installitud üks nõustaja versioon.

Järeldus.

Kas soovite parandada jõudlust sinu nõustaja? Proovige selle toimimise piiramise meetodit ja analüüsige tulemusi. Kui statistika näitab, et teie ekspert "järjekindlalt kaotab" teatud kellaajal, siis on turul muster, mida ta ei suuda töödelda. Peatage kauplemine sellel ebasoodsal perioodil ja suurendage selle kasumlikkust!

See nõustaja sobib ideaalselt neile, kes kauplevad tasemete ja mis tahes strateegiate järgi, mis kasutavad ootel limiittellimusi. Nõustaja esitab tellimused õigel ajal õigel kaugusel kehtivast hinnast! Roboti seadetes saate määrata kahjumi peatamise, tellimuste kasumi ja iga tellimuse partii. Kõik on seatud iga tellimuse jaoks eraldi. Saate esitada ainult ostulimiidi või müügilimiidi või mõlemad tellimused koos!

Nõustaja on valmis töötama mistahes kauplemisinstrumendiga, igas Metatrader 4 kauplemisterminalis. Robot on valmis töötama ka mitme valuutapaariga korraga. See tähendab, et saate avada suvalise arvu paare ja installida neile nõustaja, andes igaühele oma võlunumbri ja ajaseaded. Pärast seda töötab iga paar rangelt individuaalselt. Kui töötate endiselt limiittellimustega käsitsi, on see robot teie jaoks!

  • BUY_limit- Kas määrata ostulimiit order.
  • Lot_buy_limit- partiitellimuse ostulimiit.
  • R_buy_limit- Kaugus hetkehinnast kuni ostulimiittellimuseni punktides.
  • Stop_Loss_buy_limit- Stop loss limit orders.
  • Take_Profit_buy_limit- Võtke kasumitellimuste ostulimiit.
  • SELL_limit- Kas määrata müügilimiit order.
  • Lot_sell_limit- partii tellimuse müügilimiit.
  • R_sell_limit- Kaugus hetkehinnast müügilimiit orderini punktides.
  • Stop_Loss_sell_limit- Stop loss orderi müügilimiit.
  • Take_Profit_sell_limit- Võtke kasumitellimuste müügilimiit.
  • Libisemine- Maksimaalne libisemine punktides.
  • Sulge_tellimused- Teise tellimuse sulgemine esimese avamisel.
  • Ajad- Tellimuse eluiga minutites.
  • Time_Start- Kas esitada tellimused aja järgi?
  • Aeg_tund- Tellimuse lahtiolekuaeg 0-23
  • Aeg_minut- Tellimuste avamise minut 0 - 59. Näiteks tund = 5, minut 40, mis tähendab, et kell 5.40 esitatakse tellimused selle hetke hinna alusel.
  • Ekspert_I- maagiline number teie tellimuste ja mitme valuutaga kauplemise määramiseks.

Artiklist saate teada:

Tere pärastlõunast, kallid lugejad ja ajaveebi külalised. Täna räägime sellest, kuidas on olemas abinõustajad, kes esitavad ajapõhiseid ja ootel tellimusi ning kuidas tehinguid suletakse.

Parim maakler

Nõustaja, kes avab tellimusi iga tund või aja järgi, on tööriist, mis aitab erinevates kauplemisolukordades. Üldiselt, nii palju kui ma aru saan, on huvi selliste nõustajate vastu, kes teevad sarnaseid toiminguid, olnud pikka aega. Ja 2006. aastal olid sellised robotid olemas ja 2008. aastal saate taotluste põhjal nende vastu huvi jälgida ning nüüd ilmuvad jätkuvalt taotlused selliste ekspertide loomiseks. Samal ajal aitavad uustulnukaid sageli kogenud kauplejad ja mitte ainult kauplejad, vaid need, kes tegelevad kauplemisega. Üldiselt on see hea traditsioon. Tavaliselt põhineb see vastastikusel vahetusel. Algaja pakub ideid ja kogenud saab õiguse idee kasutamiseks ja loob ekspertkoodi, mida ta oma partneriga jagab.

Kui tekivad tingimused nende ekspertide kasutamiseks

Asume siiski asja juurde! Minu tänane lugu on lugu õigel ajal tellimuste esitamise asjatundjast. Seda kasutatakse erinevatel eesmärkidel. Näiteks on kauplemissüsteeme, mis on rangelt seotud küünla või seansi algusega. Näiteks on olemas ja minu tagasihoidliku uurimistöö kohaselt on selliseid laineid ka tegelikkuses olemas, kuid need ilmnevad erinevatel ajaraamidel ja on erineva kestusega perioode. Näiteks leiate need USDCAD-ist aadressil Mn.

Iga kuu on küünlaid, mis on üksteisega väga sarnased. Näiteks jaanuaris on kuus aastat olnud tõus või langustrend, see pole asja mõte. Selle lähenemise kasutamisest tulu saamiseks tuleb kuu alguses esitada tellimus uurimismeetodiga määratud suunas ja lõpus see kustutada ning seda teha ainult teatud kuudel aastas. Just seetõttu esitab ekspert tellimusi kuupäeva, tunni ja minuti järgi.

Õigel ajal korraldusi andev ekspert viib ellu ka muid ülesandeid, näiteks on teada, et homme on turul trend ja kauplemisidee nõuab igal tunniküünlal trendi suunas positsioonide võtmist. Ja kauplemispäeva lõpus peate tellimused tühistama.

Seega ilmuvad tellimused sellise ruudustiku kujul. Kuidas seda teisiti tehakse, näete lehel, kus. Tööpäeva lõpuks ostu-, müügi- või turukorraldused kustutatakse, ka õigel hetkel.

Miks see nii on? Sest sellist lähenemist olen näinud järgmises modifikatsioonis: orderite esitamine igale küünlale turukorraldusega või ka igale küünlale, aga ostu-müügipeatustega vastassuundades. Teisel juhul ei pruugi te isegi teada, millises suunas turg liigub, vaid lihtsalt tabate liikumist, justkui kasutaks liblikavõrku. Samuti võib mõlemas suunas ostu-müügi stoppkorralduste esitamisel mõni neist kuni päeva lõpuni avaneda ja jääb rippuma.

Laadi alla

Seega saab selgeks, et tänapäeval on selles kontekstis kolme tüüpi abieksperte.

  1. Esimene tüüp on ekspert turule tellimuste esitamiseks, võttes arvesse teatud tunde ja minuteid,
  2. Teine tüüp on ootelolevate tellimuste ekspert tundide ja minutite järgi.
  3. Kolmandat tüüpi saab rakendada kahe esimese raames või olla eraldi programm. Meie näite puhul on see täpselt nii.

Turutellimuste ekspert

Kui teate, et tõustrend algab kell 23:50, nii et hind ületab kindlasti 60 punkti ja stop lossi suurus on 30, ja teil on ekspert, kes jälgib stop lossi, nii et teil on vaja tellimust. Samal ajal ei ole te kaugel, nii et avamisest teavitav heli tuleb kasuks. Sellistel tingimustel vajate esimest tüüpi eksperti. Sel juhul on selleks e-OpenByTime'i ekspert. Sellel eksperdil, mille saab alla laadida sotsiaalsete nuppude abil, on järgmised parameetrid:

  • TimeTrade – siin saad määrata täpse hetke, millal order tuleb avada. Andmevorming hh:mm.
  • Kestus – ajavahemik sekundites, mille jooksul ekspert proovib tellimust esitada.
  • Müük – siin tuleb määrata orderi tüüp true – see tähendab, et turul avatakse korraldus vara müümiseks. Väärtus false vastab ostutellimusele.
  • Lots – see valik piirab teie kauplemispartii kindla väärtusega.
  • SopLoss – stop loss on mõeldud neljakohalistele maakleritele, nii et selle suuruse määramiseks 30 punkti juures peate määrama väärtuseks 300
  • TakeProfit – sama lugu take profitiga.
  • MagicNumber – arvan, et siin on kõik selge.
  • UseSound – järgmised on heliseaded.
  • NameFileSound – siin valime helifaili.
  • Ülejäänud seadetest võib küsimusi tekitada ainult MaketWatch. Selgub, et seda seadistust on vaja tagamaks, et kauplemistaotlused saadetakse vastavalt Market Watchi reeglitele, mida mõned maaklerid nõuavad.

Ootel tellimuste ekspert

Teist tüüpi eksperdid, kes töötavad ootel olevate korralduste avamisel, on erinevate kastikauplemissüsteemide eksperdid. Sarnased

Seekord kirjeldan asjatundjat, nii-öelda abi, mis trende ja muid graafiku märke arvestamata avab mõlemas suunas kaks ostu- ja müügistop tehingut.

Me räägime 37_Exp-TimeOpenBuy eksperdist. Seadistamine on üsna lihtne.

  • BuyStopOpen ja SellStopOpen – mõlemad on antud juhul defineeritud kui tõesed.
  • Kaugus – määrab, millisele kaugusele hetkehinnast need tellimused esitatakse. Pange tähele, et siin ja järgmisel real olev väärtus on arvutatud neljakohalise maakleri jaoks, nii et kauguse määramiseks peate kasutama numbrit, näiteks 30 punkti ja lisama lõppu veel 0.
  • TPBuyStop, SLBuyStop, TPSellStop, SLSellStop – võimaldavad teil määrata iga tellimuse puhul kasumi võtmise ja kahjumi peatamise vahemaa. (Siin lisame lõpus olevale numbrile ka nulli.)
  • CloseAfterOpen – võimaldab kustutada tehingu, mis jääb alles pärast seda, kui üks ostu- ja müügipeatuskorraldustest on käivitunud.
  • Libisemine on seadistus, mis minu kogemuse kohaselt tuleb tellimuste esitamiseks määrata mis tahes muule väärtusele peale nulli. See on maksimaalne libisemisväärtus.
  • CloseIfNotOpen – loodi funktsioonina, mis kustutab kõik ebaõnnestunud ostu- ja müügipeatused uuel ajal. Kuid ükskõik kui palju ma seda toimingut ka ei üritanud kasutada, ei tulnud sellest midagi välja.
  • Ülejäänud valikuid on vaja selleks, et määrata kindlaks turule sisenemise ja sealt lahkumise hetk.

Asjatundlik ladestuste eemaldaja

Lõpuks kolmas nõustaja, mis minu koostatud mql4 koodi kasutades teostab ostude eemaldamise õigeaegselt, täpsemalt kui kõik. Üldiselt on teil nüüd täielik komplekt nõustajaid ostu-, müügistop-tellimuste esitamiseks ja turule ning ekspert, kes sulgeb tellimused õigel ajal. Selleks tuleb enne tsüklit, mis lihtsalt sulgeb ostu-, müügistop orderid tegelikult või õigem oleks öelda: kustutab, teha kontroll, kas (TimeCurrent()>=BlackTime). Sel juhul määratakse muutujale aeg, mille järel tellimused kustutatakse.

Järeldused

Täna tutvusime väga kasuliku abinõustajate komplektiga, mida saab kasutada erinevates turutingimustes. Nende kasutamiseks vajate kiiret seadistamist ja mingit turuprognoosi. Nende kasutamise tulemusena saate korraldada täiesti iseseisvaid ja peaaegu täielikult automaatseid sisenemisi ja väljumisi. Ma isegi ütleks, et kõik juhtub automaatselt, kuid ainult paari toimingu raames, siis tuleb ekspertide seadeid muuta. See on aga juba heaks abiks neile, kel pole aega piiranguteta monitori ees istuda. See on kõik, kallid sõbrad. Loodan, et see leht oli teile huvitav.

(2 hinnangud, keskmine: 5,00 5-st)

Kui teie kauplemissüsteem ei põhine uudiste hüpetel, võib teie finants- ja vaimse tervise jaoks olla väga kasulik peatada nõustaja töö enne oluliste uudiste avaldamist. Ja pärast volatiilsuse langemist lülitage see mõne tunni pärast uuesti sisse. Hea, kui teil on käepärast juurdepääs töötavale terminalile. Aga kui mitte? Siin tulebki appi selliste tegevuste automatiseerimine.

Üks meie probleemi lahendamise võimalustest on koostada fail oluliste sündmuste ajakavaga. Meie ekspert loeb seda faili ja teeb kindlaks, millal saate töötada ja millal mitte. MQL4 õpikus on näide CSV-tekstifailiga töötamise kohta ja me võtame selle aluseks, vabanedes samaaegselt paarist veast, mille autorid tegid kogemata või meie tähelepanelikkuse proovilepanekuks (mille eest nad ise hoiatavad - me ei tohiks kedagi pimesi usaldada, vigu juhtub alati).

Niisiis, koostame järgmise nädala oluliste sündmuste ajakava järgmises vormingus:
Sündmuse kuupäev ja kellaaeg;

2016.04.01 14:00;USD;ISM äritegevuse indeks töötlevas sektoris 2016.04.01 14:00;USD;Inflatsiooni järkjärgulise kiirenemise indeks ISM-ist 2016.04.04 09:00;EUR;Tootjahinnaindeks (m/m) ) 2016.04.04 09:00;EUR;Tootjahinnaindeks (YoY) 2016.04.05 04:30;AUD;Austraalia keskpanga otsus intressimäära kohta 2016.04.05 04:30;AUD;Reserveerimisaruanne Bank of Australia 2016.04.06 07: 00;EUR;EKP koosolek 2016.04.06 18:00;USD;USA föderaalse avatud turu komitee koosoleku protokoll 2016.04.07 11:30;EUR;Teave EKP rahapoliitilise koosoleku kohta poliitika

Kirjutame selle faili ht-news.csv ja asetame nõutavasse kataloogi \MQL4\Files\ht-news.csv, kust meie nõustaja saab seda lugeda.

Esiteks määrame konfiguratsiooni jaoks välised muutujad, mis selgitavad nende eesmärki:

Extern string startNewsEvent="Uudistega töötamise piiramine"; sisend bool StopOnNewsEvent=true; //Luba piirangu sisestusstring NewsEventFileName="ht-news.csv"; //Fail ajakava sisendiga uint LoadNewsEventTimerInDay=7;//Kui sageli päevade jooksul failisisend uuesti laadida uint StopPriorEventHours=2; //Stopp X tundi enne sündmuse sisendit uint StartAfterEventHours=3; //Alusta X tundi pärast sündmuse välist stringi stopNewsEvent="-----------------";

Järgmine struktuur aitab meil töödeldava sündmuse kirjeldusele juurde pääseda:

Struktuur NEWS_EVENT (datetime EventTime; //sündmuse aja string Instrument; //sündmuse instrumendi string EventComment; //sündmuse kommentaar);

Kohandatud funktsioon failist teabe lugemiseks

Bool LoadNews() ( int handle; // Faili deskriptori stringi instrument, // Sündmuse valuuta nimi firstInstrument,secondInstrument, // Aktiivse paari nimetuse 1. ja 2. osa eventComment, // Sündmuse kirjelduse tekst stringDateTime; // Sündmuse kuupäeva ja kellaaja stringavaldis datetime eventDateTime // Sündmuse kuupäev ja kellaaeg datetime formaadis hand=FileOpen(NewsEventFileName,FILE_CSV|FILE_READ,";");// Faili avamine if(handle;<0) // Неудача при открытии файла { int lastError=GetLastError(); if(lastError==4103) // Если файла не существует, сообщим Alert("Нет файла с именем ",NewsEventFileName); else // При любой другой ошибке Alert("Ошибка при открытии файла ",NewsEventFileName," :",lastError); PlaySound("Bzrrr.wav"); // Громко ругнемся и вернем фалсе return false; } int cnt=0; while(FileIsEnding(handle)==false) { stringDateTime =FileReadString(handle);// Дата и время события instrument=FileReadString(handle); //Инструмент eventComment =FileReadString(handle);// Текст описания события, может не быть eventDateTime =StrToTime(stringDateTime); // Преобразование типа данных firstInstrument=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа secondInstrument=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа if(StringCompare(instrument,firstInstrument,false)!=0 && StringCompare(instrument,secondInstrument,false)!=0) { continue; //не наши инструменты } cnt++; ArrayResize(NewsEvent,cnt,1000); //изменяем размер массива с запасом для ускорения ArrayResize(NewsEventTime,cnt,1000); NewsEvent.EventTime= eventDateTime; NewsEvent.Instrument=instrument; NewsEvent.EventComment=eventComment; NewsEventTime=eventDateTime; //удобнее искать в одномерном массиве } FileClose(handle); // Закрываем файл ArraySort(NewsEventTime,WHOLE_ARRAY,0,MODE_ASCEND); //сортируем массив для последующего поиска return true; }

Otsime vajaliku aja massiivist NewsEventTime ja kui kellaaeg leitakse, saame selle kirjelduse nende NewsEvent struktuuri massiivi kohta

String GetEventInfo(datetime date) ( for(int i=0;i

Abistav funktsioon, et teha kindlaks, kas praegune aeg jääb jõudeajale

//kontrollime, kas peame uudistenõustaja keelama True - work False - rest bool CheckEnableNewsWork() ( if (ArraySize(NewsEventTime)==0) return true; //millegipärast oli ajakavaga massiiv tühi, mis tähendab me töötame //nüüd peame leidma NewsEventTime'is lähima kuupäeva, enne mida peame töö lõpetama StopPriorEventHours tundi datetime timeCurrent =TimeCurrent(timeCurrent+StopPriorEventHours*3600) //Kui NewsE-s on kellaaeg; see on väiksem kui timeStopWork, siis lõpetame töö int dateindex= ArrayBsearch(NewsEventTime,timeStopWork,WHOLE_ARRAY,0,MODE_ASCEND) timeStartWork=foundEventTime+StartAfterEventHours*3600; /nüüd kontrollime, kas oleme timeStopWork ja timeStartWork vahel. Kui jah, siis me ei tööta if (timeCurrent>=timeStopWork && timeCurrent.<=timeStartWork) { DrawLabel("EnableNewsWork","Не работаем, новость: "+GetEventInfo(foundEventTime)+"",5,80,Red); return false; } else { DrawLabel("EnableNewsWork","Нормальная работа, новостей нет",5,80,Green); return true; } }

Ajakavaga failist perioodiliseks lugemiseks vajame taimerit, mis töötab näiteks kord nädalas, nagu konfigureeritud

//Kontrollige uudistefaili olemasolu, kasutades taimerit void OnTimer() ( if (StopOnNewsEvent) ( LoadNews(); //loe faili ) )

Nõustaja lähtestamisel peate käivitama taimeri ja lugema esimest korda uudiseid

OnInit() .... if (StopOnNewsEvent) //Kui see on määratud, laadige fail koos uudistega ( bool tm=EventSetTimer(LoadNewsEventTimerInDay*86400); //käivitage taimer faili laadimiseks ajakavaga if (!tm) Alert("EventSetTimer error :",GetLastError());//Esmakäivitamine kohe )

Iga linnukese juures kontrollime, kas saame positsioone avada. Muide, see ei tohiks mõjutada lõppu.

OnTick() .... bool enableNewsWork=true; //uudiste sündmustega saab töötada if (StopOnNewsEvent) ( enableNewsWork=CheckEnableNewsWork(); //Kui on uudiste limiit, kontrolli aega) if (HaveMoney && enableNewsWork) Traiding(Pairs); //kontrollige tingimusi ja avage kauplemine paaril

See on kõik. Kahjuks ei ole ma seda koodi veel päris kontol testinud, kuna kirjutasin selle nädalavahetusel, emuleerisin taimeriga linnukesi ja muutsin praegust kellaaega, mis nädalavahetusel peatub, käsitsi. Järgmisel nädalal vaatan aga päriselus, uues versioonis “Forex Graal 1.11”, kuhu põimisin ülaltoodud koodi.

Tulevikus peate võib-olla tegema mugava utiliidi faili ht-news.csv genereerimiseks, näiteks samas