[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 97

 

Burada: https://docs.mql4.com/en/dateandtime/DayOfWeek

Bunu gördüm , haftanın gününü döndürüyor ve haftanın hangi gününün haftanın son günü olacağını bilmem gerekiyor. Çünkü son iş gününün Cuma olmadığı günler vardır

 
Söyle bana pliz, testten sonra açılan grafik şablonunu değiştirmek mümkün mü? Böylece işlemlerin etiketleri görünür, aksi takdirde kendi şablonumu uygularım - ve tüm etiketler düşer ...
 
alexhammer :


Kodlarınız uymuyor.... :( Stop tetiklendiğinde aynı anda sipariş açmanız yeterli..... Gösterge yok... sadece lotu kapatarak.... bu kadar zor bir iş olduğunu düşünmemiştim!

LÜTFEN YARDIM ET!!! Acilen gerekli! :(

 
ScioMe :
Söyle bana pliz, testten sonra açılan grafik şablonunu değiştirmek mümkün mü? Böylece işlemlerin etiketleri görünür, aksi takdirde kendi şablonumu uygularım - ve tüm etiketler düşer ...

Test cihazını "Görselleştirme"nin yanında bir onay işaretiyle çalıştırın.

Test cihazı geçmişi yüklediğinde ve çalışmaya başladığında, duraklat düğmesine tıklayın ve şablonunuzu grafikte ayarlayın,

test cihazına devam etmek için duraklatmayı kaldırın. İsteğe bağlı olarak, görselleştirmeyi ("Atla" düğmesi) atlayabilirsiniz.

Test cihazı tamamlandıktan sonra, şablonunuzla birlikte grafikteki tüm okları göreceksiniz.

 
PariaH :


Kodlarınız uymuyor.... :( Stop tetiklendiğinde aynı anda sipariş açmanız yeterli..... Gösterge yok... sadece lotu kapatarak.... bu kadar zor bir iş olduğunu düşünmemiştim!

LÜTFEN YARDIM ET!!! Acilen gerekli! :(

Bence bu askıda kalan parti sayısı takip edilerek çözülebilir. Bence yerleşik MovingAverage Expert Advisor'da işlev CalculateOrders() işlevidir.

bir sipariş verdi->aktif siparişlerin sayısını saydı->bir değişkende hatırlandı->

start fonksiyonundaki her iterasyonda miktarın azalıp azalmadığını kontrol ederiz-> azalmışsa gerektiği gibi tepki veririz.

 
PariaH :


Kodlarınız uymuyor.... :( Stop tetiklendiğinde aynı anda sipariş açmanız yeterli..... Gösterge yok... sadece lotu kapatarak.... bu kadar zor bir iş olduğunu düşünmemiştim!

LÜTFEN YARDIM ET!!! Acilen gerekli! :(

İşlev, durarak son konumu kapatmak için bayrağı döndürür:

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по стопу.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByStop( string sy= "" , int op=- 1 , int mn=- 1 ) {
   datetime t;
   double    ocp, osl;
   int       dg, i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
     if (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ;
    ocp= NormalizeDouble (OrderClosePrice(), dg);
    osl= NormalizeDouble (OrderStopLoss(), dg);
     if (ocp==osl) return (True);
  }
   return (False);
}

... tik ağacında:

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по тейку.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake( string sy= "" , int op=- 1 , int mn=- 1 ) {
   datetime t;
   double    ocp, otp;
   int       dg, i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) {
       if (OrderSymbol()==sy || sy== "" ) {
         if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
           if (op< 0 || OrderType()==op) {
             if (mn< 0 || OrderMagicNumber()==mn) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
     if (dg== 0 ) if ( StringFind (OrderSymbol(), "JPY" )< 0 ) dg= 4 ; else dg= 2 ;
    ocp= NormalizeDouble (OrderClosePrice(), dg);
    otp= NormalizeDouble (OrderTakeProfit(), dg);
     if (ocp==otp) return (True);
  }
   return (False);
}

Burada kendinizi arayın. O zaman kendine yazabilirsin...

 

Merhaba.

Bir danışmanı ayrıştırıyorum, aşağıdaki satırın nasıl yürütülmesi gerektiğini anlayamıyorum:

if (kâr satın al<=0)mtpb=tpb;

Koşul açık, koşulun hangi sonucu altında mtpb değişkeninin tpb değişkeninin değerini alacağı belli değil.

 
paibolit :

Merhaba.

Bir danışmanı ayrıştırıyorum, aşağıdaki satırın nasıl yürütülmesi gerektiğini anlayamıyorum:

if (kâr satın al<=0)mtpb=tpb;

Koşul açık, koşulun hangi sonucu altında mtpb değişkeninin tpb değişkeninin değerini alacağı belli değil.

Satın alma pozisyonlarının karı sıfırdan büyük değilse, mtpb=tpb.
 
ZZZEROXXX :

Burada: https://docs.mql4.com/en/dateandtime/DayOfWeek

Bunu gördüm, haftanın gününü döndürüyor ve haftanın hangi gününün haftanın son günü olacağını bilmem gerekiyor. Çünkü son iş gününün Cuma olmadığı günler vardır

Son, araçları haklı çıkarmaz.

Açıklığa kavuşturmak için, işte bir soru: "haftanın hangi gününün haftanın son günü olacağını" kendiniz belirlemek istediğinizde, ne yaparsınız? Doğru, cari yıl için bir takvim arıyorsunuz, ülkenizde özellikle hangi tatillerin düştüğünü görün, hafta sonunun bir günden diğerine aktarılıp aktarılmadığını öğrenin (örneğin, pazardan perşembeye, bunun için her yıl parlamento, yani Devlet Duması bize ayrı bir belge kabul eder) vb. Sizce buna kimse zahmet edip MQL programı yapar mı? Şahsen, takvime bakmayı daha kolay buluyorum ...

 

İyi akşamlar! Pardon, böyle bir tasarımın mümkün olmadığı ilkesini anlamak istiyorum.

int u; u=0-10; for(u;u<30;u++) {Uyarı("u",u); } Bir hata yazar ';' - atama bekleniyor C:\MF Trader 4\documentary\experts\cycle.mq4 (33, 31)
Aranızda noktalı virgül var; u Her şeyi yardımla ilk kez kontrol ettim, lütfen açıklayın!