[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 605

 
VAM_ 08.06.2010 18:48 편집 | 삭제

소리를 끄는 방법? 하얀 무릎을 꿇었다. 많은 도구 창(33)이 있습니다. 고문이 없습니다. 하나의 매체와 Zup. 그가 어디에서 노래하는지 이해할 수 없습니다. 도와주세요. 서비스에는 이벤트가있었습니다. 이벤트에 대한 십자가는 도움이되지 않습니다. 모든 것이 노래한다, 이 새끼.

테크노


찌르레기는 칠면조에 앉을 수 있습니다)))

코드를 살펴보니 어디에도 경고가 없습니다! 무엇을 할까요?
 
VAM_ :

코드를 살펴보니 어디에도 경고가 없습니다! 무엇을 할까요?

PlaySound() 를 확인하십시오.
 
다른 함수를 호출하고 저장할 때 프로그램 실행 중에 전역 수준에서 설정된 변수에 다른 값을 할당하는 방법은 무엇입니까?

포지션을 부분적으로 청산하기 위해서는 글로벌 수준에서 설정한 Part 변수에 특정 값을 할당하고 부분 오더 청산을 수행하는 함수에 파라미터로 전달해야 합니다. 이 변수는 단순 제수입니다. 즉, 초기값 1에서 로트를 1로 나누고 전체 포지션을 청산합니다. 거래 조건이 변경되면 이 변수는 새로운 값을 얻고 예를 들어 1.5 또는 2와 같을 수 있습니다. 그러면 위치의 로트가 이 숫자로 나누어지고 부분 청산이 수행됩니다. 전달된 매개변수 로 함수를 호출하는 것은 다음과 같습니다.

 // На глобальном уровне
double Part = 1 ;                           // на сколько разделить лот для частичного закрытия 
//..........

void ClosePartPosBySelect( double Part)     // Объявление функции
// ... тру-ля-ля ... тело функции ...
ll=NormalizeLot((OrderLots()/ Part ));       // рассчёт лота внутри функции
// ... дальнейший код ф-ции ...

//--------- Вызов функции частичного закрытия ---------
// Происходит из тела этой функции
void TrailingPositionsTLE( int MAGIC, int CloseMethod, double Part , int LastTrailing)
// таким образом:
if (CloseMethod== 1 )
            ClosePartPosBySelect( Part );

따라서 함수를 호출할 때 ...

TrailingPositionsTLE(561, 1 , 2 , 1 );

... CloseMethod = 1(부분 닫기)을 설정하고 명시적 값 Part = 2 를 지정합니다. 프로그램 중에 설정된 Part 값(예: 2 )이 아니라 초기 값 = 1 글로벌 수준에서 설정됩니다...

어떻게 이기나요??? 감사해요...

 
artmedia70 : 거래 조건이 변경되면 이 변수는 새로운 값을 얻고 1.5 또는 2와 같을 수 있습니다. 그러면 포지션의 로트가 이 숫자로 나누어지고 부분 청산이 수행됩니다.


글쎄, 거래 조건이 변경되면 부품 변수를 변경하십시오. 아니면 다른 Expert Advisor에 그것들이 있습니까? 이 변수는 지속적으로 읽어야 합니다.

정수 초기화()

{

.....

GlobalVariableSet ("부품0", 부품);

.....

}

정수 시작()

{

...

Part=StrToInteger(GlobalVariableGet("Part0"));

...

}

 
Roger :

글쎄, 거래 조건이 변경되면 부품 변수를 변경하십시오. 아니면 다른 Expert Advisor에 그것들이 있습니까? 이 변수는 지속적으로 읽어야 합니다.

정수 초기화()

{

.....

GlobalVariableSet("파트0",파트);

.....

}

정수 시작()

{

...

Part=StrToInteger(GlobalVariableGet("Part0"));

...

}

아니요, 변수는 동일한 EA에 있습니다. 전역 수준에서 설정되어 함수에서 사용할 수 있지만 함수 내부에서 변경된 값은 외부 값으로 반환되지 않습니다. 따라서 함수는 초기에 설정된 값도 볼 수 있습니다. 전역 수준에서 설정하지 않으면 함수가 정의되지 않은 변수에서 저주를 받습니다...
 

변수를 함수에 전달할 때 매개변수를 통해 변수는 값으로 전달됩니다. 즉, 함수 자체에서 변수를 변경해도 덮어쓰기가 발생하지 않습니다.
참조로 전달을 시도하십시오. 이렇게 하려면 매개변수 이름 앞에 "&" 기호를 삽입하십시오.

 void simple( string &s){
//                 ^
//       спец сим. & перед именем переменной задает передачу по ссылке, а не по значению
//
}
 
VAM_ :

코드를 살펴보니 어디에도 경고가 없습니다! 무엇을 할까요?

"이벤트" 탭에서 "허용" 확인란의 선택을 취소합니다.

 

안녕하세요 친애하는 프로들.

나는 두 개의 매도 및 매수 거래를 동시에 여는 고문을 작성하고 싶습니다.

그런 다음, 일정 수의 포인트(lim 매개변수) 후에 손실 주문이 마감되고,

주문 개시 이후 최고가 이하로 가격이 하락할 때 마감되도록 수익성이 있습니다.

(일종의 가상 후행 정지).

지독한 고뇌 속에서 나는 이것을 낳았지만 ... 작동하지 않습니다

Plz 나에게 뭔가를 말해

 int start()
  {
 
  double 
   max, min;                                            
  int b, s;
   if (Bid>max) max=Bid; 
    if (Ask<min) min=Ask;  
       if ( OrdersTotal ()> 0 )
       {                                   
           if ((max-Bid)>=lim* Point ) 
           {                   
          OrderSelect (b,SELECT_BY_TICKET);                                  
          b=OrderClose(OrderTicket(), 0.1 ,Bid, 3 , Blue );
          }
          
          
          if ((Ask-min)>=lim* Point )  
          {         
      OrderSelect (s,SELECT_BY_TICKET); 
      s=OrderClose(OrderTicket(), 0.1 ,Ask, 3 , Red );
         }
}
else
{
  if ( OrdersTotal ()< 1 )
  {
 b= OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 5 , 0 , 0 , "" , 5 , 0 );
      
 s= OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 5 , 0 , 0 , "" , 5 , 0 ); 
    }                           
   }
         return ;

   return ( 0 );
  }
 
artmedia70 :
다른 함수를 호출하고 저장할 때 프로그램 실행 중에 전역 수준에서 설정된 변수에 다른 값을 할당하는 방법은 무엇입니까?

두 가지 방법

1. 값이 변경된 함수에 앰퍼샌드를 추가하고,

예: 무효 함수( 더블 & 파트 ){}

그런 다음 함수 내부의 값을 변경할 때 새 값이 호출 사이트로 반환됩니다.

2. 함수 매개변수 목록에서 변수를 제거합니다. 변수는 전역적으로 설정되므로 매개변수로 전달하지 않고 코드의 어느 곳에서나 값을 변경할 수 있습니다.

하지만 헷갈리지 않게 하려면 1번 옵션이 더 나은데, 변수가 뭔지 생각하지 않기 위해서다. 왜냐하면 하나 이상의 전역으로 정의된 변수가 있을 수 있습니다(하나의 함수 내에서).


추신 글을 보니 이미 답변이 다 되어 있네요.

 
artmedia70 :
, 하지만 함수 내부에서 외부로 변경된 값은 반환되지 않습니다.


함수 자체를 보여줍니다.

ClosePartPosBySelect(이중 파트)가 무효인 경우 다음으로 변경합니다.

무효 ClosePartPosBySelect()