[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 229 1...222223224225226227228229230231232233234235236...652 新しいコメント 削除済み 2011.10.02 19:46 #2281 なぜトランザクションが開かないのか、教えてください。コードは意味をなしているように見えますが、どうしても開きません。 削除済み 2011.10.02 19:47 #2282 //+------------------------------------------------------------------+ //| MACD ^^^.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern int TP = 100; extern int TS = 100; extern int TF = 1; extern double lots = 0.1; int fast_ema = 5; int slow_ema = 34; int signal_period = 5; int slip = 3; int Magic = 1; int total; int ticket; //объявил тотал и тикет //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- CheckTicket(); bool signal = signal_MACD(); AnalyzeSignal(signal); //---- return(0); } //+------------------------------------------------------------------+ bool signal_MACD() { bool signal_MACD = false; double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); for(int i=1;i<=5;i++) { if(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0)*tmp,4)<0.0) { signal_MACD = true; break; } } } void AnalyzeSignal(bool signal) { double MACD = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); total = OrdersTotal(); if(total < 0) { if(signal == true) { if(MACD > 0) { ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,slip,Bid-TS*Point,Bid+TP*Point,"покупаем",Magic,0,Green); if(ticket>0) { OrderSelect(ticket,SELECT_BY_TICKET); Print("открылись на покупку по цене:", OrderOpenPrice()); } else { Print("открыться не удалось по причине:", GetLastError()); return(0); } } if(MACD < 0) { ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,slip,Ask+TS*Point,Ask-TP*Point,"Продаем",Magic,0,Green); if(ticket>0) { OrderSelect(ticket,SELECT_BY_TICKET); Print("открылись на продажу по цене:", OrderOpenPrice()); } else { Print("открыться не удалось по причине:", GetLastError()); return(0); } } else return(0); } } } void CheckTicket() { if(OrderSelect(ticket,SELECT_BY_TICKET)) { if(OrderCloseTime()>0) { ticket = 0; } } } 削除済み 2011.10.02 19:49 #2283 これは私がまとめられないポイントだ、作るのを手伝ってくれ。 一方向に開いた2つ以上の注文(例:買い)に対して、利益ポイントゼロを定義する必要があります。 で、このポイントにテイクプロフィットを追加して、すべてのオープンな買い注文に割り当てます。 そして、テイクプロフィットはチャート上に表示されるべき、つまり見えるようにすべきです。 例えば、価格1500の時に最初の買い 注文を出します。 1600に2つ目の買い注文を出す。 そのゼロポイントは1550+(テイクプロフィット=20)です。 で、ここでは1つ目と2つ目の注文に1570の利食いが設定されており、価格がこの水準に達すると、両方の注文が決済されることになります。 で、価格がこのレベルを通過(ジャンプ)すれば、それに追従して注文を決済します。 買い注文と売り注文を同時に記録し、互いに干渉しないようにすることが非常に重要です。 買いの場合は利食い、売りの場合は利食いを別々に設定し、一方向に同時に2つ以上の注文を出した場合にのみ、利食いを設定する必要があります。 PapaYozh 2011.10.02 19:55 #2284 CLAIN: なぜトランザクションが開かないのか、教えてください。コードは意味をなしているように見えますが、どうしても開きません。 OrdesTotal() が負の値を返すことはないからです。 削除済み 2011.10.03 04:38 #2285 ありがとう、いいこと言うね...。を修正した...が、まだトレードが開かない...。どうしよう PapaYozh 2011.10.03 04:56 #2286 CLAIN: ありがとう、いいこと言うね...。を修正した...が、まだトレードが開かない...。どうしよう おそらく、signal_MACD()関数を修正する。 まあ、それでも何かお返しはしているだろうということです。 Артур 2011.10.03 05:37 #2287 こんにちは。 条件が正しく書けているか教えてください。(Fractal_point_up_buy と Fractal_point_down_buy のパラメータは正規化されています)。 よろしくお願いします。 Fractal_point_up_buy=TF1B; Flow_differential_buy=Fractal_point_up_buy-Bid; if (timf1s>timf2b && timf2s>timf2b && timf3s>timf2b && timf3s<timf1b) { Fractal_point_down_buy=TF3S; } else { if (timf1s>timf2b && timf2s>timf2b && timf3s<timf2b && timf2s<timf1b) { Fractal_point_down_buy=TF2S; } else { if (timf1s>timf2b && timf2s<timf2b && timf3s<timf2b && timf1s<timf1b) Fractal_point_down_buy=TF1S; } } Fractal_fibo_buy=100*Flow_differential_buy/(Fractal_point_up_buy-Fractal_point_down_buy); Artyom Trishkin 2011.10.03 05:44 #2288 belck:これは私がまとめられないポイントだ、作るのを手伝ってくれ。一方向に開いた2つ以上の注文(例:買い)に対して、利益ポイントゼロを定義する必要があります。で、このポイントにテイクプロフィットを追加して、すべてのオープンな買い注文に割り当てます。そして、テイクプロフィットはチャート上に表示されるべき、つまり見えるようにすべきです。例えば、価格1500の時に最初の買い注文を出します。1600に2つ目の買い注文を出す。そのゼロポイントは1550+(テイクプロフィット=20)です。 で、ここでは1つ目と2つ目の注文に1570の利食いが設定されており、価格がこの水準に達すると、両方の注文が決済されることになります。で、価格がこのレベルを通過(ジャンプ)すれば、それに追従して注文を決済します。買い注文と売り注文を同時に記録し、互いに干渉しないようにすることが非常に重要です。 買いの場合は利食い、売りの場合は利食いを別々に設定し、同時に一方向に2つ以上の注文を出した場合にのみ、利食いを設定する必要があります。 1500で開いたポジションの場合、1570で取るのは問題ありませんが(StopLevelを考慮しない場合)、1600で開いたポジションの場合、1570で取るとエラー130が発生します - 間違ったストップです。結局のところ、TakeはBuyの始値より 低くすることはできないのです。これはもうStopLossですね。 2ポジションの場合は損益分岐点が決まっていますが、3-4-5ポジションの場合はどうでしょうか? まず一方向ポジションの損益計算式を定義し、ロジックを作成する必要があります。 Maxim Zaguzov 2011.10.03 07:21 #2289 nemo811: こんにちは。 条件が正しく書けているか教えてください。(Fractal_point_up_buy と Fractal_point_down_buy のパラメータは正規化されています)。 よろしくお願いします。 こんにちは。 すべての変数が宣言されていれば、MQL4の構文にエラーは出ないのですが...。 何が問題なのか? Victor Nikolaev 2011.10.03 07:36 #2290 , artmedia70: 1500で開いたポジションの場合、1570で取るのは(StopLevelを考慮しなければ)問題ありませんが、1600で開いたポジションの場合、1570で取ると130エラーが発生します-間違ったストップです。結局のところ、TakeはBuyの始値より低くすることはできないのです。これはもうStopLossですね。2ポジションの場合は損益分岐点が決まっていますが、3-4-5ポジションの場合はどうでしょうか?まず一方向ポジションの Breakeven 式を定義して、それからロジックを考えるべきでしょう。 。 すべては、Take Profitを設定または変更するタイミングに依存します。現在の 価格を基準にしています。 1...222223224225226227228229230231232233234235236...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これは私がまとめられないポイントだ、作るのを手伝ってくれ。
一方向に開いた2つ以上の注文(例:買い)に対して、利益ポイントゼロを定義する必要があります。
で、このポイントにテイクプロフィットを追加して、すべてのオープンな買い注文に割り当てます。
そして、テイクプロフィットはチャート上に表示されるべき、つまり見えるようにすべきです。
例えば、価格1500の時に最初の買い 注文を出します。
1600に2つ目の買い注文を出す。
そのゼロポイントは1550+(テイクプロフィット=20)です。
で、ここでは1つ目と2つ目の注文に1570の利食いが設定されており、価格がこの水準に達すると、両方の注文が決済されることになります。
で、価格がこのレベルを通過(ジャンプ)すれば、それに追従して注文を決済します。
買い注文と売り注文を同時に記録し、互いに干渉しないようにすることが非常に重要です。 買いの場合は利食い、売りの場合は利食いを別々に設定し、一方向に同時に2つ以上の注文を出した場合にのみ、利食いを設定する必要があります。
なぜトランザクションが開かないのか、教えてください。コードは意味をなしているように見えますが、どうしても開きません。
ありがとう、いいこと言うね...。を修正した...が、まだトレードが開かない...。どうしよう
おそらく、signal_MACD()関数を修正する。
まあ、それでも何かお返しはしているだろうということです。
こんにちは。
条件が正しく書けているか教えてください。(Fractal_point_up_buy と Fractal_point_down_buy のパラメータは正規化されています)。
よろしくお願いします。
これは私がまとめられないポイントだ、作るのを手伝ってくれ。
一方向に開いた2つ以上の注文(例:買い)に対して、利益ポイントゼロを定義する必要があります。
で、このポイントにテイクプロフィットを追加して、すべてのオープンな買い注文に割り当てます。
そして、テイクプロフィットはチャート上に表示されるべき、つまり見えるようにすべきです。
例えば、価格1500の時に最初の買い注文を出します。
1600に2つ目の買い注文を出す。
そのゼロポイントは1550+(テイクプロフィット=20)です。
で、ここでは1つ目と2つ目の注文に1570の利食いが設定されており、価格がこの水準に達すると、両方の注文が決済されることになります。
で、価格がこのレベルを通過(ジャンプ)すれば、それに追従して注文を決済します。
買い注文と売り注文を同時に記録し、互いに干渉しないようにすることが非常に重要です。 買いの場合は利食い、売りの場合は利食いを別々に設定し、同時に一方向に2つ以上の注文を出した場合にのみ、利食いを設定する必要があります。
2ポジションの場合は損益分岐点が決まっていますが、3-4-5ポジションの場合はどうでしょうか?
まず一方向ポジションの損益計算式を定義し、ロジックを作成する必要があります。
こんにちは。
条件が正しく書けているか教えてください。(Fractal_point_up_buy と Fractal_point_down_buy のパラメータは正規化されています)。
よろしくお願いします。
こんにちは。
すべての変数が宣言されていれば、MQL4の構文にエラーは出ないのですが...。
何が問題なのか?
1500で開いたポジションの場合、1570で取るのは(StopLevelを考慮しなければ)問題ありませんが、1600で開いたポジションの場合、1570で取ると130エラーが発生します-間違ったストップです。結局のところ、TakeはBuyの始値より低くすることはできないのです。これはもうStopLossですね。2ポジションの場合は損益分岐点が決まっていますが、3-4-5ポジションの場合はどうでしょうか?まず一方向ポジションの Breakeven 式を定義して、それからロジックを考えるべきでしょう。 。
すべては、Take Profitを設定または変更するタイミングに依存します。現在の 価格を基準にしています。