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

 
elfural:
親愛なるmrtoolsとmladen

どなたか教えてください。Tom Demark Moving Averageは私の戦略の中で重要な指標ですが、新しい棚が示されたときにアラームがあれば非常に便利です。よろしくお願いします。

多くの感謝

Elfural、あなたが投稿したバージョンにアラートを追加しました。また、あなたが興味を持つかもしれないMladenによって修正されたバージョンをここからお見せしたいと思います: https://www.mql5.com/en/forum/178551/page2 念のため、そのバージョンにもアラートを追加しておきました。

 

こんにちは、皆さん。

このインジケータのコーディングを手伝ってほしい。4-5本のローソク足が遅れてしまうのですが、素晴らしいインジケーターです。よろしくお願いします。

グレイルインディック.ex4

ファイル:
 
mrtools:
Elfural、あなたが投稿したバージョンにアラートを追加しました。そして、ここからあなたが興味を持つかもしれないMladenによって修正されたバージョンをお見せしたいです: https://www.mql5.com/en/forum/178551/page2 念のため、そのバージョンにもアラートを追加しました。

これで、私が必要としていたことが正確にできるようになりました。

あなたの偉大な助けをどうもありがとうございます。

 

1シグナルにつき1トレードこんにちは、MQLプロコーダーズです。

どなたか助けていただけないでしょうか。私は「1つのシグナルにつき1つのトレード」を私のEAに実装したいのですが

をEAに実装したいと思っています。EAが利益目標に到達した場合、EAが同じトレンド方向で別の取引を開始することがよくあります。

同じトレンド方向で別の取引を行う可能性があります。この場合、次のような理由で負けトレードになる可能性があります。

シグナルが変更されようとしているためです(添付のスクリーンショットをご覧ください)。

1つのシグナルにつき1つの取引」という機能を 実装するには、どのような方法があるでしょうか?

もちろん、EAが別の取引を開始するのを防ぐために利益目標を増やすことはできます。

しかし、これはおそらく最良の方法ではないでしょう。

私はこれを実装しようとしましたが、コードはコンパイルされ、警告が表示されます。

" エラーの可能性があるため、演算子の優先順位をチェックしてください; 優先順位を明確にするために括弧を使用してください"

この機能を実装するための最良の方法は何でしょうか?よろしくお願いします。

extern int maxshorttrades = 1;

extern int maxlongtrades = 1;

//+--------------------------+

//| ORDERロジック/インジケーター

//+--------------------------+

if(openedOrders<=0)

{

double CCIFilter = iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);

double trendp = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);

//+-----+

//| 買い(BUY)

//+-----+

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_BUY<maxlongtrades) break; // ポジションとロングトレードをチェックします。

{

if(trendc!=trendp)

{

if(trendc==1 && CCIFilter<-80) // 買いのコード

OpenBuy();

return(0);

}

openOrders++;

}

//+------+

//| 売りのみ

//+------+

for (i=OrdersTotal()-1;i>=0; i--)

if(OrderType()==OP_SELL<maxshorttrades) break; // ポジションとショートトレードをチェックします。

{

if(trendc==-1 && CCIFilter>80) // 売りのコード

{

OpenSell();

return(0);

}

openOrders++;

}

}

//+-----------------+

//| クローズポジション

//+-----------------+

void CheckForClose()

{

RefreshRates();

double CCIFilter_c = iCCI(NULL,0,CCIPeriod,CCIMethod,0);

double trendc_c = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1);

double trendp_c = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2);

for(int i=0;i<OrdersTotal(); i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

if(OrderMagicNumber()!=MAGIC)を続ける。

if(OrderSymbol() != s_symbol) continue; if(OrderSymbol() != s_symbol) continue;

//+-----------+

//|終値買|||||etc.

//+-----------+

if(trendc_c!=trendp_c) // トレンドチェック

{

if(OrderType()==OP_BUY)

{

if(trendc_c==-1 && CCIFilter_c>80) // SELLとCCIフィルター?

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy).もしもbuyClose==falseなら?

if(buyClose==false)

{

int ErrorCode = GetLastError();

文字列ErrDesc = ErrorDescription(ErrorCode);

string ErrAlert= StringConcatenate("買い注文を閉じる - Error ",ErrorCode,": ",ErrDesc);

if(ShowAlerts == true) アラート(ErrAlert);

string ErrLog=StringConcatenate("Bid:",MarketInfo(s_symbol,MODE_BID)," Lots:",OrderLots()," Ticket:",OrderTicket());

Print(ErrLog)を実行します。

}

break; }

}

}

ファイル:
signal1.jpg  19 kb
 

こんにちは。

リニアプライスラインのインジケーターについて、どなたか教えていただけないでしょうか。私は、安値から高値を引くように変更したものを作ろうとしています。もし、安値が高値より大きいか、高値がopenpriceと同じで0であれば(高値がないので)、出力は負の値になるはずです(インジケータの線は0.00レベルの下に出るはずです)今は、ローソク足の高さが低さより大きいかどうかに関係なく正の数のままになっています。

正常なバージョンと欠陥のある差分インジケータはこちら。linear_price_bar.zip

リニアプライス_バーテイストディフ.mq4

よろしくお願いします。

 
tfi_markets:

1シグナルにつき1トレードこんにちは、MQLプロコーダ です

私は

自分のEAに

「1シグナルにつき1トレード」を実装したいと思って

います。

EAが利益目標に到達した場合、EAは

同じトレンド方向で別の

取引を

開始する可能性が

あります。

これは

シグナルが変更さ

れようとしている

ため、負けトレードにつながる可能性が

あります

(添付のスクリーンショットをご覧ください

)。 1つのシグナルにつき1つの

トレード」機能を実装するための最良の方法は何でしょうか?

もちろん、EAが別のトレードを開くことを防ぐために利益目標を増やす

ことは

できますが、これはおそらく最善の方法では

ありません。

私はこれを実装しようとしましたが

コードはコンパイルして警告します:

" Check operator precedence for possible error; use parenthes to clarify precedence"

この機能を実装するには、どのようにしたら良いでしょうか?よろしくお願いします。

これを試してみてください。

bool Result;

int openedOrders = 0;

for (i=OrdersTotal()-1; i>=0; i--)

{

Result = OrderSelect(i, SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol() != Symbol()) continue;

if (OrderMagicNumber() != MagicNumber) continue;

openedOrders++;

}

if (openedOrders <= 0)

{ .....

 
mrcodix:
こんにちは。

リニアプライスラインのインジケーターについて、どなたか教えていただけないでしょうか。私は、安値から高値を引くように変更したものを作ろうとしています。もし、安値が高値より大きいか、高値がopenpriceと同じで0であれば(高値がないので)、出力は負の値になるはずです(インジケータの線は0.00レベルの下に出るはずです)今は、ローソク足の高値部分が安値部分より大きいかどうかに関係なく正の数のままになっています。

正常なバージョンと欠陥のある差分インジケータはこちら。linear_price_bar.zip

リニアプライス_バーテイストディフ.mq4

事前にありがとうございました

mrcodix

同じバーの高値から安値が大きくなることはありえない

 

しかし、私のインジケータでプロットしたいのは、HIGH to OPENとLOW to OPENの間の差です。もし、LOWからOPENの絶対数がHIGHからOPENの絶対数より大きい場合、その2つの差はゼロ線の下にプロットされるようにマイナスにしたいのです。そこで、(High-open)-(Low-open)の出力が、後者が前者より大きい場合、どのようにすれば負になるのでしょうか?

よろしくお願いします。

 

現在、次のように試しています。

for(i=0; i<Bars; i++)

{

BarH = ハイオープン

BarL = Low-Open。

BarC = Close-Open;

if(BarC>0) UpDays += 1;

else if(BarC<0) DownDays +=1;

else if(BarC==0) NeutralDays +=1.もし(BarL > BarH)なら、NeutralDays +=1。

if (BarL > BarH) ExtMapBuffer7 = 0-(BarH-BarL);

else if (BarL < BarH) ExtMapBuffer7 =(BarH-BarL);

出力はそれにもかかわらず、まだ正の数です!助けてください。

 
mrcodix:
はい、わかりました。しかし、私のインジケータでプロットしたいのは、HIGH to OPENとLOW to OPENの間の差です。もし、LOW TO OPENの絶対数がHIGH TO OPENの絶対数より大きければ、その2つの差はゼロラインの下にプロットされるようにマイナスにしたいのです。どうすれば、(High-open)-(Low-open)の出力が負になるようにできるでしょうか。 よろしくお願いします。

何を作ろうとしているのかよくわからない。たぶん、こんな感じでしょうか?

ファイル: