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

 
r772ra :
Başka bir seçenek, sinyal geldikten sonra istediğiniz zaman ayarlayabilirsiniz.
Benim versiyonum, (bir sinyalin gelmesinden sonra) bazı eylemleri (bu durumda, bir sipariş açmak için) 1 dakika içinde gerçekleştirmek için bir kısıtlama anlamına geliyor. Ve sonra: zamanım olmadı - geç. Sinyalin gelmesinden hemen sonra, sunucuyla bağlantının kesildiğini ve örneğin bir saat sonra yeniden başlatıldığını varsayalım. Neden bir saat içinde bir sipariş açsın??? ;)
 
TarasBY :

Global bir değişkende, sinyalin geldiği andaki zaman değerini yazın:

ve sonra dakikanızı geri sayın (bunu yapabilirsiniz):

Bu, bazı olayların meydana gelmesinden sonraki süreyi izlemek için seçeneklerden biridir.


Ne yazık ki çalışmıyor, bir dakika sonra aksiyon olarak bir destek çizgisi ve bir direnç çizgisi çizilmesi gerekiyor, ancak nedense çizelgede değiller. Lütfen koda bir göz atın, hata nerede?


bool  Fact_1 = false;                    // Глобальная перемен для бай.    
bool  Fact_2 = false;                    // Глобальная перемен для бай
bool  Fact_3 = false;                    // Глобальная перемен для бай

double support;
double resist;

 int timeFrame = 5;
 int numBars = 15;
 datetime gdt_TimeSignal;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

  ObjectsDeleteAll();  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----


   //---------------------------------------------------------------------------
if (Fact_3==true)                            //Если событие уже..
          
                                              //..было, то выходим
     return(0);
 
//----

  //---- БЛОК ОТКРЫТИЯ  BUY--------------------------------------------------------------
 
 if (iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,2)<iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0)&&
iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,1)>=iMA(NULL,PERIOD_M5,200,0,MODE_EMA,PRICE_CLOSE,0))//если МА50 пересекает МА200 снизу вверх по M5
Fact_1 = true;       // Произошло событие 1  
//-
if (Fact_1 == true &&  Low[0]<= iMA(NULL,PERIOD_M5,50,0,MODE_EMA,PRICE_CLOSE,0))//если цена опустилась до МА50
 Fact_2 = true; // Произошло событие 2  


//if (Signal) gdt_TimeSignal = TimeCurrent();
if (Fact_2) gdt_TimeSignal = TimeCurrent();


  if (gdt_TimeSignal != 0) if (iBarShift (NULL, 1, gdt_TimeSignal) == 1)
    {
        //---- Открываете ордер
       // OrderSend ();
  //---------------------------------------------------------------------------------    
{
// Определяем линии поддержки\сопротивления
  support = 10000;
  resist = 0;
 
  for(int u = 1;u<=numBars;u++)
  {
   if(support>iLow(Symbol(),timeFrame,u))
     support = iLow(Symbol(),timeFrame,u);
   if(resist<iHigh(Symbol(),timeFrame,u))
     resist = iHigh(Symbol(),timeFrame,u);
  }   
   ObjectSet("lineSupport",OBJPROP_PRICE1,support);
  ObjectSet("lineResist",OBJPROP_PRICE1,resist);
 
 }


 //----
  {
    ObjectCreate("lineSupport",OBJ_HLINE,0,0,0);
    ObjectSet("lineSupport",OBJPROP_COLOR,Blue);
    
    ObjectCreate("lineResist",OBJ_HLINE,0,0,0);
    ObjectSet("lineResist",OBJPROP_COLOR,Red);
    }
//-------------------------------------------------------------
 
        gdt_TimeSignal = 0;
    }



//что сюда добавить что бы линии появившись, оставались на месте?




//----
   return(0);
  }

 
TarasBY :

Burada yazılanlar saçmalık:

iCustom() hakkında bilgi edinin.


teşekkürler. okudum. muhtemelen bir örnek aramam gerekiyor.. böyle bok anlamıyorum.
 
Andrey-F :

Lütfen yardım edin, bana danışman kodunu iki veya üç satırda nasıl uygulayacağımı söyleyin:

Bir sinyal alındığında (örneğin, iki MA kesişir)

1. Danışman, sinyalin varış zamanını (saat, dakika olarak) belirler, hatırlar;

2. Bir dakika geri sayar.

Ayrıca, bazı eylemlerde bulunma istekliliği (örneğin, bir sipariş açma)

Her şey, TEŞEKKÜRLER, her şey olması gerektiği gibi çalışıyor, ancak eklenen sinyal tam olarak değil.
 

Codebase'de bir göstergenin nasıl yayınlanacağını çözemiyorum. Durum yayına hazır görünüyor. mantıklı olarak, moderatör bu hindiyi kamuya açık alana kadar beklemek kalıyor, ancak birkaç gün geçti ve sonuç yok. Sorun ne olabilir?

not. bu benim ilk kodum burada yayınlanıyor

 
madzx :

Evet katılıyorum! Burada kesinlikle düşündüm, diske yazmadan kolayca yapabilirsiniz!
Ben sadece standart terminalden diğerine dizginleri örüyorum.
ruhun sorduğu gibi kim yaptı, tırtıklı yoldan gitti :)

Kusura bakmayın ama bu belayı herhangi bir şekilde yaratacağız.
Sir Freddie Mercury bize asıldığı için
Gösteri devam etmeli!!!

Öyleyse referans şartlarını netleştirelim
Nasıl anladım:

1. Bir hesapta, herhangi bir döviz çifti tablosu seti ile boktan bir pencere bulutu (10 adet) açılır.

2. Her çizelgede bir iş gücü var - orada bir şeyler yapan bir danışman

3. Hesapta aşağıdaki koşullar karşılanmalıdır:

3.1 Hesaptaki toplam açık piyasa emri sayısı 5'i geçmemelidir.
aynı zamanda at tipi (beklemede olan) emirler insan olarak kabul edilmiyor (bence öyle ama bunu belirtmemişsiniz)
3.2 Hesaptaki çizelge setine dayalı olarak belirli bir sembol listesi oluşturulmuştur,

alım satım yapılan finansal enstrümanların türü, enstrümanların her biri

herhangi bir zamanda birden fazla açık sipariş olamaz.

-------------------------------------------------- -------

Bu böyle bir şey! Bakın her şey burada mı!
Ardından, lütfen hangi dilde gezinmeniz gerektiğini belirtin (mq4 veya mq5 gibi)
ve alım satımın gerçekleştirildiği başka bir enstrüman listesi - her seferinde sabit veya farklı

Her danışmanın metninde kısa bir ek olduğunu düşünüyorum.

(isterseniz daha sonra bir prosedür olarak düzenleyebilirsiniz) ona izin verecektir

herhangi bir eylem için şu anda var olan izinler sorununu çözün ...

Bunun için izin alayım, çünkü artık benim için sabahın 5'i :))

madzx




Katıldığınız için teşekkürler. Ama artık öyle düşünmüyorum.

Sorun, r772ra tarafından önerildiği gibi şu şekilde çözüldü:

Ya da belki şöyle:

 if (NumberOfPositions( "EURUSD" )== 0 && NumberOfPositions()< 5 )
Ve işte fonksiyon
 
Roman. :

Üç çamda buhar banyosu yapmayın. Eşsiz büyüler için deneyim fırsatlarını bölün (sihrinizi seçili sembollerdeki deneyim siparişlerinize atayın). Ayrıca, if - else koşul operatörünü kullanarak, filtreyi farklı girişlerle kullanarak semboller ve sihirlerle bağlayın. Kim I.V'den bu fonksiyonun değerleri:

NumberOfOrders() işlevi.

. Her şey.




Teşekkürler, daha kolay bir çözüm var.
 
Kobalerro :

Teşekkürler, daha kolay bir çözüm var.

TAMAM! Çözümü yayınladığınız için teşekkürler.
 
Kobalerro :

Katıldığınız için teşekkürler. Ama artık öyle düşünmüyorum.

Sorun, r772ra tarafından önerildiği gibi şu şekilde çözüldü:

Ya da belki şöyle:

Ve işte fonksiyon

TAMAM! İyi şanslar ve mutlu avlar!!!

madzx
 
Kobalerro :

Katıldığınız için teşekkürler. Ama artık öyle düşünmüyorum.

Sorun, r772ra tarafından önerildiği gibi şu şekilde çözüldü:

Ya da belki şöyle:

Ve işte fonksiyon

Bu çözümden memnunsanız, kodu daha da basitleştirebilirsiniz:

 if (NumberOfPositions( "EURUSD" )== 0 && OrdersTotal ()< 5 )

Ama muhtemelen şöyle yazmak daha iyidir:

 if (NumberOfPositions( Symbol() )== 0 && OrdersTotal ()< 5 )

ve "çocukça" değilse, Magic'i kullanmanız gerekir (er ya da geç paralel olarak manuel bir sipariş açmak veya yanına başka bir danışman koymak isteyeceksiniz):

 if (NumberOfPositions( Symbol(), Magic )== 0 && NumberOfPositions("" , Magic )< 5 )

Aynı zamanda, tüm Uzman Danışmanlar aynı Magic'e sahip olmalıdır ve Magic için filtreleri ve sipariş listesiyle diğer işlemler için grafik sembolünü kullanmayı unutmayın:

     for ( int li_pos = OrderTotal() - 1 ; li_pos >= 0 ; li_pos--)
    {
         if (! OrderSelect (li_pos, SELECT_BY_POS, MODE_TRADES)) continue ;
         if (OrderMagicNumber() != Magic) continue ;
         if ( Symbol () != OrderSymbol()) continue ;
         //---- дальнейшие опреации (модификация, удаление и т.д.)
    }

Dış değişkenlerdeki sihir, umarım beyan etmişsinizdir veya sabit olarak:

 #define Magic   555