MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1288

 
YanSay:

以下のようにShellExecuteW()でやろうとしているのですが、どうでしょうか?

はこちらでご確認ください。

https://www.mql5.com/ru/forum/160683/page1243#comment_18095301

ランタイムプログラムとファイルは別々に指定する必要があるのでしょうか?
 
leonerd:


そしてこの状況は、何によるものなのでしょうか?同じバーインデックスを使用しています。しかも、シンボルの初回実行時のみ発生するようです。どちらか深いほうに。コード内の上記は、バーの有無をチェックしているだけだと思っていたのですが...。

同じ値は、垂直な線 または点を意味します。
このコードは、クリーンなバージョンを装うことなく、デモのための例として書かれたものです。
 
Aleksei Stepanenko:

はこちらをご覧ください。

https://www.mql5.com/ru/forum/160683/page1243#comment_18095301

実行するプログラムとファイルを別々に指定したほうがいいのでは?

素晴らしい!うまくいきました!ありがとうございます。

あとは、スクリプトが実行されるまでコードが続かないように、コードに実行チェックを組み込むだけですが、これを実装する方法について何かアドバイスがあれば教えてください。

Sleep()よりも確実で適切な方法があると思うのですが。

#import "shell32.dll"
int ShellExecuteW(int hWnd, string lpVerb, string lpFile, string lpParameters, string lpDirectory, int nCmdShow);
#import
#define  SW_SHOW 5
#define  SW_SHOWNORMAL 1

void OnStart()
{
   ShellExecuteW(NULL,"Open","python.exe","C:\\Users\\yansa\\Desktop\\test_script.py",NULL,SW_SHOW); 
   Sleep(10000);
   //Code continues
}
 

if 条件でEAがOnInit() に戻るようにする方法を教えてください。

 if(buy_lots>0||sell_lots>0)
  { Go to OnInit();}
 
MakarFX:

if 条件でEAがOnInit() に戻るようにするにはどうしたらいいですか?

OnInit() で使用するコードを別の関数でラップし、OnInit() と必要に応じて if() からこの関数を呼び出します。

 
YanSay:

素晴らしい!うまくいきました!ありがとうございます。

あとは、スクリプトが実行されるまでコードが続かないように、コードに実行チェックを組み込むだけですが、これを実装する方法について何かアドバイスがあれば教えてください。

Sleep()よりも確実で適切な方法があると思うのですが。

私もいくつかの実験をしました。カメラを開いたのですが、プロセスを終了させるまで閉じることができません。

//+------------------------------------------------------------------+
//|                                                            1.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#import "shell32.dll"
int ShellExecuteW(int hWnd, string lpVerb, string lpFile, string lpParameters, string lpDirectory, int nCmdShow);
#import
#define  SW_SHOW 5
#define  SW_SHOWNORMAL 1
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   ShellExecuteW(NULL,"Open","C:\\Program Files (x86)\\Lenovo\\YouCam\\YouCam.exe","",NULL,SW_SHOW); 
  }
//+------------------------------------------------------------------+
 
Igor Makanu:

OnInit() で使用するコードを別の関数でラップし、OnInit() と必要に応じて if() からこの関数を呼び出します。

なるほど、そういうことだったんですね。ExpertReload.Restartのような、もっとシンプルなものはないのでしょうか?
 
MakarFX:
なるほど、そういうことだったんですね。ExpertReload.Restartのような、もっと簡単なものはないのでしょうか?

ノー

MQLでは、イベントベースのモデルで、OnInit、OnTick ... を意味します。は、端末のみで作る

複雑な解決策を望むならまあ、EAからTFを切り替える -OnInitを 呼び出す、私はあなたがそれを探していたとは思わない;)

 
MakarFX:
なるほど、そういうことだったんですね。ExpertReload.Restartのような、もっとシンプルなものはないのでしょうか?

帰国子女

 
Igor Makanu:

ノー

MQLでは、イベントベースのモデルで、OnInit、OnTick ... を意味します。は、端末のみで作る

複雑な解決策を望むならまあ、EAからTFを切り替える -OnInitを 呼び出す、私はあなたがそれを探していたとは思わない;)

ありがとうございます、そうですか。