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

 
pycha :

merhaba. Belgelere baktım ama bulamadım. soru nedir? Expert Advisor'ı kendi logomda başlatırken bu resmi değiştirebilir miyim?

#özellik simgesi "\\Görüntüler\\ xxx.ico ";
 
evillive :
#özellik simgesi "\\Görüntüler\\xxx.ico";

Ayrıca, derlemeden sonra, simge dosyası *.ex4 dosyasına yerleşik olacak ve simge dosyasını derlenen dosyadan sonra aktarmaya gerek kalmayacak.
 
Teşekkür ederim)))
 
roymax :
ve düzeltilmedi mi?

Gördüğünüz gibi.

Ancak kâr etmenin en mantıklı ve en kolay yolu MT penceresinin enstrümanını değiştirmeyi yasaklamaktır. Bu nedenle, bunu bir özellik olarak düşünmeyi öneriyorum :)

 
ve bir soru daha. uzmanım grafiği belirli bir ay sayısı için analiz ediyor, yalnızca tüm geçmişi bir dakikalık grafikte döndüren grafikler var ve bir buçuk aydan fazla istemeyenler var ve o zaman bile kaydırırsanız manuel olarak geri çizin, belirli bir tarih sallamalarının ötesine manuel olarak bile gidemezsiniz. aynı zamanda saatlik - günlük - yıllık grafikte de her şey var. Metatrader'ı bana istenen değeri vermesi için bir şekilde ikna edebilir miyim?
 
pycha :
ve bir soru daha. uzmanım grafiği belirli bir ay sayısı için analiz ediyor, yalnızca tüm geçmişi bir dakikalık grafikte döndüren grafikler var ve bir buçuk aydan fazlasını istemeyenler var ve o zaman bile kaydırırsanız manuel olarak geri çizin, belirli bir tarih sallamalarının ötesine manuel olarak bile gidemezsiniz. aynı zamanda saatlik - günlük - yıllık grafikte de her şey var. Metatrader'ı bana istenen değeri vermesi için bir şekilde ikna edebilir miyim?
Kaç hikayenin dağıtılacağına komisyoncu karar verir. Terminal ayarlarında maksimum çubuk sayısı ayarlanmışsa ve grafikte bunlardan daha azı varsa, komisyoncu size daha fazlasını vermeyecektir.
 
anladım, teşekkürler
 

Merhaba sevgili forum kullanıcıları. Burada bir istekte bulunmak istiyorum. Çalışan bir iEnvelopesOnArray() işlevine sahip herhangi biri bir kod parçası gönderebilir mi? Şimdiye kadar onu evcilleştirmeye yönelik tüm girişimlerim başarısız oldu. Bunun geliştiricilerin hatası olduğundan şüpheleniyorum. İşte çalışmasını kontrol etmek için bir gösterge.

 //+------------------------------------------------------------------+
//|                                            Tester_EnvOnArray.mq4 |
//|     Copyright 2005 г. до нашей эры, MetaQuotes Software Company. |
//|                                              https://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright    "2005 г. до нашей эры, MetaQuotes Software Company."
#property link          "https://www.mql4.com"
#property description "Пример индикатора для проверки работы функции iEnvelopesOnArray()"
#property strict

//--- indicator settings
#property   indicator_chart_window
#property   indicator_buffers 2
#property   indicator_color1  Green
#property   indicator_color2  Red

//--- indicator buffers
double      ExtEnvBuffer[];
double      ExtPriceBuffer[];

//--- bars minimum for calculation
#define DATA_LIMIT   100

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit ( void )
  {
  IndicatorShortName( "EnvOnArr" );
  
   //--- 1 additional buffer are used for counting.
  IndicatorBuffers( 2 );
  IndicatorDigits( Digits + 2 );
  
   //--- drawing settings
  SetIndexStyle( 0 , DRAW_LINE );
  SetIndexDrawBegin( 0 , DATA_LIMIT);
  
  SetIndexStyle( 1 , DRAW_NONE );
  SetIndexDrawBegin( 1 , DATA_LIMIT);
  
   //--- all indicator buffers mapping
   SetIndexBuffer ( 0 , ExtEnvBuffer);
   SetIndexBuffer ( 1 , ExtPriceBuffer);
  
   //--- name for DataWindow and indicator subwindow label
  SetIndexLabel(0, NULL );
  SetIndexLabel( 1 , NULL );
  }
  
//+------------------------------------------------------------------+
//| EnvelopesOnArray                                                 |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime & time[],
                 const double & open[],
                 const double & high[],
                 const double & low[],
                 const double & close[],
                 const long & tick_volume[],
                 const long & volume[],
                 const int & spread[])
  {
   int     i, limit;
   double prev = 0.0 , Deviation = 1 ;
  
   //--- check for rates total
   if (rates_total <= DATA_LIMIT)
     return ( 0 );
    
   //--- last counted bar will be recounted
  limit = rates_total - prev_calculated;
  
   if (prev_calculated > 0 )
    {
    limit++;
    }
    
   //--- price counted in the 2-nd additional buffer
   for (i= 0 ; i<limit- 1 ; i++)
    ExtPriceBuffer[i] = close[i];
                       
   //--- price counted in the 1-st additional buffer
   for (i= 0 ; i<limit- 1 ; i++)
    ExtEnvBuffer[i] = iEnvelopesOnArray(ExtPriceBuffer, 0 , 5 , MODE_SMA , 0 , 1 , MODE_UPPER, i);
  
   //--- done
   return (rates_total);
  }
  
//+------------------------------------------------------------------+
Dosyalar:
 

Merhaba. Test sırasında hatalar açılır:

2014.12.25 18:04:31.125 2014.11.03 00:00 Test3 EURUSD,H4: OrderModify işlevi için geçersiz bilet

2014.12.25 18:04:31.125 2014.11.03 00:00 Test3 EURUSD,H4: OrderModify hatası 4051

Birçok kez kontrol ettim, hata yok (bana göründüğü gibi).

Hata, programın bu bölümünde meydana gelir:

ModifyBuy, ModifySell, SelectBuy, SelectSell, - bool yazın

SendBuy, SendSell-int , int TP = 30


while(true)

 {

  

  SPREAD=MarketInfo(Symb,MODE_SPREAD);

  SelectBuy=OrderSelect(OrderTicketBuy,SELECT_BY_TICKET);//buy

  RefreshRates();

  if(NormalizeDouble(OrderOpenPrice()+TP*Point,Digits)<NormalizeDouble(Ask,Digits))

  {

  ModifyBuy=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(10-SPREAD)*Point,Bid+(30- SPREAD)*Point,0,0); 

  R=1;

  break;

  }//if2

    

  Timen=OrderCloseTime();

  if(Timen>0)

  {

  //--------------------------  

    Stop=StopLevel(Symb);

   StopLong();//значение Long2

   StopLoss_Func();//значение SL

//--------------------------  

   SendBuy=OrderSend(Symb,OP_BUYSTOP,Lote,Ask+Long2*Point,1,Bid-SL*Point,NULL);

   for(i=1;i>OrdersTotal();i++)

  {

   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)//Проверяем есть ли ордер

    {

     if(OrderSymbol()!=Symb) continue;     

     if(OrderType()==4)

      {

      OrderTicketBuy=OrderTicket();

      break;

      }

      else

      {

      continue;

      } 

     }

    }   

    continue;  

  }//if2

  

  SelectSell=OrderSelect(OrderTicketSell,SELECT_BY_TICKET,MODE_TRADES);//sell

  RefreshRates();

  if(NormalizeDouble(OrderOpenPrice()-TP*Point,Digits)>NormalizeDouble(Bid,Digits))

  {

   

   ModifySell=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(10-SPREAD)*Point,Ask-(30- SPREAD)*Point,0,0);

   R=2;

   break; //спред

  }//if2

  

   Timen=OrderCloseTime();

  if(Timen>0)

  {

 //--------------------------  

    Stop=StopLevel(Symb);

   StopLong();

   StopLoss_Func();

//--------------------------  

   SendSell=OrderSend(Symb,OP_SELLSTOP,Lote,Bid-Long2*Point,1,Ask+SL*Point,NULL);

    for(i=1;i>OrdersTotal();i++)

  {

   if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)//Проверяем есть ли ордер

    {

     if(OrderSymbol()!=Symb) continue;     

     if(OrderType()==6)

      {

      OrderTicketSell=OrderTicket();

      break;

      }

      else

      {

      continue;

      } 

     }

    }   

    continue; 

  }//if2

}//while1



Kodun tamamına ihtiyacınız varsa, o zaman burada


Dosyalar:
test3_1.mq4  15 kb
 
Beyler iyidir! Bir pozisyon açmak için yeterli marj yoksa danışmanı test etmeyi bırakacak kodu söyle.
Teşekkür ederim!