コーディングのヘルプ - ページ 777

 
Algo_W:

そのためにIMaOnArrayをどのように実装すればいいのかがわかりません。私はそれが解決策だと思います?どなたか、ヒストグラムのADXの移動平均を取得するのを手伝っていただけませんか?

ありがとうございます

#property indicator_type1 DRAW_LINE

#property indicator_type1 DRAW_LINE
for(int i = limit-1; i >= 0; i--)
   Buffer1[i] = iADX(NULL, PERIOD_CURRENT, 14, PRICE_CLOSE, MODE_MAIN, i);
   
for(i = limit-1; i >= 0; i--)   
   Buffer2[i] = iMAOnArray(Buffer1, 0, 5, 0, MODE_SMA, i);
 
Naguisa Unada:

Naguisaさん、こんにちは。

お元気ですか?

私はmtf BB indcatorを微調整してくれたことに感謝し、お礼を言いたいです。


Naguisa!このインジケーターは、フィボナッチナンバーや奇数・偶数のタイムフレームなど、必ずしもMT4専用のものでなく、別のカスタムタイムフレームを表示するように調整することは可能でしょうか?

 

コーディングのヘルプをお願いします。

どのようにıのコードすることができます

をコードできますか?

 
guner:

コーディングのヘルプをお願いします。

どのようにıのコードすることができます

右の光線をMAエンドポイントに追加するには?

PRICE1とPRICE2の値が0小節目の選択したMAの値に等しく、TIME1が0小節目の時間に等しく、TIME2が未来のどこかにある状態でトレンドオブジェクトを描画します。ティックごとにMAを再計算し、それに応じてPRICE1とPRICE2を設定し、すべての新しいバーで新しいTIME1を 設定します。

 

皆さん、こんにちは。


Mark Whistlerの "Volatility illuminated "という本を読んでいて、彼が作ったインディケータ、特にWAVE-PMをもっと深く掘り下げたいと考えています。
Whistlerは本でmq4コードを公開しており、ここにそのコピーもあります http://fxcodebase.com/code/viewtopic.php?f=38&t=64011

しかし、私の意図は、私のメインのチャートプラットフォームであるtradingviewに指標を移植することです。私はいくつかのpinescriptの基本を知っていますが、私は元のスクリプトのCのようなコードを読み取ることは本当に難しいと思います。
どなたかコードを見て、それが何をするのかのロジックを大まかに教えていただけませんか?

Whistlerの本には、このインジケーターについてあまり書かれていませんが、大きな分布の中の短期分布の "圧縮 "を視覚的に識別 する」とだけあります。



私が理解したところでは、オシレーターはボリンジャーバンドの 上下のバンドの差を表し、その値は0-1の範囲で正規化され、時間軸に沿ってプロットされます。

コードでは、2つのオシレータ(ShortBandsPeriodとLongBandsPeriod)が作成されていることがわかりますが、その後、私はforサイクルに自分自身を失う...私はいくつかの数学の計算(二乗、指数パワー、タンジェント?)があることがわかるだけで、残念ながら理由と方法が把握できません作られています

.
.
.
for (i=limit; i>=0; i--){
   
             
                avg= iMA(NULL,0,ShortBandsPeriod,0,MODE_SMA,PRICE_CLOSE,i+ShortBandsShift);
                
                sum=0;
                
                for (j=ShortBandsPeriod-1; j>=0; j--){
                 temp = Close[i+j] - avg;
                 sum = sum + temp * temp;
                }
         
                ShortDev[i]= ShortBandsDeviations * MathSqrt(sum / ShortBandsPeriod);
        ShortDev1[i] = MathPow((ShortDev[i] / Point), 2);
                
                
                    //if  ( i < limit - Chars)
                        //{
         
                        
                          temp=0;
                                for (j=Chars-1; j>=0; j--){                             
                                 temp = temp + ShortDev1[i+j];
                                }
                        
            temp = MathSqrt(temp / Chars) * Point;
            if (temp != 0)
                        {
                temp = ShortDev[i] / temp;
            }

                                
         
                        ShortOscillator[i] = MathTanh(temp);
                                
                   //}
   }
.
.
.


何かお手伝い、ご提案、ヒントがありましたら、よろしくお願いします。

ファイル:
WAVE-PM.mq4  5 kb
 

こんにちは、皆さん、何人かのコーダーがこのfisher indicatorを修正するのを手伝ってくれませんか。

このインジケータは非常に古いもので、リペイントされていますが、貴重な情報を持って います。

ローソク足が終了するたびにインジケータを更新して記録し、次のローソク足が始まるときには更新されないようにするのです。

私の悪い英語で申し訳ありません。

ファイル:
fisher1.mq4  3 kb
 

こんにちは、みんな

皆さん、お元気ですか?

私はダイナミックゾーンのフォーラムでこの指標を見つけたが、そのように動作していない、任意の寛大なコーダーがそれらを修正することができれば、私は非常にそれらを感謝します。

私はここにそれらを添付しています。

事前に私の心からの感謝。

 
Mkurugenzi:

こんにちは、みんな

皆さん、お元気ですか?

私はダイナミックゾーンのフォーラムでこの指標を見つけたが、そのように動作していない、任意の寛大なコーダーがそれらを修正することができれば、私は非常にそれらを感謝します。

私はここにそれらを添付しています。

よろしくお願いします。

宇奈田奈渚


私はあなたが元気であることを信じています。


親切に、あなたは上記の私の最後の投稿を見ることができる立場にあり、すべてではないにしても、少なくともいくつかの指標を動作するようにレタッチする立場にあるかどうかを確認するには?


あなたの努力と時間、そしてリソースが事前に評価されます。

 

ヘイ、コーダー!誰かこのEAを改造するのを手伝ってくれませんか?

このEAは、単純に安く買って高く売るEAで、指値注文をx分ごとに、x分/時間続けるものです。


これを改善するには、フィルターを追加することだと思います。例えば、ストキャスティクスやRSIなど。

ストキャスティクスが40を下回ったら買い指値を出す。

ストキャスティクスが60より高い場合=売り 指値を出す

そして、その間に 何も起動しません。



このようなことは可能でしょうか?よろしくお願いします。

EAを添付します。


私はこのEAをロングサイドとショートサイドを決めて「手動」で使用したことがありますが、良い結果でした。

ファイル:
WIDE_HARD.mq4  8 kb
EA-FXblue.png  68 kb
 
こんにちは。 すぐに私の悪い英語のために謝罪します。 それが困難でない場合は、アドバイザーのコードで助けてください。 すなわち、開閉位置の条件を修正することです。 ロボットについて少し、ロボットは、ジグザグインジケータのターンで位置を開き、閉じます。
このシステムはMT4のジグザグインジケーターの有無に関係なく動作するものと思われます。
//+------------------------------------------------------------------+
//|                                       Test advisor on ZigZag.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2010, MQL для тебя."
#property link "http://mql4you.ru"
#property strict
extern double lots = 0.01; //
extern int  TakeProfit=60; //
extern int  StopLoss=100; //
extern int Magic=111111111;
extern int Slippage=3;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

datetime Today=0;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit *=10;
      StopLoss   *=10;
      Slippage   *=10;
     }
   return(INIT_SUCCEEDED);
  }
//±-----------------------------------------------------------------+
int deinit() {return(0);}
//±-----------------------------------------------------------------+
int start()
  {

   if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
   if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
                                    //:проверим открытие новой свечи
   if(Time[0]==Today) return(0);
   Today=Time[0];
//:получим значение ZigZag на предыдущей свече
   double lZZ=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,1);
   double lZZ_=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,0);
// открытие продаж

   if(CountSell()==0 && lZZ==Low[0] && lZZ_==Low[0])
     {
      SL = NormalizeDouble(Bid+StopLoss*Point, Digits);
      TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);
        {

         ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,SL,TP,"macd sample",Magic,0,Red);
         if(ticket>0)
           {
            // закрытие продаж
    //        if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                        if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на покупку !");
                    }
                 }
              }
           }
        }
     }
// открытие покупок

 //  if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);
      SL = NormalizeDouble(Ask-StopLoss*Point, Digits);
        {
         ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,SL,TP,"macd sample",Magic,0,Green);
         if(ticket>0)
           {
            // закрытие покупок    
       //     if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                        if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на продажу!");
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+

オープニングセールス

if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])

売上高

      if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              

買い付け開始

if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     

クロージングバイ

 if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])