Craft: いいですね、でもコード(ロジック)ではどうなんでしょう:If MA150+20 > MA5 > MA150-20 and MA150+20 > MA21 > MA150-20 Then flat else トレンドです。
理屈はこの辺に...。早く作ったので、何かあったらごめんなさい...。
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж//------------------------------- Функция определения тренда по МАшкам ----------------------------//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж// Возврвщает 1 = тренд вверх, -1 = тренд вниз, 0 = флэт...//------------------------------------------------------------// -------------- Внешние переменные -------------//============================================================externstring MATrendDetectorParameters = "Параметры детектора тренда";
externdouble Limit150 =20;
externdouble Limit21 =20;
externdouble Limit5 =20;
// ===============================================================// ---------------------- Собственно сама функция ----------------// ===============================================================int TrendDetectorMA (string sy, int tf)
{
double MA150, MA150UP, MA150DN,
MA21, MA21UP, MA21DN,
MA5, MA5UP, MA5DN,
pt;
// ---------------------------------------
pt=Point;
if (sy=="" || sy=="0") sy=Symbol();
MA150 =iMA(sy,tf,150,0,MODE_SMA, PRICE_MEDIAN,1);
MA21 =iMA(sy,tf,21,0,MODE_SMA, PRICE_MEDIAN,1);
MA5 =iMA(sy,tf,5,0,MODE_SMA, PRICE_MEDIAN,1);
MA150UP =MA150+Limit150*pt;
MA150DN =MA150-Limit150*pt;
MA21UP =MA21+Limit21*pt;
MA21DN =MA21-Limit21*pt;
MA5UP =MA5+Limit5*pt;
MA5DN =MA5-Limit5*pt;
// --------------------------------------// ------------- Рассчёт данных ---------if (
MA5DN>MA21UP && // Если нижняя граница быстрой МАшки выше верхней границы средней МАшки и...
MA21DN>MA150UP // нижняя граница средней МАшки выше верхней границы медленной МАшки,
)
return(1); // значит тренд вверх, возвращаем 1if (
MA5UP<MA21DN && // Если верхняя граница быстрой МАшки ниже нижней границы средней МАшки и...
MA21UP<MA150DN // верхняя граница средней МАшки ниже нижней границы медленной МАшки,
)
return(-1); // значит тренд вниз, возвращаем -1elsereturn(0); // В остальных случаях у нас флэт, возвращаем 0
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
課題は次のようなものです。
int tr=TrendDetectorMA (NULL, 5); // NULL, 0 = текущий символ, либо явно, напр. EURUSD
// 5 = таймфрейм, можно 15, 30, 60, 240, 1440, 10080, 43200, хотя можно было
// и красивее сделать.
Comment ("\n","Тренд = ", tr);
return;
テスターではエラーは報告されませんが、注文が入らないだけです。
ロジック:バーのМА [0]の値がMA [1]よりも高ければ買うべきで、逆に - 売る(このコードは、単純なものから複雑な条件を作ることを試みる例として書かれました)。
このコードでは、MA[0] と MA[1] ではなく、MA[j] と MA[j+1] を使っています。
コードを少し修正したところ(非常に小さい)、エラー4107が表示された
うまくいくんだけど、全然違うEAになっちゃうんだよね。最大限に簡略化しているのです。そして、ここではコードを半分以下にすることができます。
ストップとテイクオーバーがゼロに設定されている場合、Expert Advisorは取引開始を開始します。
返書
アドバイザーが働いて、インジケーターが全く働かないということです
Vinin さん、ストップやテイクプロフィットでクローズしてうまくいくのであれば、配列で異なるバーを扱うmqlの哲学を感じることが一番のポイントだと思います。
確認しました。効くんです。シグナルは方向転換
いいですね、でもコード(ロジック)ではどうなんでしょう:If MA150+20 > MA5 > MA150-20 and MA150+20 > MA21 > MA150-20 Then flat else トレンドです。
課題は次のようなものです。MT4でラムスボリュームを使いたいのですが、よりリアルなボリュームがあるようです。
私のシステムは常に注文を出したいように設定されており、シグナルを禁止することでそれを制限し、シグナルのみが取引=注文の許可を与えてくれる。
私は今小さな問題を抱えている - 後半の取引はありませんが、夜のフラットでランダムな注文の問題があります -これまでのところ、私はEAがフラットを区別し、動作するように一日の時間にそれを制限しないように教えることを夢見ます。トレンドの推定には、EAのロジックで高いTFを使っているので、夜間は1時間足のTFで入れていますが、M15よりもしつこくないような気がします
こんばんは、私はMQL4のインジケータで動作しませんし、全く何もありません! 助けてください! 返信 アドバイザーが動作するという事実、およびインジケータが全く動作しません!
F1ヘルプ -テクニカル指標編
オブジェクトクレートとオブジェクトセットを使って、例えばストキャスティックウィンドウに横線を 引くにはどうしたらいいのでしょうか?