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

 

こんにちは、Mladen。

私は自分のコードでいくつかのことを追跡したいのですが、そのうちの一つは、同じペアの異なるマジックナンバーと異なるコメントでオープントレードの数ですので、私はこのコードを使用しています、コード内のいくつかの場所で私はCPUが100%であるので、私は私の関数を 改善しようとしているミスを作っている。

x=OrdersTotal(); xx=x; //-- Count How magic number && comment are open for the same pair for( i=0;i<x;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym /*&& OrderCloseTime()==0 */){

TemMagic= OrderMagicNumber(); TemOrdComment= OrderComment(); OrdOpenPrice= OrderOpenPrice(); OrdType= OrderType(); iSameSymTotal++; // count all oopen trades from the same Symbol for( i=0;i<xx;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym ){ if ( TemMagic!= OrderMagicNumber())CounTMagic++; if (TemOrdComment!= OrderComment())CounTComment++; }} }}
 
MiniMe:
こんにちは、Mladen 。

私は自分のコードでいくつかのことを追跡したい、そしてそれらの一つは、同じペアの異なるマジックナンバーと異なるコメントでオープントレードの数なので、私はこのコードを使用している、コード内のいくつかの場所で私はCPUが100%であるので、私は私の関数を改善しようとしているミスを犯している。

x=OrdersTotal(); xx=x; //-- Count How magic number && comment are open for the same pair for( i=0;i<x;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym /*&& OrderCloseTime()==0 */){

TemMagic= OrderMagicNumber(); TemOrdComment= OrderComment(); OrdOpenPrice= OrderOpenPrice(); OrdType= OrderType(); iSameSymTotal++; // count all oopen trades from the same Symbol for( i=0;i<xx;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym ){ if ( TemMagic!= OrderMagicNumber())CounTMagic++; if (TemOrdComment!= OrderComment())CounTComment++; }} }}[/PHP]

次のようなコードを使用します(どこに何が格納されているかを明確にするためにいくつかのコメントを追加しました)。

[PHP] string uniques[][4]; ArrayResize(uniques,0);

//

//

// uniques[][0] -> シンボル

// uniques[][1] -> マジックナンバー

// uniques[][2] -> コメント

// uniques[][3] -> 発生回数

// StrToInt()でint型に変換する必要があります。

//

//

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

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES);

bool found=false;

for (int k=ArrayRange(uniques,0)-1; k>=0 && !found; k--)

if (OrderSymbol() == uniques[k][0] && OrderMagicNumber() == StrToInteger(uniques[k][1]) && OrderComment() == uniques[k][2]) { uniques[k][3] = StrToInteger(uniques[k][3])+1; found=真; }.

if (!found)

{

k = ArrayRange(uniques,0);

ArrayResize(uniques,k+1);

uniques[k][0] = OrderSymbol();

uniques[k][1] = OrderMagicNumber();

uniques[k][2] = OrderComment();

uniques[k][3] = 1;

}

}

追記: 配列のサイズ (ArrayRange(uniques,0)) は、ユニークなシンボル + マジックナンバー + コメントの組み合わせの数で、 uniques[nn][3] は、その特定の組み合わせがオーダーキューにいくつあるかということを表しているそうです。

 

ありがとうございます。

もし私が複数の取引をしているならば if (uniques[1][3] == 1) となりますね?

しかし、これはコンパイルされません、それはuniques[1][3]が文字列配列だからですか?

次のようにします。

if (StrToInteger(uniques[1][3])==1)ですか?

 
MiniMe:
多くのMladenをありがとうございます。

もし私が複数の取引を持っていると言いたいなら、それは if (uniques[1][3] == 1) でしょう、正しいですか?

しかし、これはコンパイルされません、それはuniques[1][3]が文字列配列だからですか?

そうです。

if (StrToInteger(uniques[1][3])==1) ?

はい、まず整数に変換する必要があります。しかし、その後、条件は次のようになります: if (StrToInteger(uniques[1][3])>1) and it would be for the second found symbol + magic number + comment unique combination.

 

こんにちは、ムラデンです。

このDemarkのシーケンシャルは持っているのですが、カウントダウンの段階で間違っているのです。

これはJason Perlの本からの正確な説明です。

tDセットアップとtDシーケンシャルカウントダウンの比較

TD Setupが完了したら、TD Setupの9小節目の終値からTD Countdownを開始できる。

TD Setupの9小節目以降からTD Countdownを開始することができます。この2つの戦略の違いは

この2つの戦略の違いは、次のとおりです。

- TDセットアップでは、現在の終値とその4つ前の終値を比較します。

TDセットアップでは、現在の終値とその4本前の終値を比較します。

一方

- TDカウントダウンは、現在の終値と2本前の安値を比較します。

TD Countdown は、現在の終値と 2 本前の安値を比較し、現在の終値と 2 本前の高値を比較します。

この価格関係は、TD Setとの重要な違いです。

この価格関係は、TDセットアップとの重要な 違いである。

この価格関係は、TDセットアップとの重要な違いであり、TDカウントダウンは、市場がトレンドでなければ、トレンド反転の可能性が高い点を客観的に特定することはできません。

この価格関係は、TDセットアップと異なる重要な点です。

TDカウントダウンの最初のバーを探し始めることができます。

TD Countdownの最初のバーを探し始めることができます。

TDバイカウントダウンを開始するには

TD買いカウントダウン開始後

TDバイ・セットアップが完了した後、TDバイ・カウントダウンを開始します。

もし

TDバイセットアップの9小節目の終値が、2小節前の安値以下である場合。

その時

TD買いセットアップの9小節目がTD買いカウントダウンの1小節目となる。

もし

その条件が満たされない場合

その時は

TD買いカウントダウンのバー1は、それが満たされるまで延期され、TD買いカウントダウンは

TD買いカウントダウンは、2本前の安値以下の終値が合計13個になるまで続けられます。

2本前の安値以下となる。

TD売りカウントダウン

TD売り設定が完了したら、TD売りカウントダウンの最初のバー

TD売りカウントダウンの最初のバーを探し始めることができます。

TD Sell Setupの9本目は、以下の条件を満たせば、TD Sell Countdownの1本目にもなります。

TD Sell Countdownの条件

TD Sell Countdownの要件 TD Sell Setupの9小節目において、終値が2小節前の高値以上であること。

2本前の高値と同じかそれ以上の終値があること。

私の画像では、(カウントダウン売りの)バーn°6が2バー前の高値より大きい終値を持っていないことがわかります...ので、それは間違っています!私の画像では、(カウントダウン売りの)バーn°6が2バー前の高値より大きい終値を持っていないことがわかります...。

どうか、カウントダウン売買のこのエラーを修正していただけませんか?

ありがとうございました。

ファイル:
 

私は間違いを見つけた(mt4のバージョン500はex4ファイルを作成しない)、今は動作します。投稿を消そうとしたのですが、消せませんでした。

marley60:
こんにちは。

私はあなたがこのことで私を助けることができることを願っています。ウィンドウ2のインジのドット(矢印;水色と黄色)をウィンドウ1(メインチャートウィンドウ)のクローズ(買いシグナルの場合は高値、売りシグナルの場合は安値)にドット(矢印)として表示させたいのです。何時間も試しましたが、私は決してコーダーにはなれないでしょう;-)

 
marley60:
私は間違い(mt4のバージョン500はex4ファイルを作成しない)を発見し、今は動作しています。この投稿を消そうとしたのですが、消せませんでした。

前の投稿は気にしないでください

少なくとも、ビルド500のもう一つのバグについて知っています。

 

皆さん、こんにちは。

この度、3分間のビデオで私の問題を説明し、より簡潔でパンチの効いた助けを求める試みを行いました。

ビデオ:2013-06-13_1517 - D.Gilberto's library- はっきりと説明してくれるはずです。

私は誰かの提案や助けを非常に感謝します。私は基本的にすべての移動平均が交差したときに、この1に続く次のバーが、21 EMAに触れるために戻ってくるときに、その時点でバーが何であるかを調べるために望んでいる - この時点で私は私の注文がこれらのバーの範囲の高/低に配置されるようにしたい。注文は60EMAを越えてクローズする最初のバーで引かなければならない....

私は、これはあまりにも多くの要求ではないことを願って、私は非常にいくつかの明るい火花が私に手を貸す感謝するだろう

ありがとうございました。

 

コーダー

画像にあるRSIに基づくシンプルなストラテジーが好きです(TSからかもしれません)。

これ以上はっきりさせる必要はない、百聞は一見にしかず。

MT4でこのような指標(RSIキャンドル&オシレーター)をコード化することは可能ですか? それとも、すでにそのような指標を持っているのでしょうか?

ありがとうございます。

ファイル:
 
marley60:
私は間違いを見つけました(mt4のバージョン500はex4ファイルを作成しません)、今は動作しています。投稿を消そうとしたのですが、消せませんでした。

マーリーです。

Metatrader Known Bugsにある私の投稿をご覧ください。 私や他の何人かは同じ問題を抱えています。

Tzuman