Paskolos automobiliui. Atsargos. Pinigai. Hipoteka. Kreditai. Milijonas. Pagrindai. Investicijos

Kaip apriboti Forex konsultantų prekybos laiką? Prekybos planuotojas – konsultanto darbo ribojimas Eksperto įdiegimas ir konfigūravimas

Šiandien kalbėsime apie „Trade Scheduler“ robotą, kuris turi labai įdomią savybę. Ar naudodamiesi automatinėmis sistemomis Forex prekyboje pastebėjote, kad tam tikromis savaitės dienomis ar valandomis jos dažnai atneša nuostolių? Pavyzdžiui, pirmąją savaitės dieną patarėjas atidaro labai mažai sandorių, o tuo pačiu dauguma jų yra ir nuostolingi. Tokiais atvejais patarėją tikslinga išjungti prieš šeštadienį ir įjungti antradienį. Šią paprastą operaciją galite atlikti rankiniu būdu, tačiau taip pat lengva pamiršti išjungti arba įjungti patarėją Tikslus laikas.

Šios problemos (ir kelių kitų) sprendimas gali būti roboto naudojimas Prekybos planuotojas, kuris pats neprekiauja, tačiau leidžia apriboti kitų Ekspertų patarėjų darbo laiką pagal grafiką, remiantis šių Ekspertų patarėjų darbo analize.

Prieš koreguojant laikinąjį darbo režimą, būtina išsiaiškinti, kokiais momentais jis dažnai prekiauja minusais. Šiuo atveju pagelbės MyFXbook paslauga, kurioje pateikiama išsami sistemos prekybos statistika pagal savaitės dienas ir valandas. Optimalus prekybos laikotarpis sistemos veikimo analizei yra 3 mėnesiai. Norėdami tai atlikti, turite pradėti stebėti paslaugą. Apie roboto įdiegimą galite perskaityti „MyFXbook“. Kaip pavyzdį panagrinėkime eksperto patarėjo darbo rezultatus, kurių stebėjimą galite rasti paspaudę ant paveikslėlio:

Ryžiai. 1. „Transient Zones 2.0 Expert Advisor“ „MyFXbook“ paslaugos veikimo stebėjimas.

Tiems, kurie dar neturi pakankamai roboto prekybos istorijos, kad galėtų jį išanalizuoti realioje sąskaitoje, tačiau tuo pat metu jį galima išbandyti, drąsiai įkelkite ataskaitą, gautą iš .

Įkėlus ir apdorojus stebėjimą, reikia pereiti į išplėstinės statistikos skyrių, skirtuką Kasdien. Čia galite rasti informaciją apie santykinę sumą pagal savaitės dienas. Mūsų pavyzdyje didžiausias nuostolingų sandorių skaičius patenka į ketvirtadienį ir penktadienį, o tai reiškia, kad šiomis dienomis būtų tikslinga sustabdyti ekspertų patarėją. Tokio elgesio priežastis gali slypėti rinkos būklėje, kuri šiais laikais netinka roboto strategijai, o jo skaičiavimai nėra tokie tikslūs:


Ryžiai. 2. Pereinamųjų zonų 2.0 Expert Advisor pelningų ir nepelningų sandorių santykis už savaitę.

Atlikę analizę pagal dieną, galite analizuoti efektyvų darbą pagal valandas. Norėdami tai padaryti, eikite į skirtuką Valandos ir pažiūrėkite, kada santykinis nuostolingų sandorių skaičius yra didesnis:


Ryžiai. 3. Santykinis nuostolingų ir pelningi sandoriai pagal valandą.

Išvada: būtų protinga sustoti prekybos procesas ketvirtadienį, penktadienį ir likusiomis dienomis blokuoja savo darbą pirmomis dvi naujos dienos valandomis, o dienos metu tomis valandomis, kai nuostolingi sandoriai vyrauja – ypač 12, 13, 14 val. Tai yra, palikite jį dirbti naktį nuo 2 iki 8 ryto imtinai ir nuo 13 iki 21 po pietų. Patarėjo darbo rezultatas turėtų gerokai pagerėti.

Eksperto diegimas ir konfigūravimas.

„Trade Scheduler“ pagalbinio patarėjo montavimas atliekamas pagal analogiją su bet kuriuo kitu patarėju, daugiau apie tai parašyta . Archyvą su ekspertu galite atsisiųsti iš toliau pateiktos nuorodos:

parsisiųsti trade-scheduler.rar (atsisiuntimai: 147)

Išpakuokite trade-scheduler.rar archyvą, nukopijuokite TradeScheduler v2.3.ex4 eksperto failą į aplanką data_folder\MQL4\Experts\. Norėdami atidaryti duomenų katalogą, meniu Failas pasirinkite elementą Atidaryti duomenų katalogą. Tada terminalas paleidžiamas iš naujo ir po to patarėją galima rasti lange Navigator – Ekspertų patarėjai.

Diegiant ekspertų patarėją diagramoje, reikiamas darbo laikas nustatymų lange nustatomas pagal savaitės dienas ir valandas. Laikas nustatomas priklausomai nuo terminalo laiko, tai yra ir laikas. Kiekvienai dienai yra 3 įvesties parametrai. Pirmasis parametras yra atsakingas už roboto įjungimą / išjungimą konkrečią savaitės dieną, antrasis parametras yra prekybos pradžios laikas, o trečiasis yra sustabdymo laikas. Laikas nurodytas formatu valandos: minutės:


Ryžiai. 4. Įvesties parametrai nustatyti po eksperto patarėjo analizės.

Taip pat nustatymuose yra papildomas parametras CloseBeforeSwitchOFF . Jei nustatyta kaip CloseAll, visi sandoriai bus automatiškai uždaryti prieš išjungiant robotą. Jei CloseAllProfitable - bus uždaromi tik pelningi orderiai, jei Ne - sandoriai nebus uždaromi. Parametras Slip yra atsakingas už didžiausią leistiną slydimą.

Įsitikinkite, kad terminale leidžiama automatinė prekyba ir funkcijų importas iš DLL. Vienam terminalui įdiegta viena patarėjo versija.

Išvada.

Norėti pagerinti našumą tavo patarėjas? Išbandykite jo darbo ribojimo metodą ir analizuokite rezultatus. Jei statistika rodo, kad jūsų ekspertų patarėjas „nuolat susilieja“ tam tikru paros metu, tai reiškia, kad rinkoje yra modelis, kurio jis negali susidoroti. Nustokite prekiauti šiuo nepalankiu laikotarpiu ir padidinkite jos pelningumą!

Šis ekspertų patarėjas idealiai tinka tiems, kurie prekiauja pagal lygius ir bet kokias strategijas, naudojant laukiančius limitinius pavedimus. EA pateiks užsakymus tinkamu laiku tinkamu atstumu nuo dabartinės kainos! Roboto nustatymuose galite nustatyti nuostolių sustabdymą, pavedimų pelną, taip pat kiekvieno užsakymo partiją. Viskas nustatoma kiekvienam užsakymui atskirai. Galite pateikti tik pirkimo limitą, pardavimo limitą arba abu užsakymus kartu!

EA yra pasirengęs dirbti su bet kokiais prekybos instrumentais, bet kuriame prekybos terminale Metatrader 4. Robotas taip pat pasirengęs dirbti su keliais valiutų porų iškarto. Tai reiškia, kad galite atidaryti bet kokį porų skaičių ir įdiegti joms patarėją, kiekvienam nustatydami savo stebuklingą skaičių ir laiko nustatymus. Po to kiekviena pora dirbs griežtai atskirai. Jei vis dar dirbate su limitiniais užsakymais rankiniu būdu, šis robotas kaip tik jums!

  • BUY_limit- Ar pateikti užsakymą pirkti limitą.
  • lot_buy_limit- Partijos užsakymų pirkimo limitas.
  • R_buy_limit- Atstumas nuo dabartinės kainos iki pirkimo limito pavedimo taškais.
  • Stop_Loss_buy_limit- Stop loss limito pirkimo pavedimai.
  • Take_Profit_buy_limit - Pasiimk pelną pirkti limitinius pavedimus.
  • SELL_limit- Ar nustatyti pardavimo limito pavedimą.
  • Lot_sell_limit- Lotų užsakymų pardavimo limitas.
  • R_sell_limit- Atstumas nuo dabartinės kainos iki pardavimo limito pavedimo taškais.
  • stop_loss_sell_limit- Stop loss orderių pardavimo limitas.
  • Take_Profit_sell_limit- Paimkite pelno pavedimų pardavimo limitą.
  • paslydimas- Maksimalus slydimas taškais.
  • Uždaryti_Užsakymus- Antrojo užsakymo uždarymas atidarant pirmąjį.
  • Laikai- Užsakymo galiojimo laikas minutėmis.
  • Laikas_Pradėti– Atlikti užsakymus laiku?
  • Laikas_valanda- Užsakymų atidarymo valanda 0-23
  • Laikas_Minutė- Užsakymų atidarymo minutė 0 - 59. Pavyzdžiui, valanda = 5, minutė 40, taigi 5.40 bus pateikiami užsakymai nuo to momento kainos.
  • Ekspertas_I- stebuklingas skaičius, skirtas nustatyti jūsų pavedimus ir prekybą keliomis valiutomis.

Jei tavo prekybos sistema nėra pagrįstas naujienų šuoliais, finansinei ir psichinei sveikatai gali būti labai naudinga sustabdyti patarėjo darbą prieš paskelbiant svarbias naujienas. O kai nepastovumas nusistovės, po kelių valandų vėl įjunkite. Gerai, jei turite prieigą prie veikiančio terminalo. O jei ne? Čia praverčia automatika.

Viena iš mūsų problemos sprendimo būdų yra sudaryti failą su svarbių įvykių tvarkaraščiu. Mūsų ekspertas perskaito šį failą ir nustato, kada galima dirbti, o kada ne. MQL4 mokymo programoje pateikiamas darbo su csv tekstiniu failu pavyzdys, kuriuo remsimės, atsikratydami kelių klaidų, kurias autoriai padarė netyčia arba norėdami patikrinti mūsų dėmesingumą (apie tai jie patys įspėja – turėtumėte niekuo aklai netikėkite, klaidų pasitaiko visada).

Taigi, sudarykime svarbių kitos savaitės įvykių tvarkaraštį tokiu formatu:
Įvykio data ir laikas; įrankis; įvykio aprašymas

2016.04.01 14:00;USD;ISM verslo veiklos indeksas gamybos sektoriuje 2016.04.01 14:00;USD;Infliacijos laipsniško pagreičio indeksas nuo ISM 2016.04.04 09:00;EUR;Gamintojų kainų indeksas (mam.) 04,104 09:00;EUR;Gamintojų kainų indeksas (YoY) 2016.04.05 04:30;AUD;Sprendimas Rezervų bankas Australija pagal palūkanų normą 2016.04.05 04:30;AUD;Reserve Bank of Australia lydinčioji ataskaita 2016.04.06 07:00;EUR;ECB posėdis 2016.04.06 18:00;USD;Komisijos posėdžio protokolas atviros rinkos JAV Federalinis rezervų bankas 2016.04.07 11:30;EUR;Informacija apie ECB posėdį pinigų politikos klausimais

Įrašykime jį į ht-news.csv failą ir patalpinkime į reikiamą katalogą \MQL4\Files\ht-news.csv, iš kur mūsų EA gali jį perskaityti.

Pirmiausia nustatykime išorinius konfigūracijos kintamuosius, komentarai paaiškina jų paskirtį:

Extern string startNewsEvent="Darbo su naujienomis apribojimas"; input bool StopOnNewsEvent=true; //Įgalinti apribojimo įvesties eilutę NewsEventFileName="ht-news.csv"; //Suplanuoti failo įvesties uint LoadNewsEventTimerInDay=7;//Kaip dažnai per dienas reikia iš naujo įkelti failo įvesties uint StopPriorEventHours=2; //Sustabdyti X valandas prieš įvykį įvesties uint StartAfterEventHours=3; //Pradėti X val. po įvykio išorinės eilutės stopNewsEvent="-----------------";

Ši struktūra padės mums pasiekti tvarkomo įvykio aprašymą:

Struktūra NEWS_EVENT ( datetime EventTime; //įvykio atsiradimo laikas eilutės instrumentas; //įvykio instrumento eilutė EventComment; //įvykio komentaras );

Pasirinktinė funkcija, skirta informacijos skaitymui iš failo

Bool LoadNews() ( int rankena; // Failo deskriptoriaus eilutės priemonė, // Įvykio valiutos pavadinimas firstInstrument,secondInstrument, // 1-oji ir 2-oji dabartinės poros eventComment pavadinimo dalys, // Įvykio aprašymo tekstas stringDateTime; // Eilutės išraiška įvykio datos ir laiko datatime eventDateTime; // Įvykio data ir laikas datetime formatu Handel=FileOpen(NewsEventFileName,FILE_CSV|FILE_READ,";");// Atidaryti failą 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; }

Mes ieškome reikiamo laiko NewsEventTime masyve, o jei laikas bus rastas, jo aprašymą gausime iš NewsEvent struktūros masyvo

Eilutė GetEventInfo(data ir data) ( for(int i=0;i

Pagalbinė funkcija, skirta nustatyti, ar dabartinis laikas patenka į neveikimo laikotarpį

//patikrinkite, ar reikia išjungti naujienų patarėją Tiesa – dirbame Netiesa – ilsinamės bool CheckEnableNewsWork() ( if (ArraySize(NewsEventTime)==0) return true; //dėl tam tikrų priežasčių tvarkaraštis masyvas pasirodė tuščias, todėl mes dirbame //dabar NewsEventTime reikia rasti artimiausią datą, prieš kurią reikia sustabdyti darbą StopPriorEventHours val. datetime timeCurrent =TimeCurrent(); datetime timeStopWork=timeCurrent+StopPriorEventHours*3600; / /Jei NewsEventTime laikas yra trumpesnis nei timeStopWork, tada nustokite veikti int dateindex= ArrayBsearch(NewsEventTime,timeStopWork,WHOLE_ARRAY,0,MODE_ASCEND); datetime foundEventTime=NewsEventTime; timeStopWork=foundEventTime; timeStopWork=foundEventTime from the times /top/3calEculateH rastas laikas data ir laikas laikasStartWork=foundEventTime+StartAfterEventHours*3600; //tai poilsio pabaigos laikas / /dabar patikrinkite, ar dabar yra laikasSrovė tarp timeStopWork ir timeStartWork, jei taip, tada neveikia if (timeCurrent>=timeS topDarbas ir laikas Dabartinis<=timeStartWork) { DrawLabel("EnableNewsWork","Не работаем, новость: "+GetEventInfo(foundEventTime)+"",5,80,Red); return false; } else { DrawLabel("EnableNewsWork","Нормальная работа, новостей нет",5,80,Green); return true; } }

Norėdami periodiškai skaityti iš tvarkaraščio failo, mums reikia laikmačio, kuris veiktų, pavyzdžiui, kartą per savaitę, kaip sukonfigūruota

//Patikrinti, ar yra failas su naujienomis pagal laikmatį void OnTimer() ( if (StopOnNewsEvent) ( LoadNews(); //skaityti failą ) )

Inicijuojant patarėją, reikia paleisti laikmatį ir pirmą kartą perskaityti naujienas

OnInit() .... if (StopOnNewsEvent) //Jei nustatyta, įkelkite naujienų failą ( bool tm=EventSetTimer(LoadNewsEventTimerInDay*86400); //paleiskite laikmatį, kad būtų įkeltas tvarkaraščio failas if (!tm) Alert("EventSetTimer klaida :",GetLastError()); OnTimer();//Pirmą kartą paleiskite iš karto )

Kiekvienoje varnele tikriname, ar galime atidaryti pozicijas. Beje, tai neturėtų turėti įtakos užpakaliui.

OnTick() .... bool enableNewsWork=true; //galite dirbti su naujienų įvykiais if (StopOnNewsEvent) ( enableNewsWork=CheckEnableNewsWork(); //Jei naujienų limitas yra, patikrinkite laiką ) if (HaveMoney && enableNewsWork) Traiding(Pairs); //sąlygų patikrinimas ir poros sandorio atidarymas

Tai viskas. Deja, šio kodo dar neišbandžiau tikroje paskyroje, nes rašiau jį savaitgaliais, emuliavau varnelius su laikmačiu ir rankiniu būdu pakeičiau esamą laiką, kuris sustoja savaitgaliais. Bet kitą savaitę pažiūrėsiu realiai, naujoje versijoje “ Forex Gralis 1.11“, kur įdėjau aukščiau pateiktą kodą.

Ateityje gali prireikti sukurti patogią ht-news.csv failo generavimo priemonę, pavyzdžiui, tame pačiame faile.

Tikriausiai pastebėjote, kad sandoriai tam tikromis dienomis ar net valandomis atneša nuostolių. Pavyzdžiui, tai gali būti penktadienio vakaro operacijos, kurių rezultatas, pervedant savaitgalį, dažnai būna nenuspėjamas. Kaip būti? Rankiniu būdu įjungti ir išjungti patarėją? Tai nėra labai patogu, o mes visi esame žmonės – galite tiesiog pamiršti tai padaryti.

Problemų sprendimas – patarėjo padėjėjas Prekybos planuotojas, kuri leidžia apriboti kitų Ekspertų patarėjų darbo laiką pagal prekybininko nustatytą grafiką. Pavyzdžiui, galite apriboti robotų prekybą pirmadienį nuo 7 iki 11 val. Šią plėtrą sukūrė mūsų draugai ArgoLab ir šiandien mes su juo susipažinsime išsamiai.

Statistikos analizė

Prieš apribodami patarėjo darbą, pirmiausia turite nustatyti, kuriuo metu strategija pasiduoda. Norėdami tai padaryti, galite naudoti vieną iš stebėjimo paslaugų, tokių kaip myfxbook, kuri pateikia išsamią prekybos statistiką laikui bėgant. Kad analizė būtų patikima, pageidautina turėti bent trijų mėnesių prekybos statistiką.

Taigi, pradedantiesiems, turite pradėti stebėti myfxbook. Informacijos apie tai, kaip tai padaryti, rasite mūsų svetainėje. . Pavyzdžiui, paimkime patarėjo stebėjimą Forex medžiotojas.

Taip pat į svetainę galite įkelti strategijos testerio ataskaitą. Visų pirma, tai reikalinga tiems, kurie dar neturi pakankamai sukauptos istorijos tikroje paskyroje, tačiau testeryje yra robotas, kurį galima išbandyti. Kaip tai padaryti, skaitykite dar kartąatskiras straipsnis .

Be to, kai stebėjimas bus įkeltas ir apdorotas, eikite į išplėstinės statistikos skyrių, skirtuką „Kasdien“. Tai rodo pelningų ir nuostolingų sandorių skaičių pagal savaitės dieną. Kaip matote, ketvirtadienį ir penktadienį didžiausias santykinis nuostolingų sandorių skaičius yra atitinkamai 73% ir 74%. Tai reiškia, kad šių dienų rinkos sąlygos nėra tinkamos šiai strategijai, prognozės yra ne tokios tikslios ir EA praranda pinigus. Siekiant pagerinti automatinės strategijos efektyvumą, tikslinga šias dienas išbraukti iš prekybos.

Tada žiūrime statistiką pagal valandas. Rodyklės ekrano kopijoje žymi valandas, kuriose buvo didžiausias nuostolingų sandorių skaičius. Be to, kad nakties metu (daugiausia Azijos sesijos metu) yra ne tik daug mažiau operacijų nei vidury dienos, bet ir įrašų kokybė palieka daug norimų rezultatų.

Tai reiškia, kad jei ketvirtadienį ir penktadienį užblokuosime Eksperto patarėjo darbą, palikdami jį dirbti kitomis dienomis nuo 11:00 iki 19:00, rezultatas garantuotai pagerės.

Pakeitimų EA nustatymai šiame pavyzdyje atrodys taip:


Įdiegimas ir nustatymas

Patarėjas montuojamas standartiniu būdu. Atidarykite terminalo duomenų katalogą naudodami Failas - Atidaryti duomenų katalogą ir eikite į MQL4 - ekspertų katalogą. Čia nukopijuojame anksčiau atsisiųstą „Expert Advisor“ failą su plėtiniu „.ex4“. Norėdami, kad eksperto patarėjas būtų rodomas navigatoriaus lange, iš naujo paleiskite terminalą.

Nustatymuose reikia nurodyti veikimo laiką pagal savaitės dienas. Kiekvienai dienai yra trys įvesties parametrai. Pirmasis atsakingas už prekybos įjungimą/išjungimą tam tikrą dieną, antrasis – už prekybos pradžios laiką, trečiasis – už prekybos pabaigą. Laikas gali būti nurodytas minutės tikslumu. Pradžios laikas gali būti ilgesnis nei pabaigos laikas, pvz., 19:00 ir 9:00. Tokiu atveju prekyba bus leidžiama nuo 00:00 iki 9:00 ir nuo 19:00 iki 24:00.

Papildomas CloseBeforeSwitchOFF parametras yra atsakingas už visų pozicijų uždarymą prieš pat išjungiant automatinę prekybą. Iš viso parametras gali turėti tris reikšmes: Ne – pozicijos neuždarytos; CloseAllProfitable – uždaromi tik pelningi; CloseAll – išeiti iš visų atvirų pozicijų. Slydimo parametras yra atsakingas už didžiausią slydimą.


Nepamirškite įjungti automatinio prekybos ir importuoti funkcijų iš DLL bibliotekų.

Laikas turi būti nurodytas, sutelkiant dėmesį į terminalo laiką, kuris rodomas Market Watch lango pavadinime. Atėjo jūsų brokerio laikas.

Be to, nebandykite įdiegti kelių patarėjo egzempliorių vienoje paskyroje – užtenka vieno egzemplioriaus. Priešingu atveju nė vienas iš jų neveiks tinkamai.

Išvada

Laiko ribojimas yra lengviausias ir efektyviausias būdas pagerinti savo prekybos rezultatus. Pavyzdžiui, jei patarėjas nuosekliai sujungia nuo 4 iki 8, tada rinkoje yra kitoks modelis, kurio robotas negali apdoroti. Tiesiog šiuo laikotarpiu neprekiaujate – padidinate bendrą pelningumą ir iškraunate indėlį nuo nereikalingų operacijų.

Forumo tema

Pagarbiai Aleksejus Vergunovas
TradeLikeaPro.ru

Šaltinis http://tradelikeapro.ru/sovetnik-tradescheduler/

Jus taip pat sudomins:

Kas tai – skirtingų pasaulio šalių valiuta?
Rusijos rublis pagaliau surado oficialų grafinį simbolį – dabar nacionalinį...
KBC mokesčių ir draudimo įmokų už netesybų pervedimą skaičiuoklė
Norėdami apskaičiuoti baudą internetu, turite atlikti kelis paprastus veiksmus: Pasirinkite...
Draudimo įmokų mokėjimo nurodymas
Mokėjimo nurodymas – tai mokėtojo nurodymas bankui pervesti pinigus iš sąskaitos...
Buvusios SSRS šalys pagal HDI
Po SSRS žlugimo nepriklausomybę įgijusios valstybės pradėjo savo nepriklausomas ...
Užsienio Azija: bendrosios charakteristikos Užsienio Azijos teritorija
Src="https://present5.com/presentacii-2/20171211%5C29346-zarubezhnaya-asia.ppt%5C29346-zaru...