[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 47

 

Bir zamanlar neredeyse hiçbir şey anlamayan sevgili forum uzmanları.

Parabolik Sar göstergesini kullanarak pratik olarak basit bir EA yazmaya çalışıyorum. Eyleminin temel olması gerekiyordu: eğer fiyat Cap değerinin altındaysa ve daha sonra yükseldiyse, o zaman tam olarak fiyat gösterge değerini geçtiğinde ve tam olarak bir kez stop loss ile satın almanız ve 10 puanlık kar almanız gerekir. . Değilse sat.

Sorun şu ki, alıp satıyor, ancak mevduatta ücretsiz fon varken bunu her zaman yapıyor, bir kez değil. Onlar. fiyat Sar değerinin üzerine çıkar çıkmaz, fiyat yüksekken sürekli satın alır ve fiyat Sar'ın altına düşer düşmez fiyat daha düşükken sürekli satar.

Aslında, sorunun kendisi şudur: Danışmanı, sonsuz sayıda değil, bu tür koşullar ortaya çıktığında yalnızca bir anlaşma yapmaya zorlamak nasıl?

İşte EA kodum.

 //+------------------------------------------------------------------+
//|                                    Current_sar_value_summary.mq4 |
//|                                         Орлов Денис Владимирович |
//|                                                 orlovkem@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Орлов Денис Владимирович"
#property link      "orlovkem@mail.ru"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init ( )
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit ( )
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start ( )
  {
//----
                     //объявляем переменные
   double _sar_value ; //текущий уровень Сар
   double _price ;       //текущий уровень цены
   int _ticket ;      //возвращает количество открытых позиций
   
   _sar_value = iSAR ( 0 , 0 , 0.02 , 0.2 , 0 ) ; //приравнял переменную _sar_value к текущему значению индикатора Сар
   _price = Bid ;                      //приравнял переменную _price к текущему уровню цены Бид
   
   //описываем условие покупки: если уровень цены был ниже значения сар
   if ( _price < _sar_value )
           {
           if ( _price > = _sar_value ) // а потом стал выше, то покупаем
                {
                   Alert ( "Надо покупать" ) ;
                   _ticket = OrderSend ( Symbol ( ) , OP_BUY , 1 , Ask , 1 , Bid - 10 * Point , Ask + 10 * Point , NULL , 0 , 0 , Red ) ;
                     
                          Print ( "OrderSend failed with error #" , GetLastError ( ) ) ;
                           return ( 0 ) ;
                 
                }
                 return ( 0 ) ;
           }
 
         
   if ( _price > _sar_value ) //описываем условие покупки: если уровень цены был выше значения сар
         {
           if ( _price < = _sar_value ) // а потом стал ниже, то продаем
            {
                   Alert ( "Надо продавать" ) ;
                   _ticket = OrderSend ( Symbol ( ) , OP_SELL , 1 , Bid , 1 , Ask + 10 * Point , Bid - 10 * Point , NULL , 0 , 0 , Red ) ;
                     
                          Print ( "OrderSend failed with error #" , GetLastError ( ) ) ;
                           return ( 0 ) ;
                   
            }
            return ( 0 ) ;
            
         }
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+

Senden bunu çözmeme yardım etmeni istiyorum, söz veriyorum ki bir guru olduğumda benim gibi aptalların isteklerine boyun eğmeyeceğim.

Saygılarımla, Orlov Denis.

 
orlovkem >> :

Bir zamanlar neredeyse hiçbir şey anlamayan sevgili forum uzmanları.

Parabolik Sar göstergesini kullanarak eğitim olarak basit bir EA yazmaya çalışıyorum. Eyleminin temel olması gerekiyordu: eğer fiyat Cap değerinin altındaysa ve daha sonra yükseldiyse, o zaman tam olarak fiyat gösterge değerini geçtiğinde ve tam olarak bir kez zararı durdur ve 10 kar al ile satın almanız gerekir. puan. Değilse sat.

Sorun şu ki, alıp satıyor, ancak mevduatta ücretsiz fon varken bunu her zaman yapıyor, bir kez değil. Onlar. Fiyat Sar değerinin üzerine çıkar yükselmez, fiyat yüksekken sürekli satın alır ve fiyat Sar'ın altına düşer düşmez fiyat daha düşükken sürekli satar.

Aslında, sorunun kendisi şudur: Danışmanı, sonsuz sayıda değil, bu tür koşullar ortaya çıktığında yalnızca bir anlaşma yapmaya zorlamak nasıl?

İşte EA kodum.

Senden bunu çözmeme yardım etmeni istiyorum, söz veriyorum ki bir guru olduğumda benim gibi aptalların isteklerine boyun eğmeyeceğim.

Saygılarımla, Orlov Denis.

gösterge değeri nerede? (hangi değişkende sakladınız...?) fiyat değerleriyle aynı

 double _sar_value ; //текущий уровень Сар
   double _price ;       //текущий уровень цены

 
lascu.roman >> :

gösterge değeri nerede? (hangi değişkende kaydettiniz...?) fiyat değerleri ile aynı

Gerçek şu ki, göstergenin önceki değeri önceki mumda bulunur ve fiyat, mevcut mumdaki göstergenin değerini geçer.

Fiyatla aynı, "önceki fiyat değeri" ne anlama geliyor, bir önceki kene fiyatı? veya önceki mumun kapanması, ancak bu aynı değil.

Bir şeyler eklemem gerektiğini anlıyorum ama tam olarak ne olduğunu anlayamıyorum. Lütfen yardım edin bu benim ilk deneyimim.

Saygılarımla, Orlov Denis.

 
orlovkem >> :

Gerçek şu ki, göstergenin önceki değeri önceki mumda bulunur ve fiyat, mevcut mumdaki göstergenin değerini geçer.

Fiyatla aynı, "önceki fiyat değeri" ne anlama geliyor, bir önceki kene fiyatı? veya önceki mumun kapanması, ancak bu aynı değil.

Bir şeyler eklemem gerektiğini anlıyorum ama tam olarak ne olduğunu anlayamıyorum. Lütfen yardım edin bu benim ilk deneyimim.

Saygılarımla, Orlov Denis.

O zaman ne dediğini anladın mı? Şu anda değeri kontrol ediyorsunuz

 if ( _price < _sar_value )
           {
           if ( _price > = _sar_value ) // а потом стал выше, то покупаем

Birbirini dışlayan iki koşul. Ne zaman uzadı?

 
Roger >> :

O zaman ne dediğini anladın mı? Şu anda değeri kontrol ediyorsunuz

Birbirini dışlayan iki koşul. Ne zaman uzadı?

 if(_price<_sar_value)
           {
           if(_price>=_sar_value)// а потом стал выше, то покупаем

Belki yorumu yanlış formüle ettim, ama öz doğru, fiyat seviyesi gösterge değerinden daha yüksek oldu, satın almanız gerekiyor ve satın alıyor, ancak bir kez yapmanız gerekiyor ve para olduğu sürece tavsiye satın alıyor mevduat üzerinde. Sadece işlem sayısını sınırlamanız gerekir. Bir seferde birden fazla yapmayın, işte bu işe yaramaz.

 
xruss >> :

ve geçmişte bir Satış emri varsa ve ardından Uzman Danışman onu kapattıysa (geçmiş türünde, (kapanışı) t/p veya s/l olarak görüntülenir - son olarak kabul edilmez mi? istenen etkiyi elde edememek ((

Emir (satın alma veya satma) en son kapalıysa (EA kapattı veya t/p veya s/l çalıştı) ve koşullar altında geçerse

if(OrderSymbol()==Symbol()){
  if(OrderMagicNumber()==MagicNumber){

daha sonra, buna göre, son olarak kabul edilecektir. Hangi özel etkiyi elde edebilirsiniz?
 
Everlost >> :

Emir (satın alma veya satma) en son kapalıysa (EA kapattı veya t/p veya s/l çalıştı) ve koşullar altında geçerse

if(OrderSymbol()==Symbol()){
if(OrderMagicNumber()==MagicNumber){

daha sonra, buna göre, son olarak kabul edilecektir. Hangi spesifik etkiyi elde edemezsiniz?

evet, bunun nedeni muhtemelen OrderMagicNumber () öğesini koddan çıkarmış olmamdır.

Siparişlerim kapandıktan sonra tekrar açılmasın diye yapmak istiyorum. Buy'u açma ve ardından kapatma sinyalinden sonra Buy'un tekrar açılmayacağını koşullarda tarif etmek imkansızdır (gerçek şu ki bazen açılış koşulları hala korunur). satmak aynı hikaye. Bir satın alma varsa ve bir kâr varsa koşullarda belirtirseniz güzel olacağını düşündüm - satın almayı bir daha açmayın. ve hala açılıyor - piç!)))

(((

 
xruss писал(а) >>

evet, bunun nedeni muhtemelen OrderMagicNumber () öğesini koddan çıkarmış olmamdır.

Siparişlerim kapandıktan sonra tekrar açılmasın diye yapmak istiyorum. Buy'u açma ve ardından kapatma sinyalinden sonra Buy'un tekrar açılmayacağını koşullarda tarif etmek imkansızdır (gerçek şu ki bazen açılış koşulları hala korunur). satmak aynı hikaye. Bir satın alma varsa ve bir kâr varsa - bir daha satın alma açmamak için koşullarda belirtirseniz harika olacağını düşündüm. ve hala açılıyor - piç!)))

(((

Aynı anda açık siparişlerin sayısını kontrol etmenin en kolay yolu

if(OrdersTotal()<1){

   .................
   .................
   условия установки ордеров 

}
 
goldtrader >> :

OrderSend ( ... ) fonksiyonunun açıklamasını okuyun

Sunucuya gönderildiğinde bir siparişe bir sihirli sayı (sihir) atanır.

Esas olarak bekleyen emirleri/pozisyonları belirlemek için kullanılır.

Onlar. böylece danışman "yabancı" siparişlere dokunmaz. Bir danışman veya bir komut dosyası tarafından atanır.

Sihri manuel olarak ayarlamak imkansızdır. EA/script'te kuralları kendiniz tanımlarsınız.

Daha sıklıkla sihir statiktir, ancak gerekirse onu dinamik hale getirebilirsiniz.

Kod tabanından bazı basit örneklere bakın - netleşmeli.

Neden "kendi" siparişlerinizi bilet numarasına göre tanımlamıyorsunuz? Kaç danışman çalışırsa çalışsın, kesinlikle benzersizdirler.

Örneğin, danışman bir sipariş açtı, bileti hatırladı, kapattı - unuttu.

 
mukata >> :

Neden "kendi" siparişlerinizi bilet numarasına göre tanımlamıyorsunuz? Kaç danışman çalışırsa çalışsın, kesinlikle benzersizdirler.

Örneğin, danışman bir sipariş açtı, bileti hatırladı, kapattı - unuttu.

Chubais elektriği kesecek ve sonra kendilerinin ve yabancı oldukları yerde fistüller arayacak.