포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 1015

 
nikelodeon :
글쎄, 나는 전문가들이 이제 그런 문제로 부풀어 올랐고 여기에 나와 함께 있습니다 :-) 거래를 성사시킬 때 테스터와 같이 차트에 아이콘이 표시되는지 어떻게 확인할 수 있습니까 ???? 기성품 기능이 있을 수 있나요????

고문/스크립트가 닫는 경우

bool   OrderClose( 
   int         ticket,       // номер ордера 
   double      lots,         // количество лотов 
   double      price,       // цена закрытия 
   int         slippage,     // максимальное проскальзывание 
   color       arrow_color   // цвет 
   );
 


arrow_color

【인】 차트에서 닫기 화살표의 색입니다. 매개변수가 없거나 해당 값이 CLR_NONE 과 같으면 화살표가 차트에 표시되지 않습니다.

---

수동으로 하는 경우 기록에서 이 거래를 포착하고 아이콘으로 표시할 기성품 스크립트/지표를 작성/취하십시오.

 
artborder :

고문/스크립트가 닫는 경우


arrow_color

【인】 차트의 닫기 화살표 색입니다. 매개변수가 없거나 해당 값이 CLR_NONE과 같으면 차트에 화살표가 표시되지 않습니다.

---

수동으로 하는 경우 기록에서 이 거래를 포착하고 아이콘으로 표시할 기성품 스크립트/지표를 작성/취하십시오.

감사합니다, 지금 시도하겠습니다!
 
artborder :

안녕하세요, 질문입니다:

차트, 하위 창, 하위 창의 표시기를 통해 반복할 때 표시기의 총 수와 이름, 매개변수 등을 찾을 수 있습니다.

ChartIndicatorsTotal , ChartIndicatorName 등을 사용하여

이 창에서 ChartID에 의해 시작된 Expert Advisor(전문가)의 이름을 프로그래밍 방식으로 어떻게 찾을 수 있습니까?

MT4에 대한 질문

또 다른 질문... MT 4 로그 파일을 프로그래밍 방식으로 어떻게 읽을 수 있습니까? 이러한 코드는 오류를 제공합니다.. 5002

   string filename=TerminalPath() + "\\MQL4\\Logs\\20160219.log" ; 
   int filehandle= FileOpen (filename, FILE_READ ); 
   if (filehandle< 0 ) 
     { 
       Print ( "Неудачная попытка открыть файл по абсолютному пути" ); 
       Print ( "Код ошибки " , GetLastError ()); 
     } 

     string str= FileReadString (filehandle); 
 
이유가 무엇인지 알려주세요. HttpSendRequestW 가 요청을 보내지 않습니다. GetLastError는 0을 제공합니다.

(가장 흥미로운 점은 WebRequest 의 두 번째 버전이 작동한다는 것입니다... )

 #property strict
#import "wininet.dll"
int InternetAttemptConnect( int x);
int InternetOpenW( string &sAgent, int lAccessType, string &sProxyName, string &sProxyBypass, int lFlags);
int InternetConnectW( int hInternet, string &szServerName, int nServerPort, string &lpszUsername, string &lpszPassword, int dwService, int dwFlags, int dwContext);
int HttpOpenRequestW( int hConnect, string &Verb, string & ObjectName , string &Version, string &Referer, string &AcceptTypes, uint dwFlags, int dwContext);
int HttpSendRequestW( int hRequest, string &lpszHeaders, int dwHeadersLength, uchar &lpOptional[], int dwOptionalLength);
int HttpQueryInfoW( int hRequest, int dwInfoLevel, int &lpvBuffer[], int &lpdwBufferLength, int &lpdwIndex);
int InternetOpenUrlW( int hInternet, string &lpszUrl, string &lpszHeaders, int dwHeadersLength, uint dwFlags, int dwContext);
int InternetReadFile( int hFile, uchar &sBuffer[], int lNumBytesToRead, int &lNumberOfBytesRead);
int InternetCloseHandle( int hInet);
#import

//Также для эстетики кода определим используемые имена констант из wininet.h.
#define OPEN_TYPE_PRECONFIG     0            // использовать конфигурацию по умолчанию
#define FLAG_KEEP_CONNECTION     0x00400000    // не разрывать соединение
#define FLAG_PRAGMA_NOCACHE     0x00000100    // не кешировать страницу
#define FLAG_RELOAD             0x80000000    // получать страницу с сервера при обращении к ней
#define SERVICE_HTTP             3            // требуемый протокол
#define INTERNET_FLAG_ASYNC     1

string             Host;       // имя хоста
int                Port;       // порт
int                Session;     // дескриптор сессии
int                Connect;     // дескриптор соединения

string acess_type;   // массив с данными для отправки POST-запросов 
uchar   data[];
string URL      = "http://ru.investing.com/earnings-calendar/Service/getCalendarFilteredData" ;
string Method   = "POST" ;
string ver_http = "HTTP/1.1" ;
string Refer    = "http://ru.investing.com/earnings-calendar/" ;

string HEADERS  = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + "\n" +
                   "Content-Type: application/x-www-form-urlencoded" + "\n" +
                   "X-Requested-With: XMLHttpRequest" + "\n" +
                   "Connection: Close" + "\n" ; // сам запрос
  
string REQUEST_BODY = "pair_id=6408&action=searchStock" ; // сюда вписываем данные POST-запроса 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
{
   StringToCharArray (REQUEST_BODY,data, 0 , StringLen (REQUEST_BODY), CP_ACP );
   
   OpenInet(URL,Port);
    
   int hRequest=HttpOpenRequestW(Connect, Method, URL, ver_http, Refer, acess_type, FLAG_KEEP_CONNECTION|FLAG_RELOAD|FLAG_PRAGMA_NOCACHE, 0 ); // создаем дескриптор запроса
   if (hRequest<= 0 )
   {
       Print ( "-Err OpenRequest" );
      InternetCloseHandle(Connect);
       return ( false );
   }  
  
    
   // отправили файл
   int hSend=HttpSendRequestW(hRequest,HEADERS, StringLen (HEADERS),data, ArraySize (data));
    
   if (hSend<= 0 )
   {
       Print ( "-Err SendRequest" );
      InternetCloseHandle(hRequest);
      CloseInet();
   }


   return ( INIT_SUCCEEDED );
}

//================== ФУНКЦИЯ ОТКРЫТИЯ / ЗАКРЫТИЯ ИНТЕРНЕТА ================================================================   
bool OpenInet( string aHost, int aPort)
{
   if (aHost== "" ) { Print ( "-Host is not specified" ); return ( false );}
   
   if (Session> 0 || Connect> 0 ) {CloseInet(); Print ( "+Open Inet..." );} // если сессия была опеределена, то закрываем

   // Попытки создать подключение к Интернету   
   if (InternetAttemptConnect( 0 )!= 0 ) { Print ( "-Err AttemptConnect" ); return ( false );} // если не удалось проверить имеющееся соединение с интернетом, то выходим
  
   string UserAgent= "Mozilla" ; string nill= "" ; 
   // Инициализирует приложение использует функции wininet  
   Session=InternetOpenW(UserAgent,OPEN_TYPE_PRECONFIG,nill,nill, 0 ); // открываем сессию
   
   if (Session<= 0 ) { Print ( "-Err create Session" ); CloseInet(); return ( false );} // если не смогли открыть сессию, то выходим

   Connect=InternetConnectW(Session,aHost,aPort,nill,nill,SERVICE_HTTP, 0 , 0 ); // Открывает протокол передачи файлов (FTP) или http-сеанса для данного сайта.
   if (Connect<= 0 ) { Print ( "-Err create Connect" ); CloseInet(); return ( false );}
   
   Host=aHost; Port=aPort; // присвоение значений
   
   // все проверки завершились успешно
   return ( true );
}
 
void CloseInet()
{
   Print ( "-Close Inet..." );
   if (Session> 0 ) InternetCloseHandle(Session); Session=- 1 ;
   if (Connect> 0 ) InternetCloseHandle(Connect); Connect=- 1 ;
}
//========================================================================================================================= 
 
Money_Maker :
이유가 무엇인지 알려주세요. HttpSendRequestW 가 요청을 보내지 않습니다. GetLastError는 0을 제공합니다.

(가장 흥미로운 점은 WebRequest의 두 번째 버전이 작동한다는 것입니다... )


두 번째 옵션이 작동하면 솔루션을 찾을 수 있습니다. 그래서 문제가 무엇입니까?
 
Vinin :
두 번째 옵션이 작동하면 솔루션을 찾을 수 있습니다. 그래서 문제가 무엇입니까?
문제는 터미널 설정 에 허용된 주소로 입력해야 하는 링크가 많다는 것입니다. ( + 컴퓨터가 두 대 이상 있습니다 ...
옵션이 전혀 아닙니다
 

안녕하세요!

for 루프에서 막대의 시작 부분을 찾는 방법을 알려주십시오. 일반적으로 첫 번째 막대에서 다섯 번째 막대까지 볼 필요가 있습니까? (현재 0-바는 계산되지 않음)

 for ( int i= 5 ; i< 1 ; i++)

{

h = iHigh( Symbol (),tf,i);

......

for 함수를 읽었지만 이해할 수 없습니다. 돕다.

감사합니다!

 
Money_Maker :
이유가 무엇인지 알려주세요. HttpSendRequestW 가 요청을 보내지 않습니다. GetLastError는 0을 제공합니다.

(가장 흥미로운 점은 WebRequest의 두 번째 버전이 작동한다는 것입니다... )


더 이상 전송해야 하는 문자열이 아니라 문자의 버퍼입니다.

https://forum.mql4.com/ru/67441

 
Shargyn :

안녕하세요!

for 루프에서 막대의 시작 부분을 찾는 방법을 알려주십시오. 일반적으로 첫 번째 막대에서 다섯 번째 막대까지 볼 필요가 있습니까? (현재 0-bar는 계산되지 않음)

for 함수를 읽었지만 이해할 수 없습니다. 돕다.

감사합니다!

부터 무엇을 해야할지

for(int i=1;i<=5;i++)

또는

for(int i=5;i>=1;i--)

네. 하는 것이 개발 중에 더 논리적이었습니다.

무엇부터 까지

for(int i=1;i++;i<=5)

 
#import "wininet.dll"
int HttpSendRequestW( int hRequest, char &lpszHeaders[], int dwHeadersLength, uchar &lpOptional[], int dwOptionalLength);
#import

char a[];
StringToCharArray (HEADERS,a);

int hSend=HttpSendRequestW(hRequest,a, StringLen (HEADERS),data, ArraySize (data));
답변 감사합니다. 제대로 이해했다고 말씀해 주세요. 이런 뜻인가요?

그래서 어떤 이유로 결과도 변경되지 않습니다 ... (

또 다른 질문: 허용된 URL에 프로그래밍 방식으로 URL을 추가할 수 있습니까? (예: 매크로 대체를 통해)
그리고 솔직히 말해서 WebRequest는 비동기가 아니기 때문에 사용 하고 싶지 않습니다.