kodda bana yardım et - sayfa 3

 
mohsin360 :

ve lütfen hatalarını düzeltin veya bana biraz ipucu verin


"mohsin360", derleyici size neyin yanlış olduğunu söylüyor. Neden hata raporunu okuyup takip etmiyorsunuz.

Tanımlanmamış bir değişkeniniz var diyorsa, değişkeni hataya neden olmayacak şekilde tanımlayın.

Dengesizlik paranteziniz ")" yazıyorsa, bu, doğru sayıda sol ve sağ parantez yerleştirdiğinizi ve bir veya daha fazlasının muhtemelen eksik olduğunu kontrol etmeniz gerektiği anlamına gelir.

Bunlar, biraz kodlamayı zaten bilen biri için basit hatalardır.

Programlama hakkında hiçbir şey bilmiyorsanız, belki de bir EA veya Gösterge yazmaya çalışmadan önce, programlamanın temellerini öğrenmeye ve bir derleyici kullanmaya ve genel olarak koddaki sözdizimi hatalarını düzeltmeye biraz zaman ayırmalısınız.

Başlamak için iyi bir yer " MQL4 Kitabı ", tam burada, bu sitede!

Alternatif olarak, "C Programlama" üzerine yeni başlayanlar kitabı veya yeni başlayanlar için "C" üzerine bazı çevrimiçi eğitimler olabilir. Bu, temelleri anlamak için sizi başlatacak ve ardından MQL4 ile devam edebilirsiniz.

 

evet hata raporunu okudum ve sondaki başlangıç kodumun b coz sayılarında sekiz birinci ve ikinci hata içeriyor ve alpari veya mt4'ün minimum 30 pip sonuna izin vermediğini öğrendim, bu yüzden kodu biraz değiştirmeye karar verdim ve sondaki başlangıç kodu yerine düz sıra değiştirme kodunu kullanarak. Benimle çok fazla işbirliği yaptığınız için hepinize teşekkürler. bu kadar rahat olmayın, yeni değişiklikleri yaptıktan ve derledikten sonra yardıma ihtiyacım olup olmadığını tekrar sorun

Saygılarımızla

Mohsin.meo

 
Tekrar teşekkürler WHRoeder
 

benim meta editörüm bazı hataları gösteriyor ilki (145,51) hata listesinde arama yaptığımda para cezası 145 yok diyerek şunu söylüyor: [ Sipariş pazara çok yakın olduğu için değişiklik reddedildi.] ve bu satırda doğru b coz kodu girdim sırayı sadece 5 pip artı olarak değiştir, ancak (153,62),(158,8),(164,8),(170,55),(180,60) ve (185,8) gibi diğer hataları aradığımda .herhangi bir hataya ceza veremem, listede listelenmiyor, burada listelenenlerin anlamlarına ceza yazdığım ve diğerlerini bulamadığım liste. beklenmedik belirteç" ve yalnızca kod sözdizimi ile ilgili bir sorun olduğunda geldiğimi, ancak görebileceğiniz gibi üstte iki hatam olduğunu ve yanlış parametre sayısı @(145,51) ve (153,62) olduğunu ve yalnızca 145'in listelendiğini söylüyor dizin ama 153,62 Y değil

 
//+------------------------------------------------------------------+
//|                                                 every tick20.mq4 |
//|                                                    mohsin mewati |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "mohsin mewati"
#property link        ""

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
 
int init()
  {
//----
   int order_open_time_buy = 0 ; //intiger to save buy open Time
   int order_open_time_sell = 0 ; //intiger to save sell open Time
   bool err_close_all_orders = 0 ; //bolean to save get last error for close all opened orders code
   
   bool err_sell= 0 ;
   bool err_buy= 0 ;
   bool err_selection_buy= 0 ;
   bool err_selection_sell= 0 ;
   bool buy_modified= 0 ;
   bool sell_modified= 0 ;
   double mf_buy= 0 ;
   double mf_sell= 0 ;
   int buy_trail= 0 ;
 
   int err_trail_buy= 0 ;
   int err_modify_sell= 0 ;
   int buy_selection= 0 ;
   bool buy_open_price= 0 ;
   int sell_selection= 0 ;
//----
   return ( 0 );
  }

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+

//----
 
   int start()
  {
  
   bool err_buy;
   int buy_ticket;
   bool err_sell;
   int sell_ticket;
   bool err_selection_buy;
   int buy_selection;
   double buy_open_price;
   bool err_selection_sell;
   int sell_selection;
   bool err_mf_buy;
   bool srr_mf_sell;
   bool err_mf_sell;
   bool err_trail_buy;
   bool err_modify_sell;
   bool buy_modified;
   bool err_trail_sell;
   bool err_modify_buy;
   int buy_trail= 0 ;
   int sell_trail= 0 ;
   string buy= "open" ;
   string sell= "open" ;
   int bp= 20 ;
   int sp= 20 ;
   double buy_ans;
   double sell_ans;
   double slbuy;
   double slsell;
   double tp_sell;
   double tp_buy;
   
 
   //coding starts
  
  
   while (err_buy== 0 ){ //for loop started to execute a buy Order
  
   buy_ticket= OrderSend ( "GBPUSD" , OP_BUY , 1 , Ask , 3 , Ask + 20 * Point , 0 ,Green); //code to execute a buy (buy order placed without SL but with a TP of 20 pips
  err_buy=GetLastError(); //code to check either buy is executed or not?
  
 } //for loop end
   while (err_sell== 0 ){ //for loop to place a sell order
    sell_ticket = OrderSend ( "GBPUSD" , OP_SELL , 1 , Ask , 3 , Ask - 20 * Point , 0 ,Red); //code to place a sell ,order placed without SL but with a TP of 20 pips
   err_sell=GetLastError(); //code to check either sell is placed or not?
   } //for loop ends
   Alert ( "buy/sell executed" );
   
   //__________________________________________________________________________________________________________________________________
   
   while (err_selection_buy== 0 ){ // for loop start to selection of first executed order for further procedure
   buy_selection= OrderSelect ( "Buy_ticket" , SELECT_BY_TICKET ); //order select and stored in intiger
   err_selection_buy=GetLastError(); //code to check eithet order is selected or not
   } //for loop ends
   
   
   
  buy_open_price= OrderOpenPrice (); //taking open price for the first selected order
  buy_ans=buy_open_price;
   
   
   
     while (err_selection_sell== 0 ){ // for loop start to selection of second executed order for further procedure
   sell_selection= OrderSelect ( "Sell_ticket" , SELECT_BY_TICKET ); //order select and stored in intiger
   err_selection_sell=GetLastError(); //code to check eithet order is selected or not
   } //for loop ends
   
   
   
double sell_open_price= OrderOpenPrice (); //taking open price for the second selected order
   
 sell_ans=sell_open_price;
   
   
   
   while ( "buy_trail==0" && "Sell_trail==0" ){ // while loop started to check if thow of them or one is true
      
       while ( "err_mf_buy==0" &&   "err_mf_sell==0" ){ //while loop start to take price quote every time for buy and sell
         double mf_buy= MarketInfo ( "GBPUSD" , MODE_POINT ); //code to store markeet info in integer mf_buy
        err_mf_buy=GetLastError(); //code to confirm the previous line of code executed? 
       double mf_sell= MarketInfo ( "GBPUSD" , MODE_POINT ); //code to store markeet info in integer mf_sell
        err_mf_sell=GetLastError(); //code to confirm the previous line of code executed? 
       }
       
       if (mf_buy==slbuy){
        buy= "closed" ;}
       
       else {
       if ( mf_sell==slsell){
     
       sell= "closed" ;}
       else {}
       }
       
       
       if ( "mf_buy-bp == buy_ans" && "Buy==open" ){ //if condition to compare if current markeet quote which stored in mf_buy is 20 times greater than the open price of buy Order?
       
       
       while (err_trail_buy== 0 ){ //if above condition true for loop started to start trailing on buy order.
       OrderModify (buy_ticket,buy_open_price,slbuy);
             bp= "(bp+5)" ;
        err_trail_buy=GetLastError(); //code to confirm the previous line of code executed? 
        }
        
         if (bp>= 30 ){
        tp_sell= 0.00005 ;
         while (err_modify_sell== 0 ){ //if buy is in profit for 20 pips and trailing stop started on it i want my sell to modify for take profit for just 5 pips.
       OrderModify (sell_ticket,sell_open_price,slsell,tp_sell);
       err_modify_sell=GetLastError(); //code to confirm the previous line of code executed? 
       buy_trail= 1 ; //intiger use to remember that the buy was in profit and all the cooding associated with it was executed there is no need to check .
       }
       }
       else {
     
       }
       
       
       
       else if ( "mf_sell+sp" <= "Sell_ans" && "Sell" == "open" ){ //another logical test to check if buy was not in 20 pips if our sell is in 20 pips profit if so then in the next for loop statrted
       
       
       
       
       while (err_trail_sell== 0 ){ //for loop start to modify sell for trail
         OrderModify (sell_ticket,sell_open_price,slsell);
       sp= "(sp+5)" ;
       
        err_trail_sell=GetLastError(); //code to confirm the previous line of code executed? 
        }
        
         if (sp>= 30 ){
        tp_buy= 0.00005 ;
        
       while (err_modify_buy== 0 ){ //if our sell is in 20 pips profit and trailing executed on it while loop start to modify buy for tp for just 5 pips 
         OrderModify (buy_ticket,buy_open_price,slbuy,tp_buy);
          err_modify_buy=GetLastError(); //code to confirm the previous line of code executed? 
         sell_trail= 1 ; //intiger use to remember that the sell was in profit and all the cooding associated with it was executed there is no need to check .
         }
       }
       else {
       }
       
       }
       
       
   }

 
   
   
  }
   double ab= AccountBalance ();
  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
işte kod
 
mohsin360 :

benim meta editörüm bazı hataları gösteriyor ilki (145,51) hata listesinde arama yaptığımda para cezası 145 yok diyerek şunu söylüyor: [ Sipariş pazara çok yakın olduğu için değişiklik reddedildi.] ve bu satırda doğru b coz kodu girdim sırayı sadece 5 pip artı olarak değiştir, ancak (153,62),(158,8),(164,8),(170,55),(180,60) ve (185,8) gibi diğer hataları aradığımda .herhangi bir hataya ceza veremem, listede listelenmiyor, burada listelenenlerin anlamlarına ceza yazdığım ve diğerlerini bulamadığım liste. beklenmedik belirteç" ve yalnızca kod sözdizimi ile ilgili bir sorun olduğunda geldiğimi, ancak görebileceğiniz gibi üstte iki hatam olduğunu ve yanlış parametre sayısı @(145,51) ve (153,62) olduğunu ve yalnızca 145'in listelendiğini söylüyor endeks ancak 153,62 Y değil

145, hata numarası değil satır numarasıdır. . . 51, karakter sütun numarasıdır. Bunlar yürütme hataları değil kodlama hatalarıdır. . . diş tellerini düzelt.

Bu yanlış . . .

buy_selection = OrderSelect (    "Buy_ticket" ,   SELECT_BY_TICKET );

OrderSelect() ilk parametre bir dize değil bir int olmalıdır, belgeleri okuyun.

Aynı şekilde . . .

sell_selection = OrderSelect (    "Sell_ticket" ,   SELECT_BY_TICKET ); //order select and stored in intiger


Bunlar dizedir ve çalışmayacaktır. . .

 while  "buy_trail==0"    && "Sell_trail==0"      ){ // while loop started to check if thow of them or one is true

aynı şekilde . . .

 while  "err_mf_buy==0" &&    "err_mf_sell==0"    ){ //while loop start to take price quote every time for buy and sell
 

Buy_ticket'i, @ orderend Buy ve satış için aynı sunucudan alınan biletin değerini içeren tam sayı olarak zaten ilan ettim.

orderselect'in ilk parametresinin sayılarda olması gerektiğini söylerseniz, o zaman açıkçası nasıl hayır aldığımı ilk önce bir tam sayı içinde sakladım ve sonra bu tam sayıyı çağırdım ve ne yapıyorum.

?

 
mohsin360 :

Buy_ticket'i, @ orderend Buy ve satış için aynı sunucudan alınan biletin değerini içeren tam sayı olarak zaten ilan ettim.

orderselect'in ilk parametresinin sayılarda olması gerektiğini söylerseniz, o zaman açıkçası nasıl hayır aldığımı ilk önce bir tam sayı içinde sakladım ve sonra bu tam sayıyı çağırdım ve ne yapıyorum.

?

Bu bir tamsayıdır. . .

 int Buy_ticket;

Buy_ticket = 10 ;

bu bir dize

 "Buy_ticket"
 

eğer abt "" diyorsan?

bunları kaldırdım ve meta düzenleyici, abt önceden tanımlanmış değişkenleri sorun, hata değişkeni tanımlanmadı gösteriyor

bilet al

sell_ticket

şimdi bu çift virgülleri düzeltiyorum ve sadece iki hata alıyorum

işte kod

 //+------------------------------------------------------------------+
//|                                                 every tick20.mq4 |
//|                                                    mohsin mewati |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "mohsin mewati"
#property link        ""

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
 
int init()
  {
//----
   int order_open_time_buy = 0 ; //intiger to save buy open Time
   int order_open_time_sell = 0 ; //intiger to save sell open Time
   bool err_close_all_orders = 0 ; //bolean to save get last error for close all opened orders code
   
   bool err_sell= 0 ;
   bool err_buy= 0 ;
   bool err_selection_buy= 0 ;
   bool err_selection_sell= 0 ;
   bool buy_modified= 0 ;
   bool sell_modified= 0 ;
   double mf_buy= 0 ;
   double mf_sell= 0 ;
   int buy_trail= 0 ;
 
   int err_trail_buy= 0 ;
   int err_modify_sell= 0 ;
   int buy_selection= 0 ;
   bool buy_open_price= 0 ;
   int sell_selection= 0 ;
//----
   return ( 0 );
  }

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+

//----
 
   int start()
  {
  
   bool err_buy;
   int buy_ticket;
   bool err_sell;
   int sell_ticket;
   bool err_selection_buy;
   int buy_selection;
   double buy_open_price;
   bool err_selection_sell;
   int sell_selection;
   bool err_mf_buy;
   bool srr_mf_sell;
   bool err_mf_sell;
   bool err_trail_buy;
   bool err_modify_sell;
   bool buy_modified;
   bool err_trail_sell;
   bool err_modify_buy;
   int buy_trail= 0 ;
   int sell_trail= 0 ;
   string buy;
   string sell;
   int bp= 20 ;
   int sp= 20 ;
   double buy_ans;
   double sell_ans;
   double slbuy;
   double slsell;
   double tp_sell;
   double tp_buy;
   
 
   //coding starts
  
  
   while (err_buy== 0 ){ //for loop started to execute a buy Order
  
   buy_ticket= OrderSend ( "GBPUSD" , OP_BUY , 1 , Ask , 3 , Ask + 20 * Point , 0 ,Green); //code to execute a buy (buy order placed without SL but with a TP of 20 pips
  err_buy=GetLastError(); //code to check either buy is executed or not?
  
 } //for loop end
   while (err_sell== 0 ){ //for loop to place a sell order
    sell_ticket = OrderSend ( "GBPUSD" , OP_SELL , 1 , Ask , 3 , Ask - 20 * Point , 0 ,Red); //code to place a sell ,order placed without SL but with a TP of 20 pips
   err_sell=GetLastError(); //code to check either sell is placed or not?
   } //for loop ends
   Alert ( "buy/sell executed" );
   
   //__________________________________________________________________________________________________________________________________
   
   while (err_selection_buy== 0 ){ // for loop start to selection of first executed order for further procedure
   buy_selection= OrderSelect (Buy_ticket, SELECT_BY_TICKET ); //order select and stored in intiger
   err_selection_buy=GetLastError(); //code to check eithet order is selected or not
   } //for loop ends
   
   
   
  buy_open_price= OrderOpenPrice (); //taking open price for the first selected order
  buy_ans=buy_open_price;
   
   
   
     while (err_selection_sell== 0 ){ // for loop start to selection of second executed order for further procedure
   sell_selection= OrderSelect (Sell_ticket, SELECT_BY_TICKET ); //order select and stored in intiger
   err_selection_sell=GetLastError(); //code to check eithet order is selected or not
   } //for loop ends
   
   
   
double sell_open_price= OrderOpenPrice (); //taking open price for the second selected order
   
 sell_ans=sell_open_price;
   
   
   
   while ( "buy_trail" == 0 &&   "Sell_trail" == 0 ){ // while loop started to check if thow of them or one is true
      
       while (err_mf_buy== 0 &&  err_mf_sell== 0 ){ //while loop start to take price quote every time for buy and sell
         double mf_buy= MarketInfo ( "GBPUSD" , MODE_POINT ); //code to store markeet info in integer mf_buy
        err_mf_buy=GetLastError(); //code to confirm the previous line of code executed? 
       double mf_sell= MarketInfo ( "GBPUSD" , MODE_POINT ); //code to store markeet info in integer mf_sell
        err_mf_sell=GetLastError(); //code to confirm the previous line of code executed? 
       }
       
       if (mf_buy==slbuy){
        buy= "closed" ;}
       
       else {
       if ( mf_sell==slsell){
     
       sell= "closed" ;}
       else {}
       }
       
       
       if (mf_buy-bp == buy_ans && "Buy" == "open" ){ //if condition to compare if current markeet quote which stored in mf_buy is 20 times greater than the open price of buy Order?
       
       
       while (err_trail_buy== 0 ){ //if above condition true for loop started to start trailing on buy order.
       OrderModify (buy_ticket,buy_open_price,slbuy);
             bp= "(bp+5)" ;
        err_trail_buy=GetLastError(); //code to confirm the previous line of code executed? 
        }
        
         if (bp>= 30 ){
        tp_sell= 0.00005 ;
         while (err_modify_sell== 0 ){ //if buy is in profit for 20 pips and trailing stop started on it i want my sell to modify for take profit for just 5 pips.
       OrderModify (sell_ticket,sell_open_price,slsell,tp_sell);
       err_modify_sell=GetLastError(); //code to confirm the previous line of code executed? 
       buy_trail= 1 ; //intiger use to remember that the buy was in profit and all the cooding associated with it was executed there is no need to check .
       }
       }
       else {
     
       }
       
       
       
       else if ( "mf_sell" + "sp" <= "Sell_ans" && "Sell" == "open" ){ //another logical test to check if buy was not in 20 pips if our sell is in 20 pips profit if so then in the next for loop statrted
       
       
       
       
       while (err_trail_sell== 0 ){ //for loop start to modify sell for trail
         OrderModify (sell_ticket,sell_open_price,slsell);
       sp= "(sp+5)" ;
       
        err_trail_sell=GetLastError(); //code to confirm the previous line of code executed? 
        }
        
         if (sp>= 30 ){
        tp_buy= 0.00005 ;
        
       while (err_modify_buy== 0 ){ //if our sell is in 20 pips profit and trailing executed on it while loop start to modify buy for tp for just 5 pips 
         OrderModify (buy_ticket,buy_open_price,slbuy,tp_buy);
          err_modify_buy=GetLastError(); //code to confirm the previous line of code executed? 
         sell_trail= 1 ; //intiger use to remember that the sell was in profit and all the cooding associated with it was executed there is no need to check .
         }
       }
       else {
       }
       
       }
       
       
   }

 
   
   
  }
   double ab= AccountBalance ();
  
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
 
mohsin360 :

eğer abt "" diyorsan?

bunları kaldırdım ve meta düzenleyici, abt önceden tanımlanmış değişkenleri sorun, hata değişkeni tanımlı değil gösteriyor

bilet al

sell_ticket

şimdi bu çift virgülleri düzeltiyorum ve sadece iki hata alıyorum

işte kod


buy_ticket , Buy_ticket ile aynı değil

Hala birçok başka hatanız var. . .

OrderModify() (lütfen belgeleri okuyun) en az 5 parametre alır. . .

 OrderModify (buy_ticket, buy_open_price, slbuy);

. . . üç değil. renk isteğe bağlıdır. . .

başka ne?

       else {
     
       }