Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1015

 
nikelodeon :
Pekala, sanırım uzmanlar artık bu tür sorunlardan şişmiş durumda ve işte benimkiyle birlikte :-) Bir anlaşmayı kapatırken, test cihazında olduğu gibi grafikte simgelerin görüntülendiğinden nasıl emin olabilirim ????? Belki bazı hazır fonksiyonlar vardır????

bir danışman/komut dosyası tarafından kapatılıyorsa, o zaman

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


ok_renk

[içinde] Grafikteki kapat okunun rengi. Parametre yoksa veya değeri CLR_NONE'a eşitse, ok grafikte görüntülenmez.

---

manuel olarak ise, bu anlaşmayı tarihte yakalayacak ve bir simge ile gösterecek hazır bir komut dosyası/gösterge yazın/alın

 
artborder :

bir danışman/komut dosyası tarafından kapatılıyorsa, o zaman


ok_renk

[içinde] Grafikteki ok rengini kapatın. Parametre yoksa veya değeri CLR_NONE'a eşitse, ok grafikte görüntülenmez.

---

manuel olarak ise, bu anlaşmayı tarihte yakalayacak ve bir simge ile gösterecek hazır bir komut dosyası/gösterge yazın/alın

Teşekkürler, şimdi deneyeceğim!
 
artborder :

Merhaba, bu bir soru:

Grafikler, alt pencereleri, alt pencerelerdeki göstergeler arasında yineleme yaparken, toplam gösterge sayısını ve ardından adlarını, parametrelerini vb. öğrenebilirsiniz.

ChartIndicatorsTotal , ChartIndicatorName .. vb. kullanarak

Ayrıca bu pencerede ChartID tarafından başlatılan bir Uzman Danışmanın (Uzman) adını program aracılığıyla nasıl bulabilirim?

MT4 ile ilgili soru

başka bir soru... MT 4 günlük dosyalarını programlı olarak nasıl okuyabilirim ? Böyle bir kod hata veriyor.. 5002

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

     string str= FileReadString (filehandle); 
 
Lütfen söyle bana sebep ne olabilir? HttpSendRequestW istek göndermiyor. GetLastError 0 veriyor.

(En ilginci, WebRequest'in ikinci versiyonunun çalışmasıdır...)

 #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 :
Lütfen söyle bana sebep ne olabilir? HttpSendRequestW istek göndermiyor. GetLastError 0 veriyor.

(En ilginci, WebRequest'in ikinci versiyonunun çalışmasıdır...)


İkinci seçenek işe yararsa, çözüm bulunur. Sorun nedir?
 
Vinin :
İkinci seçenek işe yararsa, çözüm bulunur. Sorun nedir?
sorun şu ki terminal ayarlarına izin verilen adresler olarak girilecek çok fazla link olacak ( +Birden fazla bilgisayarım var...
hiç bir seçenek değil
 

Merhaba!

Lütfen for döngüsünde çubuğun başlangıcını nasıl bulacağımı söyle, genel olarak, 1. çubuktan 5. kapsayıcıya bakmanız gerekiyor? (mevcut 0-bar sayılmaz)

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

{

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

......

for işlevini okudum, ancak anlayamıyorum. Yardım.

Samimi olarak!

 
Money_Maker :
Lütfen söyle bana sebep ne olabilir? HttpSendRequestW istek göndermiyor. GetLastError 0 veriyor.

(En ilginci, WebRequest'in ikinci versiyonunun çalışmasıdır...)


Artık aktarılması gereken bir dize değil, bir karakterin arabelleğidir.

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

 
Shargyn :

Merhaba!

Lütfen for döngüsünde çubuğun başlangıcını nasıl bulacağımı söyle, genel olarak, 1. çubuktan 5. kapsayıcıya bakmanız gerekiyor? (mevcut 0-bar sayılmaz)

for işlevini okudum, ancak anlayamıyorum. Yardım.

Samimi olarak!

ne yapılacağından

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

veya

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

Evet olmasına rağmen. Geliştirme sırasında yapmak daha mantıklıydı

ne yapılacağından

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));
cevap için teşekkürler, lütfen söyle bana, seni doğru anladım, böyle mi demek istiyorsun?

bu yüzden nedense sonuç da değişmiyor ... (

başka bir soru: belki izin verilenlere programlı olarak URL'ler ekleyebilirsiniz? (örneğin, makro ikame yoluyla)
ve dürüst olmak gerekirse, uyumsuzluğu nedeniyle WebRequest'i kullanmak istemiyorum ....