[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 255

 
NEKSUS_ >> :

こんにちは、皆さん。オブジェクト削除のスクリプトについて、もう一度お願いします。

スクリプトは、名前によっていくつかのオブジェクトを削除しますが、起動時に100のエラー(より正確には、同じものが何度も)をポップアップ表示します。


この派手なコードは、名前に数字が含まれるオブジェクトをすべてチャートから削除するように設計されているのですね? では、最初のものを除くすべてのifの前にelseをつけてください。そうでない場合は、最初の反復ですでに指数xが負の領域に落ちています。

 
NEKSUS_ >> :

こんにちは、皆さん。オブジェクト削除のスクリプトについて、もう一度お願いします。

スクリプトは、名前でいくつかのオブジェクトを殺すが、起動時にかなりの数のエラー(より正確には、同じものが何度も)をポップアップ表示します。


このループをfor (int x = ObjectsTotal(); x>0 ; x--)に置き換え(more or equalのようにバグを修正し、オブジェクトの数から1を取るだけ)、ifの「x--;」をすべて削除します。

 
dmmikl86 >> :

インジケータに色をつけたいのですが、値が上がれば緑、下がれば赤になるようにしたいです。

以下はそのコードです。


こちらが参考になります

https://www.mql5.com/ru/articles/1451

3色インジケーターの実装と、インジケーターを出来るだけ簡単に書くためのいくつかの機能

 
alsu >> :

この複雑なコードは、名前に数字が含まれるオブジェクトをすべてチャートから削除するためのものだと理解していますが? それなら、最初のものを除くすべてのifの前に、elseも入れてください。なぜなら、最初の反復で、指数xはすでに負の領域に落ちているからです。


負のインデックスを持つオブジェクトを見つけるのは非常に難しいので、失敗することはありませんし、むしろ失敗するかもしれませんが、せいぜい1つです。
 

プロフェッショナルの皆様、よろしくお願いします。EAが注文を作成し、その注文が失敗した場合に同じ注文を再度作成することです。しかし、そうではないのですか?

//--------------------------------------------------------------- 0 ----------------

int start() // 特殊関数スタート

{

int H=100; // 時間-秒の設定

int Dist=10; // TP SLを設定 する

double Lot=1; //set lot

//--------------------------------------------------------------- 1 ----------------

double i=0.001;

double Cena=NormalizeDouble(Ask,3); // 価格の正規化

double Price=NormalizeDouble(Cena+i,5); // 価格を求める

double TP=Price+Dist*Point; // TPを検索 する。

double SL=Price-Dist*Point; //Find SL

int x=1; // 第一条件

int y=1; // 第二 条件

//--------------------------------------------------------------- 2 ----------------

for (int pos=1; pos<=OrdersTotal(); pos++) // すべての注文をループする。

{ if (OrderSelect(pos-1,SELECT_BY_POS)==true) // オーダーを強調表示する

{ if (オーダーテイクプロフィット()==TP)

{ Alert("triggered x");

x=2;

が壊れる。

}

}

else Print("Error ", GetLastError(), " when selects order number ", pos);

}

//--------------------------------------------------------------- 3 ----------------

for (pos=1; pos<=OrdersTotal(); pos++) // すべての注文をループする。

{ if (OrderSelect(pos-1,SELECT_BY_POS)==true) // オーダーをマーク する

{ if (OrderOpenPrice()==Price)

{ Alert("triggered y");

y=2;

が壊れる。

}

}

else Print("Error ", GetLastError(), " when select the order number ", pos);

}

//--------------------------------------------------------------- 4 ----------------

if (x==2&y==2)

{ Alert("This order already exists!!!");}.

else { Alert("order has been sent",Symbol()," BUYSTOP ", Price," Pending...");

OrderSend(Symbol(), OP_BUYSTOP, Lot, Price, 0, SL, TP);

}

Sleep(H*60); // 60 待ちます

RefreshRates()。

//--------------------------------------------------------------- 5 -------------------

Alert ("The script has finished working -----------------------------");

return; //start()終了 する。

}

 

私はMT4(forex4youから)をインストールし、私は戦略をテストしていますが、私のM1相場は2009年9月2日からだけで、私は引用符のサービス-アーカイブを介してそれらをダウンロードすることはできません。

少なくとも2009年分の見積もりアーカイブをダウンロードできる場所を教えてください。もう一つ、ストラテジーテスターで 日付を設定しても、相場が自動でダウンロードされません。

 
albon >> :

私はMT4(forex4youから)をインストールし、私は戦略をテストしていますが、私は2009年9月2日からだけ持っているM1からの引用は、私は引用のサービス-アーカイブを介してそれらをロードすることはできません。

少なくとも2009年分の見積もりアーカイブをダウンロードできる場所を教えてください。ストラテジーテスターで日付を設定しても、相場が自動でダウンロードされない。

他のブローカーでMT4をインストールしてみてください。(例:異なるMT4)。

 

プロフェッショナルの皆様、よろしくお願いします。EAが注文を作成し、この注文が失敗した場合に同じ注文を再度作成することです。しかし、これは実現しないのですか?

常にオーダーを作り続ける。


 
VII >> :

プロフェッショナルの皆様、よろしくお願いします。EAが注文を作成し、その注文が失敗した場合に同じ注文を再度作成することです。しかし、そうではないのですか?

//--------------------------------------------------------------- 0 ----------------


double Cena=NormalizeDouble(Ask,3); //価格の正規化

Askは1ティックごとに常に変化しているので、同じオーダーを作ることはできないでしょう。そして、他のすべてのパラメータとその条件での比較は、この変数から計算される。

 
VII >> :

プロフェッショナルの皆様、よろしくお願いします。EAが注文を作成し、その注文が失敗した場合に同じ注文を再度作成することです。しかし、このようなことは起こらないのですか?


設定した注文と全く同じ注文をEA/スクリプトで開くには、2つの方法があります。まず、注文を設定し、そのパラメータをすべて格納する変数に書き込みます。注文がない場合は、待機状態に切り替わります。このパラメータで注文を設定できる状態になったら、すぐに注文を出します。

2つ目はマーケットから注文が消えたら、履歴から直近の注文を探します。そのパラメータを記録し、最初のケースと同じようにスタンバイモードのスイッチを入れる。

私が言いたいのは、こういうことです。あなたが説明し、私がここで説明した方法でプログラムのロジックを構築すると、すべての注文は同じ水平レベルを待つことになります。本当に必要なのか?