コーディングの方法は? - ページ 341

 

どなたか親切な方、この問題を解決するのを助けていただけませんか?

このメッセージの下に添付したコードに問題があります。

このため、特に高い時間枠で遅れてトレードを開始することになりました。このため、特に高い時間枠で遅めにトレードを開始することになってしまいます。

ありがとうございます添付ファイル

ファイル:
smacd.mq4  4 kb
 

こんにちは、Mladenです。私のオープニングトレードの基準をトリガーするために何を使用することができるか知っていますか?

知りたいのは、ローソク足が移動平均線より10pips上か下かで取引を開始するにはどうしたらいいかということです。

システムは、移動平均線の上か下かで取引を開始します。

iCloseを 使おうと思っているのですが、どのように実装すればいいのか見当がつきません。ご協力をお願いします。

ありがとうございました。

ライアン

 
tkuan77:
こんにちは、Mladen。私のオープニングトレードの基準をトリガーするために何を使うことができるか知っていますか?

知りたいのは、ローソク足が移動平均線の上か下で10pipsの差で閉じたら、どうすれば取引を開始できるのかということです。

システムは、移動平均線の上か下かで取引を開始することになります。

iCloseを使おうと思っているのですが、どのように実装すればいいのか見当がつきません。ご協力をお願いします。

ありがとうございます。

ライアン

こんにちは、Mladen。

しかし、条件を満たしたときに取引が始まらないことがあり、今後どのようにすればよいか見当がつきません。

//+------------------------------------------------------------------+

//---- 入力パラメータ

extern double TakeProfit = 250.0;

extern double Lots = 0.1;

extern double StopLoss = 200.0;

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| エキスパートスタート機能

//+------------------------------------------------------------------+

double pBid, pAsk;

datetime newbar;

int start()

{

//+------------------------------------------------------------------+

if(newbar==Time[0])return(0);

else newbar=Time[0]。

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0);

double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0);

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//-- トリガートレード

//+------------------------------------------------------------------+

int ticket, total;

double CD_Close = iClose(NULL,0,1);

total = OrdersTotal(); // 現在開いているトレードの合計数をチェックする

if(total < 2)

{

if (CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st && Minute()==Entry_Minute_1st)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point。

"私のEA",Entry_magicNo_1st,0,Green)。

return(0);

}

if (CD_Close <= Dwn_MA-50*Point)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point. "私のEA",Entry_MagicNo_1st,

"私のEA",Entry_magicNo_1st,0,Red)。

return(0);

}

return(0)。

}

return(0)です。

}

//+------------------------------------------------------------------+

 
tkuan77:
こんにちは、Mladenです。

コードを書き上げ、動作しているように見えますが、条件を満たしたときにトレードがトリガーされないことがあり、これからどうすればいいのか見当もつきません。

//+------------------------------------------------------------------+

//---- 入力パラメータ

extern double TakeProfit = 250.0;

extern double Lots = 0.1;

extern double StopLoss = 200.0;

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| エキスパート初期化関数

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| エキスパートスタート機能

//+------------------------------------------------------------------+

double pBid, pAsk;

datetime newbar;

int start()

{

//+------------------------------------------------------------------+

if(newbar==Time[0])return(0);

else newbar=Time[0]。

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

double Up_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_HIGH,0);

double Dwn_MA = iMA(NULL,0,10,0,MODE_LWMA,PRICE_LOW,0);

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//-- トリガートレード

//+------------------------------------------------------------------+

int ticket, total;

double CD_Close = iClose(NULL,0,1);

total = OrdersTotal(); // 現在開いているトレードの合計数をチェックする

if(total < 2)

{

if (CD_Close >= Up_MA+50*Point)//Hour()==Entry_Hour_1st && Minute()==Entry_Minute_1st)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point。

"私のEA",Entry_magicNo_1st,0,Green)。

return(0);

}

if (CD_Close <= Dwn_MA-50*Point)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point. "私のEA",Entry_MagicNo_1st,

"私のEA",Entry_magicNo_1st,0,Red)。

return(0);

}

return(0)。

}

return(0)です。

}

//+------------------------------------------------------------------+

トレードをトリガーするはずなのに、トリガーされないケースをいくつか示していただけますか?

 

Mladenさん、こんにちは。

スクリーンショットを添付します。

よろしくお願いします。

ライアン

ファイル:
untitled.jpg  42 kb
 

Mladenさん、もしかして一部の行で何らかのエラーが発生しているのでしょうか?

よろしくお願いします。

 
tkuan77:
Mladenさん、一部の行で何らかのエラーが発生している可能性はありませんか?よろしくお願いします。

tkuan77

まず、ターミナルのジャーナルとエキスパートタブにエラーメッセージが表示されているかどうか確認して ください。

 
mladen:
tkuan77 まず、端末のジャーナルとエキスパートタブにエラーメッセージが表示されているかどうか確認してください。

mladenさん、ありがとうございます。問題はすでに解決しました。

しかし、次の質問は、私はそれに応じて取引を並べ替えるにはどうすればよいですか?

例えば

任意の時点の取引の合計量= 2

各基準のセットに対して1トレード。基準が複数回満たされた場合、システムが特定のセットごとに1回以上の取引をトリガーしないことを確認するにはどうすればよいですか?

以下は参考のために私のコードです。

total = OrdersTotal(); // 現在開いている取引の合計数をチェック する。

if(total < 2)

{

if (Hour()==Entry_Hour_1st || Hour()==Entry_Hour_2nd)

{

//この基準で現在開いている取引がない場合、条件が満たされているかどうかを確認し、「はい」なら取引を開始し、「いいえ」なら取引を開始しない。

}

if (Hour()==Entry_Hour_3rd || Hour()==Entry_Hour_4th)

{

//この基準で現在開いている取引がない場合、条件が満たされているかどうかを確認し、もしイエスなら取引を開始し、もしノーなら取引を開始しないでください。

}

}

ご助言をお願いします。ありがとうございました。

よろしくお願いします。

 

ECNブローカーの注文は、具体的にどのように処理されなければならないのでしょうか?

 
apprentice coder:
ECN ブローカーの注文は、具体的にどのように処理されなければならないのですか?

コーダー見習い

唯一の違いは、ECNブローカーでは、まずslとtpのフィールドが0の注文を開き、その後、slとtpを設定するために注文を(必要に応じて)変更します。 残りのすべてはまったく同じです。