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

 
lütfen bana anlaşmaların neden açılmadığını söyleyin .... kod mantıklı görünüyor, ancak açılmıyor ve hepsi bu
 
//+------------------------------------------------------------------+ 
  //| MACD ^^^.mq4 | 
  //| Copyright © 2011, MetaQuotes Software Corp. | 
  //| http://www.metaquotes.net | 
  //+------------------------------------------------------------------+ 
  #property copyright "Copyright © 2011, MetaQuotes Software Corp." 
  #property link "http://www.metaquotes.net" 

  extern int TP = 100; 
  extern int TS = 100; 
  extern int TF = 1; 
  extern double lots = 0.1; 
  int fast_ema = 5; 
  int slow_ema = 34; 
  int signal_period = 5; 
  int slip = 3; 
  int Magic = 1; 

 int total; 
 int ticket; //объявил тотал и тикет 

 //+------------------------------------------------------------------+ 
  //| expert initialization function | 
  //+------------------------------------------------------------------+ 
  int init() 
    { 
  //---- 

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

 //---- 
     return(0); 
    } 
  //+------------------------------------------------------------------+ 
  //| expert start function | 
  //+------------------------------------------------------------------+ 
  int start() 
    { 
  //---- 
  
 CheckTicket();
 bool signal = signal_MACD(); 
 AnalyzeSignal(signal); 

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

 bool signal_MACD() 
  { 
    bool signal_MACD = false; 
    double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); 
    for(int i=1;i<=5;i++) 
    { 
       if(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0)*tmp,4)<0.0) 
       { 
          signal_MACD = true; 
          break; 
       } 
    } 
  } 

 void AnalyzeSignal(bool signal) 
  { 
    double MACD = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0);
    total = OrdersTotal();
    if(total < 0)
    {
      if(signal == true)
      {
         if(MACD > 0)
         {
                ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"покупаем",Magic,0,Green); 
                if(ticket>0) 
                { 
                    OrderSelect(ticket,SELECT_BY_TICKET); 
                    Print("открылись на покупку по цене:", OrderOpenPrice()); 
                } 
                else 
                { 
                    Print("открыться не удалось по причине:", GetLastError()); 
                    return(0); 
                } 
         }
         if(MACD < 0)
         {
               ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,"Продаем",Magic,0,Green); 
               if(ticket>0) 
               { 
                   OrderSelect(ticket,SELECT_BY_TICKET); 
                   Print("открылись на продажу по цене:", OrderOpenPrice()); 
               } 
               else 
               { 
                   Print("открыться не удалось по причине:", GetLastError()); 
                   return(0); 
               } 
         }
         else
            return(0);
      }
    }
  }
  
void CheckTicket()
{
   if(OrderSelect(ticket,SELECT_BY_TICKET))
   {
      if(OrderCloseTime()>0)
      {
         ticket = 0;
      }
   }   
}
 

Böyle bir anı bir araya getiremem, yaratmama yardım et:

Örneğin satın almak için aynı yönde açılan iki veya daha fazla emrin karı ile sıfır noktasını belirlemeniz gerekir.

ve bu noktaya kar al ve tüm açık satınalma siparişlerine atanacağını ekle.

ve kar al'ı grafikte gösterin, yani görünür kılmak için.

örneğin 1500 fiyattan almak için ilk siparişi açıyoruz.

1600'de ikinci bir satın alma emri açıyoruz.

1550 + 'da sıfır noktaları var (kar al = 20)

ve burada birinci ve ikinci emirlere 1570 kar al atanır, fiyat bu seviyeye ulaştığında her iki emir de kapatılır,

ve fiyat bu seviyeyi aşarsa (atlarsa) emirleri takip eder ve kapatır.

Alım ve satım emirlerinin kayıtlarını aynı anda tutabilmesi ve aynı zamanda birbirine müdahale etmemesi, yani alım için ayrı ayrı kar al seti ve satış için ayrı ayrı kar al seti ve sadece iki veya daha fazla emir olduğunda çok önemlidir. tek yönde aynı anda açılır.

 
CLAIN :
lütfen bana anlaşmaların neden açılmadığını söyleyin .... kod mantıklı görünüyor, ancak açılmıyor ve hepsi bu
Çünkü OrdesTotal() asla negatif bir değer döndürmez.
 
Teşekkürler, iyi nokta.... düzeltildi... ama yine de anlaşmaları açmıyor.... ne yapmalı?
 
CLAIN :
Teşekkürler, iyi nokta.... düzeltildi... ama yine de anlaşmaları açmıyor.... ne yapmalı?


Muhtemelen signal_MACD() işlevini düzeltin.

Peki, yine de bir şey iade edecekti.

 

Merhaba.

Şartları doğru yazıp yazmadığımı söyler misiniz? ( Fractal_point_up_buy ve Fractal_point_down_buy parametreleri normalleştirildi.)

Şimdiden teşekkür ederim.

      Fractal_point_up_buy=TF1B;
      Flow_differential_buy=Fractal_point_up_buy-Bid;
       if (timf1s>timf2b && timf2s>timf2b && timf3s>timf2b && timf3s<timf1b)
       {
        Fractal_point_down_buy=TF3S;   
       }
       else
       {
         if (timf1s>timf2b && timf2s>timf2b && timf3s<timf2b && timf2s<timf1b)
         {
          Fractal_point_down_buy=TF2S;   
         }
         else
         {
           if (timf1s>timf2b && timf2s<timf2b && timf3s<timf2b && timf1s<timf1b)
          Fractal_point_down_buy=TF1S; 
         }     
       }
      Fractal_fibo_buy= 100 *Flow_differential_buy/(Fractal_point_up_buy-Fractal_point_down_buy);
 
belck :

Böyle bir anı bir araya getiremem, yaratmama yardım et:

Örneğin satın almak için aynı yönde açılan iki veya daha fazla emrin karı ile sıfır noktasını belirlemeniz gerekir.

ve bu noktaya kar al ve tüm açık satınalma siparişlerine atanacağını ekle.

ve kar al'ı grafikte gösterin, yani görünür kılmak için.

örneğin 1500 fiyattan satın almak için ilk siparişi açıyoruz

1600'de ikinci bir satın alma emri açıyoruz.

1550 + 'da sıfır noktaları var (kar al = 20)

ve burada birinci ve ikinci emirlere 1570 kar al atanır, fiyat bu seviyeye ulaştığında her iki emir de kapatılır,

ve fiyat bu seviyeyi aşarsa (atlarsa) emirleri takip eder ve kapatır.

Alım ve satım emirlerinin kayıtlarını aynı anda tutabilmesi ve aynı zamanda birbirine müdahale etmemesi, yani alım için ayrı ayrı kar al seti ve satış için ayrı ayrı kar al seti ve sadece iki veya daha fazla emir olduğunda çok önemlidir. tek yönde aynı anda açılır.


1500 fiyatından açılan bir pozisyon için 1570'te bir alım normal olacaktır (StopLevel dikkate alınmazsa), ancak 1600 fiyatından açılan bir pozisyon için 1570'te bir alım 130 hatasına neden olur - yanlış duruşlar . Sonuçta, alış, Alış için açılış fiyatından daha düşük olamaz. Bu zaten StopLoss.
Başabaş noktanızı iki pozisyon için belirlediniz, ancak üç-dört-beş için mi?
İlk önce tek yönlü konumlar için başabaş formüle karar verirsiniz ve ancak o zaman mantığı çizebilirsiniz.
 
nemo811 :

Merhaba.

Şartları doğru yazıp yazmadığımı söyler misiniz? (Fractal_point_up_buy ve Fractal_point_down_buy parametreleri normalleştirildi.)

Şimdiden teşekkür ederim.

Merhaba.

Tüm değişkenler bildirilirse, MQL4 sözdiziminde herhangi bir hata görmüyorum...

Ve o zaman sorun ne?

 
,
artmedia70 :
1500 fiyatından açılan bir pozisyon için 1570'te bir alım normal olacaktır (StopLevel dikkate alınmazsa), ancak 1600 fiyatından açılan bir pozisyon için 1570'te bir alım 130 hatasına neden olur - yanlış duruşlar . Sonuçta, alış, Alış için açılış fiyatından daha düşük olamaz. Bu zaten StopLoss.
Başabaş noktanızı iki pozisyon için belirlediniz, ancak üç-dört-beş için mi?
İlk önce tek yönlü konumlar için başabaş formüle karar verirsiniz ve ancak o zaman mantığı çizebilirsiniz.

Her şey ne zaman belirlediğimize veya değiştirdiğimize bağlı. Güncel fiyat üzerinden hesaplanır.