Pērciet limitu un sasniedziet limitu īstajā laikā. Tirdzniecības plānotājs - eksperta konsultanta darba ierobežojums

Šodien mēs runāsim par Trade Scheduler robotu, kuram ir ļoti interesanta funkcija. Izmantojot automatizētās sistēmas Forex tirdzniecībā, vai esat ievērojuši, ka noteiktās nedēļas dienās vai laikos tās, visticamāk, radīs zaudējumus? Piemēram, nedēļas pirmajā dienā padomnieks atver ļoti maz darījumu, turklāt lielākā daļa no tiem ir arī nerentabli. Šādos gadījumos ir lietderīgi atspējot padomdevēju pirms sestdienas un iespējot otrdien. Šo vienkāršo darbību varat veikt manuāli, taču varat arī viegli aizmirst pareizajā laikā atspējot vai iespējot padomdevēju.

Šīs problēmas (un pāris citu) risinājums varētu būt izmantojot robotu Trade Scheduler, kas netirgojas pats, bet ļauj ierobežot citu konsultantu darba laiku saskaņā ar grafiku, kas sastādīts, pamatojoties uz šo konsultantu darba analīzi.

Pirms veikt korekcijas laika darbības režīmā, jānoskaidro, kādos brīžos tas visbiežāk tirgojas mīnusos. Šajā gadījumā palīdzēs MyFXbook serviss, kas sniedz detalizētu sistēmas tirdzniecības statistiku pa nedēļas dienām un stundām. Optimālais tirdzniecības periods sistēmas darbības analīzei ir 3 mēneši. Lai to veiktu, jums jāsāk pakalpojuma uzraudzība. Par robota uzstādīšanu varat lasīt vietnē MyFXbook. Kā piemēru aplūkosim eksperta darba rezultātus, kura monitoringu var atrast, noklikšķinot uz attēla:

Rīsi. 1. Transient Zones 2.0 konsultanta darba uzraudzība MyFXbook servisā.

Kā iespēja tiem, kuriem vēl nav pietiekamas robota tirdzniecības vēstures analīzei reālā kontā, bet tajā pašā laikā to var pārbaudīt, tad droši augšupielādējiet no servisa saņemto pārskatu pakalpojumā.

Pēc pārraudzības lejupielādes un apstrādes jums jāiet uz papildu statistikas sadaļu cilne Diena. Šeit jūs varat atrast informāciju par relatīvajiem daudzumiem pēc nedēļas dienām. Mūsu piemērā lielākais zaudēto darījumu skaits notiek ceturtdien un piektdien, kas nozīmē, ka šajās dienās būtu saprātīgi apturēt eksperta padomnieka darbu. Šādas uzvedības iemesls var būt tirgus apstākļi, kas mūsdienās nav piemēroti robota stratēģijai, un tā aprēķini ir mazāk precīzi:


Rīsi. 2. Pārejas zonu 2.0 konsultanta ienesīgo un nerentablo darījumu attiecība uz nedēļu.

Pēc dienas analīzes jūs varat analizēt darba efektivitāti pa stundām. Lai to izdarītu, jums jāiet uz cilni Stundu un jāskatās, kad relatīvais zaudējošo darījumu skaits ir lielāks:


Rīsi. 3. Zaudošo un ienesīgo darījumu relatīvais skaits pa stundām.

Secinājums: būtu prātīgi pārtraukt tirdzniecības procesu ceturtdien, piektdien un pārējās dienās bloķēt tā darbu jaunās dienas pirmajās divās stundās, bet dienas laikā tajās stundās, kad dominē zaudējumi - it īpaši pulksten 12. , 13, 14:00. Tas ir, atstājiet to strādāt naktī no pulksten 2 līdz 8 ieskaitot un no 13:00 līdz 21:00 dienas laikā. Padomdevēja darba rezultātam vajadzētu būtiski uzlaboties.

Eksperta uzstādīšana un konfigurēšana.

Trade Scheduler palīgpadomnieka uzstādīšana tiek veikta pēc analoģijas ar jebkuru citu padomdevēju; sīkāka informācija par to ir rakstīta. No tālāk esošās saites varat lejupielādēt arhīvu ar ekspertu:

Lejupielādēt trade-scheduler.rar (lejupielādes: 139)

Izpakojiet arhīvu trade-scheduler.rar un kopējiet TradeScheduler v2.3.ex4 eksperta failu mapē data_directory\MQL4\Experts\. Lai atvērtu datu direktoriju, izvēlnē Fails atlasiet Atvērt datu direktoriju. Pēc tam terminālis pārstartējas un pēc tam padomnieku var atrast logā Navigator - Advisors.

Uzstādot Expert Advisor uz diagrammas, nepieciešamais darbības laiks tiek norādīts iestatījumu logā pa nedēļas dienām un stundām. Laiks tiek iestatīts atkarībā no termināļa laika, kas ir arī laiks. Katrai dienai ir 3 ievades parametri. Pirmais parametrs ir atbildīgs par robota ieslēgšanu/izslēgšanu noteiktā nedēļas dienā, otrs parametrs ir tirdzniecības sākuma laiks, trešais ir apstāšanās laiks. Laiks ir norādīts formātā stundas: minūtes:


Rīsi. 4. Ievades parametri, kas norādīti pēc padomdevēja darbības analīzes.

Iestatījumos ir arī papildu parametrs CloseBeforeSwitchOFF. Ja iestatīts uz CloseAll, visi darījumi tiks automātiski slēgti pirms robota izslēgšanas. Kad CloseAllProfitable - tiks slēgti tikai ienesīgie pasūtījumi, kad Nē - darījumi netiks slēgti. Parametrs Slip ir atbildīgs par maksimālo pieļaujamo slīdēšanu.

Pārliecinieties, vai terminālī ir atļauta automātiskā tirdzniecība un funkciju importēšana no DLL. Vienam terminālim ir instalēta viena padomdevēja versija.

Secinājums.

Gribi uzlabot veiktspēju tavs padomnieks? Izmēģiniet tā darbības ierobežošanas metodi un analizējiet rezultātus. Ja statistika liecina, ka jūsu eksperts “konsekventi zaudē” noteiktā diennakts laikā, tad tirgū ir kāds modelis, kuru viņš nevar apstrādāt. Pārtrauciet tirdzniecību šajā nelabvēlīgajā periodā un palieliniet tās rentabilitāti!

Šis padomdevējs ir ideāli piemērots tiem, kas tirgojas pēc līmeņiem un jebkādām stratēģijām, kas izmanto neapstiprinātus limita pasūtījumus. Konsultants veiks pasūtījumus īstajā laikā pareizajā attālumā no pašreizējās cenas! Robota iestatījumos var iestatīt zaudējumu apturēšanu, paņemt peļņu no pasūtījumiem, kā arī katra pasūtījuma partiju. Viss tiek iestatīts katram pasūtījumam atsevišķi. Jūs varat ievietot tikai pirkšanas limitu vai pārdošanas limitu, vai abus pasūtījumus kopā!

Padomnieks ir gatavs strādāt pie jebkura tirdzniecības instrumenta, jebkurā tirdzniecības terminālī Metatrader 4. Robots ir gatavs strādāt arī ar vairākiem valūtu pāriem vienlaikus. Tas ir, jūs varat atvērt neierobežotu skaitu pāru un instalēt tajos padomdevēju, piešķirot katram savu maģisko numuru un laika iestatījumus. Pēc tam katrs pāris strādās stingri individuāli. Ja joprojām strādājat ar ierobežotiem pasūtījumiem manuāli, šis robots ir paredzēts jums!

  • BUY_limit- Vai iestatīt pirkšanas limita rīkojumu.
  • Lot_buy_limit- Partijas pasūtījuma pirkšanas limits.
  • R_buy_limit- Attālums no pašreizējās cenas līdz pirkuma limita pasūtījumam punktos.
  • Stop_Loss_buy_limit- Stop loss pirkšanas limita pasūtījumi.
  • Take_Profit_buy_limit- Pieņemt peļņas pasūtījumu pirkšanas limitu.
  • SELL_limit- Vai iestatīt pārdošanas limita rīkojumu.
  • Lot_sell_limit- Partijas pasūtījuma pārdošanas limits.
  • R_sell_limit- Attālums no pašreizējās cenas līdz pārdošanas limita uzdevumam punktos.
  • Stop_Loss_sell_limit- Stop loss orders pārdošanas limits.
  • Take_Profit_sell_limit- Pieņemt peļņas pasūtījumu pārdošanas limitu.
  • Izslīdēšana- Maksimālā slīdēšana punktos.
  • Close_Orders- Otrā pasūtījuma aizvēršana, atverot pirmo.
  • reizes- Pasūtījuma kalpošanas laiks minūtēs.
  • Time_Start- Vai veikt pasūtījumus pēc laika?
  • Laiks_stunda- Pasūtījuma darba laiks 0-23
  • Laiks_minūte- Pasūtījumu atvēršanas minūte 0 - 59. Piemēram, stunda = 5, minūte 40, kas nozīmē, ka 5.40 pasūtījumi tiks veikti, pamatojoties uz tā brīža cenu.
  • Eksperts_I- burvju numurs jūsu pasūtījumu noteikšanai un vairāku valūtu tirdzniecībai.

No raksta jūs uzzināsit:

Labdien, dārgie lasītāji un emuāra viesi. Šodien mēs runāsim par to, kā ir palīgpadomnieki, kas veic uz laiku balstītus un neapstiprinātus pasūtījumus, kā arī par to, kā tiek slēgti darījumi.

Labākais brokeris

Padomnieks, kas atver pasūtījumus katru stundu vai pēc laika, ir rīks, kas palīdz dažādās tirdzniecības situācijās. Vispār, cik varu spriest, interese par šādiem padomdevējiem, kas veic līdzīgas darbības, ir jau sen. Un 2006. gadā bija šādi roboti, un 2008. gadā, pamatojoties uz pieprasījumiem, jūs varat izsekot interesei par tiem, un tagad turpina parādīties pieprasījumi ražot šādus ekspertus. Tajā pašā laikā jaunpienācējiem palīdz nereti pieredzējuši tirgotāji un ne tikai tirgotāji, bet tie, kas nodarbojas ar tirdzniecību. Kopumā šī ir laba tradīcija. Tas parasti ir balstīts uz savstarpēju apmaiņu. Iesācējs sniedz idejas, un pieredzējušais iegūst tiesības izmantot ideju un izveido eksperta kodu, ko viņš kopīgo ar savu partneri.

Kad rodas nosacījumi šo ekspertu izmantošanai

Tomēr ķersimies pie lietas! Mans šodienas stāsts ir stāsts par speciālistu pasūtījumu veikšanai īstajā laikā. To izmanto dažādiem mērķiem. Piemēram, ir tirdzniecības sistēmas, kas ir stingri saistītas ar sveces vai sesijas sākumu. Piemēram, ir un, pēc maniem pieticīgajiem pētījumiem, zināma šādu viļņu līdzība pastāv arī realitātē, taču tie parādās dažādos laika rāmjos, un ir dažāda ilguma periodi. Piemēram, varat tos atrast USDCAD vietnē Mn.

Katru mēnesi ir sveces, kas ir ļoti līdzīgas viena otrai. Piemēram, janvārī, piemēram, sešus gadus ir vērojama augšupejoša vai lejupejoša tendence, tas nav galvenais. Lai saņemtu ienākumus no šīs pieejas izmantošanas, mēneša sākumā ir jāveic pasūtījums pētījuma metodes noteiktajā virzienā un beigās tas jāizdzēš, un tas jādara tikai atsevišķos gada mēnešos. Tieši tāpēc eksperts veic pasūtījumus pēc datuma, stundas un minūtes.

Eksperts, kurš dod rīkojumus īstajā laikā, īsteno arī citus uzdevumus, piemēram, ir zināms, ka rīt tirgū būs tendence un tirdzniecības ideja paredz, ka ir jāieņem pozīcijas uz katras stundas sveces virzienā uz tendence. Un jums ir jāatceļ pasūtījumi tirdzniecības dienas beigās.

Tādējādi pasūtījumi parādīsies šāda režģa veidā. Jūs varat redzēt, kā tas tiek darīts citādi, lapā, kur. Līdz darba dienas beigām pirkšanas, sellstop vai tirgus orderi tiek dzēsti, arī īstajā brīdī.

Kāpēc tas tā ir? Jo šo pieeju esmu redzējis sekojošā modifikācijā: uz katras sveces ar tirgus orderi vai arī uz katras sveces, bet ar pirkšanas un pārdošanas stopiem pretējos virzienos. Otrajā gadījumā jūs pat varat nezināt, kurā virzienā tirgus virzīsies, bet vienkārši uztvert kustību, it kā izmantojot tauriņu tīklu. Tāpat, veicot pirkšanas un pārdošanas stop orderus abos virzienos, iespējams, līdz dienas beigām kāds no tiem neatvērsies un paliks piekārts.

Lejupielādēt

Tātad kļūst skaidrs, ka mūsdienās šajā kontekstā ir trīs veidu palīgeksperti.

  1. Pirmais veids ir eksperts, kurš veic pasūtījumus tirgū, ņemot vērā noteiktas stundas un minūtes,
  2. Otrs veids ir neapstiprināto pasūtījumu eksperts pēc stundām un minūtēm.
  3. Trešo veidu var ieviest pirmo divu ietvaros vai būt atsevišķai programmai. Tieši tā tas ir mūsu piemērā.

Tirgus pasūtījumu eksperts

Ja zināt, ka augšupejošā tendence sāksies plkst. 23:50, tātad cena noteikti pārsniegs 60 punktus ar stop loss 30 punktiem, un jums ir eksperts, kurš izsekos stop loss, tāpēc jums būs nepieciešams pasūtījums. Tajā pašā laikā jūs nebūsiet tālu, tāpēc noderēs skaņa, kas paziņo par atklāšanu. Šādos apstākļos jums būs nepieciešams pirmā veida eksperts. Šajā gadījumā tas ir e-OpenByTime eksperts. Šim ekspertam, kuru var lejupielādēt, izmantojot sociālās pogas, ir šādi parametri:

  • TimeTrade – šeit jūs iestatāt precīzu brīdi, kad pasūtījums ir jāatver. Datu formāts hh:mm.
  • Ilgums – periods sekundēs, kura laikā eksperts mēģinās veikt pasūtījumu.
  • Pārdot – šeit jānorāda pasūtījuma veids true – tas nozīmē, ka tirgū tiks atvērts orderis aktīva pārdošanai. Vērtība false atbilst pirkšanas pasūtījumam.
  • Lotes – šī opcija ierobežos jūsu tirdzniecības lotu līdz noteiktai vērtībai.
  • SopLoss – stop loss ir paredzēts četrciparu brokeriem, tāpēc, lai noteiktu tā lielumu 30 punktos, ir jāiestata vērtība uz 300
  • TakeProfit — tas pats stāsts ir ar peļņas gūšanu.
  • MagicNumber – manuprāt, šeit viss ir skaidrs.
  • UseSound — nākamie nāk skaņas iestatījumi.
  • NameFileSound – šeit mēs izvēlamies skaņas failu.
  • No atlikušajiem iestatījumiem tikai MaketWatch var radīt jautājumus. Izrādās, ka šis iestatījums ir nepieciešams, lai nodrošinātu, ka tirdzniecības pieprasījumi tiek nosūtīti saskaņā ar tirgus uzraudzības noteikumiem, ko pieprasa daži brokeri.

Neapstiprinātu pasūtījumu eksperts

Otra veida eksperti, kas strādā pie neapstiprinātu pasūtījumu atvēršanas, ir dažādu kastīšu tirdzniecības sistēmu eksperti. Līdzīgi

Šoreiz aprakstīšu ekspertu, tā teikt, palīgu, kas, neņemot vērā tendences un citas diagrammas pazīmes, atvērs divus buy-, sellstop darījumus abos virzienos.

Mēs runājam par 37_Exp-TimeOpenBuy ekspertu. Iestatīšana ir diezgan vienkārša.

  • BuyStopOpen un SellStopOpen - abi šajā gadījumā tiek definēti kā patiesi.
  • Attālums – nosaka, kādā attālumā no pašreizējās cenas šie pasūtījumi tiks veikti. Lūdzu, ņemiet vērā, ka vērtība šeit un nākamajā rindā tiek aprēķināta četrciparu brokerim, tāpēc, lai iestatītu attālumu, ir jāizmanto skaitlis, piemēram, 30 punkti un beigās jāpievieno vēl 0.
  • TPBuyStop, SLBuyStop, TPSellStop, SLSellStop – ļauj katram pasūtījumam noteikt attālumu, lai gūtu peļņu un apturētu zaudējumus. (Šeit mēs arī pievienojam nulli skaitlim beigās.)
  • CloseAfterOpen – ļauj dzēst darījumu, kas paliek spēkā pēc tam, kad ir aktivizēts kāds no pirkšanas un pārdošanas apturēšanas uzdevumiem.
  • Slippage ir iestatījums, kas pēc manas pieredzes ir jāiestata uz jebkuru vērtību, kas nav nulle, lai varētu veikt pasūtījumus. Šī ir maksimālā slīdēšanas vērtība.
  • CloseIfNotOpen – tika iecerēta kā funkcija, kas dzēš visas neveiksmīgās pirkšanas un pārdošanas apturēšanas jaunā laikā. Tomēr, lai kā es centos izmantot šo operāciju, nekas nesanāca.
  • Atlikušās iespējas ir nepieciešamas, lai noteiktu ienākšanas tirgū un iziešanas no tā brīdi.

Eksperts nogulumu noņemšanai

Visbeidzot trešais padomnieks, kas, izmantojot manis sastādīto mql4 kodu, veic buy- noņemšanu, laicīgi, precīzāk par visiem tiem. Kopumā tagad jums būs pilns padomdevēju komplekts pirkšanas, sellstop pasūtījumu izvietošanai un tirgū, kā arī eksperts, kas laicīgi slēgs pasūtījumus. Lai to izdarītu, pirms cikla, kas vienkārši faktiski aizver pirkšanas, sellstop orderus vai pareizāk būtu teikt: dzēš tos, ir jāveic pārbaude, ja (TimeCurrent()>=BlackTime). Šajā gadījumā mainīgajam tiek piešķirts laiks, pēc kura pasūtījumi tiek dzēsti.

secinājumus

Šodien iepazināmies ar ļoti noderīgu palīgpadomnieku komplektu, ko var izmantot dažādos tirgus apstākļos. Lai tos izmantotu, jums būs nepieciešama ātra iestatīšana un sava veida tirgus prognoze. To izmantošanas rezultātā jūs varēsiet organizēt pilnīgi neatkarīgas un gandrīz pilnīgi automātiskas ieejas un izejas. Es pat teiktu, ka viss notiks automātiski, bet tikai pāris darbību ietvaros, tad būs jāmaina ekspertu uzstādījumi. Taču tas jau ir labs palīgs tiem, kam nav laika bez ierobežojumiem sēdēt pie monitora. Tas arī viss, dārgie draugi. Ceru, ka šī lapa jums likās interesanta.

(2 vērtējumi, vidēji: 5,00 no 5)

Ja jūsu tirdzniecības sistēma nav balstīta uz jaunumu lēcieniem, tad jūsu finansiālajai un garīgajai veselībai var būt ļoti noderīgi pārtraukt konsultanta darbu pirms svarīgu ziņu izlaišanas. Un pēc tam, kad nepastāvība samazinās, pēc dažām stundām ieslēdziet to vēlreiz. Ir labi, ja jums ir pieejams strādājošs terminālis. Un ja ne? Šeit noder šādu darbību automatizācija.

Viena no mūsu problēmas risināšanas iespējām ir sastādīt failu ar svarīgu notikumu grafiku. Mūsu eksperts izlasa šo failu un nosaka, kad varat strādāt un kad nē. MQL4 mācību grāmatā ir sniegts piemērs darbam ar CSV teksta failu, un mēs to ņemsim par pamatu, vienlaikus atbrīvojoties no pāris kļūdām, kuras autori pieļāvuši netīši vai lai pārbaudītu mūsu vērību (par ko viņi paši brīdina - mums nevajadzētu nevienam akli uzticēties, kļūdas notiek vienmēr).

Tātad, sastādīsim svarīgu notikumu grafiku nākamajā nedēļā šādā formātā:
Pasākuma datums un laiks; instruments; notikuma apraksts

2016.04.01 14:00;USD;ISM uzņēmējdarbības aktivitātes indekss apstrādes rūpniecībā 2016.04.01 14:00;USD;Inflācijas pakāpeniskas paātrināšanās indekss no ISM 2016.04.04 09:00;EUR;Ražotāju cenu indekss (m/m) ) 2016.04.04 09:00;EUR;Ražotāju cenu indekss (YoY) 2016.04.05 04:30;AUD;Austrālijas Rezervju bankas lēmums par procentu likmi 2016.04.05 04:30;AUD;Rezerves paziņojums Bank of Australia 2016.04.06 07: 00;EUR;ECB sanāksme 2016.04.06 18:00;USD;ASV Federālās atvērtā tirgus komitejas sēdes protokols 2016.04.07 11:30;EUR;Informācija par ECB sanāksmi monetārajā jomā politiku

Ierakstīsim to failā ht-news.csv un ievietosim vajadzīgajā direktorijā \MQL4\Files\ht-news.csv, no kurienes mūsu konsultants to var izlasīt.

Vispirms iestatīsim ārējos mainīgos konfigurācijai; komentāri izskaidro to mērķi:

Extern string startNewsEvent="Darba ierobežošana ar ziņām"; ievades bool StopOnNewsEvent=true; //Iespējot ierobežojuma ievades virkni NewsEventFileName="ht-news.csv"; //Fails ar grafika ievadi uint LoadNewsEventTimerInDay=7;//Cik bieži dienās jāielādē faila ievade uint StopPriorEventHours=2; //Apturēt X stundas pirms notikuma ievades uint StartAfterEventHours=3; //Sākt X stundas pēc notikuma ārējās virknes stopNewsEvent="-----------------";

Tālāk norādītā struktūra palīdzēs mums piekļūt apstrādājamā notikuma aprakstam:

Struct NEWS_EVENT (datetime EventTime; //notikuma laika virkne Instruments; //notikuma instrumenta virkne EventComment; //notikuma komentārs);

Pielāgota funkcija informācijas nolasīšanai no faila

Bool LoadNews() ( int rokturis; // Faila deskriptora virknes instruments, // Notikuma valūtas nosaukums firstInstrument,secondInstrument, // Pašreizējā pāra nosaukuma 1. un 2. daļa eventComment, // Notikuma apraksta teksts stringDateTime; // Notikuma datuma un laika datuma un laika izteiksme<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; }

Mēs meklējam vajadzīgo laiku NewsEventTime masīvā, un, ja laiks tiek atrasts, mēs iegūstam to NewsEvent struktūras masīva aprakstu.

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

Palīdzības funkcija, lai noteiktu, vai pašreizējais laiks ietilpst dīkstāves laikā

//pārbaudiet, vai mums ir jāatspējo ziņu padomnieks True - work False - rest bool CheckEnableNewsWork() ( if (ArraySize(NewsEventTime)==0) return true; //kādu iemeslu dēļ masīvs ar grafiku bija tukšs, kas nozīmē mēs strādājam //tagad mums ir jāatrod tuvākais datums sadaļā NewsEventTime, pirms kura mums ir jāpārtrauc darbs StopPriorEventHours stundām datetime timeCurrent =TimeCurrent(); datetime timeStopWork=timeCurrent+StopPriorEventHours*3600; //Ja NewsEventTime ir laiks kas ir mazāks par timeStopWork, tad mēs pārtraucam darbu int dateindex= ArrayBsearch(NewsEventTime,timeStopWork,WHOLE_ARRAY,0,MODE_ASCEND); datetime foundEventTime=NewsEventTime; timeStopWork=foundEventTime-StopPriorcalEvent0 found0 date the time from3/the/ timeStartWork=foundEventTime+StartAfterEventHours*3600; //šis ir atpūtas beigu laiks / /tagad pārbaudīsim, vai tagad esam timeCurrent starp timeStopWork un timeStartWork. Ja tā, tad nestrādājam if (timeCurrent>=timeStopWork && timeCurk<=timeStartWork) { DrawLabel("EnableNewsWork","Не работаем, новость: "+GetEventInfo(foundEventTime)+"",5,80,Red); return false; } else { DrawLabel("EnableNewsWork","Нормальная работа, новостей нет",5,80,Green); return true; } }

Lai periodiski lasītu no faila ar grafiku, mums ir nepieciešams taimeris, kas darbojas, piemēram, reizi nedēļā, kā konfigurēts

//Pārbaudiet ziņu faila esamību, izmantojot taimera void OnTimer() ( if (StopOnNewsEvent) ( LoadNews(); //lasīt failu ) )

Inicializējot padomdevēju, jāieslēdz taimeris un pirmo reizi jāizlasa ziņas

OnInit() .... if (StopOnNewsEvent) //Ja iestatīts, ielādējiet failu ar ziņām ( bool tm=EventSetTimer(LoadNewsEventTimerInDay*86400); //startējiet taimeri, lai ielādētu failu ar grafiku if (!tm) Alert("EventSetTimer error :",GetLastError()); OnTimer();//Pirmā palaišana nekavējoties )

Pie katras ķeksīša pārbaudām, vai varam atvērt pozīcijas. Starp citu, tam nevajadzētu ietekmēt aizvēršanu.

OnTick() .... bool enableNewsWork=true; //var strādāt pie ziņu notikumiem if (StopOnNewsEvent) ( enableNewsWork=CheckEnableNewsWork(); //Ja ir ziņu ierobežojums, pārbaudiet laiku) if (HaveMoney && enableNewsWork) Traiding(Pairs); //pārbaudiet nosacījumus un atveriet tirdzniecību ar pāri

Tas ir viss. Diemžēl es vēl neesmu pārbaudījis šo kodu reālā kontā, jo es to uzrakstīju nedēļas nogalē, atdarīju ķeksīti ar taimeri un manuāli mainīju pašreizējo laiku, kas apstājas nedēļas nogalē. Bet nākamnedēļ skatīšos dzīvē, jaunajā versijā “Forex Grail 1.11”, kur iegultu iepriekš minēto kodu.

Nākotnē, iespējams, būs jāizveido ērta utilīta faila ht-news.csv ģenerēšanai, piemēram, tajā pašā