묻다! - 페이지 64

 
ryanklefas:
normalizeDouble 기능도 도움이 될 것이라고 생각합니다. MathFloor 및 MathCeiling 함수를 사용하여 동일한 작업을 수행하는 코드도 보았습니다.

따라서 귀하의 말은 계산이 아래 표시된 대로 "변수 시작" 섹션에서 코딩한 방식으로 작동해야 한다는 것입니다.

이중 LotSize = NormalizeDouble(Lot_Size_Ratio*((AccountBalance()/1000)), 3);

그렇다면 다음을 설정할 때 내 문제가 다른 곳에 있을 수 있습니다.

extern bool LotSizeManager = True;

EA는 거래를 실행하지 않습니다. false로 설정하면 거래가 실행 됩니다. 계산에 문제가 있기 때문에 이 값이 True일 때 거래를 실행하지 않는다고 가정합니다.

 
waaustin:
이중 LotSize = NormalizeDouble(Lot_Size_Ratio*((AccountBalance()/1000)), 3);

이중 LotSize = NormalizeDouble(Lot_Size_Ratio*((AccountBalance()/1000)), 1); // 0: fulllot, 1: minilot, 2: microlot, 3: 사용하지 않음

 
Michel:
이중 LotSize = NormalizeDouble(Lot_Size_Ratio*((AccountBalance()/1000)), 1); // 0: fulllot, 1: minilot, 2: microlot, 3: 사용하지 않음

따라서 귀하의 말은 내가 lotsize를 원하는 정확도에 달려 있다는 것입니다. 따라서 0.75랏과 같은 마이크로랏 정확도를 원하면 값 2를 사용합니다.

 
waaustin:
따라서 귀하의 말은 내가 lotsize를 원하는 정확도에 달려 있다는 것입니다. 따라서 0.75랏과 같은 마이크로랏 정확도를 원하면 값 2를 사용합니다.

예, 당신은 그것을 얻었다!

그러나 귀하의 브로커와 귀하의 계정 유형에 마이크로랏(소수점 2자리)이 적합한지 확인하십시오.

IBFX가 미니 계정과 어떻게 작동하는지 잘 모르겠습니다. 즉, 미니 계정의 마이크로랏도 미니랏으로 명명되고 소수점 이하 1개만 있는 경우입니다. IBFX를 사용하는 사람이 여기에 답할 수 있습니까?

그럼에도 불구하고 가장 좋은 방법은 브로커에게 문의하는 것입니다.

 
Michel:
예, 당신은 그것을 얻었다!

그러나 귀하의 브로커와 귀하의 계정 유형에 마이크로랏(소수점 2자리)이 적합한지 확인하십시오.

IBFX가 미니 계정과 어떻게 작동하는지 잘 모르겠습니다. 즉, 미니 계정의 마이크로랏도 미니랏으로 명명되고 소수점 이하 1개만 있는 경우입니다. IBFX를 사용하는 사람이 여기에 답할 수 있습니까?

그럼에도 불구하고 가장 좋은 방법은 브로커에게 문의하는 것입니다.

정말 감사합니다. LotSizing 코드가 제대로 작동하는 것 같습니다. 그러나 어딘가에 코드에 다른 버그가 있는 것 같으며 알아낼 수 없습니다.

나는 EA를 두 개 이상의 쌍에 로드했으며 한 쌍에만 거래를 배치합니다. LotSizing 코드는 잘 작동합니다. 그러나 다른 통화 쌍 에 대해서는 더 이상 거래를 하지 않습니다. 그러나 다음 값을 설정할 때:

extern bool LotSizeManager = False;

EA는 내가 EA에 연결한 모든 통화 쌍에 대해 거래를 합니다.

 
waaustin:
정말 감사합니다. LotSizing 코드가 제대로 작동하는 것 같습니다. 그러나 어딘가에 코드에 다른 버그가 있는 것 같으며 알아낼 수 없습니다.

나는 EA를 두 개 이상의 쌍에 로드했으며 한 쌍에만 거래를 배치합니다. LotSizing 코드는 잘 작동합니다. 그러나 다른 통화 쌍에 대해 더 이상 거래를 하지 않습니다. 그러나 다음 값을 설정할 때:

extern bool LotSizeManager = False;

EA는 내가 EA에 연결한 모든 통화 쌍에 대해 거래를 합니다.

괜찮아요. 문제가 어디에 있는지 알아냈습니다! 도와 주셔서 감사합니다.

 

문제점: 사용자가 정의한 시간에 EA가 보류 중인 주문 을 하려고 시도하지만 현재 가격은 브로커가 주문을 수락할 수 있도록 마감됩니다.

질문: 주문을 수락할 때까지 매분 1분 막대의 iOpen을 확인하는 루프를 어떻게 코딩합니까? 주문을 입력할 수 있을 때까지 1분마다 수표를 통합하는 방법을 모르겠습니다. 가격이 진입에 방해가 되지 않으면 아무 일도 일어나지 않기 때문에 현재 코드가 몇 분 후에 찾고 있는 것을 잊어버린 것 같습니다.

나는 그 일부가 다음과 같다고 생각한다.

더블 Open_Price_Every_Minute;

Open_Price_Every_Minute = iOpen(NULL,PERIOD_M1,0);

Open_Price_Every_Minute = NormalizeDouble(Open_Price_Every_Minute, 자릿수);

if (Allow_LimitOrder_for_Entry_A==false)

{

OrderSend(Symbol(), OP_BUYSTOP, Lots, LA, Slippage, LASL, LATP, "", Magic, 0, FireBrick);

OrderSend(Symbol(), OP_SELLSTOP, Lots, SA, Slippage, SASL, SATP, "", Magic, 0, FireBrick);

}

항상 그렇듯이 도움과 시간을 내주셔서 감사합니다.

제임스

 
proverbs:
가격이 진입에 방해가 되지 않으면 아무 일도 일어나지 않기 때문에 현재 코드가 몇 분 후에 찾고 있는 것을 잊어버린 것 같습니다.

나는 당신이 EA에서 무한정 실행되는 루프를 갖고 싶어할 것이라고 생각하지 않습니다. 한 번도 시도해 본 적이 없지만 좋을 것 같지는 않습니다. EA가 수행한 작업을 "기억"하도록 하려면 정적 변수(주 함수 외부에서 선언된 변수) 또는 MT4 전역 변수로 기억해야 하는 모든 데이터를 저장합니다.

 
ryanklefas:
나는 당신이 EA에서 무한정 실행되는 루프를 갖고 싶어할 것이라고 생각하지 않습니다. 한 번도 시도해 본 적이 없지만 좋을 것 같지는 않습니다. EA가 수행한 작업을 "기억"하도록 하려면 정적 변수(주 함수 외부에서 선언된 변수) 또는 MT4 전역 변수로 기억해야 하는 모든 데이터를 저장하십시오.

여기요!

루프에 ea 처리를 넣는 것은 좋은 방법입니다. 다음을 읽어보세요.

https://www.mql5.com/en/articles/1462

올바른 방법으로 하기만 하면 됩니다

 

칼렌조,

기사 주셔서 감사합니다. 제가 요청한 것보다 더 많이 배우려고 하는 것 같습니다.