アスク! - ページ 61

 

コードに関する質問

投稿を無視してください。この設定は、私がそれを行うために必要なものをしました。私たちを助けるためにそこに始めていただきありがとうございます。

私はいくつかの方法で動作するようにEAを修正しました。いくつかの研究をしましたが、注文を開くときにコメントフィールドにEAの名前を追加する方法がわかりません。どなたか正しい方向を示していただけませんか。

私は、テスト中に複数のEAを実行するときに注文がよりよく整理されるように、私が修正するすべてのEAに統合できる簡単な文字列コマンドがあることを期待しています。

お時間と洞察に感謝します。

EAのコメントを入力するために変更する必要がある非修正セクションの1つは以下のとおりです。

if(ObjectFind(BuyStop_TrendName) == 0)

{

SetObject("Active" + BuyStop_TrendName,

ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),

ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) + BuyStop_StepActive*Point,

ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),

ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) + BuyStop_StepActive*Point,

ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));

SetObject("Prepare" + BuyStop_TrendName,

ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),

ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) - BuyStop_StepPrepare*Point,

ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),

ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) - BuyStop_StepPrepare*Point,

ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));

vA = NormalizeDouble(ObjectGetValueByShift("Active"+BuyStop_TrendName,0),Digits);

vM = NormalizeDouble(ObjectGetValueByShift(BuyStop_TrendName,0),Digits);

vP = NormalizeDouble(ObjectGetValueByShift("Prepare"+BuyStop_TrendName,0),Digits);

sl = vA - BuyStop_StopLoss*Point;

tp = vA + BuyStop_TakeProfit*Point;

if(Ask = vP && OrderFind(MagicBuyStop) == false)

if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp,"", MagicBuyStop, 0, Green) < 0)

Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);

if(Ask = vP && OrderFind(MagicBuyStop) == true &&

glbOrderType == OP_BUYSTOP)

{

OrderSelect(glbOrderTicket, SELECT_BY_TICKET, MODE_TRADES);

if(vA != OrderOpenPrice())

if(OrderModify(glbOrderTicket, vA, sl, tp, 0, Green) == false)

Print("Err (", GetLastError(), ") Modify BuyStop Price= ", vA,

" SL= ", sl, " TP= ", tp);

}

if(Ask < vP && OrderFind(MagicBuyStop) == true &&

glbOrderType == OP_BUYSTOP && AutoClose==true)

{

OrderDelete(glbOrderTicket);

}

}

[/code]

I am not sure of the logic but can I just input the CommentName in the following location? I have not tested this but it compiles fine.

[code]

if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp,"CommentName", MagicBuyStop, 0, Green) < 0)

Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);

ファイル:
 

Coderguruさん、私たちのためにありがとうございました。

アラートについて質問です。

このコードでアラートの種類を変更したいのですが、私が選んだwavファイルを再生し、ポップアップウィンドウの売買のようなものがないようにしたいのですが、可能でしょうか?フラクタルが 現れたらwavファイルを再生するだけです。

どのようなコードにすればよいのでしょうか。sFractals alert indicatorを添付します。

if(PrevSignal <= 0 )

{

if(ExtDownFractalsBuffer[SIGNAL_BAR])>0)。

{

PrevSignal = 1;

Alert("sFractals (", Symbol(), ",", Period(), "))- BUY!!!");

}

}

if(PrevSignal >= 0)

{

if(ExtUpFractalsBuffer[SIGNAL_BAR])>0)。

{

PrevSignal = -1;

Alert("sFractals (", Symbol(), ",", Period(), "))- 売れ!!");

}

}

ファイル:
sfractals.mq4  8 kb
 
proverbs:
ロジックがよくわからないのですが、以下の場所にCommentNameを 入力すればいいのでしょうか?テストはしていませんが、コンパイルは問題なくできます。

if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp,"CommentName", MagicBuyStop, 0, Green) < 0)

Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);

それで問題なく動作します。 また、その場所に文字列変数を入れることもできます。

 
Drivefast:
Coderguruさん、ありがとうございました。

アラートについて質問です。

このコードでアラートの種類を変更し、私が選んだwavファイルを再生し、ポップアップウィンドウの売買のようなものをさせないようにしたいのです。フラクタルが現れたらwavファイルを再生するだけです。

どのようなコードにすればよいのでしょうか。sFractals alert indicatorを添付します。

if(PrevSignal <= 0 )

{

if(ExtDownFractalsBuffer[SIGNAL_BAR])>0)。

{

PrevSignal = 1;

Alert("sFractals (", Symbol(), ",", Period(), ")) - BUY!!!");

}

}

if(PrevSignal >= 0)

{

if(ExtUpFractalsBuffer[SIGNAL_BAR])>0)。

{

PrevSignal = -1;

Alert("sFractals (", Symbol(), ",", Period(), ")) - 売れ!!");

}

}

CodersGuruが死んだか何かだと思う。 最近見かけないし。

とにかく...この記述を追加してください。

PlaySound("alert.wav")。

ここで、"alert.wav "は、再生したいファイルの名前です。

 
ryanklefas:
CodersGuruが死んだか何かだと思う。 しばらく来てなかったし。

とりあえず...こんな記述を追加してください。

PlaySound("alert.wav")を追加してください。

......ここで、"alert.wav "は再生したいファイルの名前です。

私の投稿に応答していただき、ありがとうございます。

PlaySound("alert.wav");をどこに入れるのかがよくわかりません。

この部分を削除すればいいのでしょうか?アラート("sFractals (", Symbol(), ", ", Period(), ")")- BUY!!!」)です。

それとも、こんな感じでないとダメなんでしょうか?

PrevSignal = 1;

PlaySound("alert.wav")。

アラート("sFractals (", Symbol(), ", ", Period(), ")")- BUY!!!");

 

うん。 アラート全体を音に置き換えるだけ。

if(PrevSignal <= 0 )

{

if(ExtDownFractalsBuffer[SIGNAL_BAR] > 0)

{

PrevSignal = 1;

PlaySound("alert.wav");

}

}

if(PrevSignal >= 0)

{

if(ExtUpFractalsBuffer[SIGNAL_BAR] > 0)

{

PrevSignal = -1;

PlaySound("alert.wav");

}

}
 

ryanklefasさん、ありがとうございました!これで思い通りに動きます。

 

ソートについてお聞きします

2次元の配列に格納された2次元のデータテーブルを持っています。そのデータテーブルから任意の列に従ってソートするなどの操作を行いたいのですが、どのようにすればよいのでしょうか?

ArraySort()関数は、命令の中で、その1次元で配列を並べ替えることができます。私はそれが私のために働くことができる方法を見ることはできません。

MetaTraderのデータテーブルのソートについて何か提案がありますか?

 

Expert Advisorとの通信について

こんにちは。

エキスパートアドバイザーの間で通信する方法があれば知りたいのですが、例えばメイン戦略としてEA Aがあり

とバックアップ戦略としてバックアップEA B

私は2つの異なるペアにそれを置く...

EA Aがドローダウンポジションにある場合、EA Bを開始するトリガーにしたい...

EA AとEA Bの累積利益が目標値に達したとき。

EA AとEA Bのすべてのポジションをクローズする。

というのは可能でしょうか?

 
veematics:
こんにちは。

エキスパートアドバイザー間で通信する方法があれば知りたいのですが、例えばメイン戦略としてEA Aがあるとして

とバックアップ戦略としてバックアップEA B

私は2つの異なるペアにそれを置く...

EA Aがドローダウンポジションにある場合、EA Bを開始するトリガーにしたい...

EA AとEA Bの累積利益が目標値に達したとき。

EA AとEA Bのすべてのポジションをクローズする。

は可能なのでしょうか?

グローバル変数は、あなたが探しているものであると思います。MetaEditorのリファレンスセクションで確認 することができます。現在のグローバル変数を表示するには、MT4ターミナルでF3を押してください。