エキスパート: DDE - サーバ - ページ 4

 

DLLとEXEのソースコードを入手することは可能でしょうか?私はMT5(32bitと64bit)用の最初のDLLを書いており、これは完璧なプロジェクトに なるでしょう。

 
エラー "2019.02.26 11:23:40.882 dde_example (ES,H1) Alert: Cannot find MT4.DDE.2 window!"が表示されます。

 
プログラムは問題なく動いています。しかし、私はExcelシートを作成する必要がある場所を理解していない...または、その自動生成?自動生成であれば、私はそれを見つけることができますか?



、助けてくださいありがとうございます、
 
Tom Sasson:

この記事はかなり古いものだが、まだ関連性がある。

このツールは素晴らしく、MT4の複数のインスタンスや複数のEAからでもデータを統合することができます。

もし以前の質問がまだ関連するものであれば、再投稿していただければお答えします。

MQL4に関する質問も同様です。

こんにちは、トム、


リアルタイムで売買のティックデータをExcelにエクスポート したいのですが、このツールを使えば可能でしょうか?

ありがとうございます。

 

こんにちは。


LASTを取得しようとしているのですが、いつも空白になってしまいます。


何が間違っているのか、誰かわかる?




CopyBuffer(MA_handle,0,0,100,MA);

ArraySetAsSeries(MA,true);

Double LAST = SymbolInfoDouble("USDBRL", SYMBOL_LAST);


// 項目DDEのチェックと追加

if(!CheckItem("A", "B"))

{

if(!AddItem("A", "B")) return;

}


if(!CheckItem("C", "D"))

{

if(!AddItem("C", "D")) return;

}

if(!CheckItem("COMPANY", "Value"))AddItem("COMPANY", "値");

if(!CheckItem("TIME", "Value"))AddItem("TIME", "値");

if(!CheckItem("LAST", "EURUSD"))AddItem("LAST", "USDBRL");

// 項目の値を設定する DDE

SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));

SetItem("TIME", "値",(文字列)TimeCurrent());


SetItem("A", "B", "EMA(21): "+DoubleToString(MA[0],6));;


SetItem("C", "D", "LAST: "+DoubleToString(LAST,5));

}

 

こんばんは。


いろいろいじった結果、なんとか解決しました。このためにサイトに登録しました。

OnTimer()関数 全体を変更します

void OnTimer()

{

//--- 配列MA[]にiMAの現在値を入れる。

//--- 100個の要素をコピー

// CopyBuffer(MA_handle,0,0,100,MA);

// ArraySetAsSeries(MA,true);

double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // eurusdの場合(例)

double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);

double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);

Double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);

// 項目DDEのチェックと追加

// if(!CheckItem("EMA", "B"))

// {

// if(!AddItem("EMA", "B")) return;

// }


if(!CheckItem("COMPANY", "Value"))AddItem("COMPANY", "値");

if(!CheckItem("TIME", "Value"))AddItem("TIME", "値");

if(!CheckItem("EURUSD", "ASK"))AddItem("EURUSD", "ASK");

if(!CheckItem("EURUSD", "BID"))AddItem("EURUSD", "BID");

if(!CheckItem("USDCHF", "ASK"))AddItem("USDCHF", "ASK");

if(!CheckItem("USDCHF", "BID"))AddItem("USDCHF", "BID");

// 項目の値を設定する DDE

SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));

SetItem("TIME", "値",(文字列)TimeCurrent());


// SetItem("EMA", "B", "EMA(21): "+DoubleToString(MA[0],6));

SetItem("EURUSD", "ASK",DoubleToString(EURUSD_ASK,5));;

SetItem("EURUSD", "BID",DoubleToString(EURUSD_BID,5));;

SetItem("USDCHF", "ASK",DoubleToString(USDCHF_ASK,5));;

SetItem("USDCHF", "BID",DoubleToString(USDCHF_BID,5));

}

あとは上記と同じです。


どなたかのお役に立てれば幸いです。

 
Mikhail Shikin:
エラー "2019.02.26 11:23:40.882 dde_example (ES,H1) Alert: Cannot find MT4.DDE.2 window!"が表示されます。

DDE Server.exeを実行し忘れています。

 
MARFE:

こんにちは、トム、


リアルタイムで売買されたティックデータをExcelにエクスポートしたいのですが、このツールを使えば可能でしょうか?

ありがとうございます。

返信が遅くなり申し訳ありません。

というのも、私はもう3年もこのツールを使っていませんし、Windows10では試していません。

 
maurorechi:

こんばんは。


苦労の末、なんとか解決しました。そのためだけにサイトに登録しました。

OnTimer()関数全体を変更する:

void OnTimer()

{

//--- 配列MA[]をiMAの現在値で満たす

//--- 100個の要素をコピーする

// CopyBuffer(MA_handle,0,0,100,MA);

// ArraySetAsSeries(MA,true);

double EURUSD_ASK = SymbolInfoDouble("EURUSD",SYMBOL_ASK); // eurusdの場合 (例)

double EURUSD_BID = SymbolInfoDouble("EURUSD",SYMBOL_BID);

double USDCHF_ASK = SymbolInfoDouble("USDCHF",SYMBOL_ASK);

Double USDCHF_BID = SymbolInfoDouble("USDCHF",SYMBOL_BID);

// 項目DDEをチェック&追加

// if(!チェックアイテム("EMA", "B"))

// {

// if(!AddItem("EMA", "B")) return;

// }


if(!CheckItem("COMPANY", "Value"))AddItem("COMPANY", "値");

if(!CheckItem("TIME", "Value"))AddItem("TIME", "Value");

if(!CheckItem("EURUSD", "ASK"))AddItem("EURUSD", "ASK");

if(!CheckItem("EURUSD", "BID"))AddItem("EURUSD", "BID");

if(!CheckItem("USDCHF", "ASK"))AddItem("USDCHF", "ASK");

if(!CheckItem("USDCHF", "BID"))AddItem("USDCHF", "BID");

// 項目の値を設定する DDE

SetItem("COMPANY", "値",(文字列)AccountInfoString(ACCOUNT_COMPANY));

SetItem("TIME", "値",(文字列)TimeCurrent());


// SetItem("EMA", "B", "EMA(21): "+DoubleToString(MA[0],6));

SetItem("EURUSD", "ASK",DoubleToString(EURUSD_ASK,5));

SetItem("EURUSD", "BID",DoubleToString(EURUSD_BID,5));;

SetItem("USDCHF", "ASK",DoubleToString(USDCHF_ASK,5));

SetItem("USDCHF", "BID",DoubleToString(USDCHF_BID,5));

}

あとは上記と同じです。


どなたかのお役に立てれば幸いです。

ありがとうございます、


しかし、EURUSDの ために行ったこれらの行を各資産に対して行う必要がありますか?

また、もう一つ質問なのですが、アセットから情報を引き出すためには、アセットのウィンドウを開いておく必要があるのでしょうか?

 
マーケットウォッチにあるすべてのシンボルの ビッド/アスク値を自動的に生成できるようにしてほしい。どなたか教えてください。