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

 
evillive : 이보다 쉬울 수는 없겠죠?

아마도 그렇게. 글쎄, 나는 당신에게 말했다 - 나는 찻주전자, 찻주전자 ... 여기 맨 윗줄의 이익은 3 자리 숫자로만 포인트로 표시됩니다.


내가 이해하는 한, PipProfit = EURUSD에 대한 USDprofit/lot/Point입니다. 역 견적이 있는 쌍의 경우 시작 가격과 현재 가격의 차이를 가져와 숫자를 곱해야 합니다. Pips = OrderOpenPrice()-Bid*Digits_coefficient; 어디
Digits_coefficient = MathPow(10, Digits);

차이를 취할 필요는 없으며 OrderProfit() 함수가 있습니다.

모스크에 갇히기 위해 다시 통과합시다. 따라서 GBPJPY를 구입하십시오.

1. OrderProfit()은 -15.27 USD = -1228.32 JPY와 같습니다(엔으로 변환하려면 USDJPY 환율을 곱합니다).

2. 이익을 0.1과 동일한 로트로 나눕니다.

3. 결과를 0.01 JPY * 100000 = 1000 JPY에 해당하는 1랏의 핍 가격으로 나눕니다. 우리는 -12.28 포인트를 얻습니다. 그래야 한다.

작은 실수 - 그는 같은 순간에 수치를 취하지 않았지만 바로 그때 엔화가 급격히 강세를 나타내기 시작했기 때문입니다.

XXXYYY에 대한 공식:

핍 = ( USDYYY 또는 1/YYYUSD ) * OrderProfit() / ( OrderLots( ) * 포인트 ).

여기서 Point는 YYY 통화로 1랏의 포인트 가격으로 100000 * MathPow( 10, - Digits )와 같습니다.

 

안녕하세요.

Expert Advisor가 최적화되지 않은 이유는 무엇입니까?

최적화된 매개변수는 하나만 있으며 지표는 표준입니다.

테스트는 잘 진행되고 있습니다.

 
DOCTORS :

말씀해 주시겠어요?

스크립트의 본질은 이것입니다 - 주문의 겹침을 닫습니다... 그러나 걸림돌이 있습니다 - 어떤 이유로 로트 크기가 다른 주문을 닫지 않습니다...

걸림돌이 어디에 있는지 말하지 않습니까?


음, 우선 확인 방향을 다음으로 바꾸십시오.

for(int i=1; i<=OrdersTotal(); i++) // 순서를 통해 루프


for(int i=OrdersTotal() - 1; i>=0; i--) // 순서를 통해 루프


어디에나

 
sting-igor :

왜 일부 전문 고문은 테스터에서 처음에는 잘 작동하지만 둘 이상의 거래를 열지 않습니까? 고문의 이름은 기억나지 않지만 세 명이나 있었다. 내가 뭔가 잘못하고 있는 것은 아닐까? mt4

엉성하게 작성된 Expert Advisor 는 0으로 나눗셈을 수행한 다음 작업을 중단할 수 있습니다. ZeroDevide 오류에 대한 로그를 확인하십시오...
 
ilunga :

음, 우선 확인 방향을 다음으로 바꾸십시오.

for(int i=1; i<=OrdersTotal(); i++) // 순서를 통해 루프


for(int i=OrdersTotal() - 1; i>=0; i++) // 순서를 통해 루프


어디에나


때문에 질문을 제거했습니다. 스크립트가 매우 잘못된 것으로 판명되었습니다 ... 끝내야 할 것이 많습니다 ... 트랜잭션을 0으로 닫고 싶었습니다 .. 여기에는 겹침이 있습니다 ... 도움 주셔서 감사합니다 ... 0을 만드는 방법 중복 - 질문을 위해 게시하겠습니다.
 

Mathemat , 순수한 수의 손익 핍이 필요하면 훨씬 쉽게 계산할 수 있습니다. 나는 어제 썼을 때 잠을 잤습니다 )))

모든 통화 쌍에 적합한 보편적인 공식인 것 같습니다.

 double tickvalue = MarketInfo ( OrderSymbol (),MODE_POINT); //если нужно значение тика для инструмента в окне которого установлен эксперт, то просто используем Point в дальнейшем

Pips = ( OrderOpenPrice ()-Ask)/tickvalue; // order short

Pips = (Bid - OrderOpenPrice ())/tickvalue; // order long

.

 

주님, 도움을 청합니다.

가격이 마지막 x개의 막대에 대한 눈금에 닿았는지 확인하는 기능이 필요합니까?

많이 걷어차지 말라고 합니다. 나는 완전한 찻주전자입니다.

 

1H 전용 Awesome 지표를 다시 작성하는 방법. 4H에 Awesome을 연결했다고 가정해 보겠습니다. 지표가 4H가 아닌 1H와 관련된 데이터를 표시하기를 원합니다.

//---- DataWindow의 이름 및 표시기 하위 창 레이블
IndicatorShortName("AO");
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);

ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);

NULL을 PeriodH1로 변경했지만 도움이 되지 않습니다.

 
flintz :

1H 전용 Awesome 지표를 다시 작성하는 방법. 4H에 Awesome을 연결했다고 가정해 보겠습니다. 지표가 4H가 아닌 1H와 관련된 데이터를 표시하기를 원합니다.

//---- DataWindow의 이름 및 표시기 하위 창 레이블
IndicatorShortName("AO");
SetIndexLabel(1, NULL);
SetIndexLabel(2, NULL);

ExtBuffer0[i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN,i);

NULL을 PeriodH1로 변경했지만 도움이 되지 않습니다.

NULL이 아닌 "0"(NULL 뒤의 다음 매개변수)을 변경합니다.
 
감사해요 !!!