초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 86

smart_man :

정상 모드와 비정상 모드에서 터미널을 종료한 후에도 모든 전역 변수의 데이터가 저장되도록 하려면 어떻게 해야 합니까?

질문은 다음과 같이 코드 시작 부분에 선언된 변수에 관한 것입니다.

#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern double  VAR1 = 1;

double VAR2[1000];

VAR1 및 VAR2 값을 잃지 않아야 합니다(배열은 Expert Advisor 작동 중에 데이터로 채워짐). 지금까지 유일한 아이디어는 매 틱마다 파일(global.txt)에 쓰고 터미널이 실행될 때 이 파일(global.txt)을 읽고 변수를 재생성한 다음 매 틱마다 다시 쓰는 것입니다. 어떤 다른 옵션이 있습니까?

터미널의 전역 또는 리소스 .
Arseniy Barudkin :

도와 주셔서 감사합니다! 이대로 남겨둔 채 이제 함수가 호출되는 조건을 약간 변경하기로 했습니다. 일반적으로 많은 도움이되었습니다))

그래도 대답하지 않는 것이 맞습니다. 작업을 설정해야 하며 그렇지 않으면 해결할 수 없습니다.

원본 TOR를 살펴보겠습니다.

안녕하세요 여러분! 이걸 홍수로 오인하고 싶지는 않지만 이 기능 없이는 할 수 없습니다. 그래서 여러분, 누군가가 모든 주문을 반복하고 차트의 기존 주문에서 가장 작은 로트와 마이너스 이익을 가진 두 번째 주문과 가장 큰 로트와 양수를 가진 두 번째 주문을 동시에 삭제하는 기능으로 나를 도울 수 있습니까? 또한 기존의 이익. "

귀하가 제공한 코드에서 무엇을 볼 수 있습니까?

1. 모든 주문은 전문가의 도움으로 열리고 고유한 마법이 있습니다.

2. 필요한 주문의 총 이익이 양수입니다.

3. 주문은 카운터입니다.

4. 양수 이익이 있는 로트의 크기는 음수 이익이 있는 로트보다 엄격하게 큽니다.

이것은 제시된 TOR에서 어디에서 볼 수 있습니까?

추가로: 코드를 보면 반대 주문을 마감할 수 없고 최소한 스프레드를 잃을 수 있음이 분명합니다.

fxtz :

질문 메타트레이더 4에서 한 번의 클릭으로 주어진 손절매와 이익으로 내가 선택한 2개에서 250개까지의 포지션을 여는 프로그램을 작성할 수 있습니까? 일일이 수동으로 열지 않도록

브로커의 한계가 너무 가파르다면 이를 따서 명명된 프로그래밍 언어가 자동으로 스크립트를 작성하도록 만들어졌습니다.
Mislaid :

그래도 대답하지 않는 것이 맞습니다. 작업을 설정해야 하며 그렇지 않으면 해결할 수 없습니다.

원본 TOR를 살펴보겠습니다.

안녕하세요 여러분! 이걸 홍수로 오인하고 싶지는 않지만 이 기능 없이는 할 수 없습니다. 그래서 여러분, 누군가가 모든 주문을 반복하고 차트의 기존 주문에서 가장 작은 로트와 마이너스 이익을 가진 두 번째 주문과 가장 큰 로트와 양수를 가진 두 번째 주문을 동시에 삭제하는 기능으로 나를 도울 수 있습니까? 또한 기존의 이익. "

귀하가 제공한 코드에서 무엇을 볼 수 있습니까?

1. 모든 주문은 전문가의 도움으로 열리고 고유한 마법이 있습니다.

2. 필요한 주문의 총 이익이 양수입니다.

3. 주문은 카운터입니다.

4. 양수 이익이 있는 로트의 크기는 음수 이익이 있는 로트보다 엄격하게 큽니다.

이것은 제시된 TOR에서 어디에서 볼 수 있습니까?

추가로: 코드를 보면 반대 주문을 마감할 수 없고 최소한 스프레드를 잃을 수 있음이 분명합니다.


나는 많은 단점을 주장하지 않습니다! 이런 활동을 하고 있습니다. 그리고 오류를 지적하거나 도움을 주기 위해 이 스레드에 글을 쓰고 있습니다! 제 생각에는 그것이 그녀가 거기 있는 이유입니다. 이제 코드로 이동합니다. 1) 뭔가 이해가 안가는 것 같은데, 어드바이저의 모든 오더가 고유한 마법을 가지고 있다는 게 무슨 문제야!? 2) 이 조건과 일반적으로 이 전체 기능은 최소 두 개의 반대 주문을 청산하고 마진에 큰 부하가 있을 때 빨간색으로 가지 않기 위해 필요하며 포인트 3과 4도 여기에 포함됩니다. 그리고 카운터 오더를 어떻게 마감해야 하는지 잘 모르겠습니다.
Arseniy Barudkin :

나는 많은 단점을 주장하지 않습니다! 이런 활동을 하고 있습니다. 그리고 오류를 지적하거나 도움을 주기 위해 이 스레드에 글을 쓰고 있습니다! 제 생각에는 그것이 그녀가 거기 있는 이유입니다. 이제 코드로 이동합니다. 1) 뭔가 이해가 안가는 것 같은데, 어드바이저의 모든 오더가 고유한 마법을 가지고 있다는 게 무슨 문제야!? 2) 이 조건과 일반적으로 이 전체 기능은 최소 두 개의 반대 주문을 청산하고 마진에 큰 부하가 있을 때 빨간색으로 가지 않기 위해 필요하며 포인트 3과 4도 여기에 포함됩니다. 그리고 카운터 오더를 어떻게 마감해야 하는지 잘 모르겠습니다.
당신이 내 학생이었다면 "좋음" 표시는 이미 코드 제출에 대한 것입니다. 그리고 의사 소통 과정에서 아이디어를 낼 수 있다는 것을 보여줄 수 있다면 "우수"답변에서 올바르게 생각하고 있음을 알 수 있습니다

안녕하세요 ... 어드바이저는 MQL4로 작성되었으며, 매수, 매도 시장 주문을 Trailing 으로 거래합니다 ... 보류중인 BuyStop, SellStop 설정을 코드에 추가하기로 결정했습니다 ... 그리고 예기치 않은 문제에 부딪쳤습니다 = as 보류 중인 주문 이 MT4 창에 나타나면 후행 작업이 중지됩니다(SL이 설치되지 않고 수정이 설치되지 않음) ... 문제가 무엇인지 이해하지 못합니다. 후행 기능은 라이브러리의 역 열거와 함께 표준입니다. , 2개의 전용 페이지 가 추가되었습니다... 아니면 기능이 아닌가요? 누군가 비슷한 것을 발견한 것은 아닐까요?

 int TralFunck( int Ticket)

 {   double TralPrice= 0 ,Punkt= 0 ;

   chk= OrderSelect (Ticket, SELECT_BY_TICKET , MODE_TRADES );

for (Ticket= OrdersTotal ()- 1 ; Ticket>= 0 ; Ticket--)  

  { if ( OrderProfit ()<= 0 )       continue;

     if ( OrderType ()== 4 )		continue;

     if ( OrderType ()== 5 ) 	continue;

   if ( OrderType ()== 0 )  {   Punkt=( Bid - OrderOpenPrice ())/ Point ;TralPrice= NormalizeDouble (( Bid -Tral*D* Point ), Digits );  }

   if ( OrderType ()== 1 )  {   Punkt=( OrderOpenPrice ()- Ask )/ Point ;TralPrice= NormalizeDouble (( Ask +Tral*D* Point ), Digits );   }

   if (Punkt< MarketInfo ( Symbol (), MODE_STOPLEVEL ))       continue;

   if (Punkt<(Tral+TP)*D)        continue;

   if ( OrderType ()== 0 && TralPrice<= NormalizeDouble ( OrderStopLoss (), Digits ))     continue;

   if ( OrderType ()== 1 && TralPrice>= NormalizeDouble ( OrderStopLoss (), Digits ) && OrderStopLoss ()!= 0 )       continue;

   ModifyOrder( OrderTicket (), OrderOpenPrice (),TralPrice, OrderTakeProfit ());     continue;

   }   return ( 0 );

 }


Yaroslav Nykula :

안녕하세요 ... 어드바이저는 MQL4로 작성되었으며, 매수, 매도 시장 주문을 Trailing 으로 거래합니다 ... 보류중인 BuyStop, SellStop 설정을 코드에 추가하기로 결정했습니다 ... 그리고 예기치 않은 문제에 부딪쳤습니다 = as 보류 중인 주문 이 MT4 창에 나타나면 후행 작업이 중지됩니다(SL이 설치되지 않고 수정이 설치되지 않음) ... 문제가 무엇인지 이해하지 못합니다. 후행 기능은 라이브러리의 역 열거와 함께 표준입니다. , 2개의 전용 페이지 가 추가되었습니다... 아니면 기능이 아닌가요? 누군가 비슷한 것을 발견한 것은 아닐까요?



return(0) 바꾸기; 계속하다; 사이클을 종료하지 않도록. 함수가 끝나면 그대로 두십시오.

코드를 붙여넣으려면 편집기에서 SRC 버튼을 사용하십시오.

Victor Nikolaev :


return(0) 바꾸기; 계속하다; 사이클을 종료하지 않도록. 함수가 끝나면 그대로 두십시오.

코드를 붙여넣으려면 편집기에서 SRC 버튼을 사용하십시오.


감사합니다 ... 수정했습니다 ... 편집기에서 SRC 버튼을 고려할 것입니다. 죄송합니다 ... 그러나 문제의 본질은 변경되지 않았으며 Trailing 및 Modify 는 여전히 작동하고 싶지 않은 경우   보류 중인 주문 .
나는 최근에 mt4에서 거래를 시작했습니다. 내 전략을 테스트하기로 했지만 전략 테스터 에 시각화 기능과 일시 중지 버튼이 없습니다. 이러한 기능이 없으면 테스트할 수 없습니다. 어떻게 될 것인가?
vsmutew7 :
나는 최근에 mt4에서 거래를 시작했습니다. 내 전략을 테스트하기로 했지만 전략 테스터 에 시각화 기능과 일시 중지 버튼이 없습니다. 이러한 기능이 없으면 테스트할 수 없습니다. 어떻게 될 것인가?

특히 "시작" 버튼이 있는 창을 더 넓게 확장해야 할 수도 있습니다.