MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1250

 
Artyom Trishkin :

나는 이해하지 못했다 - 나는 불행히도 프롬프트하지 않을 것입니다.

설명을하겠습니다. 이것이 의미가 있기를 바랍니다.

다음은 설명입니다.

저는 MT5에서 EURUSD와 AUDJPY를 거래합니다. 둘 다 MT5 대시보드에 표시된 것처럼 여유 여유가 있습니다. 이미지를 공유하겠습니다.

EURUSD의 첫 거래:

많이 매도 = 1. 마진 = 235.31.

저는 현재 AUDJPY로 거래하고 있습니다:

나는 많이 = 1로 판매했습니다. 나는 마진 = 144.24를 취했습니다.

그리고 ToolBox에 표시된 총 여백 = 379.55입니다.

툴바는 보시다시피 EURUSD 및 AUDJPY 기호가 사용하는 총 마진을 보여줍니다.

이제 내 질문으로 돌아가겠습니다.

EURUSD가 사용하는 총 마진의 마진을 알고 싶습니다. 나는 이것에 대한 계산을받지 않습니다. 나는 답이 235.31이어야 한다는 것을 알고 있다.

그러나 OrderCalcMargin()을 사용하면 다른 답변을 얻습니다. 때로는 함수가 235.23을 반환하고 때로는 235.01을 반환합니다. 그러나 이것은 잘못된 대답입니다. 특정 기호에서 사용된 여백을 계산하는 방법을 알고 싶습니다. 제 예에서 EURSD 또는 AUDJPY에서 사용하는 마진을 계산하는 방법을 알려주십시오.

메모:

OrderCalcMargin() 응답은 때때로 EURUSD에 대한 정답을 제공합니다. 그러나 AUDJPY에 대한 마진을 계산하려면 항상 다릅니다.

이제 이해가 되면 알려주세요.

이 질문이 있어서 포럼의 모든 사람에게 설명하려고 했지만 아무도 이해할 수 없었습니다. 이것은 내가 다시 시도하는 것입니다.

그래도 이해가 되지 않는다면 다시 시도하겠습니다.

@ Artyom Trishkin 이 알려줍니다. 나는 당신이 나에게 해결책을 줄 것으로 기대하고 있습니다.

 
jaffer wilson :

설명을하겠습니다. 이것이 의미가 있기를 바랍니다.

다음은 설명입니다.

저는 MT5에서 EURUSD와 AUDJPY를 거래합니다. 둘 다 MT5 대시보드에 표시된 것처럼 여유 여유가 있습니다. 이미지를 공유하겠습니다.

EURUSD의 첫 거래:

많이 매도 = 1. 마진 = 235.31.

저는 현재 AUDJPY로 거래하고 있습니다:

나는 많이 = 1로 판매했습니다. 나는 마진 = 144.24를 취했습니다.

그리고 ToolBox에 표시된 총 여백 = 379.55입니다.

보시다시피 도구 모음은 EURUSD 및 AUDJPY 기호가 사용하는 총 마진을 보여줍니다.

이제 내 질문으로 돌아가겠습니다.

EURUSD가 사용하는 총 마진의 마진을 알고 싶습니다. 나는 이것에 대한 계산을받지 않습니다. 나는 답이 235.31이어야 한다는 것을 알고 있다.

그러나 OrderCalcMargin()을 사용하면 다른 답변을 얻습니다. 때로는 함수가 235.23을 반환하고 때로는 235.01을 반환합니다. 그러나 이것은 잘못된 대답입니다. 특정 기호에서 사용된 여백을 계산하는 방법을 알고 싶습니다. 제 예에서 EURSD 또는 AUDJPY에서 사용하는 마진을 계산하는 방법을 알려주십시오.

메모:

OrderCalcMargin() 응답은 때때로 EURUSD에 대한 정답을 제공합니다. 그러나 AUDJPY에 대한 마진을 계산하려면 항상 다릅니다.

이제 이해가 된다면 알려주세요.

이 질문이 있어서 포럼의 모든 사람에게 설명하려고 했지만 아무도 이해할 수 없었습니다. 이것은 내가 다시 시도하는 것입니다.

그래도 이해가 되지 않는다면 다시 시도하겠습니다.

@ Artyom Trishkin 이 알려줍니다. 나는 당신이 나에게 해결책을 줄 것으로 기대하고 있습니다.

귀하의 경우 계산에 매우 중요한 값:

  1. 계정은 어떤 통화로
  2. 포지션 개설 당시 환율은 얼마였나요?

예를 들어 AUDUSD 및 USDJPY는 AUDJPY 마진 계산에 포함됩니다. AUDJPY 포지션을 열었을 때 이 통화의 환율은 얼마였습니까? 아무도 추측하지 못할 것입니다. 현재 마진을 통해서만 계산을 시도할 수 있습니다. 이것은 내가 당신에게 링크를 준 주제에서 언급되었습니다. 그러나 솔직히 말해서 이것에 대해 거의 언급되지 않았지만 코드에는 무언가가 있습니다.

다음 순간마다 이 비율이 변경되므로 다른 마진 값을 얻게 됩니다. 현재 마진과 포지션의 개시 가격의 비율을 계산하고 이 비율을 오픈 포지션의 마진을 계산할 때 적용합니다. 우리는 실험해야 합니다. 정확한 계산 알고리즘은 기억나지 않습니다.

그러나 기성품 솔루션을 제공하는 사람은 거의 없습니다.

 
Alexey Viktorov :

귀하의 경우 계산에 매우 중요한 값:

  1. 계정은 어떤 통화로
  2. 포지션 개설 당시 환율은 얼마였나요?

예를 들어 AUDUSD 및 USDJPY는 AUDJPY 마진 계산에 포함됩니다. AUDJPY 포지션을 열었을 때 이 통화의 환율은 얼마였습니까? 아무도 추측하지 못할 것입니다. 현재 마진을 통해서만 계산을 시도할 수 있습니다. 이것은 내가 당신에게 링크를 준 주제에서 언급되었습니다. 그러나 솔직히 말해서 이것에 대해 거의 언급되지 않았지만 코드에는 무언가가 있습니다.

다음 순간마다 이 비율이 변경되므로 다른 마진 값을 얻게 됩니다. 현재 마진과 포지션의 개시 가격의 비율을 계산하고 이 비율을 오픈 포지션의 마진을 계산할 때 적용합니다. 우리는 실험해야 합니다. 정확한 계산 알고리즘은 기억나지 않습니다.

그러나 기성품 솔루션을 제공하는 사람은 거의 없습니다.

네, 이해합니다. 그러나 MT5 ToolBox는 여백을 변경하지 않고 정확하게 계산하는 것을 알 수 있습니다. 그렇다면 MT5 ToolBox는 어떤 로직을 사용합니까? 이것에 대해 좀 설명해 주시겠습니까?

 

문제는 함수의 인수를 통해 다양한 변수에 값을 할당하는 방법입니다. 하나의 인수가 있으면 반환 되어 값을 할당 할 수 있으며 2이면 어떻게 해야 합니까?

 int x,x1,x2,x3= 1 ,x4,x5;
void OnStart()
{
x= 2 ;
F(x,x1,x2);
Print ( "x1= " ,x1, " x2= " ,x2);
x= 5 ;
F(x,x4,x5);
Print ( "x4= " ,x4, " x5= " ,x5);
return ;
}

int F( int ArgX, int ArgX1, int ArgX2)
{
ArgX1=ArgX + x3;
ArgX2=ArgX - x3;
return ArgX1;
}

//результат
2020.09 . 09 15 : 10 : 10.561 TestS EURUSD,H1: x4= 0 x5= 0
2020.09 . 09 15 : 10 : 10.561 TestS EURUSD,H1: x1= 0 x2= 0
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Побитовые операции производятся только с целыми числами. При выполнении операции логический сдвиг представления y вправо/влево на x бит используются младшие 5 двоичных разрядов значения x, старшие разряды отбрасываются, то есть сдвиг производится на 0-31 бит.
 

Valery, 아마도 다음과 같이 작동할 것입니다.

 void F( int &ArgX, int &ArgX1, int &ArgX2)
 
Aleksei Stepanenko :

Valery, 아마도 다음과 같이 작동할 것입니다.

내가 틀리지 않은 경우 정확히, 링크.

2020.09.09 15:18:33.572 테스트 EURUSD,H1: x4= 6x5= 4

2020.09.09 15:18:33.572 테스트 EURUSD,H1: x1= 3x2= 1

감사해요)))


 
정확히! 참조로 전달합니다.
 
Valeriy Yastremskiy :

문제는 함수의 인수를 통해 다양한 변수에 값을 할당하는 방법입니다. 하나의 인수가 있으면 반환 되어 값을 할당 할 수 있으며 2이면 어떻게 해야 합니까?

이게 뭔가요?

 void start()

옛날 옛적에 ... 매머드가 먹었습니다. 그리고 그들은 그것을 입었습니다. 그뿐인 것 같은데?

 
Artyom Trishkin :

이게 뭔가요?

옛날 옛적에 ... 매머드가 먹었습니다. 그리고 그들은 그것을 입었습니다. 그뿐인 것 같은데?

엄밀히 판단하지 말고 수동으로 스크립트를 작성했습니다. 엄격한 검사는 이전 기능을 놓칩니다. 물론 그렇게 쓰지는 않습니다. 또한 생성자가 있습니다.

수정)
 
동료 여러분, 좋은 하루 되세요. 일반적으로 서로 다른 마법을 가진 5개의 로봇이 기호로 거래하고, 새로운 바의 시가로 공개 시장 포지션을 취하는 것은 모두 동일한 진입 조건을 가지고 있습니다. 출구가 다릅니다.
또한 다음 막대가 아닌 최소 노동 비용으로 새로운 시장 위치를 여는 알고리즘을 구성하는 방법 - 그들은 M1에서 거래하지만 연속적으로 다른 것, 즉 1m1에서 열 수 있는 첫 번째 사람, 두 번째 m1에서 열 수 있는 두 번째 사람, 계속해서 최대 5개.
저것들. 질문은 옵션으로 표준 함수의 Minutes()와 후속 비교를 위해 시장 포지션의 개시 시간에서 1분을 추출하는 방법으로 요약됩니다. 그리고 이 순간에 이미 시장 포지션이 있다면 ()를 반환합니다.