コーディングの方法は? - ページ 336

 
tkuan77:
こんにちは、mladen。悲しいことに、私はちょうどそれを再試行し、そのまだ動作していません。

特定のタイミングで取引を終了させる他の方法はありますか?

回答

ライアン

私はこのコードを使用しました。

extern bool UseCurrSymbol = false;

int init() { return(0); }

int deinit() { return(0); }

void start(void)

{

bool result;

if(OrdersTotal()>0)

{

if (TimeCurrent()>= StrToTime("07:00:00"))

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

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

double pBid=MarketInfo(OrderSymbol(),MODE_BID);

result = OrderClose(OrderTicket(),OrderLots(),pBid,3,Blue);

}

if (OrderType()==OP_SELL)

{

double pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

result = OrderClose(OrderTicket(),OrderLots(),pAsk,3,Red);

}

}

}

}

return;

}

テストするために、それは注文を閉じました(例を参照してください)。

ファイル:
test_closed.gif  63 kb
 
mladen:
私はこのコードを使用しました。
extern bool UseCurrSymbol = false;

int init() { return(0); }

int deinit() { return(0); }

void start(void)

{

bool result;

if(OrdersTotal()>0)

{

if (TimeCurrent()>= StrToTime("07:00:00"))

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

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

double pBid=MarketInfo(OrderSymbol(),MODE_BID);

result = OrderClose(OrderTicket(),OrderLots(),pBid,3,Blue);

}

if (OrderType()==OP_SELL)

{

double pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

result = OrderClose(OrderTicket(),OrderLots(),pAsk,3,Red);

}

}

}

}

return;

}

テストするために、それは順序を閉じた(例を参照してください)。

こんにちは、mladenさん。問題は私の方では解決しました。

extern bool UseCurrSymbol = false; and

if (!UseCurrSymbol || OrderSymbol()==Symbol())

よろしくお願いします。

ライアン

 
tkuan77:
こんにちは、mladen。問題は私の方で解決しました。

extern bool UseCurrSymbol = false; とする。

if (!UseCurrSymbol || OrderSymbol()==Symbol())

となります。

ライアン

UseCurrSymbol変数を使用して、あなたのコードでその正確な行を使用しています。

私は、コードがあなたのコードと同じ変数を使用するように、その変数を作成する必要がありました。

 
mladen:
あなたはUseCurrSymbol変数を使用して、あなたのコードでその行は、私はコードがあなたのコードと同じ変数を使用するようにその変数を作成する必要がありました。

こんにちは、mladenさん。すみません、この部分は以前教えていただいたソースから取得しました。

そして、2行目の -->if (!UseCurrSymbol || OrderSymbol()==Symbol()) は何のためにあるのか、ということです。

 
tkuan77:
私が言いたかったのは、なぜUseCurrSymbolというブールをfalseに設定する必要があるのかということと、2行目の -->if (!UseCurrSymbol || OrderSymbol()==Symbol()) は何のためにあるのかということです。

falseに設定する必要はありません。

trueに設定すると、現在のシンボルだけが注文をチェック するようになります。つまり、どの注文を処理するかを選択することができるのです。

 

こんにちは、皆さん。

次のような問題があります。

icustom indiの値、例えば iCustom(NULL,0, "MACD",12,26,9,0,i) をサブ関数で使いたいのですが、どうすればいいですか?

double Mom(const double& series[], int period, int totcount, int index)

{

if (totcount<1 || period<1) return (EMPTY_VALUE);

if (indextotcount-1) return (EMPTY_VALUE);

return (series-series);

}

で、"iCustom(NULL,0, "MACD",12,26,9,0,i) "の運動 量を得る...。

普通にMom(High,22,Bars,i)で呼び出すとうまくいくのですが

で呼び出すとうまくいきますが、"High "の代わりにカスタムインディを使用すると、もちろんうまくいきません。

そこで質問なのですが、どのように実装すればコードが動くようになるのでしょうか?

どんな助けでもありがとうございます

さようなら、AT

 
at120:
こんにちは、皆さん。

次のような問題があります。

icustom indi の値、例えば iCustom(NULL,0, "MACD",12,26,9,0,i) をサブ関数で使いたいのですが、どうすればいいですか?

double Mom(const double& series[], int period, int totcount, int index)

{

if (totcount<1 || period<1) return (EMPTY_VALUE);

if (indextotcount-1) return (EMPTY_VALUE);

return (series-series);

}

で、"iCustom(NULL,0, "MACD",12,26,9,0,i) "の運動量を得る...。

普通にMom(High,22,Bars,i)で呼び出すとうまくいくのですが

で呼び出すとうまくいきますが、"High "の代わりにカスタムインディを使用すると、もちろんうまくいきません。

そこで質問なのですが、どのように実装すればコードが動くようになるのでしょうか?

どんな助けでもありがとうございます

バイバイ、AT

at120

indicatorsフォルダに「macd」という名前のインジケータが全くないですか(内蔵のmacdではなく、あるカスタムmacdのことです)?もしそうなら、パラメータが 正しいかどうかチェックしてください。

 

Mladenさん、こんにちは。

早速のリプレイありがとうございます

MACDは例えが悪かったので、カスタムMACDなど他のインディをとってみてください。

エクストラウィンドウとテストインディ/outputで出力を確認し、正しい設定をしました。

iCustom(NULL,0, "myIndi",0,i)" が正しいパラメータを持って いることを確認するためです。もちろん、コンパイル済みで、フォルダも正しいのですが...。

いつもエラーが出ます(変数を使用した場合)。

double mom1 = iCustom(NULL,0, "myIndi",0,i); -> mom(mom1,Bars,20,i)

-> "mom" - パラメータ会話は許可されないか、それを直接使用するとき -> 。

mom( iCustom(NULL,0, "myIndi",0,i),Bars,20,i)

エラー:iCustom - パラメータは参照として渡され、変数が期待される

ヘルプと情報をありがとうございました

さようなら、AT

 
at120:
こんにちは、Mladen!

早速のリプレイありがとうございます

MACDは悪い例でした、他のインディカスタムMACDかそのような何かを取るために申し訳ありません。

エクストラウィンドウとテストインディ/outputで出力をチェックし、正しい設定をしました。

iCustom(NULL,0, "myIndi",0,i)" が正しいパラメータを持っていることを確認するためです。もちろん、コンパイル済みで、フォルダも正しいのですが...。

いつもエラーが出ます(変数を使用した場合)。

double mom1 = iCustom(NULL,0, "myIndi",0,i);-> mom(mom1,Bars,20,i)

-> "mom" - パラメータ会話は許可されないか、それを直接使用するとき -> 。

mom( iCustom(NULL,0, "myIndi",0,i),Bars,20,i)

エラー:iCustom - パラメータは参照として渡され、変数が期待される

ヘルプと情報をありがとうございました

バイバイ、AT

私はあなたが単純なiCustom()コールを使用すると、エラーがパラメータにのみ発生する可能性があります。

iCustom()をmom()関数のパラメータとして使用することはできません(mom関数のヘッダを確認すると、mom()関数がどのようなパラメータとタイプを受け入れるかがわかります)。iCustom()の結果は "double "として定義されており、参照渡しされた配列のペースを取ることができません。このスレッドも見てください :https://www.mql5.com/en/forum/173108- たぶん役に立つと思います。

 

Mladenさん、こんにちは。

私のiCustomの呼び出しは正しいと思います、なぜならテストと通常 データのエクスポートや Indiとして使用)で

今のところ問題なく動作しています。問題は、おっしゃるとおり、double/arrayの値だと思います。

今、私が使用するとき

double mom1[]を使っています。

mom1 = iCustom(NULL,0, "myIndi",0,i) とします。

とよりも、 -> mom(mom1,Bars,20,i);

-> "mom" - パラメータの会話は許可されていません

どのように私はこれを正しく書くのですか?

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