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

 
abolk :
여기를 보십시오: https://docs.mql4.com/en/basis/operations/math
나는 모든 것을 보았다. 내 문제를 해결하는 방법?
 
Zhunko :
그것도 가능합니다.

b는 1과 같지 않습니까?

확인했습니다. 홀로

 
artmedia70 :
예를 들어 플래그를 만듭니다.

TP1의 경우 - bool TP1, TP2의 경우 - bool TP2 등 ...

처음에는 값이 false입니다.

다음 닫기 전에 다음을 확인하십시오.

if (!TP1) {첫 번째 부분의 부분 닫기 코드, 성공적인 닫기 후 쓰기 TP1=true}

if (!TP2) {두 번째 부분을 부분적으로 닫기 위한 코드, 성공적인 닫기 후 쓰기 TP2=true}

...등 모든 부품에 대해...

이런 식으로 플래그는 각 부분이 이미 한 번 닫혔다는 신호를 보냅니다...


고맙습니다! 코드를 변경했습니다... TP0==false가 프로그램 시작 부분에 선언되었습니다.

자세한 내용: 첫 번째 부분이 닫히고 즉시 두 번째 부분이 닫히기 시작합니다 :-(..., 두 번째 경우 오류는 131 입니다 . 로트 크기가 다릅니다.) 그러나 또 다른 뉘앙스는 다음과 같습니다. 첫 번째 부분 " "경고("닫힘", 로트, "로트 구매", 티켓);""는 로그에 기록되지 않습니다. 검증 Ans==true에 도달하지 않습니다. 왜???? 아래는 코드 조각입니다...

미리 감사드립니다!

while(true) // 주문 마감 주기.
{
if (TP0==거짓 && (Cls_B0==true ||Cls_S0==true))

{
LotC=MathRound(Lot/4/Step)*Step;
Alert("Lot-",Lot,"종료 시도 중-",LotC,"Lot Buy ",Ticket,". 응답을 기다리는 중입니다..");

새로 고침(); // 데이터 업데이트
Ans=OrderClose(Ticket,LotC,Bid,5); // TicketClosing 1/3 랏을 구매하시겠습니까?
if (Ans==true) // 알았습니다 :)
{
TP0=참;
Alert("종료",Lot,"Lot Buy",티켓);
부서지다; // 닫기 루프에서 종료
}
if (Fun_Error(GetLastError())==1) // 오류 처리
계속하다; // 재시도
반품; // start()에서 종료
}

 
Sinichka :

친애하는 프로그래머!

도와주세요, 제발. 표시기는 강세 숨겨진 다이버전스를 기반으로 값을 그리고 NONE은 약세 숨겨진 다이버전스를 그립니다.... 오류 4002 - 배열 인덱스가 범위를 벗어났습니다.

모든 것을 수정한 것 같습니다... 저녁 내내 괴로워했습니다... 그리고 부끄럽습니다. 코드가 가장 간단합니다... 하지만 강세 화살표를 그렸지만 약세는 없었습니다... 도와주세요! 어디가 잘못됐어????????????????????????????


알리오나,

vpadcci[], v[], hh[], ss[] 배열에 메모리를 할당해야 합니다. 동적으로 선언되지만 크기는 어디에도 지정되지 않습니다. 동적 배열의 크기는 ArrayResize() 함수에 의해 설정됩니다.

PS 및 SRC 버튼을 사용하여 코드를 붙여넣으십시오.

 
Snaf :
MT5에 대한 질문입니다. 결정하는 방법. 테스터가 작업을 완료했다고? 비주얼 빼고 :)

완료되면 deinit() 함수가 실행됩니다. 따라서 우리가 거기에 도달하면 전문가의 작업이 완료됩니다. 테스터가 작동하는지 확인하려면 IsTesting() 함수를 사용하십시오.


죄송합니다. 질문이 MT5에 관한 것임을 확인했습니다.

OnDeinit() 및 MQL5InfoInteger( MQL5_TESTING)만 제외하면 모든 것이 유사합니다.

 
alsu :

알리오나,

vpadcci[], v[], hh[], ss[] 배열에 메모리를 할당해야 합니다. 동적으로 선언되지만 크기는 어디에도 지정되지 않습니다. 동적 배열의 크기는 ArrayResize() 함수에 의해 설정됩니다.

PS 및 SRC 버튼을 사용하여 코드를 붙여넣으십시오.


답변 정말 감사합니다 한번 볼게요!
 
eddy :

вопрос програмистам: как сделать число после запятой целым?:)

например в числе 1,128 нужно 128, в 1,12 - 12, в 1,2 - 2)

exnern double n= 1 , 12
n-= MathFloor (n);          // 0.12 = 0.1200000..01 или 0.11999999..99
int n2= MathRound (n* 1000 ); // 0.12 > 120 или 119
while (true)                // пока в конце 0 или 9
 if (n2% 10 < 1 )              // n2==хз*10+0
    n2/= 10 ; else           // убираем 0
 if (n2% 10 == 9 )              // n2==хз*10+9
   {n2= MathRound (n2/ 10 );} // округляем 9 (119 > 11.9 > 12)
 else if (n2% 10 > 0 ) break ;
이것이 내가 결정한 방법입니다. 하나 빼기 - 숫자가 0 또는 9로 끝나면 작동하지 않습니다. 그러나 필요하지 않습니다. 계산 기간(4,8,12,16,24,36,48 등)을 입력합니다.
 

표시기 VininI LRMA color.mq4 https://www.mql5.com/en/code/8200의 색상에 변화가 있었다는 것을 올바르게 쓰는 방법을 알려주십시오.

이중 iCustom(string symbol , int timeframe, string name, ..., int mode, int shift)을 사용하는 경우. 나는 그것을 이해할 수 없습니다. iCustom(NULL,0,"VininI_LRMA_color",55,0,1)을 작성했는데 다음에 무엇을 해야 할지 모르겠습니다))

 

라인 값은 표시기 버퍼 1(녹색) 및 2(빨간색)에 있습니다. 차트에 녹색 선이 그려지면 막대 1의 위쪽 변수는 이 선의 값을 가지며 dn=EMPTY_VALUE 변수는 그 반대의 경우도 마찬가지입니다. EMPTY_VALUE 는 버퍼의 빈 값이며 숫자 값은 2147483647입니다.
그런 다음 원하는 대로 이 값을 사용할 수 있습니다.

 double up= iCustom ( NULL , 0 , "VininI LRMA color" ,period,price,Shift, 1 , 1 ); 
double dn= iCustom ( NULL , 0 , "VininI LRMA color" ,period,price,Shift, 2 , 1 ); 
 
Poseidon :
마지막 미결제 주문에 대해 이익 실현이 트리거되면 모든 주문을 마감하는 Expert Advisor를 생성할 수 있습니까?
저는 초보라 어떻게 해야할지 모르겠습니다. 누가 나를 위해 해줄 수 있니?
사유: