MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 270

 
Artyom Trishkin :
Ayın ilk gününün haftanın hangi günü olduğunu bilmek yeterlidir. Gerisi hesaplanır.

Bu seçeneği izledim ama zor bir yol..Sol elinle sağ kulağını kaşımak gibi..MT arızasından sonra sadece arıza olabiliyor..Arkadaşlar seçeneklerinizi göstermenizi rica ediyorum..

 
Darirunu :

Üzgünüm, muhtemelen soruya dikkat etmedin ..

Dörtte bir koşul nasıl yazılır: ayın ilk Cuma günü yükseliş olsaydı ve

ikinci sürü Pazartesi günü düşüşe geçer ve ardından satmak için bir anlaşma açar.

DayOfWeek()==1 Pazartesi açık, ama ayın Pazartesisi nedir?

Anladım! Sadece sizin bildiğiniz algoritmanızdan bahsediyorsunuz. Yazdım, ayın ilk günü için haftanın gününü belirliyoruz! Ardından, bir veya iki basit formül kullanarak, bizi ilgilendiren günlerin tarihlerini belirliyoruz.

Takvim tablosunu kontrol edin

Ayın başlangıç günü = 6 ise, o zaman ilk Cuma'nın sayısı 7'dir. Aksi takdirde, ilk Cuma'nın sayısı 6'dır - ayın başlangıç günü.

Ayın başlangıç günü < 2 ise, ikinci Pazartesi'nin sayısı 9'dur - ayın başlangıç günü. Aksi takdirde, ikinci Pazartesi'nin sayısı 16'dır - ayın başladığı gün

Matematik fonksiyonlarının kullanımı ile kalan ve modül çok daha kısa olacaktır.

 
LRA :

Anladım! Sadece sizin bildiğiniz algoritmanızdan bahsediyorsunuz. Yazdım, ayın ilk günü için haftanın gününü belirliyoruz! Ardından, bir veya iki basit formül kullanarak, bizi ilgilendiren günlerin tarihlerini belirliyoruz.

Takvim tablosunu kontrol edin

Ayın başlangıç günü = 6 ise, o zaman ilk Cuma'nın sayısı 7'dir. Aksi takdirde, ilk Cuma'nın sayısı 6'dır - ayın başlangıç günü.

Ayın başlangıç günü < 2 ise, ikinci Pazartesi'nin sayısı 9'dur - ayın başlangıç günü. Aksi takdirde, ikinci Pazartesi'nin sayısı 16'dır - ayın başladığı gün

tesekkurler allah razi olsun bakacagim
 
Darirunu :
tesekkurler allah razi olsun bakacagim

Dileğin için çok teşekkür ederim. Yine de noktadan sonra bir boşluk koyun, noktadan önce atlayın. Bu programlamaya yardımcı olacaktır. İyi şanslar ve ihtiyacınız varsa, kar edin!

 
LRA :

Dileğin için çok teşekkür ederim. Yine de noktadan sonra bir boşluk koyun, noktadan önce atlayın. Bu programlamaya yardımcı olacaktır. İyi şanslar ve ihtiyacınız varsa, kar edin!


Çok zor çıkıyor. Muhtemelen daha kolay bir seçenek vardır. Herkes paylaşabilir mi?

Diyelim ki yarın değişecek, güncellemelerde bir şeyler ve her şeyin yeniden yazılması gerekecek.

 
Darirunu :

Çok zor çıkıyor. Muhtemelen daha kolay bir seçenek vardır. Herkes paylaşabilir mi?

Diyelim ki yarın değişecek, güncellemelerde bir şeyler ve her şeyin yeniden yazılması gerekecek.

O kadar zor değil. Ancak her durum için kendi değerlerinizi, kaç günlük çubuk kopyalamanız ve hangilerini yapılara koymanız gerektiğini belirlemeniz gerekir.

 /********************Script program start function********************/
void OnStart ()
{
 MqlDateTime mqlDateTime0, mqlDateTime1;
 datetime arrDateTime[ 7 ];
 CopyTime ( _Symbol , PERIOD_D1 , 0 , 7 , arrDateTime);
 TimeToStruct (arrDateTime[ 0 ], mqlDateTime0);
 TimeToStruct (arrDateTime[ 6 ], mqlDateTime1);
 if (mqlDateTime0.day_of_week == FRIDAY && mqlDateTime0.mon != mqlDateTime1.mon)
  {
   Print ( "Ура!!! Сегодня первая пятница" );
   // Дальше можно брать по времени пятницы открытие и закрытие бара и на основании этого определяем бычья или медвежья свеча...
  }
} /********************************************************************/

MqlRates yapısında mum parametreleri almak daha iyidir

 
Alexey Viktorov :

Ancak her durum için kendi değerlerinizi, kaç günlük çubuk kopyalamanız ve hangilerini yapılara koymanız gerektiğini belirlemeniz gerekir.



İşte bundan bahsediyorum ve sadece MQL4 ile ilgileniyorum ..Başka bir çözüm bulmam gerekiyor ..

 
Darirunu :

İşte bundan bahsediyorum ve sadece MQL4 ile ilgileniyorum ..Başka bir çözüm bulmam gerekiyor ..

Bu mql4'tür.
Dosyalar:
00.mq4  2 kb
 
double ma;
   int    res;
   int nomber = OrdersHistoryTotal();
   int tip=OrderType();
   if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))
   {
   tip=OrderType();
   }
   ma=iMA(NULL,0,MovingPeriod,120,MODE_SMA,PRICE_CLOSE,1);
   if(Bid<ma)
   if(tip!=OP_SELL)
   {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TP*Point,"",MAGICMA,0,Red);
      return;
     }



Tünaydın. Yardıma ihtiyacım var. Kapalı bir Satış emri varsa, bir sonraki emir sadece Buy ile açılabilir.Kodda yanlış olan nedir lütfen söyleyiniz.
 
Darirunu :

İşte bundan bahsediyorum ve sadece MQL4 ile ilgileniyorum ..Başka bir çözüm bulmam gerekiyor ..

Ve başka bir düşünce geldi.

İlk Cuma gününe ihtiyaç varsa, bu sayı 8'den az olmalıdır. Ayın ilk günü Cuma ise, sonraki Cuma sekizinci olacaktır. Buna göre, haftanın herhangi bir günü ve arka arkaya herhangi bir gün, ikinci, üçüncü ...