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

 
Maxim Kuznetsov # :

"유형 진행, 여기서 더 나아가 정지 손실이 있을 수 있음"의 그리기(좋아, 표시) 수준은 일반적으로 매우 간단합니다. 그러나 WHY는 명확하지 않습니다.

고객이 원하는 것이 무엇인지 자세히 물어보셨습니까?

추신 / 예, "창조적인 휴식"을 취해야 합니다. 고객이 상황을 이해할 수 있을 것이라고 생각합니다. 신경은 쓰지 않습니다.

그는 일주일 이상 고민하고 결정했습니다.

처음에는 모든 것이 달랐고 이것은 인계되었지만 일주일 만에 그는 혁신 도입을 발표했습니다. 작업을 완료한 것은 이해하지만 원래 TOR에 포함되지 않았더라도 어떻게든 고객을 떠나는 것은 옳지 않습니다.

내 요청이 서있다!

 
Vitaly Muzichenko # :

그는 일주일 이상 고민하고 결정했습니다.

처음에는 모든 것이 달랐고 이것은 인계되었지만 일주일 만에 그는 혁신 도입을 발표했습니다. 작업을 완료한 것은 이해하지만 원래 TOR에 포함되지 않았더라도 어떻게든 고객을 떠나는 것은 옳지 않습니다.

내 요청이 서있다!

진정해 비탈리, 뭐라고?

고문을 변경하시겠습니까? 코드도 없고 들어갈 곳도 없습니다. 그리고 이 주제에서 프리랜서 순서를 편집하는 것은 옳지 않습니다. 전혀 한쪽에 있지 않습니다.

void OnStopLoss() {

    // some code placed here

}

도움이 되지 않을 것입니다.

 
Maxim Kuznetsov # :

진정해 비탈리, 뭐라고?

고문을 변경하시겠습니까? 코드도 없고 들어갈 곳도 없습니다. 그리고 이 주제에서 프리랜서 순서를 편집하는 것은 옳지 않습니다. 전혀 한쪽에 있지 않습니다.

void OnStopLoss() {

    // some code placed here

}

도움이 되지 않을 것입니다.

하나의 해도에 매달리고 모든 기호를 모니터링하는 별도의 트롤인 Expert Advisor가 아닙니다.

코드가 많이 부풀려진다

 
Vitaly Muzichenko # :

포지션이 있고 거기에 스톱로스가 있습니다.

설정에서 트레일은 30입니다. 트레일이 작동할 수준에서 라인을 표시한다는 의미이므로 7개의 라인 모두 30-60-90-120-150-180-210 진행과 같이.

30을 지나 라인에 도달하면 트레일은 스톱을 시가 수준으로 이동하고 60에 도달하면 스톱을 시가에서 +30, 즉 첫 번째 스톱이 트리거된 수준으로 이동합니다. 에.

그래픽 라인을 제어하고 싶다는 생각이 드는데, 이것은 이미 더 복잡하기 때문에 단순화해야 합니다.

옵션으로 설정에서 레벨에 대한 7개의 매개변수를 가져옵니다.

추신 : 긴 답변에 대해 사과드립니다. 인터넷이 사라졌습니다.

7개의 매개변수는 옵션이 아닙니다) 7개의 수평선 이름은 그가 그리는 매개변수와 이름을 지정합니다. 그리고 그들에게서 춤을 춥니다. 매개변수인 경우 가격 변동의 범위와 수준 수입니다. 계산하고 그립니다. 음, 레벨이 발동되면 sl 선을 그리고 sl이 가격 레벨과 일치하면 색상을 변경합니다.
 
Valeriy Yastremskiy # :
7개의 매개변수는 옵션이 아닙니다) 7개의 수평선 이름은 그가 그리는 매개변수와 이름을 지정 합니다. 그리고 그들에게서 춤을 춥니다. 매개변수인 경우 가격 변동의 범위와 수준 수입니다. 계산하고 그립니다. 음, 레벨이 발동되면 sl 선을 그리고 sl이 가격 레벨과 일치하면 색상을 변경합니다.

여기에서 말하자면 계산된 가격으로 선을 그리는 알고리즘이 필요합니다.

모든 직위가 닫히면 삭제해야 합니다.

 
Valeriy Yastremskiy # :
7개의 매개변수는 옵션이 아닙니다) 7개의 수평선 이름은 그가 그리는 매개변수와 이름을 지정합니다. 그리고 그들에게서 춤을 춥니다. 매개변수인 경우 가격 변동의 범위와 수준 수입니다. 계산하고 그립니다. 음, 레벨이 발동되면 sl 선을 그리고 sl이 가격 레벨과 일치하면 색상을 변경합니다.

설명:

В настройках трал 30 . Значит показать линии на уровнях, где сработают тралы, и так все 7 линий: 30 - 60 - 90 - 120 - 150 - 180 - 210 , типа прогрессии.

Прошли 30 и достигли линии, трал переводит стопы на уровень цены открытия, по достижении 60 , переводит стопы на + 30 от цены открытия, то есть на уровень, где срабатывал первый стоп и тд.

코드를 변경하고 선을 그리면 됩니다.


고맙습니다!

 
안녕하세요. 글쎄, 초보자에게 말해, 나는 시장에 전문가를 업로드하려고합니다. "오류! 잘못된 파일 형식이 로드되었습니다. ..... ex4 - 스크립트.
귀하의 제품 카테고리는 Experts이고 올바른 유형의 프로그램은 Expert입니다." 하지만 이것은 전문가입니다! 어디서 파나요? 벌써 2일째 고군분투 중입니다!
 
Vycheslav Vyrikov # :
안녕하세요. 글쎄, 초보자에게 말해, 나는 시장에 전문가를 업로드하려고합니다. "오류! 잘못된 파일 형식이 로드되었습니다. ..... ex4 - 스크립트.
귀하의 제품 카테고리는 Experts이고 올바른 유형의 프로그램은 Expert입니다." 하지만 이것은 전문가입니다! 어디서 파나요? 벌써 2일째 고군분투 중입니다!

표준 핸들러를 찾아보세요.

OnStart() 가 아니라 start() 가 있다고 확신합니다.

Документация по MQL5: Обработка событий / OnStart
Документация по MQL5: Обработка событий / OnStart
  • www.mql5.com
OnStart - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko # :

여기에서 말하자면 계산된 가격으로 선을 그리는 알고리즘이 필요합니다.

모든 직위가 닫히면 삭제해야 합니다.

double sumLots[2]=0,weight[2]=0;

for(int pos=OrdersTotal()-1;pos>=0;pos--) {

   if (! OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) continue;

   // тут всякие прочии фильтры

   DrawOrderLevels(); // нарисовать уровни куда может перекатиться стоп-лосс конкретного ордера

   // расчёт общих позиций

   int type=OrderType();

   sumLots[type]+=OrderLots();

   weight[type]+=OrderLots()*OrderOpenPrice();

}

double avg[3]; // общии позиции

if (sumLots[OP_BUY]!=0) avg[OP_BUY]=weight[OP_BUY]/sumLots[OP_BUY]; 

if (sumLots[OP_SELL]!=0) avg[OP_SELL]=weight[OP_SELL]/sumLots[OP_SELL]; 

// совокупная позиция

int posType; // тип

double posPrice; // цена

double posLots; // объём

if (sumLots[OP_BUY]>sumLots[OP_SELL) { posType=OP_BUY; posPrice=avg[OP_BUY]; posLots=sumLots[OP_BUY]-sumLots[OP_SELL]; }

else { posType=OP_SELL; posPrice=avg[OP_SELL]; posLots=sumLots[OP_SELL]-sumLots[OP_BUY]; }

DrawPriceLevels(OP_BUY,avg[OP_BUY]); // нарисовать уровни суммарной позы в BUY

DrawPriceLevels(OP_SELL,avg[OP_SELL]); // нарисовать уровни суммарной позы в SELL

DrawPriceLevels(posType,posPrice); // уровни общей позиции

수평 레벨의 이름에 티켓 번호를 추가하십시오. 때때로(필요한 경우) 확인 - 티켓이 시장에 없으면 이름이 있는 모든 레벨을 삭제합니다.

 
Artyom Trishkin # :

표준 핸들러를 찾아보세요.

OnStart() 가 아니라 start() 가 있다고 확신합니다.

Artyom, 당신은 이미 피곤하고 그 자신이 부정확하기 시작했습니다. Vyacheslav가 로드하려고 하는 Expert Advisor의 경우 이벤트 처리 기능은 다음과 같아야 합니다. 온틱 ()