OrderClose çalışmıyor - sayfa 4

 

Merhaba,

Aşağıdakileri derledim, bunun gibi hatalar aldı: Hangi kısmın yanlış gittiğini öğrenebilir miyim?


'postin forum.mq4'      postin forum.mq4        1       1
',' - unexpected token  postin forum.mq4        59      53
expression has no effect        postin forum.mq4        59      54
1 error(s), 1 warning(s)                2       2
//+------------------------------------------------------------------+
//|                                                       chuale.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.abc.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link        "http://www.abc.com"
#property version    "1.00"
#property strict

extern double    TakeProfit= 500 ;
extern double    Lots= 0.1 ;
extern double    StopLoss= 300 ;

double      bar1;
double      bar2;
double      bar3;
int         total,ticket;
//datetime   previousTime; 

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
  
//---
   
//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---
   
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int start()
  {

  total= OrdersTotal ();
      bar1=( iClose ( Symbol (), PERIOD_M1 , 2 )- iClose ( Symbol (), PERIOD_M1 , 3 ))* 100 ;
      bar2=( iClose ( Symbol (), PERIOD_M1 , 1 )- iClose ( Symbol (), PERIOD_M1 , 2 ))* 100 ;
      bar3=( iClose ( Symbol (), PERIOD_M1 , 0 )- iClose ( Symbol (), PERIOD_M1 , 1 ))* 100 ;
     Comment ( "Bar1=" + DoubleToString (bar1, Digits )+ "\n" +
             "Bar2=" + DoubleToString (bar2, Digits )+ "\n" +
             "Bar3=" + DoubleToString (bar3, Digits )+ "\n"
             );
                         
   if (total> 0 )
   {
   OrderSelect ( 0 , SELECT_BY_POS );
   if (bar3<- 2 ) OrderClose ( OrderTicket (),Lots, Bid , 3 ),Green;
   if (bar3> 2 ) OrderClose ( OrderTicket (), Lots, Ask , 3 ,Red);
   }
   //if(Time[0]==previousTime) return(0);
   //previousTime=Time[0];
   if (total< 1 )
     {
       if (bar3> 1 )
      {  
      ticket= OrderSend ( Symbol (), OP_BUY ,Lots, Ask , 3 , Ask -StopLoss* Point , Ask +TakeProfit* Point , "Chua EA" , 12345 , 0 ,Green);
       //if(ticket<0)Print("Error OP_BUY order failed, error:"+GetLasterror());
       return ( 0 );
      }
      
       if (bar3<- 1 )
      {
      ticket= OrderSend ( Symbol (), OP_SELL ,Lots, Bid , 3 , Bid +StopLoss* Point , Bid +-TakeProfit* Point , "Chua EA" , 12345 , 0 ,Red);
       //if(ticket<0)Print("Error OP_SELL order failed, error:"+GetLasterror());
       return ( 0 );
      }
     }
   
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
İki satırı karşılaştırın.
   if (bar3<- 2 ) OrderClose ( OrderTicket (),Lots, Bid , 3 ),Green;
   if (bar3> 2 )  OrderClose ( OrderTicket (),Lots, Ask , 3 ,Red);
 

Hata raporu size hatanın nerede olduğunu söyler

',' - forumda beklenmeyen belirteç paylaşımı.mq4 59 53

ve hataya çift tıklarsanız, imleç doğrudan soruna götürülür.

 

Merhaba GumRai,


Teşekkürler, düzelttim. Hata, yanlışlıkla girilen parantezlerden kaynaklanmaktadır.

 

Teşekkürler WHRoeder.

Dır-dir

 

Merhaba thrdel,

Zaman[0], çubuk 0'ın zamanını mı ifade ediyor? Zaman[1], Zaman [2] vs. var mı? Google'da denedim ama internette pek bilgi yok. Ayrıca, bu EA'yı iki döviz çiftine eklersem, bu, OrderSelect'in yalnızca grafikteki emirleri mi yoksa terminaldeki tüm emirleri mi seçtiği anlamına gelir?

 

Merhaba thrdel,


"if(ticket<0)Print("Error OP_BUY order başarısız, error:"+GetLastError()) için "'number'dan 'string' postin forum.mq4 69 61'e örtülü dönüşüm" uyarı mesajını neden alıyorum? ;"?

 
chuale :

Zaman[0], çubuk 0'ın zamanını mı ifade ediyor? Zaman[1], Zaman [2] vs. var mı?

Evet

chuale :

Google'da denedim ama internette pek bilgi yok.

http://bit.ly/1fJi4XA

chuale :

Ayrıca, bu EA'yı iki döviz çiftine eklersem, bu OrderSelect'in yalnızca grafikteki emirleri mi yoksa terminaldeki tüm emirleri mi seçtiği anlamına gelir?

kodunuza bağlıdır

 
teşekkürler qiol
 
chuale :

Merhaba thrdel,


"if(ticket<0)Print("Error OP_BUY order başarısız, error:"+GetLastError()) için "'number'dan 'string' postin forum.mq4 69 61'e örtülü dönüşüm" uyarı mesajını neden alıyorum? ;"?


"'sayıdan' 'dize'ye örtük dönüştürme", büyük döngüleriniz olduğunda popo için bir acı olabilir.

Bu, hata raporunda bir sürü satır arasında gezinmek anlamına gelir.

Senin durumunda GetLastError() bir tamsayı kodudur, bu yüzden sadece print deyimi için bir dizgeye dönüştürüleceği konusunda sizi uyarıyor.

Bunun bir sorun olmamasından memnunsanız, bu can sıkıcı uyarıları durdurmak için (string) ekleyebilirsiniz.

if(ticket<0)   Print("Error OP_BUY order failed, error:" + (string) GetLastError());

Bu arada, eğer bilmiyorsan-

Bunu genellikle Externs/Inputs'tan sonra yerleştiririm

 #include <stdlib.mqh>

ve sonra kullanabilirsin

 if (ticket< 0 )   Print ( "Error OP_BUY order failed, error: " + ErrorDescription(GetLastError() ) );

Böylece sadece kod değil, hatanın açıklaması da yazdırılır.