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

 

teşekkürler, bu kodu danışmana ekledim, derlerken '(' - işlev tanımı beklenmiyor bool ExistOrders'dan sonra, bir yerde fazladan bir parantez veya başka bir şey ...

for (int k=0;k<OrdersTotal();k++)//Tüm açık siparişler arasında görüntüle
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic))
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Kırmızı);
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=SiparişToplam(), ty;
if (sy=="0") sy=Symbol();
(i=0; i<k; i++) için
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=SiparişTürü();
eğer (ty<6)
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} dönüş(Yanlış);
}
//----
dönüş(0);
}
 
Graall :

teşekkürler, bu kodu danışmana ekledim, derlerken '(' - işlev tanımı beklenmiyor bool ExistOrders'dan sonra, bir yerde fazladan bir parantez veya başka bir şey ...


Başlangıç işlevinden ExistOrders işlevini türet.
 int start()
{
.....
for ( int k= 0 ;k< OrdersTotal ();k++) //Производим просмотр среди всех открытых ордеров
   {
     OrderSelect (k,SELECT_BY_POS,MODE_TRADES);
     if (!ExistOrders( Symbol (), OP_SELLLIMIT, Magic) )  
     OrderSend ( Symbol (),OP_SELLLIMIT,Lots,Ask+(Shag/ 0.2 )* Point , 3 , 0 , 0 , "" , 123 , 0 ,Red);
}
   return ( 0 );
 }

     bool ExistOrders( string sy= "" , int op=- 1 , int mn= 123 ) 
     {
       int i, k= OrdersTotal (), ty; 
       if (sy== "0" ) sy= Symbol ();
       for (i= 0 ; i<k; i++) 
      {
       if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
         if (ty< 6 ) 
        {
           if ((OrderSymbol()==sy || sy== "" ) && (op< 0 || ty==op)) 
         {
           if (mn< 0 || OrderMagicNumber()==mn) return (True);
      }}}}   return (False);
          }
 
 

evet anlıyorum ExistOrders işlevi özel bir işlev, başlatma işlevinden kaldırdım, hata aynı, danışmanın ilk bölümünde bir şeyle savaşıyor, tam olarak gönderiyorum


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

//| 1.mq4 |
//| Oleg 2013 |
//| |
//+------------------------------------------- --------------------+
#define Magic 123

//--- giriş parametreleri
harici int TakeProfit = 100;
dış çift Lot = 0.1;
harici int Adım = 100;
telli;
int ty;
int işlemi;
intmn;
int k;
int i;
//------------------------------------------------ --------------------------------------------------
int başlangıç()
{
// ilk boş elemanı ara
int toplam=SiparişToplam();
if (toplam==0)
{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Kırmızı);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0,"",123,0,Mavi);
for (int i=0;i<OrdersTotal();i++)//Tüm açık siparişler arasında görüntüle
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ( OrderType()==OP_SELLLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask-(TakeProfit/0.2)*Point, 0);
if ( OrderType()==OP_BUYLIMIT)
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask+(TakeProfit/0.2)*Puan, 0);
}
}
for (int k=0;k<OrdersTotal();k++)//Tüm açık siparişler arasında görüntüle
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic))
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Kırmızı);

//----
dönüş(0);
}
//+------------------------------------------- --------------------+
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=SiparişToplam(), ty;
if (sy=="0") sy=Symbol();
(i=0; i<k; i++) için
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=SiparişTürü();
eğer (ty<6)
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}} dönüş(Yanlış);
}
 
Graall :



{} parantezlerinin eşleşmesini kontrol edin (dikkatle). Hata, start() işlevinde en az bir kapatma işlevinin eksik olduğu anlamına gelir.
 
alsu :

{} parantezlerinin eşleşmesini kontrol edin (dikkatle). Hata, start() işlevinde en az bir kapatma işlevinin eksik olduğu anlamına gelir.


tam olarak sonra  

for (int k=0;k<OrdersTotal();k++)//Tüm açık siparişler arasında görüntüle

{
Sipariş Seçimi (k,SELECT_BY_POS, MODE_TRADES );
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic))

OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Kırmızı);

cevapsız } teşekkürler!

 
Merhaba, benim terminalimde saat gerçek saatle uyuşmuyor, şimdi M5 mumunun üzerine geldiğinizde 18.45 gösteriyor, ama aslında Ukrayna'da 19.45, saati nasıl değiştirebilirim?
 
sanktum :
Merhaba, benim terminalimde saat gerçek saatle uyuşmuyor, şimdi M5 mumunun üzerine geldiğinizde 18.45 gösteriyor, ama aslında Ukrayna'da 19.45, saati nasıl değiştirebilirim?

Mümkün değil. Mum Işığı - sunucu zamanı.

 

Güzel gün.

Yeni bir çubuğun her açılışında EA'dan bir dosyaya aşağıdaki şekilde yazarım:

 int handle= FileOpen (Symbol1+Symbol2+ ".csv" , FILE_WRITE | FILE_READ | FILE_CSV );
       if (handle> 0 )
        {
         FileSeek (handle, 0 , SEEK_END );
         FileWrite (handle, TimeToString ( TimeCurrent (),TIME_DATE|TIME_MINUTES), DoubleToString (Pr1, 2 ), DoubleToString (Pr2, 2 ), DoubleToString (Pr3, 2 ), DoubleToString (Pr4, 2 ));
         FileClose (handle);
        }

göstergenin bu verileri okuması ve kaydedilen zaman aralıkları üzerinde bir grafik oluşturması gerekir.

Lütfen bunun nasıl uygulanacağını açıklar mısınız? en azından genel anlamda.

 

MT4 (Sürüm: 4.00 Build 451) yüklendi ve Experts Logs klasöründe terminalin kurulduğu güne ait yalnızca bir dosya olduğunu fark etti, ör. 13. İşte bu, daha fazla günlük dosyası yok, ancak platformu zaten birçok kez açıp kapattım.

Bu fenomenle ilgili herhangi bir yorum için minnettar olurum.

 
Geowind64 :

MT4 (Sürüm: 4.00 Build 451) yüklendi ve Experts Logs klasöründe terminalin kurulduğu güne ait yalnızca bir dosya olduğunu fark etti, ör. 13. İşte bu, daha fazla günlük dosyası yok, ancak platformu zaten birçok kez açıp kapattım.

Bu fenomenle ilgili herhangi bir yorum için minnettar olurum.


En az bir uzman/gösterge/script çalıştırmak gerekir, bu klasöre yazarlar.