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

 
STARIJ :
당신이 쓴 것을 읽으십시오 : 마지막 세 주문 중 하나가 이익으로 마감되면 거래가 중단됩니다!

팁 고마워

OPEN A NEW ORDER 나는 단지 예를 위해 준 것입니다. 나는 아직 거래하지 않습니다.

이 조건을 코딩하는 방법을 이해하지 못합니다.

3 - 4 - 5 ..... 행의 마지막 주문이 STOP에 의해 마감된 경우

뭔가 해봐.

 
Victor Nikolaev :


차이는 미미합니다. 변수 중 하나는 부울입니다.

출력에 true 또는 false가 표시됩니다.

휴, 변수를 추가하는 방법을 알 수 없습니다. 4개의 부울이 있고 이를 반복해야 한다고 가정해 보겠습니다.

 //+------------------------------------------------------------------+
//|                                                       Decode.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link        "http://vinin.ucoz.ru"
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int N= 15 ;   //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   for ( int n= 0 ;n<N;n++)
     {
       int tmp=n;
       bool a= ( bool ) MathMod (tmp, 2 );
       bool b= ( bool ) MathMod (tmp, 3 );
       bool c= ( bool ) MathMod (tmp, 4 );
       bool d= ( bool ) MathMod (tmp, 5 );

       Print ( "N=" ,n, "; A=" ,a, "; B=" ,b, "; C=" ,c, "; D=" ,d);
     }

  }

나는 문제의 본질을 이해합니다. 나눗셈 후에 0보다 작거나 큰 나머지가 있어야 합니다. 그러나 이것을 달성하는 방법을 알 수 없습니다 :(

 
ANDREY :

팁 고마워

OPEN A NEW ORDER 나는 단지 예를 위해 준 것입니다. 나는 아직 거래하지 않습니다.

이 조건을 코딩하는 방법을 이해하지 못합니다.

3 - 4 - 5 ..... 행의 마지막 주문이 STOP에 의해 마감된 경우

뭔가 해봐.

조치를 취하기 전에 연속으로 3 - 4 - 5개 포지션이 마감되었는지 확인하십시오. 모든 것이 정상이면 조치를 취하십시오. 초등, 왓슨...
 
ANDREY : 라스트 뿐만 아니라, pre -last 및 pre- pre -last 주문도 stop으로 마감해야 합니다.

그런 다음에만 다른 주문 열기

스크립트를 첨부하고 있습니다 - 확인했고 작동하며 결과를 첨부했습니다

 //+-------------------------------------------------------+
//| Подсчет убыточных ордеров                 PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict
130
void OnStart ()
{
  int Счет=0, Номер=OrdersHistoryTotal()-1;

  for( ; Номер>=0; Номер--)
  {
     if (! OrderSelect (Номер, SELECT_BY_POS , MODE_HISTORY )) continue ;
     Alert (Номер, "  Тикет = " , OrderTicket (), "  T =" , OrderOpenTime (), "  Профит = " , OrderProfit ());
     if ( OrderProfit ()>= 0 ) break ;
    Счет++;
     if (Счет== 3 )
    {
       Alert ( "Вот тут и открываем новый ордер" );
       return ;
    }
  }
   Alert ( "Подряд идущих убыточных ордеров слишком мало" );
}

이것이 전체 이야기입니다.


그리고 이 내역을 우클릭해서 5월 3일까지의 기간을 선택했습니다.

 
STARIJ :

스크립트를 첨부하고 있습니다 - 확인했고 작동하며 결과를 첨부했습니다

이것이 전체 이야기입니다.


그리고 이 내역을 우클릭해서 5월 3일까지의 기간을 선택했습니다.

그래서 발에. 그리고 신뢰할 수 없습니다. 정렬에 관계없이 수행되어야 합니다.
 

혼란을 드려 죄송합니다 다시 질문을 드리겠습니다

재작업할 수 있는 지표가 있으면 조언 부탁드립니다 시간별 차트에서 매일 고저 사이의 선에 관심이 있고 선의 길이와 경사각에 대한 데이터를 얻을 수 있는 기능과 작업이 가능했습니다 코드에 있는 이 데이터를 사용하여 mql4 를 처음부터 직접 작성하면 큰 문제가 되지 않습니다. 도와주세요, 제발

내가 잘못된 스레드를 물은 것이 아닐까?

 
STARIJ :

스크립트를 첨부하고 있습니다 - 확인했고 작동하며 결과를 첨부했습니다

이것이 전체 이야기입니다.


그리고 이 내역을 우클릭해서 5월 3일까지의 기간을 선택했습니다.

도와 주셔서 정말로 고맙습니다.
 
Artyom Trishkin : 발에 맞습니다. 그리고 신뢰할 수 없습니다. 정렬에 관계없이 수행되어야 합니다.

아르템! 터미널 우측 하단에 서버와의 교환 표시기 - 수신 및 전송된 킬로바이트. 표시기는 2318이었습니다. 기록을 마우스 오른쪽 버튼으로 클릭하고 오늘(오늘은 일요일)을 선택했습니다. 역사는 황폐화되었습니다. 스크립트는 기록에 주문이 없음을 보여줍니다. 기록을 마우스 오른쪽 버튼으로 클릭하고 모든 기록을 선택했습니다. 표시기가 활성화되어 518킬로바이트가 추가되었습니다. 따라서 필터가 LARGE 기간으로 설정되면 서버에서 주문이 다운로드됩니다. 더 짧은 기간을 설정하면 삭제됩니다. 따라서 작업 속도를 높이려면(처리할 주문 수를 줄임) 지난 주, 지난 3일 또는 오늘을 설정하는 것이 좋습니다. 이것은 Alert (OrdersHistoryTotal());

정렬에 대해. 스토리의 컬럼 표제를 클릭하면 스토리의 VISUAL DISPLAY를 컬럼의 오름차순 또는 내림차순으로 정렬할 수 있습니다. 그러나 OrderSelect (Number, SELECT_BY_POS, MODE_HISTORY) 함수를 사용한 주문 선택은 디스플레이 정렬에 관계없이 항상 SELECTED 이력 간격의 시작 부분부터 번호순으로 진행됩니다. 그리고 역사상 가장 자연스러운 순서 는 서버로 보낸 시간에 따라 정렬됩니다. number = 0이면 SELECTED 기록 간격의 가장 오래된 순서입니다. OrdersHistoryTotal()-1이 SELECTED 기록 간격의 가장 최근 순서인 경우. 이것을 여러 번 확인했습니다. 그리고 이것이 바뀔 가능성은 거의 없습니다.

 
STARIJ :

아르템! 터미널의 오른쪽 하단에는 서버와의 교환 표시가 있습니다-수신 및 전송 킬로바이트. 표시기는 2318이었습니다. 기록을 마우스 오른쪽 버튼으로 클릭하고 오늘(오늘은 일요일)을 선택했습니다. 역사는 황폐화되었습니다. 스크립트는 기록에 주문이 없음을 보여줍니다. 기록을 마우스 오른쪽 버튼으로 클릭하고 모든 기록을 선택했습니다. 표시기가 활성화되어 518킬로바이트가 추가되었습니다. 따라서 필터가 LARGE 기간으로 설정되면 서버에서 주문이 다운로드됩니다. 더 짧은 기간을 설정하면 삭제됩니다. 따라서 작업 속도를 높이려면(처리할 주문 수를 줄임) 지난 주, 지난 3일 또는 오늘을 설정하는 것이 좋습니다. 이것은 Alert(OrdersHistoryTotal());

정렬에 대해. 스토리의 컬럼 표제를 클릭하면 스토리의 VISUAL DISPLAY를 컬럼의 오름차순 또는 내림차순으로 정렬할 수 있습니다. 그러나 OrderSelect (Number, SELECT_BY_POS, MODE_HISTORY) 함수를 사용한 주문 선택은 디스플레이 정렬에 관계없이 항상 SELECTED 이력 간격의 시작 부분부터 번호순으로 진행됩니다. 그리고 역사상 가장 자연스러운 순서는 서버로 보낸 시간에 따라 정렬됩니다. number = 0이면 SELECTED 기록 간격의 가장 오래된 순서입니다. OrdersHistoryTotal()-1이 SELECTED 기록 간격의 가장 최근 순서인 경우. 이것을 여러 번 확인했습니다. 그리고 이것이 바뀔 가능성은 거의 없습니다.

당신은 여기에서 너무 새롭기 때문에 모든 것이 어땠는지 모릅니다. 이미 300년 전에 규칙이 개발되었습니다. 시간별 검색은 마지막/첫 번째 또는 연속 위치를 결정하는 유일한 신뢰할 수 있는 방법입니다. 당신은 돈으로 일합니다. 글쎄, 그들 자신과 만 함께라면, 그러나 낯선 사람과도 마찬가지입니다. 간접적으로라도 - 프로그램과 함께.

그리고 당신이 나에게 말하는 것은 누구에게도 비밀이나 발견이 아닙니다. 모두가 수년 동안 이것에 대해 알고 있습니다.)

그리고 내가 말한 것-당신은 여전히 이해하지 못합니다 ...

 
Artyom Trishkin :

당신은 여기에서 너무 새롭기 때문에 모든 것이 어땠는지 모릅니다. 이미 300년 전에 규칙이 개발되었습니다. 시간별 검색은 마지막/첫 번째 또는 연속 위치를 결정하는 유일한 신뢰할 수 있는 방법입니다. 당신은 돈으로 일합니다. 글쎄, 그들 자신과 만 함께라면, 그러나 낯선 사람과도 마찬가지입니다. 간접적으로라도 - 프로그램과 함께.

그리고 당신이 나에게 말하는 것은 누구에게도 비밀이나 발견이 아닙니다. 모두가 수년 동안 이것에 대해 알고 있습니다.)

그리고 내가 말한 것-당신은 여전히 이해하지 못합니다 ...

Artem, 또는 그것은 당신의 눈에 거슬리지 않는 트롤링입니까, 아니면 당신 자신이 무엇에 대해 쓰고 있는지 이해하지 못합니다 !!!

지난 포스트에서 정렬에 대해 이야기했습니다. 정렬에 의존하지 않는다고 설명했습니다.

시간순으로 주문을 선택하는 것에 대한 토론을보고 그 중 하나에 참여했습니다. 이제 주문이 서버로 전송될 때 주문 데이터베이스에 있다는 결론이 내려졌습니다. 그러나 이론적으로 개발자가 이것을 변경할 수 있다는 두려움이 있습니다. 이것으로 토론이 끝났습니다. 데이터베이스 전문가로서 나는 이 두려움이 근거가 없으며 변경이 의심의 여지가 없음을 확신합니다. 이 질문에 대해 개발자에게 문의할 수 있습니다. 내가 뭔가를 쓴다면, 나는 내가 무엇을 쓰고 있는지 안다. 프로그래밍 50주년이 다가오고 있습니다. 내 게시물에서 당신의 관점에서 어떤 종류의 것을 알아차린다면 개인적인 글을 쓰 십시오. 설명을 드리면 궁금증이 풀릴 것입니다. 그리고 여기에서 다투는 것은 거의 적절하지 않습니다. 한 남자에게 대본을 썼습니다. 그는 고맙다고 말했습니다. 좋은가요?

최근에. 예, 방금 로그인을 변경했습니다. 스타일이 어땠는지 짐작할 수 있습니다. 또는 IP를 보면 아마도 액세스 권한이 있을 것입니다... 무응답으로 두십시오.