[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 215

 
Qra :

Hepinize iyi günler!

İlk botumu yazıyorum ve aynı zamanda MQL dili ile tanışıyorum. Test sırasında aşağıdaki sorun oluştu:

OP_BUYSTOP emri verildikten hemen sonra tetiklenir, ancak grafiğe bakılırsa fiyat hedef değere ulaşmıyor (aşağıya bakınız)

Numara. Zaman Tip Sipariş Ses Fiyat S/L T/P Kâr Denge
1 2011.09.19 02:10 dur satın al 1 0.01 76.935 76.735 77.135
2 2011.09.19 02:10 satın almak 1 0.01 76.935 76.735 77.135

USD/JPY,M5 (görsel)

Tarih 2011.09.19

Zaman 02:15

açık 76.903

yüksek 76.909

düşük 76.890

kapat 76.890

Ses 66

Tüm keneleri test ediyorum.

Belki de OP_BUYSTOP siparişini yanlış anlıyorum? Fiyat belli bir değeri aşarsa satın alın, değil mi?

Sipariş veren bir kaynak kod parçası

int bilet=SiparişGönder(Sembre, OP_BUYSTOP, Parti, Fiyat, 0, SL, TP);

Herkese şimdiden çok teşekkürler!

Şamdan grafiğinde, tüm fiyatlar Alış şeklindedir ve herhangi bir satın alma emri Satış fiyatından yürütülür.
 
PapaYozh :
Şamdan grafiğinde, tüm fiyatlar Alış şeklindedir ve herhangi bir satın alma emri Satış fiyatından gerçekleştirilir.

Teşekkür ederim!

 
Hepinize merhaba!

Seviyeleri mevcut fiyat tarafından kırılırsa, bekleyen yatay çizgileri silmek istiyorum. Başka bir şekilde şunu söyleyebiliriz: OBJ_HLINE oluşturma anından sonra seviye aşıldı veya "düşürüldü".

Yardım için teşekkürler Rulo. Lütfen söyle bana. Bilinen bir süre için seviye koruma koşulu nasıl doğru bir şekilde izlenir?
 //----------------------------------------------------------------------+ 
//  Удаление  OBJ_HLINE при пробитии его уровня   /Red-Up/Blue-Down|    |
//----------------------------------------------------------------------+   
void DelHLine( string nm= "" )  
   {
     int obj_total= ObjectsTotal ();

       for ( int i= 1 ;i<obj_total;i++) 
      { 
        nm= ObjectName (i);
         if (nm== ObjectName (i)&& ObjectType (nm)== OBJ_HLINE )
         {
           color     cl     = ObjectGet (nm, OBJPROP_COLOR );
           double    pl     = ObjectGet (nm,OBJPROP_PRICE1);
           datetime timeSet= ObjectGet (nm,OBJPROP_TIME1);
           int       shift  = iBarShift ( NULL , 0 ,timeSet);
   
           if ((cl== Red   && pl<High[ iHighest ( NULL , 0 ,MODE_HIGH,shift, 1 )])||
             (cl== Blue && pl>Low [ iLowest ( NULL , 0 ,MODE_LOW, shift, 1 )]) ) ObjectDelete (nm); 
         } 
      }
     return ( 0 );  
  }
//+------------------------------------------------------------------+
 

Merhaba! Lütfen yardım et.

Bu betiğin neden Excel'de sütun olarak veri göstermediğini anlayamıyorum.

Excel'de çalışırken sadece bir tablo başlığı var, veri yok.

Sınırlayıcının neden excel'em tarafından algılanmadığını anlamaya yardımcı olun.

Dosyalar:
writefile.mq4  3 kb
 

Programlama ile başlıyorum, bu yüzden çok soru var, ilginiz için şimdiden teşekkür ederim!

Bir komut dosyası yazılmıştır - Basit bir işlevi yerine getiren NewScript - OHLC fiyatlarını bir grafikte çubuklarla görüntüleyen...

Soru şu ki, BARS tam olarak geçerli grafikteki çubuk sayısıysa, o zaman neden EA günlüğünde görüntülenen ekrandaki çubuk sayısı (yaklaşık 200) ve günlük günlüğünde 2000'den fazla? ??

Teşekkür ederim!

Dosyalar:
 
Vinin :


Küçük düzeltme


 double Hi ( int pos= 0 ) //создали Hi, зависящую от pos
{ 
   int i=pos; //присваиваем "i" значение от "pos", то есть i равно pos
   double H= 0 ;
   while (i<=pos+ 10 ) //как она может быть меньше, если она равна?
  {
     if (H< iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN,i))  //это мне вообще не понятно... то есть если значение "Н" будет меньше, то присваиваем...  
      H= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN,i); //то есть он определит мне наинизший, но не наивысший бар


    i++; //ну тут мы добавляем к "i" плюс 1
  }
   return (H); //возвращаем Hi в самое начало
}

Üzgünüm, işlevi anlayamıyorum...

 
CLAIN :



En kolay seçenek

 double Hi ( int pos= 0 ) 
{ 
   double H[ 10 ]; // Объявили массив
  
   for (i=pos+ 1 ;i<=pos+ 10 ;i++) // формируем массив
  {
    H[i]= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN,i);
  }
   int MaxId=ArrayMaximem(H); ищем индекс максимального элемента
   return (H[MaxId]); // возвращаем максимальный элемент
}
 

Merhaba!

Expert Advisor'ı bir süreliğine durdurmak için bir kod yazmama yardım eder misiniz?

Kodu şöyle yazdım.

int() {
string OrderStop="OrderStop"+ Symbol();
OrderSig =GlobalVariableGet(OrderStop);
// Yazdır(SiparişSig);

dönüş(0);
}

int tanım() {
dönüş(0);
}

int start() {
string OrderStop="OrderStop"+ Symbol();
OrderSig = GlobalVariableGet(OrderStop);

if (OrderSig==1)dönüş(0);

başka {

EA gövdesi (kod)

}

dönüş(0);

}

fragmanda bu kod çalışıyor, ancak Terminal'i derlediğimde veya yeniden başlattığımda,

danışman çalışmaya başlar (bir anlaşma açar) ve tekrar ticaret yapmaz.

Ne olabilir?

Veya başka bir seçenek önerin.

 
alega :

Veya başka bir seçenek önerin.

f-th kullanın:

   Sleep ( 3000 );
 
Teşekkürler deneyeceğim.