[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 288

 
TheXpert писал(а)>>

。引用された表現は確かに価値がありますね。

ありがとうございます。

 
グッドデイ(Good day to all)。グレベンシコフのトレーディングシステムを持っています。チャネル内とチャネルブレイクアウト、フラットからのペンディングオーダーによる エントリーで機能します。履歴でテストして、それでMMを更新したいと思います。もしかしたら、誰かがすでにこのシステムをコードに実装しているかもしれません。このようなシステムを構築するために、どのような要素が考えられるでしょうか。 以下、システムについての説明です。http://www.fx4u.ru/rinki-forex-commodities-cfd-futures-f14/strategii-opitnih-f4/ts-grebenschikova-si-forex-i-mi-t529.html
 

質問があります

主要4ペアの平均チャートを表示するピリオドコンバータを作ることができます ...

ドル円の価格が例えば101.50であることを考え、1.0150の状態に変換し、それを使って平均的なチャートを構築する...。

はい、そして、テストと最適化でこの媒体チャートを使用するのは良いことだと思います....

ご静聴ありがとうございました.

 

皆さん、こんにちは。

以下はそのコードです(スタート機能のみ)。

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения средних на 0-ом и 1-ом барах
    double MAF_0 = iMA(NULL, 0, MAFP, 0, 1, 1, 0);
    double MAF_1 = iMA(NULL, 0, MAFP, 0, 1, 1, 1);
    double MAS_0 = iMA(NULL, 0, MASP, 0, 1, 1, 0);
    double MAS_1 = iMA(NULL, 0, MASP, 0, 1, 1, 1);
    
   // ----открытие позиции Buy покупка-----
    if( MAF_0 > MAF_1 && MAS_0 > MAS_1) { //-условие на покупку--- 
    if( isCloseLastPosByTake( NULL, OP_SELL, MagicNumber) ==true) {
     if( CheckOrders(OP_SELL))                                      {
       if( StopLoss <= StopLevel+ Spread)
         double SL = 0;        else         SL = Ask - StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         double TP = 0;        else         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
                }
               }
              }
   //-------------------Конец блока покупки ------------------
    
  //  ----- Открытие позиции Sell продажа------------  
    if( MAF_0 < MAF_1 && MAS_0 < MAS_1) { //-условие на продажу---
    if( CheckOrders(OP_BUY))                                     {
      if( StopLoss <= StopLevel+ Spread)
         SL = 0;        else         SL = Bid + StopLoss*Point;
       if( TakeProfit <= StopLevel- Spread)
         TP = 0;        else         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
                 }
                }
   //-------------------конец блока продажи -------------------
     
   return(0);
  }//+----------КОНЕЦ ФУНКЦИИ СТАРТ -------------------+

//ЖЖЖЖЖЖЖ Другие вызываемые пользовательские функции ЖЖЖЖЖЖ
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия                                       |
//|  последней позиции по тейку.                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, otp;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()== sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if ( op<0 || OrderType()== op) {
            if ( mn<0 || OrderMagicNumber()== mn) {
              if ( t<OrderCloseTime()) {
                t=OrderCloseTime();
                j= i;
              }} }}}}}

  if (OrderSelect( j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo( sy, MODE_DIGITS);
    if ( dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    otp=NormalizeDouble(OrderTakeProfit(), dg);
    if ( ocp== otp) return( True);
  }
  return( False);
}
 

ここでは、ライドが推奨する一つの条件が、なんとなく実行されています。本人のコメントと訂正あり。

Expert Advisor自体がコンパイル、トレード......そんなことはないですよね......。

テスターでロングN1トレードだけ入れてみたり、ショートN1トレードだけ入れてみたり。

ロジックは簡単で、買い条件が成立するとEAが取引を行い、テイクプロフィットで取引を終了します。

そして、アドバイザーは次の取引条件が来るのを待ちます。 のみで、この条件は前と逆である必要があります。

Т.例えば、BAYでトレードした場合、次はSHELLでトレードする必要があります。

 

またこのスレッドで、ずっと前にだけ、私と同じような質問がありました。フラッグのことだったんですね。だから、このような騒ぎになっているのです。

 

もうひとつ質問です。

2つの窓を開け、1つ目は5分、2つ目は15分。

両方にMAKを描く(10)。5分足チャートで(30)のMAを描けば、15分足チャートで(10)のMAに対応するのは正しいか。

15 と 30 のチャートでは係数は 2 になります。

30 時間と 1 時間のチャートでは係数は 2 となる。

1h と 4h のチャートでは係数は 4 になります。

これは本当なのかどうなのか?

 

igrok2008 писал(а) >>

これは本当なのかどうなのか?

厳密には、そうではありません。しかし、それに非常に近い。

 

こんにちは。

初めて掲示板に書き込みます。願わくば、これが最後でないことを。掲示板に書かれていることに比べれば、私は素人です。半年ほど前にセルゲイ・コロレフ氏の「MQL4によるプログラミングの教科書」で1ヶ月ほどこの言語を学びました。

半年ほど前にセルゲイ・コバレフ氏の MQL4でプログラミングする教科書」で1ヶ月ほど勉強しました。私はすでにいくつかのExpert Advisorを書き、それ以来使っています。Expert Advisorやカスタムインディケーターも いくつか書きました。

... スクリプト私はいつも、わからないことはすべてフォーラムで答えを探すようにしています。しかし、一見些細なことですが、答えが見つからずに悩んでいます。

よろしくお願いします。

質問は#include <XXX.mqh>の使用についてですが、フォーラム全体を読み直しましたが、答えが見つかりません。あるスレッドには、
と書かれています

"...また、eX4ファイルは自給自足であることも付け加えておきます。これを動作させるために、
はカスタム関数のソースコードを含める必要はありません。
ex4ファイルをコピーして、他のトレーダーに送り、そこで使用することができます。
それを得るための技術に関係なく、完成している。"

これが問題なのです。EAを渡すとき、それは関数を「見る」のではなく、コンパイル時に書き込み - プログラムファイルを開くことができません。

もう一方の端末のincludeでは、ex4にコンパイルされていないエント リーが表示されましたが

このエラーについて説明してください。ありがとうございます。

 
gvi2504 >> :

...EAを渡すとき、それは関数を「見る」のではなく、コンパイル時に書き込む - プログラムファイルを開くことができません。

他端末のincludeではex4ではコンパイルされない項目が表示れましたが

このエラーについて説明してください。ありがとうご ざいました

フルログを含む例を教えてください。EAでどのようにライブラリが呼び出されるのか、ライブラリ自体のヘッダに何が書かれているのか。たぶん、それだと思うんです。

ところで、TheXpertがこの辺りを走っていたんだけど、彼はこういうの得意なんだよね。