どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1015

 
nikelodeon:
専門家はそういう問題に振り回されると思うので、自分で解決していかなければなりませんね :-)テスターのように、ディールクロージング時にチャートにアイコンを作るには?もしかしたら、すぐに使える機能があるかも?

アドバイザー/スクリプトによるクロージングであれば

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


矢印の色

[in] チャート上の終値矢印の色。パラメータがない場合、またはその値がCLR_NONEの 場合、チャート上に矢印は表示されません。

---

手動の場合 - この取引を履歴に残し、アイコンで表示するスクリプト/インジケータを作成/借用するだけです。

 
artborder:

アドバイザー/スクリプトによるクロージングであれば


矢印の色

[in] チャート上の終値矢印の色。パラメータがない場合、または値がCLR_NONEの場合、チャート上に矢印は表示されません。

---

手動の場合 - 既製のスクリプトやインジケータを書くか借りるかするだけで、履歴にあるこの取引をキャッチし、アイコンで表示することができます。

ありがとうございます!今、私は挑戦します!!!!
 
artborder:

こんにちは、質問です。

チャート、そのサブウィンドウ、サブウィンドウ内のインジケータをプログラム検索すると、インジケータの総数、そしてその名前、パラメータなどを調べることができます。

ChartIndicatorsTotalChartIndicatorNameなどを 使用する。

このウィンドウで動作しているExpert AdvisorのChartID名を同じように知るには?

MT4に関する質問

もうひとつお聞きしたいのですがMT4のログファイルを読むには どうしたらよいですか?このコードではエラーが発生します ...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の 2番目のバージョンが動くこと... )

#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第2版が動作することです ... )


2番目のバリエーションがうまくいけば、解決です。では、何が問題なのでしょうか?
 
Vinin:
2番目のオプションがうまくいけば、解決策があります。で、何が問題なんだ?
問題は、端末の設定 に許可されたアドレスとして入力するリンクが多くなることです( + 同じPCを持っていない...
は全く選択肢に入りません(
 

こんにちは。

一般的には、1小節目から5小節目までを調べる必要がありますが、forループで小節の始まりを見つける方法を教えてください。(現在の0-barはカウントされません)。

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

{

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

......

機能を理解するために読むだけでは、理解できない。助けてください。

リーダース!

 
Money_Maker:
HttpSendRequestWが リクエストを送信しないのですが、何が問題なのか教えてください。GetLastErrorは0を表示します。

(面白いのは、WebRequest第2版が動作することです... )


転送する必要があるのはもはや文字列ではなく、charバッファなのです。

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

 
Shargyn:

こんにちは。

forループで小節の先頭を見つける方法を教えてください。一般的には、1小節目から5小節目までを調べる必要があります。(現在の0-barはカウントされません。)

for functionだけ読んでもよくわからない。助けてください。

リーザーズ!(笑

に、どうしたらいいのか

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を追加することができるかもしれません。(マクロ置換などで)
、正直なところWebRequestは 非同期ではないので使いたくないのですが...。