MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1300

 
ANDREY:

スプレッドを閉じる、つまり買値に何らかの価値を付加することは可能である。しかし、この広がりの大きさはどうすれば直るのでしょうか。実際のティックでは、スプレッドは変動しており、すなわちスプレッドの値は不明である。したがって、実際のティックで閉じることはできません......私の専門的な意見ですが、純粋に論理的に考えても。EXACTLY既知のものをFOREVERで縫うしかないのでしょう。

メタトレーダーには驚きましたか?私は...もう...ダメだ...。お願い...

<日付> <時間> <オープン> <ハイ> <ロー<close> <tickvol> <vol> <spread>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

 
Александр:

メタトレーダーには驚きましたか?私は...もう...ダメだ...。お願い...

<日付> <時間> <オープン> <ハイ> <ロー<close> <tickvol> <vol> <spread>
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

つまり、スプレッドがOであるか、あるいは単にスプレッドの値が表示されていないだけである。そして、このデータをMT4で、あるいはMT5で。また、このデータはどのメニューのものでしょうか?

スプレッド値があるのになぜか表示されないということは、このMTの不具合は私のMT5の不具合と非常によく似ています。アルパリは、履歴の深さはティッククォートの品質に影響しないとしており、私の問題はターミナル自体に隠されていると考え、開発者に連絡するよう助言しています。つまり、あなたの例のように、2010年の品質履歴の値は同じなのに、なぜかMT5では表示 されないのです ティックが全くないか、その数が少なすぎる場合(例えば1000個)、ヒストリーの品質は表示されません。
 

こんにちは。
初心者の方はご注意ください。
コンパイル時にエラーや警告は出ないが、テスターでEAが注文を開けない...。ログにもエラーは出ていませんし...。

その理由は何でしょうか。すでにいろいろと試している...

extern double Lot=0.1;            
extern int Slippage = 30;
extern int TakeProfit = 30;
extern int StopLoss   = 30;
extern int MA_Smoth_S = 60;
extern int MA_Smoth_B = 12;
extern int MA_Simpl_S = 3;
extern int MA_Simpl_B = 1;

int start()
         {
          int MA_Simpl_S_Op,      
              MA_Simpl_B_Op;      
                 
          MA_Smoth_S = iMA(NULL,0,MA_Smoth_S,0,MODE_SMMA,PRICE_CLOSE,1);
          MA_Smoth_B = iMA(NULL,0,MA_Smoth_B,0,MODE_SMMA,PRICE_CLOSE,1);
          MA_Simpl_S = iMA(NULL,0,MA_Simpl_S,0,MODE_SMA,PRICE_CLOSE,1);
          MA_Simpl_B = iMA(NULL,0,MA_Simpl_B,0,MODE_SMA,PRICE_CLOSE,1);
          MA_Simpl_S_Op = iMA(NULL,0,MA_Simpl_S,0,MODE_SMA,PRICE_CLOSE,2);
          MA_Simpl_B_Op = iMA(NULL,0,MA_Simpl_B,0,MODE_SMA,PRICE_CLOSE,2);
          
          //Условие для Buy______________________
          while(MA_Smoth_B > MA_Smoth_S)
               {
                if(MA_Simpl_B_Op < MA_Simpl_S_Op && MA_Simpl_B > MA_Simpl_S)
                  {
                   bool check = OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask, Digits),Slippage,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Buy",0,0,clrGreen);
                   return(0);
                  }
               }
               
          //Условия для Sell_____________________
          while(MA_Smoth_S > MA_Smoth_B)
               {
                if(MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
                  {
                   check = OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid, Digits),Slippage,Ask+StopLoss*Point,Bid-TakeProfit*Point,"Sell",0,0,clrRed);
                   return(0);
                  }   
               }     
          return(0);
         }
 
IndependentMK:

こんにちは。
初心者の方はご注意ください。
コンパイル時にエラーや警告は出ないが、テスターでEAが注文を開けない...。ログにもエラーは出ていませんし...。

その理由は何でしょうか。すでにいろいろと試しているのですが...。

int X = 5;
if(X > 10 && X < 3)  int ticket = OrderSend(Symbol(), OP_SELL, Доп_Лот, NormalizeDouble(Bid, Digits), 3,  NormalizeDouble(Ask + StopLoss_S * Point, Digits),  NormalizeDouble(Bid - TakeProfit_S * Point, Digits), "", MAGIC_S, 0, CLR_NONE);
 

いかがでしょうか?テスターでポジションを 開けるか?いいえ、Xはテスト範囲外だからです。それが理由です。Printsをコードに挿入し、テスターのログを解析するのです。

int start()
  {
   int MA_Simpl_S_Op,
       MA_Simpl_B_Op;
   MA_Smoth_S = iMA(NULL, 0, MA_Smoth_S, 0, MODE_SMMA, PRICE_CLOSE, 1);
   MA_Smoth_B = iMA(NULL, 0, MA_Smoth_B, 0, MODE_SMMA, PRICE_CLOSE, 1);
   MA_Simpl_S = iMA(NULL, 0, MA_Simpl_S, 0, MODE_SMA, PRICE_CLOSE, 1);
   MA_Simpl_B = iMA(NULL, 0, MA_Simpl_B, 0, MODE_SMA, PRICE_CLOSE, 1);
   MA_Simpl_S_Op = iMA(NULL, 0, MA_Simpl_S, 0, MODE_SMA, PRICE_CLOSE, 2);
   MA_Simpl_B_Op = iMA(NULL, 0, MA_Simpl_B, 0, MODE_SMA, PRICE_CLOSE, 2);
//Условие для Buy______________________
   Print(" MA_Smoth_B = ", MA_Smoth_B, " MA_Smoth_B = ", MA_Smoth_B);
   while(MA_Smoth_B > MA_Smoth_S)
     {
      Print(" MA_Simpl_B_Op = ", MA_Simpl_B_Op, " MA_Simpl_S_Op = ", MA_Simpl_S_Op);
      if(MA_Simpl_B_Op < MA_Simpl_S_Op)
        {
         Print(" MA_Simpl_B = ", MA_Simpl_B, " MA_Simpl_S = ", MA_Simpl_S);
         if(MA_Simpl_B > MA_Simpl_S)
           {
            bool check = OrderSend(Symbol(), OP_BUY, Lot, NormalizeDouble(Ask, Digits), Slippage, Bid - StopLoss * Point, Ask + TakeProfit * Point, "Buy", 0, 0, clrGreen);
            return(0);
           }
        }
     }
//Условия для Sell_____________________
   while(MA_Smoth_S > MA_Smoth_B)
     {
      if(MA_Simpl_B_Op > MA_Simpl_S_Op && MA_Simpl_B < MA_Simpl_S)
        {
         bool check = OrderSend(Symbol(), OP_SELL, Lot, NormalizeDouble(Bid, Digits), Slippage, Ask + StopLoss * Point, Bid - TakeProfit * Point, "Sell", 0, 0, clrRed);
         return(0);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
ANDREY:

つまり、スプレッドがOであるか、単にスプレッド値が表示されていないだけである。このデータはMT4ですか、それともMT5ですか?また、このデータはどのメニューのものでしょうか?

もし、スプレッド値があるのに、何らかの理由で表示されないのであれば、このMTの不具合は、私のMT5の不具合と非常によく似ています。アルパリ社は、履歴の深さはティッククォートの品質に影響しないとしており、私の問題はターミナル自体に隠されていると考え、開発者に問い合わせるようアドバイスしています。つまり、あなたの例のように、2010年の品質履歴の値は同じなのに、なぜかMT5では表示 されないのです ティックが全くないか、その数が少なすぎる場合(例えば1000個)、ヒストリーの品質は表示されません。

MT4の見積もりはこちら

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

以下、MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

違いを実感してください...ダニを扱うのはとっくにやめました。そして、このままでは、さまざまな「便利屋・フニャチン」と戦うだけのエネルギーがないのです。

同じExpert Advisorを別の証券会社で入れてみる。そこではなんとダニが問題になっています。オープンでも、開閉を同時に行う。違いは「BOTH」。もしかしたら、誰かがこの問題(ダニなど)を解決しているかもしれないし、どう対処したらいいのか分からない。また、MT5ではスプレッドもあり・・・。

 
Александр:

以下はMT4の相場です。

2007.02.12, 00:00, 0.9051, 0.9087, 0.9047, 0.907, 3739

以下、MT5
1999.01.28 00:03:00 1.14450 1.14450 1.14450 1.14450 1 0 50
1999.01.28 00:13:00 1.14440 1.14440 1.14420 1.14420 3 0 50

違いを実感してください...ダニを扱うのはとっくにやめました。そして、このままでは、さまざまな「便利屋・フニャチン」と戦うだけのエネルギーがないのです。

同じExpert Advisorを他の証券会社で入れてみる。そこにあるのは、なんとダニの問題。オープンでも、開閉を同時に行う。違いは「BOTH」。もしかしたら、誰かがこの問題(ダニなど)を解決しているかもしれないし、どう対処したらいいのか分からない。また、MT5ではスプレッドもあり・・・。

もちろん、あなたは私よりもこれらの質問に対して進んでいる・・・だからこそ、あなたの思考回路が理解できないところがあるのです・・・。
例えばMt4を使おうとしたとき、私のコードはTikiコードで非常に良い結果を示していました・・・その後、私の非常に良い結果は完全に正確ではないことを知りました、なぜならMT4は本当のスプレッドを考慮しないし、AlpariのMT4の本当のスプレッドは(特に夜間)浮くので考慮するのは不可能だからです。

このフォーラムでは、テスト中にMT5でのみ実際のスプレッド(まさにフローティング)が考慮されると聞きました。 このため、私はMT5を勉強し、その上で私のコードをモデル上で実行しました -本物のティックをベースとしたすべてのティック。その後、私のコードはMT4ほど良い結果を示さなかったので、身が引き締まる思いでした。一方、MT4で確認したコードの良い点は、MT5でも確認できました。そして、テスト結果が実際の取引に近いと確信しながら、自分のコードを改善できたことが嬉しかったです。

そのため、ダニの検査に 否定的な姿勢は(知識・経験不足のためか)よく理解できないのです。結局のところ、(あなたのように)Сloseによってではなく、(私のように)注文を開くための要求で指定された任意の価格で取引を開く場合 ティックでテストすることのデメリットは何 ですか?
デメリットとしては、ティックが不完全であることと、ロードされた相場が省略されることくらいでしょうか。 しかし、1分足のローソク足の数に比べれば、ティックの数は膨大なものです。また、ローソク足のような欠けたティックを全く検出せず、ティックファイルに追加する可能性があるかどうかは、まだ調査していません。
そして、その違いがまだよくわからない。あなたが持ってきたローソク足を見て、あなたの考えを実証するべきだ。

もしライブトレードをする勇気があるなら、それはアルパリですることになるでしょうから、他のブローカーでEAをテストするのは嫌なんです。それに、このブローカーが最も完全で信頼できるティックデータを持っていると、あなた自身が言っています。

あなたの言葉から、残念ながら私はそれを受け取ることができませんが、あなたは私にいくつかの貴重な情報を持っていると確信しています。

Тестирование торговых стратегий на реальных тиках
Тестирование торговых стратегий на реальных тиках
  • www.mql5.com
В данной статье мы покажем результаты тестирования простой торговой стратегии в 3-х режимах: " OHLC на M1 " с использованием только цен Open,High, Low и Close минутных баров; затем детальное моделирование в режиме " Все тики ", и самое достоверное тестирование в режиме " Каждый тик на основе реальных тиков " с использованием записанных тиков из...
 
ANDREY:


ダニ歴の検査に 否定的な姿勢ですね。結局のところ、(あなたのように)Сloseによってではなく、(私のように)注文を開く要求で指定された任意の価格によって取引を開く ので あれば、ティックでテストすることのデメリットは何 でしょうか

そして、あなたの考えを示すために持ってこられたローソク足のパラメータを見たときに感じるべき違いは何なのか、まだ理解できていません。

もしライブで取引する勇気があるなら、それはアルパリで行うだろうから、他のブローカーで私のEAをテストしたくないのです。それに、このブローカーが最も完全で信頼できるティックデータを持っていると、あなた自身が言っています。

きっと貴重な情報をお持ちなのでしょうが、今のところ、残念ながら、あなたの言葉からは、そのような情報を把握することができません。

1.否定的な態度...いいえ、ネガティブではありません。ただ、テストが終わるのを何週間も待ってみたりすると、見積もりがいい加減になってしまい、結果に強く影響します。 どの証券会社も見積もりをフィルターにかけます。フィルターで歪ませる。私は、引用の質について批判的でないEAを書くという路線をとりました。

2.MT4とMT5の相場の違いは、MT5にはFOR EVERY RATEというスプレッドがある、というところから始まりました。それはなぜでしょうか?どうだろう。オフラインではこのスプレッドが最大になります。オフラインが歩き回っている。つまり、クリティカルでないシステムを作るべきだということです。ポイント1 G)をご参照ください。

それだけなんです。サブテキストはありません。

 
Александр:

1.否定的な態度...いいえ、ネガティブではありません。ただ、プッシュして、テストが終わるのを何週間も待って、見積もりが十分でないことが判明し、結果に大きな影響を与えるのです。 すべてのDCは見積もりをフィルターにかけます。フィルターで歪ませる。私は、引用の質について批判的でないEAを書くという路線をとりました。

2.MT4とMT5の相場の違いは、MT5にはFOR EVERY RATEというスプレッドがある、というところから始まりました。それはなぜでしょうか?どうだろう。オフラインではこのスプレッドが最大になります。オフラインが歩き回っている。つまり、クリティカルでないシステムを作るべきだということです。ポイント1 G)をご参照ください。

それだけなんです。サブテキストはありません。

".............................引用がうまくいかず、結果に強く影響することが判明したのです。フィルターで歪ませる ... 続きを読む"


テスト用にAlpariサーバーからMT5に自動的にダウンロードされた、あるペアの2008年からのティックリアル 相場があるとします。これらの名言は、どのように判断しているのですか?一般的に、見積りの質はどのような基準で評価されますか?最適な品質のティッククォーツを 持つべきパラメータは何ですか?
アルパリが言うように、ティックの相場は モデル化したり生成したりした ものではなく、記録された歴史から引用したものです。私の理解では.は、別のティック任意の引用をもたらした - 記録され、この引用とAlpariティック。といった具合に、刻々と 変化していきます。その結果、彼らは価格付きのティックの巨大なデータベースを持ち、それをMT5にダウンロードしてテストしています。また、必要な気配値やその並びが何らかの理由で欠落した場合のみ、アルパリは価格と実際のティックを欠落させる代わりに、これらのティックを実際のティックの外観に近いアルゴリズムに従ってシミュレートしています。

それだけに、引用の質に対してどのような不満があるのか、よく理解できないのです。別の方法として、1ティックが来て、例えば1.00061のような価格になったと想像することができます。しかし、Alpariはこのティックに、例えば1.00077という ように、別の価格を割り当てています。あるいは、このティックに現実とは異なるスプレッドを付けることもできる。しかし、本当にそうであれば、特に深い履歴の場合、不正な者はこの改ざんを発見することはできません。ですから、アルパリがこのテロップを引用してフィルタリングしたと主張することはもちろん可能です。しかし、それを証明することは現実的に不可能だと思われます。なぜなら、フィルタリングされたティックの一次価格やスプレッドがどうだったかは、当該アルパリのスペシャリスト以外にはわからないからです。唯一可能性があるとすれば、この専門家がこの秘密を誰かに明かし、その事実を文書で確認することくらいだろうか。しかし、このような証拠書類付きの情報は、すぐにこの掲示板に載るような気がするのですが。


"...すべてのDCはFILTERING相場です。フィルターで歪ませる......。"


何度も読み返しました。しかし、このフィルタリングは実際の取引に関するものでした。そして、そのようなフィルタリングは、証券会社にとって合理的であると思われます。もし、証券会社が市場に参入しなかった場合、非常に大きな出来高のある大量のポジションがTake Profitで決済されれば、大きな損失を回避することができます。また、証券会社がテストのための見積もりを提供する場合、ろ過に何の意味があるのでしょうか?

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
 

ポジションを切り する際に、x2の比率を出す方法を教えてください。

今、私は1,4,9,16を得ました - そして私は2,4,8,16を必要としています。

コードのどこを直せばいいのか?

 int cn=0,c=0;
  datetime dt=0;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--){
    if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && OrderType()<=1) {
     if((OrderSymbol()==mSymbol)&&(OrderMagicNumber()==Magic)) {
       double Profit=OrderProfit()+OrderCommission()+OrderSwap();
        if(Profit<0) {  
        c++;   
        cn=(int)MathPow(c,2); // что здесь исправить?
        } else break;     
 }}}
   Comment(cn);
 
Denis Pershin:

ポジションを切り する際に、x2の比率を出す方法を教えてください。

今、私は1,4,9,16を得ました - そして私は2,4,8,16を必要としています。

コードのどこを直せばいいのか?

すべて修正する必要があります。

あなたのコードは、指定されたシンボルとマジックナンバーを持つ最初の注文を注文履歴から検索します。

次に、採算の取れない注文の数を計算し、2を掛けます。

フォーラムで「CMMの便利な機能」を検索し、以下のような操作を行います。

- シンボルとマジックの ラストオーダーのチケットを手に入れる。

- 見つかったチケットからOrderProfit()とOrderLots()を取得し、必要ならマーチンゲール係数を乗じます。

ZS:すぐに解決できるかもしれない

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...