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

 

더 정확하게는, 그는 개방 위치 와 로그 138의 오류를 완전히 중단했습니다.

 

그리고 여전히 이 팁에 감사드립니다 - 코드를 약간 수정했고 실제로 아래 코드 줄 없이 조언자가 각 틱 에서 포즈를 열었습니다.

그리고 내가 코드 줄을 삽입한 후 = 고문은 내가 계획한 대로 조건에 따라 정확히 한 위치를 열기 시작했습니다.

 int start()
   {
// начало открытия ордеров 
   if ( OrdersTotal ()> 0 ) return ( 0 );
 
first_may :

중소기업 - 무엇입니까?

o_O - CME
 
BeerGod :
제가 알기로는 DC의 음모여서 무엇이든 테스트하는 것이 문제였습니다.
DC는 과거 데이터 서버에서 다운로드한 견적과 관련이 없습니다.
 
DC는 과거 데이터 서버에서 다운로드한 견적과 관련이 없습니다.

글쎄, 마치 모든 것이 단일 서버에서 "이론적으로"로드되는 것처럼 ... 또한 현재 계정의 레버리지가 테스터에게 어떤 식 으로든 영향을 미치지 않는다고 생각했습니다 ... 그러나 일부 DC의 경우 이러한 스트리트 매직이 꽤 걸립니다. 장소 ... 어쩌면 일부 DC는 따옴표로 놀 수 있습니까? (이것은 모두에게 문제가 될 수 있지만)
 
alex12 :

그리고 여전히 이 팁에 감사드립니다 - 코드를 약간 수정했고 실제로 아래 코드 줄 없이 조언자가 각 틱에서 포즈를 열었습니다.

그리고 내가 코드 줄을 삽입한 후 = 고문은 내가 계획한 대로 조건에 따라 정확히 한 위치를 열기 시작했습니다.

글쎄요.. 계획에 순응하는 것뿐입니다. 이러한 구성은 기호, 주문 유형 또는 해당 마법을 고려하지 않습니다. 즉, 다른 기호에 대한 다른 전문가 고문이 계정에서 작동하면 이 계정은 작동하지 않습니다. 결국에는 이미 위치가 있습니다. 이 어드바이저만 작동하지만 매도 포지션이 있지만 매수를 열어야 하는 경우 - 포지션이 열리지 않습니다 - 포지션이 이미 있고 여전히 많은 자갈을 찾을 수 있습니다. 예를 들어 수동으로 포지션을 개설한 경우 또는 지연을 설정하십시오. 그게 다야, 고문이 일어났습니다 ...

당신은 구체적으로 확인해야 합니다: 이런 종류의 마법 같은 종류의 심볼에 대한 열린 위치 가 이미 있습니까? 그렇지 않은 경우 엽니다.

 
artmedia70 :

글쎄요.. 계획에 순응하는 것뿐입니다. 이러한 구성은 기호, 주문 유형 또는 해당 마법을 고려하지 않습니다. 즉, 다른 기호에 대한 다른 전문가 고문이 계정에서 작동하면 이 계정은 작동하지 않습니다. 결국에는 이미 위치가 있습니다. 이 어드바이저만 작동하지만 매도 포지션이 있지만 매수를 열어야 하는 경우 - 포지션이 열리지 않습니다 - 포지션이 이미 있고 여전히 많은 자갈을 찾을 수 있습니다. 예를 들어 수동으로 포지션을 개설한 경우 또는 지연을 설정하십시오. 그게 다야, 고문이 일어났습니다 ...

당신은 구체적으로 확인해야 합니다: 이런 종류의 마법 같은 종류의 심볼에 대한 열린 위치가 이미 있습니까? 그렇지 않은 경우 엽니다.

감사합니다. 네, 맞습니다. 왜냐하면 이 어드바이저 는 움직임의 지속을 위해서만 매수를 시작하고
매수 포지션이 테이크에 의해 닫힌 후에만. 예를 들어 매수 포지션이 열려 있고 가격이
주어진 수준에서 구매를 위한 하나 이상의 포즈가 열리지 않습니다(TS 조건에 따라 열렸어야 함).
보내기 주문의 라인 - 가격 섹션, 나는 특정 가격을 등록했습니다 - 일반적으로 아래 코드를 참조하십시오.
내 앞에있는 작업은 조언자 =에 올바른 코드를 입력하여 구매 포즈를 연 후,
가격이 미리 결정된 수준으로 떨어지면 다른 구매 위치를 엽니다.
가격이 코드에 지정된 수준을 넘지 않았습니다. 금액에 관계없이 항상 구매 포지션을 엽니다.

현재 열린 자리가 있습니다.

 extern double Lot= 1 ;

int g= 20 ; //тейкпрофит

double price[ 10 ];   // Заданный уровень 

//-----------------------
 
int init()
  {
  
double price[ 10 ];   // объявляем массив из 5 элементов  
           
price[ 0 ] = 1.2100 ; // обращаемся к первому элементу массива и 
                   // присваиваем ему цену. Обратите внимание 
                   // на то, что индекс первого элемента 
                   // начинается с 0. Это важная особенность,
                   // к которой нужно привыкнуть.   
 
price[ 1 ] = 1.2200 ;   // обращаемся ко второму элементу 
price[ 2 ] = 1.2300 ;   // и так далее 
price[ 3 ] = 1.2400 ; 
price[ 4 ] = 1.2500 ;
price[ 5 ] = 1.2600 ; 
price[ 6 ] = 1.2700 ;  
price[ 7 ] = 1.2800 ; 
price[ 8 ] = 1.2900 ;
price[ 9 ] = 1.3000 ;  

   return ( 0 );
  }
//---------------
int start()
   {
// начало открытия ордеров 
   if ( OrdersTotal ()> 0 ) return ( 0 );
   
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==False) //проверка наличия откр.поз
   price[ 0 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2100 , 10 , 0 ,Ask+g* Point , "My order #" , 11 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 1 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2200 , 10 , 0 ,Ask+g* Point , "My order #" , 12 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 2 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2300 , 10 , 0 ,Ask+g* Point , "My order #" , 13 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 3 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2400 , 10 , 0 ,Ask+g* Point , "My order #" , 14 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 4 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2500 , 10 , 0 ,Ask+g* Point , "My order #" , 15 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 5 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2600 , 10 , 0 ,Ask+g* Point , "My order #" , 16 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 6 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2700 , 10 , 0 ,Ask+g* Point , "My order #" , 17 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 7 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2800 , 10 , 0 ,Ask+g* Point , "My order #" , 18 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 8 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.2900 , 10 , 0 ,Ask+g* Point , "My order #" , 19 );
   }
   if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   price[ 9 ]=Ask;
   {
   OrderSend ( Symbol (),OP_BUY,Lot, 1.3000 , 10 , 0 ,Ask+g* Point , "My order #" , 20 );
   }
       return ( 0 );
  }
//+------------------------------------------------------------------+
 
안녕하세요. 코드를 최적화하고 싶습니다. 표시기에 3개의 버퍼를 추가했습니다. 그런 다음 신호에 대한 긴 검색, 먼저 MA1[]에서 검색한 다음 MA2[] 및 MA3[]에서 검색합니다. 거의 단조로운 코드가 많이 나타납니다. 차이점은 계산이 수행되는 버퍼 이름의 숫자에만 있습니다. 이 일을 포장하는 것이 가능합니까?
 
alex12 :
예, 이것은 사실입니다. 왜냐하면 이 어드바이저는 움직임의 지속에 대해서만 매수를 시작하고
테이크 바이 바이 포즈를 닫은 후에 만 ....
여는 중괄호 {는 price[...]=Ask 앞에 있어야 합니다. (아래 참조). if 연산자에 대해 자세히 알아보세요. if 바로 뒤에 대괄호가 없으면 하나의 작업만 처리합니다(가격[...]=Ask;가 있음). 여러 작업이 필요한 경우 바로 뒤에 {...}로 묶어야 합니다. 만약.
 if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==False) //проверка наличия откр.поз
   { 
      price[ 0 ]=Ask;
       OrderSend ( Symbol (),OP_BUY,Lot, 1.2100 , 10 , 0 ,Ask+g* Point , "My order #" , 11 );
   }
if ( OrderSelect ( 0 ,SELECT_BY_POS,MODE_TRADES)==True) //проверка наличия откр.поз
   {
      price[ 1 ]=Ask;
       OrderSend ( Symbol (),OP_BUY,Lot, 1.2200 , 10 , 0 ,Ask+g* Point , "My order #" , 12 );
   }
 

안녕하세요.

2009년 이전에 EURUSD m5/m15 에 대한 기록이 필요합니다. 공유할 수 있는 사람이 있습니까? (즉, Expert Advisors를 디버그하는 곳).

나는 매우 감사하게 될 것입니다.