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

 

サンキュー

ありがとう あなたは人生の宝物です

 
BC Brett:
私は答えを持っていた希望します。

最初のEAを書き終え、Strategy Testerでテストしてみたところです。

STジャーナルにエラーが表示されるようになったので、EAのプリント機能を使って問題をデバッグしてみました。この方法で今のところいくつかのバグを解決していますが、時間がかかっています。

メタエディタの編集メニューに "toggle breakpoint "がありますが、ブレークポイントを使うにはどうしたらいいでしょうか?

 

ご参考までに。

- メール機能についてのスレッド(How to Code)https://www.mql5.com/en/forum/174336

- いくつかのツールで良い記事https://www.mql5.com/en/forum/176053

 

ブローカーから見えないTPとSLのためのコード

皆さん、こんにちは。

ブローカーがSLを探し、TPを避けるためにスプレッドを広げるというパラノイアの中で、私はブローカーからTPとSLを隠す方法について情報を探しています。

ブローカーにTPとSLを送信することで、切断された場合、あなたの注文は "安全 "であることを知っています。 リモートで情報を保持している間は、接続が切れた場合に大きな損失が発生する危険性があります。

どなたか、TPとSLをブローカーから隠しておくためのEAやコード例をお持ちの方はいらっしゃいませんか?

ありがとうございます。

マイク

 

このEAにはそれがある

こんにちは、MikeP

このEAには、あなたが探しているものが含まれていると思います。 もしこれがあなたが探しているものであるなら、私にPMをください。

ファイル:
jlpigrid.mq4  8 kb
 

コードの簡略化に関するヘルプ

こんにちは。

私はプロのコーダーではありません(下記参照!)。このコードはうまく動作しますが、これを単純化することは可能でしょうか?例えば、while/forサイクルを使って?私は最も軽いコードを望みます!このコードは非常に「重い」ので、「内部スタックオーバーフロー-プログラムを簡素化してください」というエラーが出ます!!!

別ウィンドウでインジケータを表示するものです。

サンプルコードでは、マルチTFのMAの上か下かを表示しています。

よろしくお願いします。

int start()

{

string MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

double x;

color color_indic;

// period M1

double FastMA_1_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_1 = iMA(NULL,PERIOD_M1,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_1 > FastMA_2_1)) { MAfast_Trend_1 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_1 < FastMA_2_1)) { MAfast_Trend_1 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_1", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_1",MAfast_Trend_1,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_1", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_1", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_1", OBJPROP_YDISTANCE, 22);

// period M5

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_5 > FastMA_2_5)) { MAfast_Trend_5 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_5 < FastMA_2_5)) { MAfast_Trend_5 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_5", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_5",MAfast_Trend_5,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_5", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_5", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_5", OBJPROP_YDISTANCE, 37);

// period M15

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_2_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift+1);

if ((FastMA_1_15 > FastMA_2_15)) { MAfast_Trend_15 = "UP"; x = 256; color_indic = Lime; }

if ((FastMA_1_15 < FastMA_2_15)) { MAfast_Trend_15 = "DOWN"; x = 246; color_indic = Red; }

ObjectCreate("Trend_MAfast_15", OBJ_LABEL, WindowFind("xxxxxxx"), 0, 0);

ObjectSetText("Trend_MAfast_15",MAfast_Trend_15,7, "Verdana", color_indic);

ObjectSet("Trend_MAfast_15", OBJPROP_CORNER, 0);

ObjectSet("Trend_MAfast_15", OBJPROP_XDISTANCE, x);

ObjectSet("Trend_MAfast_15", OBJPROP_YDISTANCE, 52);

etc ...............

return(0);

}
 

コードについて1つのローソク足につき1つの取引しかしない

私のEAはローソク足1本につき1回しか取引しないように制限しようとしています。 トレンドに反して価格が急上昇した場合、インジケータが遅れているため、複数の負けトレードが発生していることが分かっています。

私は前にコードを見たことがありますが、私はそれを見つけることができません。 どなたか正しいコードを持つEAを紹介していただくか、それがどのように行われるかを教えていただければと思います。

それはUniversalMa eaで行われますが、そこでは私にはそれほど明確ではありません。

どんな助けでも感謝します。

 

それはここですhttps://www.mql5.com/en/forum/173026

私はこのスレッドにすべての機能を集めていますhttps://www.mql5.com/en/forum/174329

 

改めて感謝

NewDigitalさんこんにちは、いつもながら迅速なご返答ありがとうございます。

乾杯

 

ここでは、コードを簡略化する方法をいくつか紹介します。

個々のインジケータの値を関数に 置き換える

double FastMA_1_5 = iMA(NULL,PERIOD_M5,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

double FastMA_1_15 = iMA(NULL,PERIOD_M15,FastMAPeriod,0,MAMethod,MAPrice,MAShift);

......関数が追加され、次のようになります。

maVal(5,1);

maVal(15,1)です。

この関数が呼んでいるのは次のようなものです。

double maVal(int tf, int shift)

{

return ( iMA(NULL,tf,FastMAPeriod,0,MAMethod,MAPrice,shift) );

}

* * * * * * * * * * * * * * * * * * * * * * * *

また、文字列変数のように持っている他の個々の変数を文字列配列に置き換えてください。 配列はループの中で非常にうまく機能し、宣言が少なくなるため、コードを簡素化することができます。

文字列 MAfast_Trend_1, MAfast_Trend_5, MAfast_Trend_15;

......は、こうなります......。

文字列 MAfast_Trend [3];