[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 396

 
실례합니다. 단순하고 간단한 라인용 컴파일러가 없습니다.
 double price=(Ask+Bid)/ 2 ;
0으로 컴파일되기 전에 지금
 
Dimka-novitsek :
실례합니다. 0으로 컴파일되기 전에 단순하고 간단한 문자열을 컴파일하지 않았습니다.

시작에서 추가
 
고맙습니다!
 

주기가 생각나지 않아 틱마다 몇 개의 주문이 열립니다. 틱의 출현과 함께 변수 X는 각각 값 0을 취하여 시작 내부에 선언됩니다.

또한 주기 내에서 X=주문 수를 고려하고 X= 0 또는 1이면 오프너를 고려합니다.

 //+------------------------------------------------------------------+
//|                                                         блин.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link       "http://www.metaquotes.net"
extern double stoploss= 0 ; extern double takeprofit= 20 ; extern int otstup= 20 ; extern datetime expiration= 0 ;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int tiket,tikett; double volume= 0.1 ; int i= 0 ,R1= 0 ,R2= 0 ,A= 1 ;
int start()
  { int X; double price=(Ask+Bid)/ 2 ;      
//----
       for ( int Uy= OrdersTotal ();Uy== 0 ;Uy--){ Alert ( "OrdersTotal()" , OrdersTotal ());//тут считаем кол-во уже открытых ордеров.
OrderSelect ( Uy,SELECT_BY_POS ); Alert ( "Uy" ,Uy); if (OrderSymbol()== Symbol ()&&OrderMagicNumber( )== 1000 ||OrderMagicNumber( )== 2000 &&OrderSymbol()== Symbol ())
{X ++;}   Alert ( "X" ,X);}
//----
if (X< 2 ){
   tiket= OrderSend ( Symbol (), OP_BUYSTOP,  volume*A, price +otstup* Point , Point * 3 , R1, price+takeprofit* Point +otstup* Point , "OP_BUYSTOP" , 1000 ,  expiration, Red ); 
   Alert ( "OP_BUYSTOP" , GetLastError ( )); 
   tikett= OrderSend ( Symbol (), OP_SELLSTOP,  volume*A, price -otstup* Point , Point * 3 ,R2, price-takeprofit* Point -otstup* Point , "OP_SELLSTOP" , 2000 ,  expiration, C'0,128,255' );
     Alert ( "OP_SELLSTOP" , GetLastError ( )); 
    }       
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
//+------------------------------------------------------------------+
//|                                                         блин.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
extern double stoploss=0; extern double takeprofit=20;extern int otstup=20; extern datetime expiration=0;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;
int start()
  { int X=0; double price=(Ask+Bid)/2;      
//----
       for(int Uy=OrdersTotal();Uy==0;Uy--){Alert ("OrdersTotal()",OrdersTotal());
OrderSelect( Uy,SELECT_BY_POS );Alert ("Uy",Uy);if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
{X ++;}  Alert ("X",X);}
//----
if (X<2){
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 

변수를 선언했지만 재설정하지 않았습니다. 따라서 각 틱마다 성장할 것입니다 !!!!!!

그렇게 하는 것은 옳지 않다

 double price=(Ask+Bid)/ 2 ;
 
감사해요!! 지금 바로 재설정하겠습니다. 그러나 어쨌든 뭔가 잘못되었습니다. 아마도 첫 번째 사이클이 어떤 이유로 작동하지 않고 X가 항상 0으로 남아있을 수 있습니다. Alert ("X", X)가 로그에 아무 것도 쓰지 않기 때문에 확실히 알 수 없습니다. , 0이 있는 가죽 끈 주문만 있습니다.
 
VOLDEMAR :

변수를 선언했지만 재설정하지 않았습니다. 따라서 각 틱마다 성장합니다 !!!!!!

그렇게 하는 것은 옳지 않다


여기서 당신은 착각하고 있습니다. 각 틱 으로 이 변수는 다시 선언되므로 0과 같습니다.

굶어 죽는다

 int start()
  { int X; double price=(Ask+Bid)/ 2 ;      
//----
       for ( int Uy= OrdersTotal ();Uy== 0 ;Uy--){ Alert ( "OrdersTotal()" , OrdersTotal ());
OrderSelect ( Uy,SELECT_BY_POS ); Alert ( "Uy" ,Uy); if (OrderSymbol()== Symbol ()&&(OrderMagicNumber( )== 1000 ||OrderMagicNumber( )== 2000 )&&OrderSymbol()== Symbol ())
{X ++;}   Alert ( "X" ,X);}
//----
if (X< 2 ){
   tiket= OrderSend ( Symbol (), OP_BUYSTOP,  volume*A, price +otstup* Point , 3 , R1, price+takeprofit* Point +otstup* Point , "OP_BUYSTOP" , 1000 ,  expiration, Red ); 
   Alert ( "OP_BUYSTOP" , GetLastError ( )); 
   RefreshRates();
   tikett= OrderSend ( Symbol (), OP_SELLSTOP,  volume*A, price -otstup* Point ,   3 ,R2, price-takeprofit* Point -otstup* Point , "OP_SELLSTOP" , 2000 ,  expiration, C'0,128,255' );
     Alert ( "OP_SELLSTOP" , GetLastError ( )); 
    }       
   
//----
   return ( 0 );
  }
 
Roger :

여기서 당신은 착각하고 있습니다. 각 틱과 함께 이 변수는 다시 선언되므로 0과 같습니다.

예, x=0으로 설정하면 0으로 재설정되고, 단순히 int x:로 설정하면 0으로 재설정되지 않고 증가합니다.

 
VOLDEMAR :

예, x=0으로 설정하면 0으로 재설정되고, 단순히 int x:로 설정하면 0으로 재설정되지 않고 증가합니다.



어느 연대기에서 읽었습니까?