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

 

確かにデモやストラテジーテスターでは 表示されない問題がリアル口座で発生することはありますが、通常は繰り返し発生するものではなく、頻度も少ないです。今回は見たことも聞いたこともありません。

ご説明では、問題が発生したときに何枚の取引を開いているのかが判断できません。もし、取引がない状態でエラーが発生しているのであれば、それは謎です。5つの取引を開いているときに発生する場合は、おそらく問題と関係があると思われます。

ERR_TRADE_DISABLED 133 取引が無効になっています。取引しようとするすべての試みを停止する必要があります。

このエラーの説明書は、EAが取引を行う方法に何か問題があることを示しているように思えます。しかし、両方のEAが同じOrderSend()ロジックを使用しているので、2つのEAを実行していることと関係があるのでしょうか。通常、競合の問題は "Trade Context Busy" (146) を引き起こし、口座の問題は "Insufficient Funds" (134) エラーを引き起こすでしょう。一度に1つのEAだけを実行し、それが違いを生むかどうか見てみる価値があるでしょう。

 

アバシス

くだらないと思うかもしれませんが、EAをコンパイルしましたよね?

コンパイル後、Expertsフォルダにex4ファイルがあるはずです。

 
michaelB:
バカバカしいかもしれませんが、EAはコンパイルしましたよね?コンパイル後、Expertsフォルダにex4ファイルがあるはずです。

これも知りたいこと

mq4ファイルをexpertsフォルダに貼り付けましたが、MT4を再起動するとexpertsフォルダにex4ファイルが作成されません。

そのため、エラーが出ている場合はコードをチェック する必要があります。

 

IndicatorShortNameの色を変更する方法

親愛なる皆様へ

この行に自分の色を追加するにはどうしたらよいでしょうか。

IndicatorShortName(GetTimeFrameStr() + "MACD("+FastEma+", "+SlowEma+", "+SignalSMMA+")");

私は左上隅に指標の別のウィンドウにある小さな情報の色を変更するために?

プーチョ

 

このコードのどこが問題なのか、どなたか教えてください。

mq4ファイルをexpertsフォルダに貼り付けてもex4ファイルが作成されないので、何かエラーがあるのでしょうか?

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

//| シンプルなEA.mq4 |。

//| Copyright © 2011, luktom.biz |.

//|www.luktom.biz/en

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

#property copyright "著作権 © 2011, luktom.biz."。

#property link "http://www.luktom.biz"

extern double stopLoss = 300.0;

extern double takeProfit = 500.0;

extern string Begin = "2: 00";

extern string End = "10: 00";

extern double distance = 60;

bool isECN = true;

bool cond = false;

bool cond2 = false。

double low;

double high;

extern double lots = 0.1;

int magic = 1232344524285020;

int スリッページ = 1;

文字列コメント = "";

int ticket;

int short = 0;

long int = 0;

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

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

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

int init()

{

//----

//----

(0) を返します。

}

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

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

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

int deinit ()

{

//----

Print (countOrders (magic, OP_BUY));

//----

(0) を返します。

}

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

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

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

int start()

{

Print (AccountCurrency ());

//----

if (isGoodTime (Begin, End))

{

short = 0;

long = 0;

if (! cond)

{

low = Bid;

high = Ask;

}

cond = trueです。

if (Bid < low) low = Bid;

if (Ask > high) high = Ask;

}

if ((高-低) * 1000 > 距離)

{

cond2 = true。

}

if (! isGoodTime (Begin, End))

{

cond = falseです。

}

if (! isGoodTime (Begin, End) & & cond2)

{

if (countOrders (magic, OP_SELL) == 0)

{

if (ビッド " = (CRL-0.0005) & & ショート == 0)

{

short + +;

if (isECN == false)

{

OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Ask-takeProfit * Point, takeProfit), comment, magic).を送信します。

if (isECN)

{

ticket = OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, 0,0, comment, magic);

OrderSelect (ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Bid-takeProfit * Point, takeProfit), 0)です。

}

}

}

if (countOrders (magic, OP_BUY) == 0)

{

if ((Ask-high) > = 0.005 & & long = = 0)

{

long + +;

if (isECN == false)

{

OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, sltpValue (Ask-stopLoss * Point, stopLoss), sltpValue (Bid + takeProfit * Point, takeProfit), comment, magic).を送信します。

}

if (isECN)

{

ticket = OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, 0,0, comment, magic);

OrderSelect (ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Bid-stopLoss * Point, stopLoss), sltpValue (Ask + takeProfit * Point, takeProfit), 0)です。

}

}

}

}

//----

(0) を返します。

}

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

bool isGoodTime (文字列, 文字列, Begin, End) {

if (TimeCurrent () > Localtime (Begin) & & TimeCurrent < Localtime () (End)) { (TimeCurrent () > Localtime (Begin) & & TimeCurrent < Localtime (End) )

return (true);

}

return (false);

}

int countOrders (int, int oMagic oType) { { { count = 0; int count = 0; int oMagic oType = 0

int count = 0;

for (int i = 0; i < OrdersTotal (); i ++) { { { { { for (int i = 0; i < OrdersTotal (); i ++)

if (オーダーセレクト (i, SELECT_BY_POS)) {

if (オーダーマジック番号() == oMagic) {。

if (オーダーシンボル() = the = シンボル()){ {。

if (オーダータイプ () == oType || oType < 0) { {.

count ++;

}

}

}

}

}

return (count);

}

double sltpValue (double, int w1 w2)

{

if (w2 = = 0)

return (0);

return (NormalizeDouble (w1, Digits));

}

 
Avasys:
どなたか、このコードのどこがおかしいか教えてください。

mq4ファイルをexpertsフォルダに貼り付けるとex4ファイルが作成されないのですが、何かエラーがあるのでしょうか?

このEAをどこで手に入れたか教えてください。

EAがごちゃごちゃしているように見えるのですが。例えば、129行目の関数 isGoodTimeの定義には、以下のように書かれています。

bool isGoodTime (string, string, Begin, End) とあります。

とあるが、これは

bool isGoodTime (string Begin, string End) とすべきです。

eaには、このようなエラーがたくさんあります。このようにコードが不完全であったり、コード変更でプロテクトされているようで、このソースは役に立ちません。

 
Kalenzo:
このEAをどこで手に入れたか教えていただけますか?

eaがごちゃごちゃしているような気がします。例えば、129行目の関数isGoodTimeの定義では、以下のようになっています。

bool isGoodTime (string, string, Begin, End) とあります。

とあるが、これは

bool isGoodTime (string Begin, string End) です。

eaにはそのようなエラーがたくさんあります。コードが不完全か、このようなコード変更で保護されているようで、このソースは役に立ちません。

[lang=pl]私は著者です。Avasysのmq4ファイルを添付します。私は、関数 isGoodTimeのコードを変更する必要はありません。私のターミナルでは動作しています。Avasysなぜあなたはそんなに神経質になっていますか?

もし問題があれば、フォーラムでこのことについて話すのではなく、私に連絡してください[/lang]。

ファイル:
 
g.pociejewski:
[lang=pl]私は著者です。Avasysのmq4ファイルを添付します。私は、isGoodTimeという関数を変更していません。私の端末では動作しています。Avasysなぜあなたはそんなに神経質になっていますか? もし問題があれば、フォーラムでこのことについて話すのではなく、私に連絡してください[/lang]。

私は緊張していない、私はフォーラムであなたを見つけることができなかった

このEAは正常に動作しますが、再び一日に複数の取引を行います。だから、私の悩みはEAに1日に1回だけトレードするように依頼することでした。

 
CodeMeister:
確かにデモやストラテジーテスターで表示されない問題がリアル口座で発生することはありますが、通常は繰り返し発生するものではなく、頻度も少ないです。今回は見たことも聞いたこともありません。

ご説明の内容では、問題が発生したときに何枚の取引を開いているのか判断できません。もし、何も取引していない状態でエラーが発生しているのであれば、それは不思議なことです。5 つの取引を開いているときに発生する場合は、おそらく問題と関係があると思われます。

ERR_TRADE_DISABLED 133 取引が無効になっています。取引しようとするすべての試みを停止する必要があります。

このエラーのドキュメントを見ると、EAがトレードを行う方法に何か問題があるようです。しかし、両方のEAが同じOrderSend()ロジックを使用しているので、2つのEAを実行していることと関係があるのではないでしょうか?通常、競合の問題は "Trade Context Busy" (146) を引き起こし、口座の問題は "Insufficient Funds" (134) エラーを引き起こすでしょう。一度に1つのEAだけを実行し、それが違いを生むかどうか見てみる価値があるでしょう。

問題が発生している EA は、一度に 1 つの取引しか開きません。 エラーが発生したとき、他の取引は開いていません。 1つのEAだけを動かしてみて、それが役に立つかどうか見てみます。 アドバイスありがとうございます。

 

MT4ラベルの読み方

こんにちは。

あるインディケータを改造し、EAがOBJ_LABELの中の値を拾えるように、値を持つOBJ_LABELオブジェクトを 作成しました。 これらの値は価格ポイントで、それを保持するためにインジケータ内に別のバッファを作成することができないので、これらのラベルにそれらを配置しました。 良い解決策のように見えますが、私のEAでMT4のラベルを読み取る方法がわかりません! GETOBJECT関数を使用しますが、それは特定のプロパティのみを返し、ラベルやテキストオブジェクトのテキスト値はそのうちの一つではありません!

どなたか助けていただけませんか?

ありがとうございます。