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

 
keep87 :

double get_extrem(int n) {

   for(int i=1;;i++) {

      double ind=iCustom(Symbol(),0,"indicator_name",0,i);

      if(n>1)  

         if(ind!=0) n--;

         else

         if(ind!=0) return(ind);

      }

   }


bunun gibi. fonksiyona n (en yüksek sayı) verirseniz, değerini size döndürür. tepe çubuk numarasına ihtiyacınız varsa, işlev türünü dönüş(ind) yerine int ve olarak değiştirin; return(i) yaz;

Şu an bunu düşünüyorum. Bana göre double ve int türündeki tüm işlevler her zaman sabit değerler döndürür. Örneğin, 1 , 0 , -1 ve bu durumda koşulun bu fonksiyonla daha önce yaptığımdan farklı bir şekilde üretilmesi gerekiyor, örneğin:

 if (FindOrders() > 1 )

{

   Ordersend(...........); 

} 

Bu durumda, örneğin 3. diz için karşılaştırmanız gerekir:

 if (get_extrem( 3 ) == ind)
{
   // Делаем что-то при выполнении заданного условия
}

Peki yazmak mantıklı mı? Belki de bool türünü bu işleve ayarlamak daha mantıklıdır? Diyorlar ki: Eğer üçüncü dizini bulursan, o zaman bir fiyattan ( ind altında veya üstünde) alırız veya satarız. Görünüşe göre amacımı netleştirdim.

Ve bu durumda, n -leg tarafından parametreleriyle işlevi bu dizdeki fiyatla karşılaştırıyoruz ve sırada ne var?

 
hoz :

Şu an bunu düşünüyorum. Bana göre double ve int türündeki tüm işlevler her zaman sabit değerler döndürür. Örneğin, 1 , 0 , -1 ve bu durumda koşulun bu fonksiyonla daha önce yaptığımdan farklı bir şekilde üretilmesi gerekiyor, örneğin:

Bu durumda, örneğin 3. diz için karşılaştırmanız gerekir:

Peki yazmak mantıklı mı? Belki de bool türünü bu işleve ayarlamak daha mantıklıdır? Diyorlar ki: Eğer üçüncü dizini bulursan, o zaman bir fiyattan ( ind altında veya üstünde) alırız veya satarız. Görünüşe göre amacımı netleştirdim.

Ve bu durumda, n -leg tarafından parametreleriyle işlevi bu dizdeki fiyatla karşılaştırıyoruz ve sırada ne var?



 double ind= iCustom ( Symbol (), 0 , "indicator_name" , 0 ,i);

Double ind -2, -3 ve benzeri ve hatta Pi 3.14159 döndürebilir......

Ve bu durumda, n -leg tarafından parametreleriyle işlevi bu dizdeki fiyatla karşılaştırıyoruz ve sırada ne var? Pek net değil....

 
hoz :

Şu an bunu düşünüyorum. Bana göre double ve int türündeki tüm işlevler her zaman sabit değerler döndürür. Örneğin, 1 , 0 , -1 ve bu durumda koşulun bu fonksiyonla daha önce yaptığımdan farklı bir şekilde üretilmesi gerekiyor, örneğin:

Bu durumda, örneğin 3. diz için karşılaştırmanız gerekir:

Peki yazmak mantıklı mı? Belki de bool türünü bu işleve ayarlamak daha mantıklıdır? Diyorlar ki: Eğer üçüncü dizini bulursan, o zaman bir fiyattan ( ind altında veya üstünde) alırız veya satarız. Görünüşe göre amacımı netleştirdim.

Ve bu durumda, n -leg tarafından parametreleriyle işlevi bu dizdeki fiyatla karşılaştırıyoruz ve sırada ne var?



Pekala, hayır, denemeyi dene ...... bütün bunlar saçmalık ......
 
Sepulca :


Double ind -2, -3 ve benzeri ve hatta Pi 3.14159 döndürebilir......

Ve bu durumda, n -leg tarafından parametreleriyle işlevi bu dizdeki fiyatla karşılaştırıyoruz ve sırada ne var?


Neden aniden olsun ki? Double ind kesirli bir sayı döndürür... ve -2, -3 .. tam sayılardır. Ve anladığım kadarıyla Double ind , get_extrem(int n) function parametresindeki değerin fiyatıdır.
 
Sepulca :



Bu site ticaret amaçlı değildir... Esas olarak MQL programlamaya adanmıştır. Hatta birçok kodda dikkat edilirse "Gerçek ticaret için değil" uyarısı verilir.

Ve prof nerede? kim bir prof gibi ticaret yapıyor. Ve adminler bu şekilde öğrenseler siteyi destekleme zahmetine bile girmezler sanırım...)))

Duvardaki bezelye gibi).

Rastgele seçilen herhangi bir zaman diliminde doğru satın alma örneğine ihtiyacımız var.

Evet, gerçek ticaret için yazmıyorlar .. Ve ne ve neden?

Stratejiyi açıklamadan neden gerçek ticaret için bir örnek göstermeyecekler.

Veya prensipte doğru bir örnek yoktur.

 

Tünaydın. Danışmanın ilgili göstergeden Heiken Ashi (HA) Hi-Lo (genlik) parametresini nasıl alabileceğini söyleyin. Global değişkenlerle uğraşmaya çalıştım ama bir şeyler sıkı. HA kodunda, alımı bu şekilde oluşturdum

int başlangıç()

{

çift haOpen, haHigh, haLow, haClose, pip ;

...

GlobalVariableGet(pip);

...(işte HA hesaplamalı standart kod)

sonraki, Hi-Lo mumlarının HA parametrelerini alıyor

sonuç2=MathMin(ExtMapBuffer3[kon+1],ExtMapBuffer4[kon+1]);

sonuç22=MathMax(ExtMapBuffer3[kon+1],ExtMapBuffer4[kon+1]);

sonuç3=MatematikMin(Düşük[kon+1],sonuç2);

sonuç33=MatematikMax(Yüksek[kon+1],sonuç22);

sonuç0=sonuç33-sonuç3; \\genlik hesaplaması AÇIK

GlobalVariableSet(pip,result0);   \\Küresel Atama pip genlik değerleri

konum--;

}

//----

dönüş(0);

}

Ardından, EA'da, GlobalVariableGet(pip) formülünü basitçe ekledim,   ama bir şey hiç yolunda gitmiyor, yani. pip'in değeri hiç de olması gerektiği gibi değil. Bana neyin yanlış olduğunu söyle. Ya da bir danışmanı çalıştırmak için HA'nın genliğini elde etmek belki daha kolaydır.

 
Hepiniz hoşgeldiniz. Programlamada yeniyim, bu yüzden sizden sorunu çözmenizi rica ediyorum.

Bir hesaptaki birkaç danışmanın sınırlı sayıda sipariş açması gerekir.

Örneğin: 10 Uzman Danışman, ancak yalnızca 5 emir açılabilir, ancak döviz çifti başına birden fazla olamaz.

Aşağıdaki gibi uygulanır, ancak bu şekilde çalışmaz.

extern int МаксКолОрдеров   = 5;

//+------------------------------------------------------------------+

int ПодсчетОткрОрдеров() {
  int k=OrdersTotal();
   if (Символ=="0") Символ=Symbol();
    for (int i=МаксКолОрдеров; i<k; i++) {
     if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==Символ || Символ=="") {
       if (МагикНомер<0 || OrderMagicNumber()==МагикНомер) {
      if (OrderMagicNumber()<1) return(True);
     }
    }
   }
  }
 return;

}

//+------------------------------------------------------------------+
int start()
  {
   if(ПодсчетОткрОрдеров()==0)ПровТоргУсловий();
   }

 
evgenGX :

1. Yukarıda bana global değişkenlerden bahsettiler, teşekkürler. Belgeleri okudum ve sizin sürümünüzde bu nasıl yapılıyor?

2. Kar elde ettikten sonra, Uzman Danışmanın ticaret izni manuel olarak onaylanana kadar artık piyasaya girmemesine ihtiyacım var.


1. Her çubuktaki kar seviyesi izlenir. Mevduat büyüklüğünün önceden belirlenmiş bir yüzdesini aşarsa, tüm işlemler kapatılır.

2. Sihir ve ihtiyacınız olan her şey için bir filtre ekleyerek bu uzmanı görün ve düzenleyin...

 

Kodu yazmama yardım et. Aşağıdaki kodu yazmaya çalıştım:

-MA50, MA200'ü aşağıdan yukarıya geçerse ve bundan sonra

-fiyat MA50'ye düşerse

- grafikte iki çizgi çizilir, destek ve direnç (son 15 çubuk için çizilir);

Her şey çalışıyor gibi ama bu çizgilerin ilk kez görünmesini ve ardından yerinde kalmasını sağlayamıyorum , ticaret algoritmasına göre bu gerekli (ve daha da çizilmeye devam ediyor).

Bir şekilde zamana veya bir bara bağlanabilirler mi?

İşte kod. Ne eklenmesi gerekiyor?

#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


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

double support;
double resist;

 int timeFrame = 5;
 int numBars = 15;
//+------------------------------------------------------------------+
//| 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 (Fact_2 == true)

{
// Определяем линии поддержки\сопротивления
  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);
    }
//----

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




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

 

Ne olur, ne olur

al, sat kayma için boşluk belirtmeden.Genellikle + - 2 puan.

Yanıt olarak yeniden alıntı yapın.

Ve kayma değerini ayarlamazsanız alım garanti olur mu?