Limiti satın alın ve doğru zamanda limite ulaşın. Ticaret Planlayıcısı - Uzman Danışman Bekleyen Emirler Uzmanının çalışmalarının sınırlandırılması

Bugün oldukça ilginç bir fonksiyona sahip olan Trade Scheduler robotundan bahsedeceğiz. Forex ticaretinde otomatik sistemleri kullanırken, haftanın belirli günlerinde veya saatlerinde kayıp yaratma ihtimalinin daha yüksek olduğunu fark ettiniz mi? Örneğin haftanın ilk gününde danışman çok az işlem açar ve bunların çoğu da kârsızdır. Bu gibi durumlarda danışmanı cumartesiden önce devre dışı bırakıp Salı günü etkinleştirmek mantıklıdır. Bu basit işlemi manuel olarak gerçekleştirebilirsiniz, ancak danışmanı doğru zamanda devre dışı bırakmayı veya etkinleştirmeyi de kolayca unutabilirsiniz.

Bu sorunun (ve diğer birkaç sorunun) çözümü şu olabilir: robotu kullanma Kendisi ticaret yapmayan ancak diğer danışmanların çalışma sürelerini, bu danışmanların çalışmalarının analizine dayanarak derlenen bir programa göre sınırlamanıza olanak tanıyan Ticaret Planlayıcı.

Zaman çalışma modunda ayarlamalar yapmadan önce, en sık hangi anlarda kırmızı renkte işlem gördüğünü bulmak gerekir. Bu durumda, sistemin haftanın gününe ve saatine göre ayrıntılı işlem istatistiklerini sağlayan MyFXbook hizmeti yardımcı olacaktır. Sistemin işleyişini analiz etmek için en uygun işlem süresi 3 aydır. Bunu gerçekleştirmek için hizmeti izlemeye başlamanız gerekir. Robotun kurulumunu MyFXbook'ta okuyabilirsiniz. Örnek olarak resme tıklanarak takibine ulaşılabilen uzmanın çalışma sonuçlarına bakalım:

Pirinç. 1. MyFXbook hizmetindeki Transient Zones 2.0 danışmanının çalışmasının izlenmesi.

Henüz gerçek bir hesapta analiz için robotun yeterli ticaret geçmişine sahip olmayan, ancak aynı zamanda test edilebilenler için bir seçenek olarak, hizmetten alınan raporu hizmete yüklemekten çekinmeyin.

İzlemeyi indirip işledikten sonra, gelişmiş istatistikler bölümü olan Günlük sekmesine gitmeniz gerekir. Burada haftanın günlerine göre göreceli miktarlar hakkında bilgi bulabilirsiniz. Örneğimizde, en çok kaybedilen işlem sayısı Perşembe ve Cuma günleri meydana geliyor; bu da bu günlerde Uzman Danışmanın çalışmalarını askıya almanın makul olacağı anlamına geliyor. Bu davranışın nedeni, günümüzde robotun stratejisine uygun olmayan piyasa koşulları ve hesaplamalarının daha az doğru olması olabilir:


Pirinç. 2. Transient Zones 2.0 danışmanının haftalık karlı ve karsız işlemlerinin oranı.

Gün bazında analiz yaptıktan sonra saat bazında iş verimliliğini analiz edebilirsiniz. Bunu yapmak için Saatlik sekmesine gitmeniz ve göreceli olarak kaybedilen işlem sayısının ne zaman daha fazla olduğunu görmeniz gerekir:


Pirinç. 3. Saat bazında kaybedilen ve karlı işlemlerin göreceli sayısı.

Sonuç: İşlem sürecini Perşembe, Cuma günü durdurmak ve diğer günler için yeni günün ilk iki saatinde ve gün içinde kaybedilen işlemlerin baskın olduğu saatlerde - özellikle saat 12'de - çalışmasını engellemek akıllıca olacaktır. , 13, 14 pm. Yani, gece saat 2'den sabah 8'e kadar, gündüzleri ise öğleden sonra 13'ten akşam 9'a kadar çalışmasına izin verin. Danışmanın çalışmasının sonucu önemli ölçüde iyileşmelidir.

Uzmanın kurulumu ve konfigürasyonu.

Trade Scheduler yardımcı danışmanının kurulumu diğer danışmanlara benzetilerek gerçekleştirilir; bununla ilgili daha fazla ayrıntı burada yazılmıştır. Aşağıdaki bağlantıdan uzmanla birlikte arşivi indirebilirsiniz:

İndirmek trade-scheduler.rar (indirilenler: 139)

trade-scheduler.rar arşivini açın ve TradeScheduler v2.3.ex4 uzman dosyasını data_directory\MQL4\Experts\ klasörüne kopyalayın. Veri dizinini açmak için Dosya menüsünden Veri Dizinini Aç seçeneğini seçin. Daha sonra terminal yeniden başlatılır ve bundan sonra danışman Navigator - Advisors penceresinde bulunabilir.

Expert Advisor'ı bir grafik üzerine kurarken, gerekli çalışma süresi ayarlar penceresinde haftanın gününe ve saate göre belirtilir. Zaman, aynı zamanda zaman olan terminal zamanına bağlı olarak ayarlanır. Her gün için 3 giriş parametresi vardır. İlk parametre haftanın belirli bir gününde robotun açılıp kapanmasından sorumludur, ikinci parametre ticaretin başlama saatini, üçüncü parametre ise durma süresini gösterir. Zaman şu biçimde gösterilir: saat: dakika:


Pirinç. 4. Danışmanın çalışmasını analiz ettikten sonra belirtilen parametreleri girin.

Ayarlarda ek bir CloseBeforeSwitchOFF parametresi de vardır. CloseAll olarak ayarlandığında, robot kapatılmadan önce tüm işlemler otomatik olarak kapatılacaktır. CloseAllProfitable olduğunda - yalnızca karlı emirler kapatılacak, No - işlemler kapatılmayacaktır. Kayma parametresi izin verilen maksimum kaymadan sorumludur.

Terminalde otomatik ticarete ve DLL'lerden işlevlerin içe aktarılmasına izin verildiğinden emin olun. Danışmanın bir sürümü bir terminal için kurulur.

Çözüm.

İstemek performans geliştirme danışmanın mı? Operasyonunu sınırlama yöntemini deneyin ve sonuçları analiz edin. İstatistikler uzmanınızın günün belirli bir saatinde "sürekli olarak kaybettiğini" gösteriyorsa, piyasada işleyemeyeceği bir model var demektir. Bu olumsuz dönemde ticarete ara verin ve kârlılığı artırın!

Bu danışman, seviyelere göre işlem yapanlar ve bekleyen limit emirlerini kullanan stratejiler için idealdir. Danışman, doğru zamanda, mevcut fiyattan doğru mesafede emir verecektir! Robot ayarlarında, kayıpları durdurmayı, siparişlerden kar almayı ve her siparişin lotunu ayarlayabilirsiniz. Her sipariş için her şey ayrı ayrı ayarlanır. Yalnızca alış limiti, satış limiti veya her iki emri birlikte verebilirsiniz!

Danışman, herhangi bir Metatrader 4 ticaret terminalinde herhangi bir ticaret enstrümanı üzerinde çalışmaya hazırdır.Robot ayrıca aynı anda birkaç döviz çifti üzerinde çalışmaya hazırdır. Yani, istediğiniz sayıda çift açabilir ve her birine kendi sihirli sayı ve zaman ayarlarını vererek onlara bir danışman yükleyebilirsiniz. Bundan sonra her çift kesinlikle bireysel olarak çalışacak. Eğer hala limitli emirlerle manuel olarak çalışıyorsanız bu robot tam size göre!

  • Satın alma limiti- Satın alma limiti emrinin belirlenip belirlenmeyeceği.
  • Lot_buy_limit- Lot emri satın alma limiti.
  • R_buy_limit- Mevcut fiyattan satın alma limiti emrine kadar puan cinsinden mesafe.
  • Stop_Loss_buy_limit- Zararı durdur satın alma limiti emirleri.
  • Take_Profit_buy_limit- Kar emirleri satın alma limiti alın.
  • Satış sınırı- Satış limiti emrinin belirlenip belirlenmeyeceği.
  • Lot_sell_limit- Lot emri satış limiti.
  • R_sell_limit- Mevcut fiyattan satış limiti emrine kadar puan cinsinden mesafe.
  • Stop_Loss_sell_limit- Zararı durdur emirleri satış limiti.
  • Take_Profit_sell_limit- Kar alma emirleri satış limiti.
  • Kayma- Puanlarda maksimum kayma.
  • Close_Orders- İlkini açarken ikinci sırayı kapatmak.
  • Zamanlar- Dakikalar içinde ömür boyu sipariş verin.
  • Süre başladı- Zamana göre sipariş verilsin mi?
  • Time_Hour- Sipariş açılış saati 0-23
  • Time_Minute- Emirlerin açılması için dakika 0 - 59. Örneğin saat = 5, dakika 40 yani 5.40'ta emirler o andaki fiyata göre verilecektir.
  • Uzman_I- emirlerinizi ve çoklu döviz ticaretinizi belirlemek için sihirli sayı.

Makaleden öğreneceksiniz:

İyi günler, sevgili okuyucular ve blogun konukları. Bugün zamana dayalı ve bekleyen emir veren yardımcı danışmanların nasıl olduğundan ve işlemlerin nasıl kapatıldığından bahsedeceğiz.

En iyi komisyoncu

Her saat başı veya zamana göre emir açan bir danışman, çeşitli ticaret durumlarında yardımcı olan bir araçtır. Genel olarak benzer faaliyetleri yürüten bu tür danışmanlara ilgi, anladığım kadarıyla uzun süredir var. Ve 2006'da bu tür robotlar ortaya çıktı ve 2008'de taleplere göre bunlara olan ilgiyi takip edebiliyorsunuz ve şimdi bu tür uzmanların üretilmesine yönelik talepler ortaya çıkmaya devam ediyor. Aynı zamanda, deneyimli tüccarlar ve sadece tüccarlar değil, aynı zamanda ticaretle uğraşanlar da yeni gelenlere yardımcı olur. Genel olarak bu iyi bir gelenek. Genellikle karşılıklı alışverişe dayanır. Yeni başlayan kişi fikir verir, deneyimli olan ise fikri kullanma hakkını alır ve ortağıyla paylaştığı uzman kodunu oluşturur.

Bu uzmanların kullanılmasına yönelik koşullar ortaya çıktığında

Ancak gelelim asıl meseleye! Bugünkü hikayem, siparişleri doğru zamanda veren bir uzmanın hikayesi. Çeşitli amaçlar için kullanılır. Örneğin, bir mumun veya seansın başlangıcına sıkı sıkıya bağlı olan ticaret sistemleri vardır. Örneğin, benim mütevazı araştırmama göre, gerçekte bu tür dalgaların belirli bir benzerliği var, ancak farklı zaman dilimlerinde ortaya çıkıyorlar ve farklı sürelere sahip dönemler var. Örneğin bunları Mn'deki USDCAD'de bulabilirsiniz.

Her ay birbirine çok benzeyen mumlar var. Mesela Ocak ayında altı yıldır bir yükseliş trendi var, bir düşüş trendi var, konu bu değil. Bu yaklaşımı kullanarak gelir elde edebilmek için ay başında araştırma yöntemiyle belirlenen doğrultuda sipariş verip sonunda silmeniz ve bunu yalnızca yılın belirli aylarında yapmanız gerekiyor. Uzmanın tarih, saat ve dakikaya göre sipariş vermesinin nedeni tam olarak budur.

Doğru zamanda emir veren bir uzman aynı zamanda başka görevleri de yerine getirir; örneğin, yarın piyasada bir trend olacağı biliniyor ve ticaret fikri, her saatlik mum üzerinde o yönde pozisyon almanız gerektiğini öngörüyor. akım. Ve işlem gününün sonunda emirleri iptal etmeniz gerekir.

Böylece siparişler böyle bir ızgara şeklinde görünecektir. Bunun nasıl farklı şekilde yapıldığını sayfada görebilirsiniz. İş gününün sonunda al-sat-stop veya piyasa emirleri yine doğru zamanda silinir.

Bu neden böyle? Çünkü bu yaklaşımı şu modifikasyonda gördüm: her muma bir piyasa emriyle veya her muma emir vermek, ancak alım ve satım durakları zıt yönlerde. İkinci durumda, piyasanın hangi yöne hareket edeceğini bile bilmiyor olabilirsiniz, ancak hareketi sanki bir kelebek ağı kullanıyormuş gibi yakalayabilirsiniz. Ayrıca her iki yönde de alım-satım stop emirleri verirken belki gün sonuna kadar bir tanesi açılmayabilir ve asılı kalabilir.

İndirmek

Böylece günümüzde bu bağlamda üç tür yardımcı uzmanın olduğu açıkça ortaya çıkmaktadır.

  1. Birinci tip, belirli saat ve dakikaları dikkate alarak piyasaya emir veren uzmandır.
  2. İkinci tip, saat ve dakikaya göre bekleyen emirlerin uzmanıdır.
  3. Üçüncü tip, ilk ikisinin içinde uygulanabileceği gibi ayrı bir program da olabilir. Örneğimizde durum tam olarak budur.

Piyasa emri uzmanı

Yükseliş trendinin 23:50'de başlayacağını bildiğinizde, yani fiyat mutlaka 60 pip'i geçecek, stoploss ise 30 pip olacak ve stoploss'u takip edecek bir uzmanınız varsa emir vermeniz gerekecek. Aynı zamanda uzakta da olmayacağınızdan, açılışı bildiren ses işinize yarayacaktır. Bu koşullar altında birinci tür uzmana ihtiyacınız olacak. Bu durumda bu kişi e-OpenByTime uzmanıdır. Sosyal butonlar kullanılarak indirilebilen bu uzman aşağıdaki parametrelere sahiptir:

  • TimeTrade – burada emrin tam olarak ne zaman açılması gerektiğini belirlersiniz. Veri formatı ss:dd.
  • Süre – uzmanın sipariş vermeye çalışacağı saniye cinsinden süre.
  • Satış – burada emir tipini doğru belirtmeniz gerekir – bu, varlığın satışı için piyasada bir emrin açılacağı anlamına gelir. False değeri bir satın alma emrine karşılık gelir.
  • Lotlar – bu seçenek alım satım lotunuzu belirli bir değerle sınırlandıracaktır.
  • SopLoss – zararı durdurma dört basamaklı brokerlar için tasarlanmıştır, bu nedenle boyutunu 30 puan olarak belirlemek için değeri 300 olarak ayarlamanız gerekir.
  • TakeProfit – kar alma ile aynı hikaye.
  • MagicNumber – Burada her şeyin açık olduğunu düşünüyorum.
  • UseSound – daha sonra ses ayarları gelir.
  • NameFileSound – burada bir ses dosyası seçiyoruz.
  • Geriye kalan ayarlardan yalnızca MaketWatch soru sorabilir. Bu ayarın, alım satım taleplerinin bazı brokerlerin gerektirdiği Piyasa İzleme kurallarına göre gönderilmesini sağlamak için gerekli olduğu ortaya çıktı.

Bekleyen siparişler uzmanı

Bekleyen emirlerin açılması üzerinde çalışan ikinci tür uzmanlar, çeşitli kutu alım satım sistemleri uzmanlarıdır. Benzer

Bu sefer, trendlere ve grafiğin diğer işaretlerine bakılmaksızın her iki yönde de iki alım-satım-durdurma işlemi açacak, tabiri caizse yardımcı bir uzman tanımlayacağım.

37_Exp-TimeOpenBuy uzmanından bahsediyoruz. Kurulum oldukça basittir.

  • BuyStopOpen ve SellStopOpen - bu durumda her ikisi de doğru olarak tanımlanır.
  • Mesafe – bu emirlerin mevcut fiyattan ne kadar uzakta verileceğini belirler. Lütfen buradaki ve sonraki satırdaki değerin dört basamaklı bir komisyoncu için hesaplandığını unutmayın; bu nedenle mesafeyi ayarlamak için bir sayı kullanmanız gerekir, örneğin 30 puan ve sonuna bir 0 daha ekleyin.
  • TPBuyStop, SLBuyStop, TPSellStop, SLSellStop – her sipariş için kar alma ve zararı durdurma mesafesini belirlemenize olanak tanır. (Burada da sayının sonuna sıfır ekliyoruz.)
  • CloseAfterOpen – alım ve satım durdurma emirlerinden biri tetiklendikten sonra kalan bir anlaşmayı silmenize olanak tanır.
  • Kayma, tecrübelerime göre siparişlerin verilebilmesi için sıfır dışında herhangi bir değere ayarlanması gereken bir ayardır. Bu maksimum kayma değeridir.
  • CloseIfNotOpen – tüm başarısız alım ve satım duraklarını yeni bir zamanda silen bir fonksiyon olarak tasarlandı. Ancak bu operasyonu ne kadar kullanmaya çalışsam da hiçbir sonuç çıkmadı.
  • Piyasaya giriş ve çıkış anını belirlemek için kalan seçeneklere ihtiyaç vardır.

Uzman mevduat temizleyici

Son olarak derlediğim mql4 kodunu kullanarak buy- kaldırma işlemini hepsinden daha hassas bir şekilde zamanında gerçekleştiren üçüncü danışman. Genel olarak, artık alım-satım-durdurma emirlerini vermek ve piyasaya sürmek için tam bir danışman setine ve emirleri zamanında kapatacak bir uzmana sahip olacaksınız. Bunu yapmak için, aslında alım-satım-durdurma emirlerini kapatan veya bunları silen döngüden önce, (TimeCurrent()>=BlackTime) olup olmadığını kontrol etmeniz gerekir. Bu durumda değişkene, emirlerin silineceği süre atanır.

sonuçlar

Bugün farklı piyasa koşullarında kullanılabilecek çok faydalı bir dizi yardımcı danışmanla tanıştık. Bunları kullanmak için hızlı bir kuruluma ve bir tür pazar tahminine ihtiyacınız olacak. Kullanımları sonucunda tamamen bağımsız ve neredeyse tamamen otomatik giriş ve çıkışları organize edebileceksiniz. Hatta her şeyin otomatik olarak gerçekleşeceğini söyleyebilirim, ancak yalnızca birkaç eylem çerçevesinde, o zaman uzmanların ayarlarının değiştirilmesi gerekecek. Ancak bu, kısıtlama olmaksızın monitör karşısında oturmaya vakti olmayanlar için zaten iyi bir yardımcıdır. İşte bu kadar değerli arkadaşlar. Umarım bu sayfayı ilginç bulmuşsunuzdur.

(2 derecelendirmeler, ortalama: 5,00 5 üzerinden)

Ticaret sisteminiz haber sıçramalarına dayanmıyorsa, önemli haberler yayınlanmadan önce danışmanın çalışmasını durdurmak mali ve zihinsel sağlığınız açısından çok faydalı olabilir. Volatilite yatıştıktan birkaç saat sonra tekrar açın. Elinizin altında çalışan bir terminale erişiminiz varsa iyi olur. Ve değilse? Bu tür faaliyetlerin otomasyonunun kullanışlı olduğu yer burasıdır.

Sorunumuzu çözme seçeneklerinden biri, önemli olayların zamanlamasını içeren bir dosya derlemektir. Bu dosyanın uzmanımız tarafından okunması ve ne zaman çalışabileceğiniz, ne zaman çalışamayacağınızın belirlenmesi. MQL4 ders kitabı, bir CSV metin dosyasıyla çalışmanın bir örneğini sunar ve biz bunu temel alacağız, aynı zamanda yazarların istemeden yaptığı veya dikkatimizi test etmek için (kendilerinin de uyardığı) birkaç hatadan kurtulacağız - kimseye körü körüne güvenmemeliyiz, hatalar her zaman olur).

Öyleyse önümüzdeki hafta önemli etkinliklerin programını aşağıdaki formatta yapalım:
Etkinlik tarihi ve saati; araç; etkinlik açıklaması

2016.04.01 14:00;USD;İMALAT sektöründe ISM iş aktivite endeksi 2016.04.01 14:00;USD;Enflasyonun ISM'den kademeli hızlanma endeksi 2016.04.04 09:00;EUR;Üretici fiyat endeksi (a/ay) ) 04.04.2016 09:00;EUR;Üretici Fiyat Endeksi (Yıllık Yıl) 2016.04.05 04:30;AUD;Avustralya Merkez Bankası'nın faiz oranı kararı 2016.04.05 04:30;AUD;Rezerv Ek Açıklaması Avustralya Bankası 2016.04.06 07: 00;EUR;ECB toplantısı 2016.04.06 18:00;USD;ABD Federal Açık Piyasa Komitesi toplantı tutanakları 2016.04.07 11:30;EUR;ECB para politikası toplantısına ilişkin bilgiler politika

Bunu ht-news.csv dosyasına yazalım ve danışmanımızın okuyabileceği gerekli \MQL4\Files\ht-news.csv dizinine yerleştirelim.

Öncelikle yapılandırma için harici değişkenleri ayarlayalım; yorumlar bunların amacını açıklar:

Extern string startNewsEvent="Haberlerde çalışmanın kısıtlanması"; giriş bool StopOnNewsEvent=true; //Kısıtlama giriş dizesini etkinleştirin NewsEventFileName="ht-news.csv"; //Zamanlama girişli dosya uint LoadNewsEventTimerInDay=7;//Dosya girişinin gün cinsinden ne sıklıkta yeniden yükleneceğini uint StopPriorEventHours=2; //Olay girişinden X saat önce durdurun uint StartAfterEventHours=3; //Olaydan X saat sonra başla extern string stopNewsEvent="----------------";

Aşağıdaki yapı, işlenmekte olan olayın açıklamasına erişmemize yardımcı olacaktır:

Struct NEWS_EVENT (tarihsaat OlayZamanı; //olay zamanı dizisi Enstrüman; //olay enstrümanı dizisi EventComment; //olay yorumu);

Bir dosyadan bilgi okumak için özel işlev

Bool LoadNews() ( int tanıtıcı; // Dosya tanımlayıcı string enstrüman, // Olay para biriminin adı FirstInstrument,secondInstrument, // Geçerli çiftin adının 1. ve 2. kısımları eventComment, // Olay açıklamasının metni stringDateTime; // Olayın tarih ve saatinin string ifadesi datetime eventDateTime; // Olayın tarihsaat biçimindeki tarihi ve saati tanıtıcı=FileOpen(NewsEventFileName,FILE_CSV|FILE_READ,";");// Bir dosya açma 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; }

NewsEventTime dizisinde gerekli zamanı arıyoruz ve eğer zaman bulunursa NewsEvent yapı dizisinin açıklamasını alıyoruz.

String GetEventInfo(tarihsaat tarih) ( for(int i=0;i

Geçerli zamanın boşta kalma süresi içinde olup olmadığını belirleyen yardımcı fonksiyon

//haber danışmanını devre dışı bırakmamız gerekip gerekmediğini kontrol edin True - work False - rest bool CheckEnableNewsWork() ( if (ArraySize(NewsEventTime)==0) return true; //bazı nedenlerden dolayı program içeren dizi boştu, bu da anlamına geliyor çalışıyoruz //şimdi NewsEventTime'da en yakın tarihi bulmamız gerekiyor, bundan önce StopPriorEventHours için çalışmayı durdurmamız gerekiyor saat datetime timeCurrent =TimeCurrent(); datetime timeStopWork=timeCurrent+StopPriorEventHours*3600; //NewsEventTime'da bir saat varsa bu timeStopWork'tan küçükse çalışmayı durdururuz int dateindex= ArrayBsearch(NewsEventTime,timeStopWork,WHOLE_ARRAY,0,MODE_ASCEND); datetime FoundEventTime=NewsEventTime; timeStopWork=foundEventTime-StopPriorEventHours*3600; //bulunan zamandan itibaren durma zamanını hesaplayın datetime timeStartWork=foundEventTime+StartAfterEventHours*3600; //bu dinlenmenin bitiş zamanıdır / /şimdi timeStopWork ile timeStartWork arasında timeCurrent olup olmadığımızı kontrol edelim. Eğer öyleyse, o zaman çalışmıyoruz if (timeCurrent>=timeStopWork && timeCurrent)<=timeStartWork) { DrawLabel("EnableNewsWork","Не работаем, новость: "+GetEventInfo(foundEventTime)+"",5,80,Red); return false; } else { DrawLabel("EnableNewsWork","Нормальная работа, новостей нет",5,80,Green); return true; } }

Bir programa sahip bir dosyadan periyodik olarak okumak için, yapılandırıldığı gibi örneğin haftada bir kez çalışan bir zamanlayıcıya ihtiyacımız var.

//Zamanlayıcı kullanarak bir haber dosyasının varlığını kontrol edin void OnTimer() ( if (StopOnNewsEvent) ( LoadNews(); //dosyayı oku ))

Danışmanı başlatırken zamanlayıcıyı başlatmanız ve haberleri ilk kez okumanız gerekir.

OnInit() .... if (StopOnNewsEvent) //Ayarlanmışsa, dosyayı haberleri içeren şekilde yükleyin ( bool tm=EventSetTimer(LoadNewsEventTimerInDay*86400); //dosyayı programla yüklemek için zamanlayıcıyı başlatın if (!tm) Alert("EventSetTimer hatası :",GetLastError()); OnTimer();//İlk çalıştırma hemen )

Her onay işaretinde pozisyon açıp açamayacağımızı kontrol ederiz. Bu arada, bu takip etmeyi etkilememelidir.

OnTick() .... bool activeNewsWork=true; //haber olayları üzerinde çalışabilirsiniz if (StopOnNewsEvent) ( activeNewsWork=CheckEnableNewsWork(); //Haber sınırı varsa, zamanı kontrol edin) if (HaveMoney && activeNewsWork) Traiding(Pairs); //koşulları kontrol edin ve bir çiftte ticareti açın

Bu kadar. Ne yazık ki bu kodu henüz gerçek bir hesapta test etmedim, çünkü bunu hafta sonu yazdım, bir zamanlayıcıyla tik taklarını taklit ettim ve hafta sonu duran mevcut saati manuel olarak değiştirdim. Ancak gelecek hafta gerçek hayatta, yukarıdaki kodu yerleştirdiğim yeni "Forex Grail 1.11" sürümüne bakacağım.

Gelecekte, örneğin aynı yerde ht-news.csv dosyasını oluşturmak için kullanışlı bir yardımcı program yapmanız gerekebilir.