Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
나 자신이이 방법을 사용하고 아직 문제가 발생하지 않았다는 것입니다. 그러나 더 많은 것이 올 수 있습니까?
나는 설명을 원합니다 - 그렇게 말하는 것을 피하기 위해 ... :)
그리고 드러머가 어디에서 그런 말을 했습니까?
그리고 경련에 대해
블라디미르 카르푸토프 : 한 터미널(M15 기간에는 Expert Advisors가 있음)에서는 하나의 기호에서 작동하지 않았습니다. 문제는 다른 사람의 시간대를 사용할 때 항상 기록을 "비틀어야" 한다는 것입니다. CopyTime()을 통해 하는 것이 좋다고 생각합니다.
예를 들어, MT5 터미널에는 어드바이저(MACD 샘플 및 이동 평균)가 있으므로 이러한 EA 코드의 표시기 핸들에 특정 TF를 삽입하면(예: "_Period" 대신 PERIOD_H4), 열 때 테스트할 때 더 높은 TF의 가격, 오류 표시기 로딩 : 표시기 'MACD'를 로드할 수 없음 [4805] 및 결과: OnInit 실패로 인해 테스터가 중지되었습니다. 의견은 무엇입니까? 내가 뭔가 잘못하고 있는 건 아닐까? 언제든지 공개 가격으로 테스트할 수 있도록 EA를 코딩할 수 있습니까?
표시기를 사용자 정의 표시기로 삽입하려고 시도했지만 오류는 동일합니다.
귀하의 응답에 미리 감사드립니다.
intOnInit ( 무효 ) { //--- 헤지 모드가 활성화된 경우 포지션을 제어하기 위해 거래 클래스를 준비합니다. ExtHedging=(( ENUM_ACCOUNT_MARGIN_MODE ) AccountInfoInteger ( ACCOUNT_MARGIN_MODE )== ACCOUNT_MARGIN_MODE_RETAIL_HEDGING ); ExtTrade.SetExpertMagicNumber(MA_MAGIC); ExtTrade.SetMarginMode(); //--- 이동 평균 표시기 ExtHandle= iMA ( _Symbol , PERIOD_H4 ,MovingPeriod ,MovingShift , MODE_SMA , PRICE_CLOSE ); if (ExtHandle== INVALID_HANDLE ) { printf ( "MA 표시기 생성 오류" ); 반환 ( INIT_FAILED ); } //--- 좋아요 반환 ( INIT_SUCCESSED ); }
안녕하세요!
조언자 작성을 도와주세요.
고문의 본질: 1 로트에 대해 4개의 주문을 엽니다.
2 판매용: usdchf; 유로화;
2 구매: gbpusd; usdjpy;
총 이익 5포인트에 도달하면 모든 거래를 종료합니다. 그리고 다시 시작합니다.
총 4권?
이익이 없다면? 단어에서 전혀.
안녕하세요!
조언자 작성을 도와주세요.
고문의 본질: 1 로트에 대해 4개의 주문을 엽니다.
2 판매용: usdchf; 유로화;
2 구매: gbpusd; usdjpy;
총 이익 5포인트에 도달하면 모든 거래를 종료합니다. 그리고 다시 시작합니다.
다른 스레드에서 질문을 복제할 필요가 없습니다.
프리랜서 에 문의하십시오.
인사말.
현재 차트에서 새 캔들 이 열렸을 때 액션이 수행되도록 조건을 작성하는 방법을 알려주십시오.
안녕하세요! 배열을 도와주세요!
MACD 표시기 로 어레이를 채워야 합니다 . 내가 알기로는 막대 인덱스, MODE_MAIN 값, MODE_SIGNAL 값 , 즉 배열이 3차원 유형( a [] [] [])이어야 하는 데이터가 있습니다. 가능하다면 예시.
https://www.mql5.com/en/articles/159
Sergey, 이 코드를 직접 사용해 본 적이 있습니까?
기사는 일반적으로 좋지만 사용하려면
매우 위험한. 이것이 작동하려면 어린 양의 추천에 따라 이야기를 주기적으로 "트위칭"해야 합니다. 위치가 지정되지 않았습니다.
일반적으로 많은 고민 끝에 CopyRates() 함수를 사용하는 것이 더 낫다는 결론에 이르렀습니다.
가능한 오류에 대한 메시지는 각자가 마음대로 추가합니다.
{
static datetime timeLastBar;
MqlRates mqlRates[];
int s = 0 ;
do
{
s++;
}
while ( CopyRates ( _Symbol , PERIOD_CURRENT , 0 , 1 , mqlRates) < 0 && s < 7 );
bool ret = timeLastBar != mqlRates[ 0 ].time;
if (ret)
timeLastBar = mqlRates[ 0 ].time;
return (ret);
} /*******************************************************************/
Sergey, 이 코드를 직접 사용해 본 적이 있습니까?
기사는 일반적으로 좋지만 사용하려면
매우 위험한. 이것이 작동하려면 어린 양의 추천에 따라 이야기를 주기적으로 "트위칭"해야 합니다. 위치가 지정되지 않았습니다.
Alexey, 언제 이것을 사용할 때 오류가 발생했습니까? 적어도 한 번이었습니까?
나 자신이이 방법을 사용하고 아직 문제가 발생하지 않았다는 것입니다. 그러나 더 많은 것이 올 수 있습니까?
나는 설명을 원합니다 - 그렇게 말하는 것을 피하기 위해 ... :)
그리고 드러머가 어디에서 그런 말을 했습니까?
Alexey, 언제 이것을 사용할 때 오류가 발생했습니까? 적어도 한 번이었습니까?
나 자신이이 방법을 사용하고 아직 문제가 발생하지 않았다는 것입니다. 하지만 앞으로 더 있을 수 있을까요?
나는 설명을 원합니다 - 그렇게 말하는 것을 피하기 위해 ... :)
드러머가 어디서 그런 말을 했습니까?
https://www.mql5.com/ru/forum/89213
총 8페이지의 스커미시가 있습니다. 그리고 어린 양뿐만 아니라 슬라브는 말합니다.
함수의 부적절한 동작은 어디에서 볼 수 있습니까? 설명서 를 주의 깊게 읽었습니까?
기록 데이터의 상태에 대한 정보를 반환합니다. 정보를 업데이트하지 않고 데이터 페이징을 시작하지 않습니다. 현재 상태 그대로를 반환합니다.
Alexey, 언제 이것을 사용할 때 오류가 발생했습니까? 적어도 한 번이었습니까?
나 자신이이 방법을 사용하고 아직 문제가 발생하지 않았다는 것입니다. 그러나 더 많은 것이 올 수 있습니까?
나는 설명을 원합니다 - 그렇게 말하는 것을 피하기 위해 ... :)
그리고 드러머가 어디에서 그런 말을 했습니까?
그리고 경련에 대해
한 터미널(M15 기간에는 Expert Advisors가 있음)에서는 하나의 기호에서 작동하지 않았습니다. 문제는 다른 사람의 시간대를 사용할 때 항상 기록을 "비틀어야" 한다는 것입니다. CopyTime()을 통해 하는 것이 좋다고 생각합니다.
Alexey, 언제 이것을 사용할 때 오류가 발생했습니까? 적어도 한 번이었습니까?
예를 들어, MT5 터미널에는 어드바이저(MACD 샘플 및 이동 평균)가 있으므로 이러한 EA 코드의 표시기 핸들에 특정 TF를 삽입하면(예: "_Period" 대신 PERIOD_H4), 열 때 테스트할 때 더 높은 TF의 가격, 오류 표시기 로딩 : 표시기 'MACD'를 로드할 수 없음 [4805] 및 결과: OnInit 실패로 인해 테스터가 중지되었습니다. 의견은 무엇입니까? 내가 뭔가 잘못하고 있는 건 아닐까? 언제든지 공개 가격으로 테스트할 수 있도록 EA를 코딩할 수 있습니까?
표시기를 사용자 정의 표시기로 삽입하려고 시도했지만 오류는 동일합니다.
귀하의 응답에 미리 감사드립니다.
int OnInit ( 무효 )
{
//--- 헤지 모드가 활성화된 경우 포지션을 제어하기 위해 거래 클래스를 준비합니다.
ExtHedging=(( ENUM_ACCOUNT_MARGIN_MODE ) AccountInfoInteger ( ACCOUNT_MARGIN_MODE )== ACCOUNT_MARGIN_MODE_RETAIL_HEDGING );
ExtTrade.SetExpertMagicNumber(MA_MAGIC);
ExtTrade.SetMarginMode();
//--- 이동 평균 표시기
ExtHandle= iMA ( _Symbol , PERIOD_H4 ,MovingPeriod ,MovingShift , MODE_SMA , PRICE_CLOSE );
if (ExtHandle== INVALID_HANDLE )
{
printf ( "MA 표시기 생성 오류" );
반환 ( INIT_FAILED );
}
//--- 좋아요
반환 ( INIT_SUCCESSED );
}