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

 
Ihor Herasko :

틱을 작성하고 전략 테스터 로 대체하십시오.

그리고 좀 더 사용자 친화적인?

 
Andrey Sokolov :

그리고 좀 더 사용자 친화적인?

하지만 하지 않을 일을 스스로 쓸 수는 없잖아요? 그런 다음 https://www.mql5.com/en/job

여기 기사가 있습니다 https://www.mql5.com/ru/articles/4566

읽고, 배포 법칙에 따라 인용

MT4에 자체 차트, 눈금이 필요한 경우 기사를 읽은 후 MT5에서 인용문을 내보내고 MT4로 가져옵니다.

더 쉬운 방법은 없습니다

MT4에서 프로그래밍할 수 있다면 metaetidore의 MT4 전달에서 PeriodConverter 스크립트를 열고 코드를 이해할 수 있고 볼륨이 매우 작습니다. 처리하는 것은 어렵지 않을 것입니다. 그런 다음 자신의 차트를 만들고 테스트하십시오.

추신: 기억합니다. Weerstrass 기능에 대한 차트를 생성하기 위해 포럼에 스크립트를 게시했으며 MT4에서 수행했습니다.

https://www.mql5.com/ru/forum/86386/page988#comment_7843056

 

안녕하세요. 기능 시장 근처에 위치 또는 주문의 존재 플래그를 반환합니다(포럼에서 찾은 기능). 코드를 테스트하려면 현재 가격 위아래로 200포인트 영역에 위치가 없으면 위치를 열어야 합니다 . 거의 동일한 가격으로 각 틱에 포지션을 개설하는 이유는 무엇입니까?

 //+------------------------------------------------------------------+
//|                                                    testprpos.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
//--- input parameters
input int       Input1;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if (!ExistOPNearMarket( Symbol (),- 1 , 200 ))
     {
       int ticket= OrderSend ( Symbol (), OP_BUY , 1 , Ask , 300 , 0 , 0 , "_" , 16384 , 0 , clrGreen );
       if (ticket< 0 )
        {
         Print ( "OrderSend завершилась с ошибкой #" , GetLastError ());
        }
       else
         Print ( "Функция OrderSend успешно выполнена" );
       //--- 

     }

  }
//+------------------------------------------------------------------+
bool ExistOPNearMarket( string sy= "" , int op=- 1 , int mn=- 1 , int ds= 1000000 ) 
  {
   int i,k= OrdersTotal (),ot;

   if (sy== "" || sy== "0" ) sy= Symbol ();
   double p= MarketInfo (sy, MODE_POINT );
   if (p== 0 ) if ( StringFind (sy, "JPY" )< 0 ) p= 0.0001 ; else p= 0.01 ;
   for (i= 0 ; i<k; i++) 
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) 
        {
         ot= OrderType ();
         if (( OrderSymbol ()==sy) && (op< 0 || ot==op)) 
           {
             if (mn< 0 || OrderMagicNumber ()==mn) 
              {
               if (ot== OP_BUY || ot== OP_BUYLIMIT || ot== OP_BUYSTOP ) 
                 {
                   if ( MathAbs ( MarketInfo (sy, MODE_ASK )- OrderOpenPrice ())<ds*p) return ( True );
                 }
               if (ot== OP_SELL || ot== OP_SELLLIMIT || ot== OP_SELLSTOP ) 
                 {
                   if ( MathAbs ( OrderOpenPrice ()- MarketInfo (sy, MODE_BID ))<ds*p) return ( True );
                 }
              }
           }
        }
     }
   return ( False );
  }
//+------------------------------------------------------------------+
 
얘들 아, 고문의 마이그레이션 문제 . 버튼이 비활성화되어 마이그레이션할 수 없습니다.
 
Aleksei Petrenko :
얘들 아, 고문의 마이그레이션 문제 . 버튼이 비활성화되어 마이그레이션할 수 없습니다.
 
Aleksei Petrenko :


 
Ghabo :

안녕하세요. 기능 시장 근처에 위치 또는 주문의 존재 플래그를 반환합니다(포럼에서 찾은 기능). 코드를 테스트하려면 현재 가격 위아래로 200포인트 영역에 위치가 없으면 위치를 열어야 합니다 . 거의 동일한 가격으로 각 틱에 포지션을 개설하는 이유는 무엇입니까?

호출 시 매개변수 수 확인

ExistOPNearMarket( Symbol (),- 1 , 200 )

그리고 그 설명

 
Galim_V :

호출 시 매개변수 수 확인

그리고 그 설명

고맙습니다.
 
Python에는 바이너리용 봇이 있습니다. 문제는 목발 없이 터미널에서 로봇의 신호를 어떻게 보낼 수 있습니까?
 

거래 마진 계산 방법을 알려주실 수 있나요?


두 가지 접근 방식 시도

(0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE)


그리고 이렇게

FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1);

 double val=AccountFreeMargin()-FreeMarginCheck;



첫 번째는 예금 통화 가 USD인 경우 EURJPY에 이상한 결과를 제공합니다. 수식에 뭔가를 추가해야 합니까?

두 번째 것도 두 번째로 작동하고 올바른 값을 제공한 다음 약간의 말도 안되는 값을 제공합니다(예금에 따라 다름)