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

 
 
 
//+------------------------------------------------------------------+
//|                                                    для лавин.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 ;double price=PRICE_OPEN;
   //  R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;
     
     
int start()
  {       int X;       
//----
       for(int Uy=OrdersTotal();Uy<=-1;Uy--){
OrderSelect( Uy,SELECT_BY_POS );
if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
{X=X++;}}  
if (X>=2){
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, PRICE_OPEN+takeprofit*Point+otstup, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, PRICE_OPEN-takeprofit*Point-otstup, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
Dimka-novitsek :

{X=X++;}}  

또는 X=X+1; 또는 X++; ))

첫 번째 루프의 상태를 다시 한 번 살펴보십시오.

 
감사해요!!!!!!!!
 

친애하는 전문가 여러분! 일반적인 SMA 가 차트의 수평선 수준을 넘을 때 주문을 여는 스크립트를 찾고 있습니다. SMA가 아래에서 선을 넘으면 - 매수, 반대 - 매도. 양초 종가에서 거래합니다. 게시된 경우 찾을 수 있는 링크를 알려주세요.

안부 등

 

나는 아무것도 이해하지 못한다.. 우선 내 사이클이 작동하지 않습니다. 둘째, 그는 잘못된 중지를 포함하여 많은 오류를 작성합니다. (!!그들은 단순히 존재하지 않으며 0입니다!!!!) 그리고 여전히 5-1o 주문을 엽니다!!

왜 가격이 정확하지 않습니까?

초기 아이디어는 가격에서 약 20pp 떨어진 거리에서 두 개의 주문을 열고 하나는 더 높거나 낮고(otstup = 20) 이익을 취하는 것은 20개 더 높거나 낮은 것입니다.

 //+------------------------------------------------------------------+
//|                                                    для лавин.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 ; double price= PRICE_OPEN ;
   //  R1=((PRICE_OPEN- stoploss*Point)*stoploss)/stoploss;R2=((PRICE_OPEN+ stoploss*Point)*stoploss)/stoploss;
     
     
int start()
  {       int X;       
//----
       for ( int Uy= OrdersTotal ();Uy<=- 1 ;Uy--){
OrderSelect ( Uy,SELECT_BY_POS );
if (OrderSymbol()== Symbol ()&&OrderMagicNumber( )== 1000 ||OrderMagicNumber( )== 2000 &&OrderSymbol()== Symbol ())
{X++;}}  
if (X<= 2 ){
   tiket= OrderSend ( Symbol (), OP_BUYSTOP,  volume*A, price +otstup* Point , Point * 3 , R1, PRICE_OPEN +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_OPEN -takeprofit* Point -otstup* Point , "OP_SELLSTOP" , 2000 ,  expiration, C'0,128,255' );
     Alert ( "OP_SELLSTOP" , GetLastError ( )); 
    }       
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+

예, X는 이 통화 쌍에 대한 주문 수이며 이 특정 EA에서 개설했습니다.

 
Dimka-novitsek :
예, X는 이 통화 쌍에 대한 주문 수이며 이 특정 EA에서 개설했습니다.

이것이 당신이 원하는 것입니다. 사실, 적어도 2개의 오류로 인해 무엇이 있을지 아무도 모릅니다.

- 첫 번째 주기에서 이미 이야기했습니다.

- 맨 처음 에 OrderSelect 기능으로 존재 하지 않는 주문을 선택합니다.


2) OrderSend에서 가격 정상화

 
이해했습니다 감사합니다. 그리고 그건 그렇고, 가격은 거기에서 정수로 보입니다. 나는 그것들을 나누지 않았습니다.
 

- 맨 처음 에 OrderSelect 기능으로 존재 하지 않는 주문을 선택합니다.

그렇다면 일반적으로 이 논리적 zavarot를 등록하는 것이 올바른 방법은 무엇입니까???