초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 97

 
Vladon :

아이디어는 코드가 아니라 귀하의 것입니다. 코드는 프로그래머가 작성한 것이지 귀하가 작성한 것이 아니라 귀하가 TK를 작성했습니다.

상상해보십시오 - Windows 사용자는 터무니없는 것이 아니라 오픈 소스를 요구합니까?

내가 이해하는 한, 전문가들이 작성한 코드는 MetaQuotes 회사의 것입니까, 아니면 귀하의 개인적 소유입니까?

그리고 여기서 Windows는 먼저 사용자에게 요구할 권리가 없습니다. 이 제품은 매크로 소프트웨어에 속합니다. 여기서는 조금 다르게 말해야 합니다. 매크로 소프트웨어는 해당 제품을 작성한 프로그래머에게 제품의 오픈 소스 코드를 요청하기 시작하고 손가락을 구부리고 주지 않기 시작할 것입니다.

 
Vladon :

AAA :-=) 그래서 소스는 방어 전에 여전히 거기에 있습니까? 그러면 또 무엇을 원하십니까? 당신은 또한 아무도 당신에게 보호된 Expert Advisor의 오픈 소스 코드를 주지 않을 것이라는 말을 들었고 나도 그렇게 하지 않을 것입니다. 그리고 요구사항이 있었다면    완료 후 수요, 제품의 소스.

나는 그 임무를 거부할 것이다.

그럼 뭐가 더 필요할까요? 보호 이전에 소스 코드가 있다는 것은 보호가 있는 어드바이저와 동일하다는 의미입니다. 동일하게 작동해야 합니다.

Expert Advisor의 작업 중 개선이 이루어지고, 다양한 기능이 추가되었으며, 이러한 개선으로 현재는 공개 코드가 없습니다.
 
ComplexFX :
Expert Advisor의 작업 중 개선이 이루어지고, 다양한 기능이 추가되었으며, 이러한 개선으로 현재는 공개 코드가 없습니다.

그렇다면 진실은 당신 편이라고 생각합니다.

내가 이해하는 한, 전문가들이 작성한 코드는 MetaQuotes 회사의 것입니까, 아니면 귀하의 개인적 소유입니까?

내가 코드를 작성하면 개인적으로 나에게. MetaQuotes는 프로그래밍 언어를 소유하고 있습니다.

모든 것이 정직합니다.

 
Expert Advisor에서 미결 주문을 마감하는 방법을 알려주실 수 있습니까? 포지션이 손절매 또는 이익실현 방법이 명확합니다. 그리고 어떻게 수동으로 합니까?
 
pogeon :
Expert Advisor에서 미결 주문을 마감하는 방법을 알려주실 수 있습니까? 포지션이 손절매 또는 이익실현 방법이 명확합니다. 그리고 어떻게 수동으로 합니까?
mql5에서 오픈 포지션은 반대 주문으로 마감되며, 총 거래량은 청산되는 포지션의 거래량과 같습니다.
 
progeon :
Expert Advisor에서 미결 주문을 마감하는 방법을 알려주실 수 있습니까? 포지션이 손절매 또는 이익실현 방법이 명확합니다. 그리고 어떻게 수동으로 합니까?

또는 기능이 있는 CTrade 클래스를 사용하십시오.

trade.PositionClose( _Symbol );

이 같은

https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/ctrade/ctradepositionclose

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / PositionClose
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / PositionClose
  • www.mql5.com
Стандартная библиотека / Торговые классы / CTrade / PositionClose - Документация по MQL5
 
Yedelkin : mql5에서 오픈 포지션은 반대 주문으로 마감되며, 총 거래량은 클로즈드 포지션의 거래량과 같습니다.

lazarev-dm : 또는 기능이 있는 CTrade 클래스를 사용하십시오.

CTrade 클래스 의 PositionClose() 메서드도 반대 순서 로 포지션을 마감합니다 .

 

친애하는 프로그래머 여러분, 다음과 같은 상황에 대한 해결 방법이나 이유를 알려주세요. 최근에 MQL5 작업을 하고 있는데 아직 경험이 부족합니다.

클래스를 사용하지 않고 일반 Expert Advisor에서 다중 통화 Expert Advisor를 만들려고했습니다. 불행히도 다중 통화에 대한 자세한 기사를 찾지 못했습니다.

프로그램의 다음 부분을 작성했습니다.

정수 번호_instr; // 이것은 통화 이름 배열에 있는 통화의 서수입니다.

string Name_symbol[6] = { "AUDUSD","EURUSD", "GBPUSD", "USDCAD", "USDCHF", "USDJPY" } ; //통화 이름의 텍스트 배열: [0]-"AUDUSD", 1-"EURUSD", 2-"GBPUSD", 3-"USDCAD" 등

이중 Close_buf[], Open_buf[], High_buf[], Low_buf[]; //촛불 매개변수를 위한 기본 배열

datetimeTime_buf[]; //바 여는 시간의 기본 배열

이중 Close_H1[6][150], Open_H1[6][150], High_H1[6][150], Low_H1[6][150]; // H1 기간 동안 다중 통화 Expert Advisor의 촛대 매개변수에 대한 배열

// 배열의 행 수는 분석된 통화 수에 해당합니다.

날짜/시간 Time_H1[6][150]; // 바 여는 시간의 배열

이중 Close_H4[6][150], Open_H4[6][150], High_H4[6][150], Low_H4[6][150]; // H4 기간 동안 다중 통화 Expert Advisor의 촛대 매개 변수에 대한 배열

// 배열의 행 수는 분석된 통화 수에 해당합니다.

날짜/시간 Time_H4[6][150]; // 바 여는 시간의 배열



int OnInit()

{

}

무효 OnDeinit(const int 이유)
{
//---
ArrayFree(Time_buf);
ArrayFree(Close_buf);
ArrayFree(open_buf);

ArrayFree(high_buf);

ArrayFree(Low_buf);

}


무효 OnTick()

{

//------------------------------------------------ ------------------------------

다음은 새 막대 Nev_Time[0]의 여는 시간의 발생 순간을 결정하는 프로그램의 일부입니다.

처리된 바의 일련번호는 Schetchik_svech를 테스트하거나 거래하는 과정에서 보관됩니다.

//------------------------------------------------ -------------------------------------------------- ----------------------

ArraySetAsSeries(Close_buf, true); // 시계열에서와 같이 close_array 배열에 대한 인덱싱을 설정합니다.
ArraySetAsSeries(Open_buf, true); // 시계열에서와 같이 open_array 배열에 대한 인덱싱을 설정합니다.
ArraySetAsSeries(High_buf, true); // 시계열에서와 같이 high_array 배열에 대한 인덱싱을 설정합니다.
ArraySetAsSeries(Low_buf, true); // 시계열에서와 같이 low_array 배열에 대한 인덱싱을 설정합니다.

ArraySetAsSeries(Time_buf, true); // 시계열에서와 같이 time_array 배열에 대한 인덱싱을 설정합니다.


for( nomer_instr=0; nomer_instr<=5; nomer_instr++ )
{


//================================================== ==========================
CopyTime(이름_기호[명칭], PERIOD_H1,0,160,Time_buf); // 각 막대의 과거 시간 데이터를 버퍼에 복사합니다.
CopyClose(이름_기호[명칭], PERIOD_H1,0,160,닫기_buf); // 각 막대의 버퍼 닫기에 기록 데이터를 복사합니다.
CopyOpen(이름_기호[명칭], PERIOD_H1,0,160,Open_buf); // 각 막대에 대한 버퍼 열기 기록 데이터를 복사합니다.
CopyHigh(이름_기호[명명_instr], PERIOD_H1,0,160,High_buf); // 각 막대에 대한 높은 과거 데이터를 버퍼에 복사합니다.
CopyLow(이름_기호[명칭], PERIOD_H1,0,160,Low_buf); // 낮은 과거 데이터를 각 막대의 버퍼에 복사합니다.
//================================================== ==========================

for( i=1; i<=145; i++ )
{
Time_H1[nomer_instr][i]=Time_buf[i];
Close_H1[nomer_instr][i]=Close_buf[i];
Open_H1[nomer_instr][i]=Open_buf[i];
High_H1[nomer_instr][i]=High_buf[i];
Low_H1[nomer_instr][i]=Low_buf[i];
}

//================================================== ======================================
// 시간 단위의 촛대 매개변수 생성 데이터의 시간 이동 확인

if( Schetchik_svech > 8 && Schetchik_svech < 15 )
{
if( number_instr == 5 )
{
경고("========================================================= );
Alert(" 막대 번호 = ",Schetchik_svech,", 막대 개방 시간 Nev_Time[0]=",Nev_Time[0]);
Alert(" 기기 번호: nomer_instr=",nomer_instr,", 기기: Name_symbol[nomer_instr]=",Name_symbol[nomer_instr]);
알리다("----------------------------------------------- --------------");
for( i=1; i<=5; i++ )
{
경고( "i=",i,", Time_H1[명칭_instr][i]=",Time_H1[명칭_instr][i],", Close_H1[명칭][i]=",Close_H1[명칭_instr][i]);
}
}
}
//================================================== ======================================

} // H1 기간에 사용된 통화의 주기 종료


//#################################################

다음은 H4 기간에 대한 유사한 프로그램입니다.

//#############################################


} // OnTick() 함수의


이 프로그램의 성능을 확인한 결과 예상치 못한 결과가 나타났습니다.

- H1의 경우, 어드바이저가 위치한 차트에 대한 막대 매개변수의 결론이 났을 때 0이 열리는 시점과 첫 번째 막대가 열리는 시간 사이에 1시간의 시간 차이가 있습니다.

예를 들어 EA가 EURUSD 차트에 있고 0 막대를 여는 순간이 Nev_Time[0]= 2011.01.03 13:00:00이면 첫 번째 막대가 열리는 시간 이 Time_H1[1][1]입니다. = 2011.01.03 12:00:00

결과는 상식과 일치합니다.

- 이제 고문은 같은 차트에 있고 다른 통화(예: AUDUSD)의 데이터를 분석합니다 . 우리는 다음을 가지고 있습니다:

제로 바가 열리는 순간 Nev_Time[0]= 2011.01.03 13:00:00, 그 다음 첫 번째 막대가 열리는 시간 Time_H1[1][1]= 2011.01.03 11:00:00

이 결과는 이미 단순히 받아 들일 수 없지만 기사에서이 효과가 나타나는 이유를 찾지 못했습니다.

이 불행을 없애는 방법을 알려주십시오. 음, 각 통화에 대해 동일한 고문을 쓰지 마십시오.

관심을 가져주셔서 감사합니다.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
Boris.45 : 제로 바의 여는 순간 Nev_Time[0]= 2011.01.03 13:00:00, 그 다음 첫 번째 바의 여는 시간 Time_H1[1][1]= 2011.01.03 11:00:00
Time_H1[1][0]은 무엇을 반환합니까?
 
Yedelkin :

Time_H1[1][0]은 무엇을 반환합니까?

나는 배열의 이 요소를 사용하지 않는다. 왜냐하면 앞으로는 즉시 마지막 5개 막대에서 프랙탈 검색 알고리즘을 사용합니다. 그리고 Time_H1[1][0]은 이 막대의 매개변수가 아직 형성되지 않은 제로 막대의 개방 시간입니다. 내가 틀릴 수도 있지만 내 경험에 따르면 시계열을 형성하기 위해 제로 막대 매개변수를 사용하면 왜곡이 발생한다는 것을 알았습니다.

사유: