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

 
Alexey Viktorov :

그들 중 하나는 나입니다. 그리고 C#이나 C++는 공부한 적도 없고 OOP가 뭔지도 몰랐습니다.

mql5는 OrderSend() 함수에서만 mql5와 다르다는 단순한 사실을 이해하고 기억하지 못하는 몇 가지 함수가 더 있을 수 있습니다. 또 다른 중요한 차이점은 인덱싱 표시기 버퍼 의 방향입니다. 그러나 이것은 혁신에 익숙해지는 것이 더 좋지만 핀치로 해결됩니다. 그리고 지표 값을 얻는 것은 동일하게 유지됩니다. 나는 Kovalev의 튜토리얼을 읽지 않았고 거기에 무엇이 있는지 모르지만 업데이트된 MetaEditor mql4를 사용하여 이 튜토리얼에서 솔루션을 작성하는 것이 불가능할 것이라는 점은 매우 의심스럽습니다.

멋지다.)))) 로드에 절차적 FORTRAN과 BASIC이 있지만 나에게는 효과가 없었다. 좋은 교과서는 잘 구성되어 있고 충분히 명확하며 제작자가 물론 학생이 필요한 경우 기초로 삼을 수 있습니다. 불행히도 다른 사람은 없습니다. OOP로는 충분하지 않습니다. 기사를 읽어야 합니다. 상당히 많은 교과서가 업데이트된 MT4 터미널에 있었습니다. 비축소 데이터 유형에 대한 많은 의견이 있습니다. 컴파일러는 엄격한 검사에서도 오류를 보지 못했습니다.

 
Valeriy Yastremskiy :

멋지다.)))) 비록 로드에 절차적 FORTRAN과 BASIC이 있지만 그것은 나를 위해 작동하지 않았다. 좋은 교과서는 잘 구성되어 있고 충분히 명확하며 제작자가 물론 학생이 필요한 경우 기초로 삼을 수 있습니다. 불행히도 다른 사람은 없습니다. OOP로는 충분하지 않습니다. 기사를 읽어야 합니다. 상당히 많은 교과서가 업데이트된 MT4 터미널에 있었습니다. 비축소 데이터 유형에 대한 많은 의견이 있습니다. 컴파일러는 엄격한 검사에서도 오류를 보지 못했습니다.

다음 OOP에 대한 제 생각입니다. 그리고 처음부터 전체 주제를 읽는 것은 해롭지 않을 것입니다.

ООП для школьников.
ООП для школьников.
  • 2019.10.04
  • www.mql5.com
======================================================================================================================== В этой теме будет нескольк...
 

인사말. 말해 주세요. 주문을 선택한 후 티켓이 변경되는 이유가 명확하지 않습니다. 코드:

       for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--){
         if ( OrderSelect (i ,SELECT_BY_POS, MODE_TRADES)){
             if (OrderSymbol()== Symbol () && OrderMagicNumber()==magic && OrderType()==OP_BUYSTOP){
               Print ( "111  OrderTicket() " , OrderTicket(), "  OrderType() " , StringType(OrderType()));
               temp=OrderTicket();
               if ( OrderOpenPrice()>start_bid
               +(( MathCeil ( (Bid-start_bid)/(bs_distance* Point ) )+bs_orders+Orders( "bs" )+ 1 )*bs_distance* Point ) ){
                   Print ( "222 OrderDelete bs Bid " , Bid, "  OrderOpenPrice() " , OrderOpenPrice()); 
                   if (!OrderDelete(OrderTicket(), clrBlack )){
                     Print ( "333 OrderDelete bs Bid " , Bid, "  OrderTicket() " , OrderTicket(), "  OrderType() " , StringType(OrderType()));
                  }
               }
            }
         } 
      }

시장에는 BUYSTOP 티켓 10과 BUY 티켓 9의 두 가지 주문이 있습니다.

잡지:


 
Alexey Viktorov :

다음 OOP에 대한 제 생각입니다. 그리고 처음부터 전체 주제를 읽는 것은 해롭지 않을 것입니다.

감사합니다, 동의합니다))))

 
Andrey Sokolov :

인사말. 말해 주세요. 주문을 선택한 후 티켓이 변경되는 이유가 명확하지 않습니다. 코드:

시장에는 BUYSTOP 티켓 10과 BUY 티켓 9의 두 가지 주문이 있습니다.

잡지:


자체 작성 기능 중 하나에 주문(예: Orders( "bs" ) )을 통한 검색이 있고 그에 따라 반복되는 OrderSelect()가 있다고 가정합니다. 제시된 주기로 돌아갈 때 모든 데이터는 그곳에서 선택한 마지막 주문에 대해 발행됩니다.

 
Igor Zakharov :

자체 작성 기능 중 하나에 주문(예: Orders( "bs" ) )을 통한 검색이 있고 그에 따라 반복되는 OrderSelect()가 있다고 가정합니다. 제시된 주기로 돌아갈 때 모든 데이터는 그곳에서 선택한 마지막 주문에 대해 발행됩니다.

감사해요

 
Andrey Sokolov :

인사말. 말해 주세요. 주문을 선택한 후 티켓이 변경되는 이유가 명확하지 않습니다. 코드:

시장에는 BUYSTOP 티켓 10과 BUY 티켓 9의 두 가지 주문이 있습니다.

잡지:


작업 코드가 게시된 코드와 일치하지 않습니다.

 Print ( "222 OrderDelete bs Bid " , Bid, "  OrderOpenPrice() " , OrderOpenPrice());

이 코드에서 "OrderTicket()"이 인쇄되는 위치

주문 선택을 포함할 수 있는 다른 사용자 정의 함수의 호출에 주의하십시오.

 
Alexey Viktorov :

당신은 올바른 주소에 왔습니다. 여기에서는 새로운 mql4 문서에 따라 mql4에서 올바르게 수행하는 방법을 제안합니다.

글을 쓰는 것이 어렵다면, 당신이 쓴 것과 얻지 못한 것에 대해 구체적인 질문을 하십시오. 이해할 수 없는 한 줄로 킬로미터 코드를 읽는 사람은 거의 없다는 점을 명심하십시오. 나는 확실히하지 않을 것입니다.

당신은 정확히 내 질문이 의도된 사람입니다. 귀하의 개인적인 요구 사항에 따라 내 문제를 명확하게 보여주기 위해서만 테스터용 Mql4 코드를 짧게 만들었기 때문입니다. 그러나 불행히도 이것은 Artem에 대한 이해를 찾지 못했습니다.

내 문제를 해결하기 위해 내 코드에 필요한 변경을 해주시면 대단히 감사하겠습니다. 그 본질을 반복하겠습니다.

주문의 종료 후 마감된 주문의 일부 매개변수를 Print()에 표시해야 합니다(그리고 많은 매개변수가 동시에 열려 있음). 나는 이것을 매우 성공적으로 하는 법을 배웠다. 그러나 ..... 내 마음이 충분하지 않은 솔루션에 대한 한 가지 문제가 있습니다. 일부 주문은 한 틱과 한 가격 에 스탑으로 마감됩니다. 그런 다음 프로그램은 첫 번째 닫힌 순서를 무시 하고 마지막으로 닫힌 순서의 Print() 만 인쇄합니다. 그리고 첫 번째 이후에는 인쇄되지 않습니다.

문제

위에서 설명한 경우 Print()를 인쇄하고 첫 번째 주문이 stop으로 닫힌 후 프로그램을 만드는 데 사용할 수 있는 언어 구성은 무엇입니까?

 int H;
int L;
int TP;  
int start()
{
int Ht = OrdersHistoryTotal();
if ( OrderSelect (Ht- 1 ,SELECT_BY_POS, MODE_HISTORY))                                             
if (TP!=OrderTicket( ))
{
Print ( "---------------------------------------------------------------=" , TimeToString (OrderOpenTime()) );
TP=OrderTicket( );
}

if ( TimeCurrent ()== 1262598040 )
if (H== 0 )
{
OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 , 1.6217 , 1.60919 , "300" , 10 );
H= 1 ;
}
if ( TimeCurrent ()== 1262601140 )
if (L== 0 )
{
OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 , 1.62199 , 1.61758 , "300" , 10 );
L= 1 ;
}
return ( 0 );


 
ANDREY :

당신은 정확히 내 질문이 의도된 사람입니다. 귀하의 개인적인 요구 사항에 따라 내 문제를 명확하게 보여주기 위해서만 테스터용 Mql4 코드를 짧게 만들었기 때문입니다. 그러나 불행히도 이것은 Artem에 대한 이해를 찾지 못했습니다.

내 문제를 해결하기 위해 내 코드에 필요한 변경을 해주시면 대단히 감사하겠습니다. 그 본질을 반복하겠습니다.

주문의 종료 후 마감된 주문의 일부 매개변수를 Print()에 표시해야 합니다(그리고 많은 매개변수가 동시에 열려 있음). 나는 이것을 매우 성공적으로 하는 법을 배웠다. 그러나 ..... 내 마음이 충분하지 않은 솔루션에 대한 한 가지 문제가 있습니다. 일부 주문은 한 틱과 한 가격 에 스탑으로 마감됩니다. 그런 다음 프로그램은 첫 번째 닫힌 순서를 무시 하고 마지막으로 닫힌 순서의 Print() 만 인쇄합니다. 그리고 첫 번째 이후에는 인쇄되지 않습니다.

문제

위에서 설명한 경우 Print()를 인쇄하고 첫 번째 주문이 stop으로 닫힌 후 프로그램을 만드는 데 사용할 수 있는 언어 구성은 무엇입니까?


그리고 코드는 각각 엄격하게 지정된 시간에 두 개의 판매 위치를 열고 허용될 때 마지막 위치의 시작 시간을 인쇄하는 것 외에 실제로 무엇을 합니까? 모든 것. 동시에 코드 동작에서 "기적"으로 이어질 수 있는 초기화되지 않은 변수와 수년간의 거미줄이 있는 먼지가 많은 선반에서 꺼낸 아주 아주 오래된 start() 핸들러를 사용하여 고대 핸들러가 있는 시장(언젠가는 무언가를 팔고 싶을 때)은 유효성 검사기를 절대 놓치지 않을 것입니다. 프로그램 유형이 잘못되었다는 반복 메시지가 표시됩니다.

 
ANDREY :

당신은 정확히 내 질문이 의도된 사람입니다. 귀하의 개인적인 요구 사항에 따라 내 문제를 명확하게 보여주기 위해서만 테스터용 Mql4 코드를 짧게 만들었기 때문입니다. 그러나 불행히도 이것은 Artem에 대한 이해를 찾지 못했습니다.

내 문제를 해결하기 위해 내 코드에 필요한 변경을 해주시면 대단히 감사하겠습니다. 그 본질을 반복하겠습니다.

주문의 종료 후 마감된 주문의 일부 매개변수를 Print()에 표시해야 합니다(그리고 많은 매개변수가 동시에 열려 있음). 나는 이것을 매우 성공적으로 하는 법을 배웠다. 그러나 ..... 내 마음이 충분하지 않은 솔루션에 대한 한 가지 문제가 있습니다. 일부 주문은 한 틱과 한 가격 에 스탑으로 마감됩니다. 그런 다음 프로그램은 첫 번째 닫힌 순서를 무시 하고 마지막으로 닫힌 순서의 Print() 만 인쇄합니다. 그리고 첫 번째 이후에는 인쇄되지 않습니다.

문제

위에서 설명한 경우 Print()를 인쇄하고 첫 번째 주문이 stop으로 닫힌 후 프로그램을 만드는 데 사용할 수 있는 언어 구성은 무엇입니까?

Artyom의 대답은 기억나지 않고, 찾아보지도 않고 그가 대답할 수 있을 거라고 생각합니다. 그의 기사에는 이에 필요한 모든 기능이 있으며 그의 기사에 있는 모든 코드는 mql5 및 mql4용 다중 터미널 또는 두 가지 버전입니다. mql4에서 이러한 옵션을 확인했는데 모든 것이 "강타"로 작동하고 스톱 또는 테이크에 의해 닫히며 실수를 하지 않습니다.

예, 이러한 기사를 이해하기 어렵지만 저보다 나이가 많지 않다면 그만한 가치가 있습니다. 그리고 나에게 프로그래머에게는 과분할 정도로 많다.

다른 옵션은 더 간단하지만 훨씬 느리게 작동합니다. 배열에 주문 티켓을 쓰고 이 배열을 사용하여 주문을 선택하고 주문 마감 시간을 확인합니다. 0보다 크면 닫힙니다. 이 닫힌 주문의 주석에 "sl"문자가 있으면 주문이 중지됩니다. 또한 주문이 마감되면 배열에서 삭제합니다. 또는 전체 어레이를 통과한 후 나머지 미결 주문으로 다시 채웁니다. 대체로, 공상의 비행...

어떤 옵션을 선택할지는 귀하에게 달려 있습니다. 그리고 Kovalev의 교과서에 대한 몇 가지 게시물을 읽으십시오. 튜토리얼에서 int start()를 작성하도록 제안한 반면, 조언자를 위해 업데이트된 mql4에서는 void OnTick()을 작성해야 합니다.

표시기 및 스크립트에 대해서는 설명서를 참조하십시오. 그건 그렇고, 업데이트된 mql4에서 표시기를 작성하는 것은 Sergey가 이 튜토리얼을 작성할 때보다 훨씬 쉽습니다.