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

 
7777877 : 참조로 매개변수 전달에서 매개변수 전달?

다음은 참조로 매개변수를 전달하는 것입니다. 다음과 같은 스크립트를 만드십시오.

 int start(){
   int res = 999 ;
   Print ( "func = " ,func(res), " , res = " ,res);
return ( 0 );
}
//__________________________
int func( int &a){
   a = 10 ;
   return (a* 10 );
}

전문가 탭에 항목이 표시됩니다. 2012.04.08 11:19:35 test EURUSD,M5: func = 100, res = 10

왜 res = 999 를 할당했는지 질문에 답해 보세요. 그리고 로그에 res = 10이 있습니다.

 

라이브러리를 포함하는 방법을 알려주실 수 있습니까? 그것들은 mqh 파일에 존재하지만 컴파일할 때

'strlib.mqh' - 프로그램 파일을 열 수 없습니다.

 
IgorM :

다음은 참조로 매개변수를 전달하는 것입니다. 다음과 같은 스크립트를 만드십시오.

전문가 탭에 항목이 표시됩니다. 2012.04.08 11:19:35 test EURUSD,M5: func = 100, res = 10

왜 res = 999 를 할당했는지 질문에 답해 보세요. 그리고 로그에 res = 10이 있습니다.


글쎄 내 설명은 이렇습니다.

Print 함수에서 사용자 정의 함수 func가 호출됩니다. res=999 매개변수는 func 함수에 전달됩니다. func 함수 자체를 계산할 때 매개변수 a=10이 사용됩니다. 그리고 값 a*10=100은 func 함수 호출로 다시 전달됩니다. 왜냐하면 마지막에 값이 res=10이고 여기 에서 매개변수를 참조로 전달하는 것은 다음을 의미한다고 결론을 내립니다. 해당 유형의 모든 값(이 경우 res=999)을 호출된 함수(이 경우 case, func), 그러나 함수 자체는 해당 값(즉, 이 경우 a=10)으로 계산되며, 이 값은 함수 자체 내에서 초기화됩니다(특정 경우에는 전달된 값과 일치할 수 있음). 호출된 함수로, 즉 이 경우 func에서). 그리고 함수에서 계산된 값(이 경우 func에서)을 함수 호출 문자열로 다시 전달할 때 변수(이 경우 res)는 이미 이전 값과 다른 값을 갖게 됩니다. func 함수를 평가할 때 얻은 것(즉, 이 경우 res=10). 총계: 계산된 함수 내에서 참조로 함수에 매개변수를 전달할 때 매개변수 값이 변경될 수 있으며 계산된 값을 함수 호출 문자열로 반환한 후 이 매개변수는 이미 변경됨(특정 경우에는 동일) 호출된 함수의 평가를 받은 값입니다.

제가 제대로 이해한건가요?

 
7777877 : 계산된 함수 내에서 참조 로 함수에 매개변수를 전달하면 매개변수 값이 변경될 수 있음
네 정확히
 
IgorM :
네 정확히

Grosse danke 쇤!!!
 

알려주세요, 조언자가 내가 지정한 시간에 손절매 값을 변경하고 그가 장난을 시작하도록 주문을 수정하고 싶습니다.

여기 내 코드가 있습니다

외부 int tp = 350; // 이익 값을 취합니다.
외부 int sl = 400; // 정지 손실 값

인트 티켓;

정수 시작()
{
//----
if (OrdersTotal()==0 && Hour( )==2 && Minute( )==0) // 주문은 터미널 시간 오후 2시에 열립니다.
ticket=OrderSend(Symbol(),OP_SELL,1,Bid,0,Ask+sl*Point,Ask-tp*Point,"",123,0,Red);

//----

if (OrdersTotal()==1 && Hour( )==3 && Minute( )==0) // 여기에서 선택한 티켓으로 주문 수정이 3:00 AM에 이루어져야 한다는 조건을 설정합니다. 단말기. 시각.

{
OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES); // 지정된 주문 선택, 여기에서 거래
OrderModify(티켓, OrderOpenPrice(), Ask+300*Point, OrderTakeProfit(),0,Blue); // 오픈 포지션 가격에서 선택한 티켓으로 주문을 수정하고 SL 값을 포인트로 변경하고 TP는 그대로 둡니다.


}
//--

}


테스트할 때 문제가 발생합니다. Expert Advisor는 3시간 00분에서 359분까지 시간 동안 많은 쓸모없는 수정을 시작합니다. 왜요? 코드에서 잘못된 것은 무엇입니까?

 
oleg_felix :

알려주세요, 조언자가 내가 지정한 시간에 손절매 값을 변경하고 그가 장난을 시작하도록 주문을 수정하고 싶습니다.

여기 내 코드가 있습니다

외부 int tp = 350; // 이익 값을 취합니다.
외부 int sl = 400; // 정지 손실 값

인트 티켓;

정수 시작()
{
//----
if (OrdersTotal()==0 && Hour( )==2 && Minute( )==0) // 주문은 터미널 시간 오후 2시에 열립니다.
ticket=OrderSend(Symbol(),OP_SELL,1,Bid,0,Ask+sl*Point,Ask-tp*Point,"",123,0,Red);

//----

if (OrdersTotal()==1 && Hour( )==3 && Minute( )==0) // 여기에서 선택한 티켓으로 주문 수정이 3:00 AM에 이루어져야 한다는 조건을 설정합니다. 단말기. 시각.

{
OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES); // 지정된 주문 선택, 여기에서 거래
OrderModify(티켓, OrderOpenPrice(), Ask+300*Point, OrderTakeProfit(),0,Blue); // 선택한 티켓으로 주문을 수정하고 오픈 포지션의 가격에서 SL 값을 포인트로 변경하고 TP를 변경하지 않은 상태로 둡니다.


}
//--

}


테스트할 때 문제가 발생합니다. Expert Advisor는 3시간 00분에서 359분까지 시간 동안 많은 쓸모없는 수정을 시작합니다. 왜요? 코드에서 잘못된 것은 무엇입니까?



왜 시간에..... 이익으로!!

 

스탑과 이익을 동시에 할 수 없지만 수정을 통해 해야 하는 ECN 계정에서 오픈 오더를 수정하는 올바른 함수를 작성하는 방법.

일반적으로 문제는 문제가 있다는 것입니다. 오류를 찾도록 도와주세요.

외부 int tp = 350; // 이익 값을 취합니다.
외부 int sl = 400; // 정지 손실 값

인트 티켓;
정수 시작()
{
//----
if (OrdersTotal()==0 && Close [1]< Open [1] && High [ 1 ]< Bid ) )==0) // 조건에 따라 주문이 열립니다.
티켓=OrderSend(Symbol(),OP_SELL,1,Bid,0,0,0t,"",123,0,Red);
//----
if (OrdersTotal()==1 ) // 여기에서는 하나의 주문으로 주문 수정을 선택하는 조건을 설정합니다.
{
OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES); // 지정된 주문 선택, 여기에서 거래
OrderModify(티켓, OrderOpenPrice(), Ask+sl*Point,Ask-tp*Point,0,Blue); // 오픈 포지션 가격에서 선택한 티켓으로 주문을 수정하고 SL 값을 포인트로 변경하고 TP는 그대로 둡니다.
}
}

 
oDin48 :
  • 얘들 아, 도서관을 연결하는 방법? EA를 컴파일하려고 할 때

  • 'strlib.mqh' - 프로그램 파일을 열 수 없습니다.

그리고 다음 라인을 찾으세요.
 #include <strlib.mgh>

다음으로 바꿉니다.

 #include <stdlib.mgh>
 
7777877 :

사람들이여, 접근 가능한 형식으로 누군가에게 참조로 매개변수를 전달하는 것이 무엇인지 설명하십시오. 설명서를 읽어봤는데 거기서서야 이게 가능하다는 걸 알게 되었고, 변수를 식별한 후에는 & 수식어를 넣어야 한다는 것을 깨달았습니다. 설명이 설명이 포함된 작은 프로그램과 함께 제공되면 좋을 것입니다... 참조로 매개변수를 전달하는 것과 매개변수를 전달하는 것의 일반적인 차이점은 무엇입니까?

참조로 매개변수를 전달하는 일반적인 의미는 변수 자체가 아니라 해당 주소를 매개변수로 전달하는 것입니다. 그렇지 않으면 변수의 복사본이 매개변수에 전달됩니다.