mt4チャート上にボタンとテキストフィールドを表示できるようになりました。 - ページ 6

 

こんにちは。

どなたか、このためのファイルを提供できる方はいらっしゃいますか?この種の機能を 使えるようにするのが本当に好きなのですが、fx1.netにアクセスしても、まったく見つかりません。ググってみても、すべてのファイルのダウンロードを見つけることはできませんでした。

もし誰かが親切にもコピーを提供してくれるなら、それはとてもありがたいことです。私の電子メールは paul@lukafour3.com か、または私にpmを送るだけです。

よろしくお願いします。

ポール

 
fridaystreet:

こんにちは。

どなたか、このためのファイルを提供できる方はいらっしゃいますか?この種の機能を使えるようにするのが本当に好きなのですが、fx1.netにアクセスしても、まったく見つかりません。ググってみても、すべてのファイルのダウンロードを見つけることはできませんでした。

もし誰かが親切にもコピーを提供してくれるなら、それはとてもありがたいことです。私の電子メールは paul@lukafour3.com か、または私にpmを送るだけです。

よろしくお願いします。

ポール


実は、あなたの問題がよくわからないのです。

私は、最初にfx1.netを訪れ、このサイトに導かれ、コピーを手に入れました。

https://www.mql5.com/go?link=http://taurus-traders.com/index.php/de/services/forex-download/viewdownload/6-plugins/246-mt4gui-toolbox-addon-for-metatrader

ここからDLLを入手しました。ダウンロード」ボタンは、ページの一番下、テキストの後にあります。

ボタンを作成するための関数の使い方はすべて説明されています。

ただ、デメリットもあるので、不愉快な思いをしないように、まずはデモで十分にテストしてください。

もし、これらのボタンを実際の取引で使おうとしているのなら

また、このスレッドを最初から最後まで読んでください。

AND:あなたは "mt4gui.dll "のためにGoogleをしましたか?試してみてください、あなたはこれがいかに簡単であるか驚かれることでしょう!!!

 

こんにちは。

MT4GUIをベースにした簡単なEAを書いたのですが、残念ながらタイムフレームを変更しようとすると(例えばM1からM5へ)MT4がクラッシュしてしまいます。どなたかこのような経験をされた方、または修正する方法をご存知の方はいらっしゃいますか?

いろいろと試してみましたが、今のところ解決策は見つかりませんでした。ボタン付きの最もシンプルなEAでさえ、タイムフレームを変更するとクラッシュします。私はビルド432と438でこの問題を経験しました。

ありがとうございます。

 
darksamu:

こんにちは。

MT4GUIをベースにした簡単なEAを書いたのですが、残念ながらタイムフレームを変更しようとすると(例えばM1からM5へ)MT4がクラッシュしてしまいます。どなたかこのような経験をされた方、または修正する方法をご存知の方はいらっしゃいますか?

いろいろと試してみましたが、今のところ解決策は見つかりませんでした。ボタン付きの最もシンプルなEAでさえ、タイムフレームを変更するとクラッシュします。私はビルド432と438でこの問題を経験しました。

ありがとうございます。

はい、そうです。以前、このことについて書きました。

これはDLLの問題なので、どうすることもできません。

ただ、多くのチャートをそれぞれ異なるTFで開くことで回避してください。

あるいは、私もこのようにやっています。

もう一つ、DLLがMT4をクラッシュさせる状況として、スマイリー・フェイスをクリックしてエクスターンを修正したい場合があります。

そのため、Defaultsボタンを作り、EAを削除して再度開き、EA開始ウィンドウをポップアップさせるようにしました。

 

こんにちは、Dadasさん。

あなたのコードの一部を挿入することができますか?ロットサイズの選択」についてのメニューが作成されていないのです。ありがとうございます。

 
endy5:

こんにちは、Dadasさん。

あなたのコードの一部を挿入することができますか?ロットサイズの選択」についてのメニューが作成されていないのです。ありがとうございます。


int    hwnd = WindowHandle(Symbol(),Period());

string MinimumLot = DoubleToStr(MarketInfo(Symbol(),MODE_MINLOT),2);

int SelectLotSizeBox = tbPutObject(hwnd,"list",-130,213,60,9,"");
    tbAddListItem(hwnd,SelectLotSizeBox,MinimumLot);
    if(MinimumLot=="0.01"){
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.02");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.03");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.04");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.05");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.06");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.07");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.08");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.09");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.10");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.20");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.30");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.40");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.60");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.70");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.80");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.90");
    tbAddListItem(hwnd,SelectLotSizeBox ,"1.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");}
    if(MinimumLot=="0.10"){  
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.20");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.30");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.40");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.60");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.70");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.80");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.90");
    tbAddListItem(hwnd,SelectLotSizeBox ,"1.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");}
    if(MinimumLot=="1.00"){    
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");    
    }
    tbSetListSel(hwnd,SelectLotSizeBox ,0);
私はこうしています。
 
こんにちは。
私はフランス人です私の英語で申し訳ありません。
私は非常によく理解していないどのようにリスト。
は、それがその値を回復する方法を教えてもらえますか?

サンプル

    tbAddListItem(hwnd,SelectLotSizeBox ,"2.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.50"); 

tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");

懇切丁寧に
 

こんにちは、ダダスです。

過去のコードの挿入、ありがとうございました。私のコードもそうなっています :-)

しかし、私は1つの質問があります - 私は選択メニュー(オブジェクトSelectLotSizeBox)から値(ロットサイズ)を取得する方法。

私は、関数:文字列tbGetListSel(int hwnd, int object) を見つけました。

コード:stringsize=tbGetListSel(hwnd, SelectLotSizeBox);

選択されたロットサイズ0.01の値ゼロのために返します。

セレクトロットサイズ0.02の場合、値1など。これは選択された項目からの通し番号です。私は直接値のlotize (0.01; 0.02; 等)を得てもいいですか。

私を助けていただきありがとうございます。

 
phenix77:
こんにちは。
私はフランス人です私の英語で申し訳ありません。
私は非常によく理解していないどのようにリスト。
は、それがその値を回復する方法を教えてもらえますか?

サンプル

tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");

というのをご存じでしょうか?

  string tbVersion();         
  int tbPutObject(int,string,int,int,int,int,string); // hwnd,type,x,y,w,h,label     
  int tbSetBgColor(int,int,int); // hwnd,object,bgcolor  
  int tbSetTextColor(int,int,int); // hwnd,object,color  
  int tbRemove(int,int);
  int tbRemoveAll(int); // hwnd 
  int tbEnable(int,int,int); // hwnd, object, 0|1   
  bool tbIsClicked( int,int ); // hwnd,object  
  int tbSetText(int,int,string,int,string); // hwnd,object,text,fontsize,fontname     
  string tbGetText(int,int); // hwnd,object 
  int tbAddListItem(int,int,string); // hwnd,object,item  
  int tbGetListSel(int,int); // hwnd,object  
  int tbSetListSel(int,int,int); // hwnd,object,index 
これは、
Lot=StrToDouble(tbGetText(hwnd,SelectLotSizeBox));
の値を取得します。

セレクトボックスの中のテキストは、テキストですから、文字列ですよねー?

そして、この文字列をダブルにする必要がありますよね〜?

 
endy5:

こんにちは、Dadasです。

文字列tbGetListSel(int hwnd, int object) という関数を見つけました。

コード:文字列サイズ= tbGetListSel(hwndは、SelectLotSizeBox)

選択されたロットサイズ0.01の値ゼロのために返します。

セレクトロットサイズ0.02の場合、値1など。これは選択された項目からの通し番号です。私は直接値のlotize (0.01; 0.02; 等)を得てもいいですか。

私を助けていただきありがとうございます。

// It is:
string tbGetText(int,int); // hwnd,object 
// This one is int (integer):
int tbGetListSel(int,int); // hwnd,object  
// You are looking for:
double size = StrToDouble(tbGetText(hwnd,SelectLotSizeBox));
理由: