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

 
この画面は、私が欲しいものを正確に表示してくれるものと期待しています :)
ファイル:
 
skyler1234321:
この画面は、私が欲しいものを正確に示していると思います :)

HighLowCandle > 0 を使用している場合、閉じたローソク足で absed されます。

UseBarDirectionをtrueに設定して確認してみて ください。

 

はい、設定にあります。私がテストした設定は以下の通りです。

多分、コードに何か問題があるのでしょう。あなたは内部をチェックする ことができますか?

ファイル:
2.PNG  25 kb
 
cja:

MT5のインジケーターデータにアクセスしてチャート上に表示する簡単な方法はありませんか?MT5が登場した当初は、単純なインジケータのためにコードが非常に複雑であったことを知っています。

例えば、MT4でMAクロスをチャートオブジェクトに表示させたい場合、次のようにします。

double slow_MA = iMA(Symbol(),0,100,0,MA_MODE,MA_PRICE,0);

double fast_MA = iMA(Symbol(),0,35,0,MA_MODE,MA_PRICE,0);

if (ma_fast > ma_slow){ col = clrLime;}; if (ma_fast < ma_slow){ col = clrLime;}.

if (ma_fast < ma_slow) {col = clrRed;}.

else {col = clrGray;} となります。


それとも、この情報にアクセスするために、何行ものコードを書かなければならないのでしょうか?

こんにちはcja

2017年にTSDを訪問していただきありがとうございました。そして、新年おめでとうございます。)

よろしくお願いします。

 

このTrailing with Stepのルーチンを変更しようとしています。
売買の入り口からではなく、ストップロスから移動する必要があります。

例えば(BUY 操作)

StopLoss: 250 (in points)
Traling :150 (in points)
TralingStep: 50 (in points)
======================================================================================= BUY

BUY Entrance=> 1000
StopLoss=>750 (=1000-250)

================
最初の価格変更) 価格が移動しました。1150

(これは必要ない。 ;-( )
トレーリングは私のストップロスを "buy_entrance" =>1000

(でもこれは必要)
トレーリングは私のストップロスを =>800 (=StopLoss+Trailingstep)

二度目の価格変更) 価格を移動させた。1300
トレーリングは⇒950 (=StopLoss+Trailingstep) に移動します。


実際のコードではトレーリングとトレーリングステップを使っているが、それを修正する必要がある...
(価格が動いた)時にトレーリングポイントに達し、トレーリングステップを使ってストップロスを 動かすが、実際のコードでは
操作のエントリポイントにストップロスを動かす (そして私はこれを望んでいない)。

私は必要です。

買いが入ったとき:トレーリングに到達したら、実際のストップロスからトレーリングステップを差し引くこと。(NewStopLoss = LastStoploss - TrailingStep)
売りが開始されたとき: もしトレイリングに到達したら、実際のストップロスからトレイリングステップを追加する必要があります。(NewStopLoss = LastStoploss +TrailingStep)

#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;

int
 Trailing = 150;
int TrailingStep = 25;

void fSimpleTrailingStep(){   //mt5
   if(Trailing<=0){
      return;
   }         
   if(!Pos.Select(_Symbol)){
      return;
   }         
   if(!Sym.RefreshRates()){
      return;  
   }   
   double nsl,tmsl,psl,newstop;  
   switch(Pos.PositionType()){
      case POSITION_TYPE_BUY:
         nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
            if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
               //if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
               if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){  //////////////
                  //tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                   tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                     if(nsl<tmsl){
                        //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                        newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep);
                        Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
                        Print ("(BUY) Trailing :"+Pos.StopLoss());
                     }
               }
            }
      break;
      case POSITION_TYPE_SELL:
         nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
            //if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){             
            if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){   //////////////
               psl=Sym.NormalizePrice(Pos.StopLoss());
                  if(nsl<psl || psl==0){
                     tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
                        if(nsl>tmsl){
                           newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep);
                           //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                           Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
                           Print ("(SELL) Trailing :"+Pos.StopLoss());
                        }
                  }
            }      
      break;
   }
}
 
baraozemo:

この Trailing with Step ルーチンを変更しようとしています。
売買の入り口からではなく、ストップロスから移動したいのですが。

例えば(買い操作)

ストップロス: 250 (ポイント)
トレーリング:150(ポイント)
TralingStep: 50 (ポイント)
===========

BUY入り口=> 1000
StopLoss=>750 (=1000-250)

================
最初の価格変更) 価格が移動しました。1150

(こんなのいらないよ... ;-( ))
トレーリングはストップロスを "buy_entrance" =>1000 に移動させた

(しかし、私はこれを必要とします。)
トレーリングは私のストップロスを => 800 (=StopLoss+Trailingstep) に移動させる必要があります。

2回目の価格変更) 価格が移動しました。1300
トレーリングは⇒950 (=StopLoss+Trailingstep) に移動します。


実際のコードではトレーリングとトレーリングステップを使用していますが、これを修正する必要があります。
価格が動いて)トレーリングポイントに達したとき、トレーリングステップを使ってストップロスを移動させるのですが、実際のコードでは
ストップロスを操作のエントリーポイントに移動してしまいます。

必要なんです。

買いの場合:トレーリングに達した場合、実際のストップロスからトレーリングステップを差し引かなければならない。(NewStopLoss = LastStoploss - TrailingStep)
売りが開始された場合: トレーリングに到達した場合、実際のストップロスからトレーリングステップを追加する必要があります。(NewStopLoss = LastStoploss +TrailingStep)

#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;

int
 Trailing = 150;
int TrailingStep = 25;

void fSimpleTrailingStep(){   //mt5
   if(Trailing<=0){
      return;
   }         
   if(!Pos.Select(_Symbol)){
      return;
   }         
   if(!Sym.RefreshRates()){
      return;  
   }   
   double nsl,tmsl,psl,newstop;  
   switch(Pos.PositionType()){
      case POSITION_TYPE_BUY:
         nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
            if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
               //if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
               if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){  //////////////
                  //tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                   tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                     if(nsl<tmsl){
                        //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                        newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep);
                        Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
                        Print ("(BUY) Trailing :"+Pos.StopLoss());
                     }
               }
            }
      break;
      case POSITION_TYPE_SELL:
         nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
            //if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){             
            if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){   //////////////
               psl=Sym.NormalizePrice(Pos.StopLoss());
                  if(nsl<psl || psl==0){
                     tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
                        if(nsl>tmsl){
                           newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep);
                           //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                           Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
                           Print ("(SELL) Trailing :"+Pos.StopLoss());
                        }
                  }
            }      
      break;
   }
}
最初のスタートは常に最初の買い/売りの入り口からでなければなりません(他に利用可能な基準はありません)。
 

親愛なるMLADEN

Timmyと私は、"averages - mtf - alerts 8.7 "をベースにした、基本的なトレンド変化に対する売り/買いのシンプルなEAでプレイ(コピー/ペースト)しようとしていますが、我々二人ともコーディングに関してはゼロなので、このaveragesバージョンのコーディング方法(icustom)についてplz help and guide, how to code (icustom) for this average ver.

よろしくお願いします。



     double Averages_trend_current  = iCustom(NULL,0,"averages - mtf - alerts  8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse);

     double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts  8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1);


ファイル:
 
mntiwana:

親愛なるMLADEN

Timmyと私は、"averages - mtf - alerts 8.7 "をベースにした、基本的なトレンド変化に対する売り/買いのシンプルなEAでプレイ(コピー/ペースト)しようとしていますが、我々二人ともコーディングに関してはゼロなので、このaveragesバージョンのコーディング方法(icustom)についてplz help and guide, how to code (icustom) for this average ver.

よろしくお願いします。



     double Averages_trend_current  = iCustom(NULL,0,"averages - mtf - alerts  8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse);

     double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts  8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1);


バッファがおかしいのです、バッファ:2を買いに、バッファ3と4の両方を売りに使いましたが、すべてが常にトリガーされます、バッファ2を買いに、バッファ3を売りにだけ使ってみましたが、同じことが起こりました .
 
timmyhanke:
バッファに何か問題があるようです。私は、バッファ:2を買いに、バッファ3と4の両方を売りに使いましたが、すべてがすべての時間をトリガーします。

バッファーに問題はない。バッファ9を使用:トレンドアップの場合は1、トレンドダウンの場合は-1

 

Mladenさんへ。


今、XB4とバンディットのインジケーターを使っていますが、メールやアンドロイドMT4にアラートと通知が 届きません。

もし、最初のバーでヒストグラムの色が青から赤、または赤から青に変わった場合、電子メールやアンドロイド携帯に送信されるアラート通知があるXB4d ndicatorを修正することはできますか。

また、Bandidシステムのヒストグラムのトレンドセッションは、青から赤、または赤から青に色を変更し、トレンドの変化の最初の色です。

このインジケーターについて、Mladenさんに教えていただけませんか?




よろしくお願いします。

サミュエル

ファイル:
bandit.PNG  56 kb
XB4.PNG  46 kb