[アーカイブ!】アドバイザーの書き方を無料公開中 - ページ 21 1...141516171819202122232425262728...94 新しいコメント olegplus 2010.02.02 11:56 #201 Vinin >>: Лучше убери. Смесь ломанного и еще неизвестно чего. Жуткая вещь получается. Хотя можешь в читабельный вид перевести. Expert AdvisorはBuyの時のみ動作します。 Sellでも保留中の注文で動作するようにしてください。 作業の要点:現在の価格から50ppsの距離で、TP 100で買いストップと買いリミットを設定します。 下から50ppsの間隔で2オーダー、上から2オーダー。 Expert Advisorは、常に少なくとも2つの未決済注文が両方向に存在するように動作します。 よろしくお願いします :) #property copyright "Slobodyan Oleg" #property link "http://www.metaquotes.net" extern int Orders = 2; extern double Lots = 0.01; extern double StepLevel = 50.0; extern int StopLoss = 3000; extern int Profit = 100; double gd_104 = 0.0; int CheckBS() { double l_ord_open_price_12; double ld_20 = 0; int l_count_8 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { if (OrderSelect( l_pos_4, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_BUYSTOP && OrderMagicNumber() == 1) { if (OrderOpenPrice() - Ask > ld_20 && OrderOpenPrice() - Ask > 0.0) { ld_20 = OrderOpenPrice() - Ask; l_ord_open_price_12 = OrderOpenPrice(); l_count_8++; } } } } if ( l_count_8 == 0) { l_ord_open_price_12 = NormalizeDouble(Bid - StepLevel * Point, Digits); OrderSend(Symbol(), OP_SELLSTOP, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 1, 0, Navy); } if ( l_count_8 < Orders && l_count_8 != 0) { l_ord_open_price_12 = NormalizeDouble( l_ord_open_price_12 + StepLevel * Point, Digits); OrderSend(Symbol(), OP_SELLSTOP, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 1, 0, Navy); } return (1); } int CheckBL() { double l_ord_open_price_12; double ld_20 = 0; int l_count_8 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { if (OrderSelect( l_pos_4, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderSymbol() == Symbol() && OrderType() == OP_SELL || OrderType() == OP_SELLLIMIT && OrderMagicNumber() == 2) { if (Bid - OrderOpenPrice() > ld_20 && Bid - OrderOpenPrice() > 0.0) { ld_20 = Bid - OrderOpenPrice(); l_ord_open_price_12 = OrderOpenPrice(); l_count_8++; } } } } if ( l_count_8 == 0) { l_ord_open_price_12 = NormalizeDouble(Ask - StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy); } if ( l_count_8 < Orders && l_count_8 != 0) { l_ord_open_price_12 = NormalizeDouble( l_ord_open_price_12 - StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy); } return (1); } int CheckBS_min() { double l_ord_open_price_12; double ld_20 = Ask; int l_count_8 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { if (OrderSelect( l_pos_4, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_BUYSTOP && OrderMagicNumber() == 1) { if (OrderOpenPrice() - Ask < ld_20 && OrderOpenPrice() - Ask > 0.0) { ld_20 = OrderOpenPrice() - Ask; l_ord_open_price_12 = OrderOpenPrice(); l_count_8++; } } } } if ( l_count_8 == 0) { l_ord_open_price_12 = NormalizeDouble(Ask + StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYSTOP, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 1, 0, Navy); } if ( l_ord_open_price_12 - Ask >= 2.0 * StepLevel * Point && l_count_8 != 0) { l_ord_open_price_12 = NormalizeDouble( l_ord_open_price_12 - StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYSTOP, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 1, 0, Navy); } return (1); } int CheckBL_min() { double l_ord_open_price_12; double ld_20 = Ask; int l_count_8 = 0; int l_ord_total_0 = OrdersTotal(); for (int l_pos_4 = 0; l_pos_4 < l_ord_total_0; l_pos_4++) { if (OrderSelect( l_pos_4, SELECT_BY_POS, MODE_TRADES) == TRUE) { if (OrderSymbol() == Symbol() && OrderType() == OP_BUY || OrderType() == OP_BUYLIMIT && OrderMagicNumber() == 2) { if (Ask - OrderOpenPrice() < ld_20 && Ask - OrderOpenPrice() >= 0.0) { ld_20 = Ask - OrderOpenPrice(); l_ord_open_price_12 = OrderOpenPrice(); l_count_8++; } } olegplus 2010.02.02 11:57 #202 } } if ( l_count_8 == 0) { l_ord_open_price_12 = NormalizeDouble(Ask - StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy); } if (Ask - l_ord_open_price_12 >= 2.0 * StepLevel * Point - 2.0 * (Ask - Bid) && l_count_8 != 0) { l_ord_open_price_12 = NormalizeDouble( l_ord_open_price_12 + StepLevel * Point, Digits); OrderSend(Symbol(), OP_BUYLIMIT, Lots, l_ord_open_price_12, 3, l_ord_open_price_12 - StopLoss * Point - 2.0 * gd_104, l_ord_open_price_12 + Profit * Point + gd_104, "", 2, 0, Navy); } return (1); } int init() { return (0); } int deinit() { return (0); } int start() { gd_104 = 0; CheckBS(); CheckBL(); CheckBS_min(); CheckBL_min(); return (0); } ファイル: yolka_1.mq4 6 kb Victor Nikolaev 2010.02.02 12:02 #203 Vinin писал(а)>> チェックしてみてください。正常に動作しているようです。 1つのミスを修正しました。 ファイル: maxmmovingxaveragec02_1.mq4 4 kb 削除済み 2010.02.02 15:27 #204 Vinin >>: Ошибочку одну исправил ビクターさん、ありがとうございます。 ギンタラス ビリニュス 削除済み 2010.02.02 16:30 #205 Vinin >>: Ошибочку одну исправил ビクター、時間があったら、もう一台の車も同じようにしてください。 敬具 Victor Nikolaev 2010.02.02 16:38 #206 dadi писал(а)>> ビクター、時間があったら、もう一台の車も同じようにしてください。 謹んで申し上げます。 やってみますが、その分。 削除済み 2010.02.02 17:06 #207 Vinin >>: Попробую, только вот зачем オリエンテーションが必要なとき、ワンウェイ・ペイントは余計な手間を省くことができます。 ファイル: wpsjwondefullostopaline.mq4 1 kb 削除済み 2010.02.02 17:09 #208 なぜか名前に不要な文字が追加されていますね...。 Victor Nikolaev 2010.02.02 17:32 #209 dadi писал(а)>> 私は手書きで仕事をしていますが、これを一番上に置くと、「交差」せずに良い出入り口になります。 すぐに方向を決めたいとき、ワンディレクションカラーは無駄な手間を省くことができます。 そうすると、ドットは全く必要ないのかもしれません。 Victor Nikolaev 2010.02.02 17:44 #210 dadi писал(а)>> 手で作業する場合は、上に乗せると「十字架の上」でなくても出入りがうまくできます。 ファイル: maxmmovingxaveragec03.mq4 3 kb 1...141516171819202122232425262728...94 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Лучше убери. Смесь ломанного и еще неизвестно чего. Жуткая вещь получается. Хотя можешь в читабельный вид перевести.
Expert AdvisorはBuyの時のみ動作します。Sellでも保留中の注文で動作するようにしてください。
作業の要点:現在の価格から50ppsの距離で、TP 100で買いストップと買いリミットを設定します。
下から50ppsの間隔で2オーダー、上から2オーダー。
Expert Advisorは、常に少なくとも2つの未決済注文が両方向に存在するように動作します。
よろしくお願いします :)
チェックしてみてください。正常に動作しているようです。
1つのミスを修正しました。
Ошибочку одну исправил
ビクターさん、ありがとうございます。
ギンタラス
ビリニュス
Ошибочку одну исправил
ビクター、時間があったら、もう一台の車も同じようにしてください。
敬具
ビクター、時間があったら、もう一台の車も同じようにしてください。
謹んで申し上げます。
やってみますが、その分。
Попробую, только вот зачем
オリエンテーションが必要なとき、ワンウェイ・ペイントは余計な手間を省くことができます。
私は手書きで仕事をしていますが、これを一番上に置くと、「交差」せずに良い出入り口になります。 すぐに方向を決めたいとき、ワンディレクションカラーは無駄な手間を省くことができます。
そうすると、ドットは全く必要ないのかもしれません。
手で作業する場合は、上に乗せると「十字架の上」でなくても出入りがうまくできます。