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

 
こんにちは
質問があります。

特定の通貨ペアの購入価格をエクセルに追加する方法

これはEMA21のみを表示しています。

アスクとビッドの通貨が 必要です。

 
項目のチェックと 追加 DDE
if(!CheckItem("A", "B"))
{
if(!AddItem("A", "B")) return;
}

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


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

SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));
SetItem("TIME", "値",(文字列)TimeCurrent());

>>>>SetItem("BID", "EURUSD",(文字列) ?????());<<<<<

EURUSDの買値と売値を表示したい場合、どのように変更すればよいですか?

ありがとうございます。

 
snowking87:

コードを貼り付ける際は、投稿を編集し、コードボタン(Alt+S)を使用してください。

コードを新しい投稿に正しく投稿しないでください

投稿時に大文字を多用しないでください。大声で叫ぶようなもので、大変失礼にあたります。

 
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));

}

あとは上記と同じです。


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

以下は、私がコードに加えた変更点です。

void OnTimer()
  {
//--- 現在のiMAの値で配列MA[]を埋める
//--- 100個の要素をコピーする

// チェック&アイテム追加DDE
   if(!CheckItem(_Symbol,"B")) 
     {
      if(!AddItem(_Symbol,"B")) return; 
     }

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

// 項目値の設定 DDE 
   SetItem("COMPANY","Value",(string)AccountInfoString(ACCOUNT_COMPANY));
   SetItem("TIME","Value",(string)TimeCurrent());

   SetItem(_Symbol,"B",SymbolInfoDouble(_Symbol,SYMBOL_LAST));

  }
 
snowking87:
チェック&アイテム追加 DDE
if(!CheckItem("A", "B"))
{
if(!AddItem("A", "B")) return;
}

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


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

SetItem("COMPANY", "Value",(string)AccountInfoString(ACCOUNT_COMPANY));
SetItem("TIME", "値",(文字列)TimeCurrent());

>>>>SetItem("BID", "EURUSD",(文字列) ?????());<<<<<

EURUSDの買値と売値を表示したい場合、どのように変更すればよいですか?

ありがとうございます。

if(!CheckItem("BID", "EURUSD"))AddItem("BID", "EURUSD");
if(!CheckItem("ASK", "EURUSD"))AddItem("ASK", "EURUSD");
SetItem("BID", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_BID));
SetItem("ASK", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_ASK));
 
Younes Deldar:
こんにちは
質問があります

特定の通貨ペアの購入価格をエクセルに追加する方法

EMA21のみを表示しています。

売値と買値の通貨が 必要です。

if(!CheckItem("BID", "EURUSD"))AddItem("BID", "EURUSD");
if(!CheckItem("ASK", "EURUSD"))AddItem("ASK", "EURUSD");
SetItem("BID", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_BID));
SetItem("ASK", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_ASK));
 
IlyshikBTC:
if(!CheckItem("BID", "EURUSD"))AddItem("BID", "EURUSD");
if(!CheckItem("ASK", "EURUSD"))AddItem("ASK", "EURUSD");
SetItem("BID", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_BID));
SetItem("ASK", "EURUSD",(double)SymbolInfoDouble(Symbol(),SYMBOL_ASK));

あなたのコードを使用してみましたが、コードで追加した通貨記号に関係なく、MT5のシンボルリストの最初の通貨ペアのAsk/Bidしか取得できません。

たとえば、私はMT5のシンボルリストの最初のシンボルとしてUSDCADを持っています。提供されたコードをEURUSDで書きましたが、取得するAsk価格はEURUSDのものではなくUSDCADのものです。これを修正する方法を教えてください。

また、すべての通貨ペア/シンボルのアスク価格をエクセルに接続する方法について何か提案はありますか?

ありがとうございます!

IlyshikBTC
IlyshikBTC
  • 2021.03.04
  • www.mql5.com
Trader's profile
 

前回のローソク足の高値、終値、安値(HCL)、前回の ボリンジャーバンドの上限と下限(20,2)、前回のローソク足の ストキャスティクスと%D(10,3,3)。


コードは以下の通り:

double      BB_T[];      //インジケーターBB用の配列
double      BB_B[];
int         BB_handle;  //インジケーターBBのハンドル

double      STOCH[];    //インジケーターSTOCHの配列
double      PERCD[];
int         ST_handle; //インジケーターSTOCHのハンドル

//-----------------------------------------------------------------------------

void OnInit()
  {
    EventSetTimer(1);
    
//--- BBとSTOCHインジケーターの作成
   BB_handle=iBands(_Symbol,PERIOD_CURRENT,20,0,2,PRICE_CLOSE);
   ST_handle=iStochastic(_Symbol,PERIOD_CURRENT,10,3,3,MODE_SMA,STO_LOWHIGH);
   return;
  }

void OnTimer()

  {
//--- 現在のiMAの値で配列MA[]を埋める
//--- 100個の要素をコピーする
   //BB
   CopyBuffer(BB_handle,1,0,100,BB_T); //Upper
   ArraySetAsSeries(BB_T,true);

   CopyBuffer(BB_handle,2,0,100,BB_B); //Lower
   ArraySetAsSeries(BB_B,true);
   //ストキャスティック
   CopyBuffer(ST_handle,0,0,100,STOCH); //Stoch
   ArraySetAsSeries(STOCH,true);
   CopyBuffer(ST_handle,1,0,100,PERCD); //%D
   ArraySetAsSeries(PERCD,true);
// チェック&アイテム追加DDE
   if(!CheckItem(_Symbol,"最大")) 
     {
      if(!AddItem(_Symbol,"最大")) return; 
     } 
   if(!CheckItem(_Symbol,"最低限")) AddItem(_Symbol,"最低限");
   if(!CheckItem(_Symbol,"Fechamento")) AddItem(_Symbol,"Fechamento");
   //
   if(!CheckItem(_Symbol,"BB_Top")) AddItem(_Symbol,"BB_Top");
   if(!CheckItem(_Symbol,"BB_Lower")) AddItem(_Symbol,"BB_Lower");
   //
   if(!CheckItem(_Symbol,"STOCH")) AddItem(_Symbol,"STOCH");
   if(!CheckItem(_Symbol,"%D")) AddItem(_Symbol,"%D");


// 項目値の設定 DDE 
   //HCLキャンドル
   SetItem(_Symbol,"最大",iHigh(_Symbol,5,1));
   SetItem(_Symbol,"最低限",iLow(_Symbol,5,1));
   SetItem(_Symbol,"Fechamento",iClose(_Symbol,5,1));
   //BB トップとボトム
   SetItem(_Symbol,"BB_Top",DoubleToString(BB_T[1],2));
   SetItem(_Symbol,"BB_Lower",DoubleToString(BB_B[1],2));
   //ストキャスティックと%D
   SetItem(_Symbol,"STOCH",DoubleToString(STOCH[1],2));
   SetItem(_Symbol,"%D",DoubleToString(PERCD[1],2));
  }


あとは同じです。

 
mzee_zaki:

あなたのコードを使用してみましたが、コードに追加した通貨記号に関係なく、MT5のシンボルリストの最初の通貨ペアのAsk/Bidしか取得できませんでした。

例えば、私はMT5のシンボルリストの最初のシンボルとしてUSDCADを持っています。提供されたコードをEURUSDで書きましたが、取得するAsk価格はEURUSDのものではなくUSDCADのものです。これを修正する方法を教えてください。

また、すべての通貨ペア/シンボルのアスク価格をエクセルに接続する方法について、何か提案はありますか?

ありがとうございます!

変更してみてください:Symbol()_Symbolに 変更してください。


ブラジルのコメント


https://www.mql5.com/pt/forum/33344

Especialistas: Servidor DDE
Especialistas: Servidor DDE
  • 2014.01.15
  • www.mql5.com
Artigos, comentários da Biblioteca: Especialistas: Servidor DDE
 
MT4のDDEは動作しません。しかし、私がFXに使っているものにはMT5サーバーがありません。もしあればコードを教えてください。純資産とポジションの為替損益を知りたいのですが。