Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 313

 
Danışmana yardım konusunda eleştiriye ihtiyacınız var https://docs.google.com/document/d/1Bkqu7NzSj8mrNsa5iO8lB6UmKNCJ4YiaY-wKXzbF3Wo/pub
 
Burger :
Danışmana yardım konusunda eleştiriye ihtiyacınız var https://docs.google.com/document/d/1Bkqu7NzSj8mrNsa5iO8lB6UmKNCJ4YiaY-wKXzbF3Wo/pub


Eleştirmeyi severim ama çok şey var - sadece ilk paragraftan geçtim

arşivin eklenmediği bir şey ((şu anda onu dosya barındırma hizmetine atacağım)

 
VladislavVG :

Bu her zaman en yakın olanı ise, o zaman mümkündür ve oldukça basittir ve elbette sihirbazları hesaba katmak gerekli değildir. Ancak bu konuda PGM5'ten hiçbir şey duyulmaz ve genel durumda fiyat olarak en yakın olmayabilir, ancak mevcut fiyattan herhangi bir mesafe ile ayrılır ve aralarında başka nedenlerle verilen emirler olabilir: biz hiçbir şey değiliz. bilmediğimiz karar verme algoritması. Sadece ilgili siparişlerle ilgiliydi.
Nedense hafızama en yakın olanı silmem gerekti. Gerisi daha uzakta ve başka koşullara açık. Ve piyasadakinin tersine en yakın ertelendiği için, onun hatasız bulgusu için tüm verilere sahibiz.
 
PGM5 :
Destek için teşekkürler. Ve bana bu sorunun cevabını nerede arayacağımı söyleme. Evet, bir şey daha var: emir tetiklendiğinde ve kar al tetiklendiğinde emir verilmeli ve ondan önce en yakın olanı silinmelidir. Şimdiden teşekkürler.

Teknik özellikleri yazmaya başladınız bile. Kendin bir şeyler yapmaya başladın mı? Yoksa balık mı arıyorsunuz? Bu başlıkta, mql4'te ücretsiz programlamayı öğrenmekten muzdarip olanlara yardımcı oluyorlar. ve ücretsiz hazır bir çözüm almak isteyenler için değil.
 
43
alexey1979621 29.11.2013 11:52 #

Hepiniz hoşgeldiniz! İlginç bir sorunu çözmek için yardım istiyorum. Özelliği, bir kâr elde ettikten sonra, 1'den 4'e kadar olan sonraki işlemlerin zararı durdur, sonra tekrar kâr ile kapatılması olan bir danışman var. EA, göstergenin sinyaliyle işlemleri açar. Bir kârın ardından zarar eden işlemleri hariç tutmak için, göstergeden ortaya çıkan sinyalleri atlamak gerekir, yani. kar elde ettikten sonra işlem yapmayın (1,2,3,4). Bunun için bir Sig işlevi var. Ancak bana öyle geliyor ki bu işlevi yanlış yazdım çünkü onunla, danışman siparişleri hiç açmaz ve onsuz her şey çok net bir şekilde çalışır. Durumda bir hata olması da mümkündür. Ama genel olarak .... cehennem bilir - ikinci hafta bu "fiş" den hareket edemiyorum. Akıllı insanlara sor, hata nerede?

Evet, sinyal, kâr aldıktan sonraki sinyal sayısıdır ve pynkt, kârın puan cinsinden boyutudur.

Yardım için minnettar olacağım.

 void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo( Symbol (),MODE_STOPLEVEL);


   double MA1Low = NormalizeDouble ( iMA ( NULL , 0 ,MA_Period_2,MA_Shift_2,MA_Method_2, 0 , 1 ), Digits ); 
   double MA2High = NormalizeDouble ( iMA ( NULL , 0 ,MA_Period_2,MA_Shift_2,MA_Method_2, 1 , 1 ), Digits );
   
 
  
   if (Volume[ 0 ]> 1 ) return ;

     // продажа
   if (Open[ 1 ]>Close[ 1 ] && Open[ 1 ] > MA1Low && Close[ 1 ] < MA1Low)
   
{
       if (Pro( 1 , 100 ))

   {
       ticket= OrderSend ( Symbol (),OP_SELL,Lots,Bid,Slippage,SL,TP, "Pattern_1" , 1000 , 0 ,Red);
       return ;
    }
   
  }  
//---- buy conditions
   // покупка
   if (Open[ 1 ]<Close[ 1 ] && Open[ 1 ] < MA2High && Close[ 1 ] > MA2High)
 
 { 
   if (Pro( 1 , 100 ))
   {
      ticket= OrderSend ( Symbol (),OP_BUY,Lots,Ask,Slippage,SL,TP, "Pattern_1" , 1000 , 0 ,Blue);
       return ;
   }       
   }
}
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool Sig( int signal, int pynkt)
 {
   static int cnt = 0 ;
   static datetime tm;
   if (Time[ 0 ] == tm) return ( false );
  tm = Time[ 0 ];
   if ( OrderSelect (OrdersHistoryTotal()- 1 ,SELECT_BY_POS,MODE_HISTORY) == true )
   {
    cnt = cnt + 1 ;
     if (OrderType() == OP_BUY && OrderClosePrice() - OrderOpenPrice() < pynkt* Point ) cnt = 0 ;
     if (OrderType() == OP_SELL && OrderOpenPrice() - OrderClosePrice() < pynkt* Point ) cnt = 0 ;
     if (cnt >= signal) return ( true );
   }
   return ( false );
 }
//+------------------------------------------------------------------+
 
artmedia70 :
Teknik özellikleri yazmaya başladınız bile. Kendin bir şeyler yapmaya başladın mı? Yoksa balık mı arıyorsunuz? Bu başlıkta, mql4'te ücretsiz programlamayı öğrenmekten muzdarip olanlara yardımcı oluyorlar. ve ücretsiz hazır bir çözüm almak isteyenler için değil.



Merhaba. Programlama hakkında: Ben sadece bir acemiyim. Bilgi ve öğrenme kaynaklarından - bir forum ve bir eğitim. İlk başta her şeyi anladım, ancak genel işlevlere geldiğimde, bir şeyi yanlış anlamaya başladım, bu arada, yazışma sırasında bir şeye daldım. Test cihazında çalıştırdım - kâr verdi, küçük - 2 ayda %10, ancak istikrarlı (dengenin düz çizgisi açılı olarak yükseliyor) Demoda denedim - kâr ediyor, ancak komut dosyaları basittir: siparişler her zaman verilmez, ancak verilmeyen bir sipariş nedeniyle her şey bozulur. Gerçek hayatta denedim - tüm siparişler verildi (ama henüz boşluk yoktu), kar ediyor, ancak birçok gereksiz pozisyon açılıyor. Bunun basit scriptler ve fonksiyonlarla çözülemeyeceğini anladım ve yardım istedim. Danışman kar getirir, ancak bazı yerlerde elleriyle "yardım edilmesi" gerekir. Zamanla, bu "yardım" otomatikleştirmek için düşünüyorum.
 
alexey1979621 :
43
alexey1979621 29.11.2013 11:52 #

Hepiniz hoşgeldiniz! İlginç bir sorunu çözmek için yardım istiyorum. Özelliği, bir kâr elde ettikten sonra, 1'den 4'e kadar olan sonraki işlemlerin zararı durdur, sonra tekrar kâr ile kapatılması olan bir danışman var. EA, göstergenin sinyaliyle işlemleri açar. Bir kârın ardından zarar eden işlemleri hariç tutmak için, göstergeden ortaya çıkan sinyalleri atlamak gerekir, yani. kar elde ettikten sonra işlem yapmayın (1,2,3,4). Bunun için bir Sig işlevi var. Ancak bana öyle geliyor ki bu işlevi yanlış yazdım çünkü onunla, danışman siparişleri hiç açmaz ve onsuz her şey çok net bir şekilde çalışır. Durumda bir hata olması da mümkündür. Ama genel olarak .... cehennem bilir - ikinci hafta bu "fiş" den hareket edemiyorum. Akıllı insanlara sor, hata nerede?

Evet, sinyal, kâr aldıktan sonraki sinyal sayısıdır ve pynkt, kârın puan cinsinden boyutudur.

Yardım için minnettar olacağım.


Sig() işlevi, sipariş geçmişi yoksa işlemlerin açılmasını yasaklar (yanlış döndürür)
 
Vinin :

Sig() işlevi, sipariş geçmişi yoksa işlemlerin açılmasını yasaklar (yanlış döndürür)
Test cihazındaki tarihin modellendiğini düşündüm (yani yanılmışım). Son sırayı, sembol, sihirle arama ve bekleyenleri atma işlevini yaratmanın gerekli olduğu ortaya çıktı. Bunu zihnimle anlıyorum (doğru yönde düşünürsem), ancak kodu kalemle çalıştıramıyorum. Bir ipucu atabilir misin? Yardım için teşekkürler.
 
alexey1979621 :
Test cihazındaki tarihin modellendiğini düşündüm (yani yanılmışım). Son sırayı, sembol, sihirle arama ve bekleyenleri atma işlevini yaratmanın gerekli olduğu ortaya çıktı. Bunu zihnimle anlıyorum (doğru yönde düşünürsem), ancak kodu kalemle çalıştıramıyorum. Bir ipucu atabilir misin? Yardım için teşekkürler.
Tüm ipuçları sizindir!
belgeler ders kitabı

Ve özellikler:

GetIndexLastPos - Son açık pozisyonun dizinini döndürür veya -1
GetLotLastPos - Son açık pozisyonun parti boyutunu veya -1'i döndürür

ve diğer birçok çok faydalı olanlar!