int start()
{
double Price=Ask+300*Point;
double SL=Price-300*Point;
double TP=Price+150*Point;
bool New_Bar;
if (Time[0]) // если образовался новый бар int Ticket=OrderSend(Symbol(),OP_BUYSTOP,0.1,Price,3,SL,TP ); // выставить отложенный ордерreturn ;
Fun_New_Bar();
if ( New_Bar==true) // если образовался следующий бар
OrderDelete(Ticket); // удалить отложенный ордер//+------------------------------------------------------------------+void Fun_New_Bar(); //НО ПО ОТНОШЕНИЮ К ЭТОЙ СТРОКЕ КОМПИЛЯТОР ПИШЕТ ОШИБКУ '(' - function definition unexpected
{
staticdatetime New_Time=0;
New_Bar=false;
if( New_Time!==Time[0])
New_Time=Time[0];
New_Bar=true;
}
int start()
{
double Price=Open[0]+300*Point;
double SL=Price-300*Point;
double TP=Price+150*Point;
if (Time[0])
int Ticket=OrderSend(Symbol(),OP_BUYSTOP,0.1,Price,3,SL,TP );
}
はい、それが何か?
ビジュアライゼーションモードで作業する場合、いくつかの制限があります。
何がいけなかったんだ!!!!
私はこの問題を解決するために、このような方法を思いつきました。
/* すみません、投稿を少し変えました - Vininが読めるように*/。
何がいけなかったんだ!!!!
私はこの問題を解決するために、このような方法を思いつきました。
/* すみません、Vininを読みやすくするため、投稿を少し変更しました */。
を意味します。"最後のバーの時刻が0でない場合 "にだから、常にゼロに等しくない。
さらに、変数
bool New_Bar;
は start() 関数の内部で定義されているので、他の関数の内部では表示されません。また、start()本体の中で定義しようとしたFun_New_Bar()ですが、MQLではそうできません。New_Bar の宣言もそこに置くべきである。
さらに、start()関数を1回実行する間に(ループしていない場合)、バーの形成を定義し、次のバーの形成を待つことはできません:start()は定義により、毎ティック(ニュアンスはありますが、一般的にはそうです)で呼び出されて終了します。
私は、ヘルプを読み直し、MQLプログラムの実行の ギャップをなくし、ループしたプログラム、非ループした プログラムも書く例を見ることを助言します。
ご丁寧にありがとうございます。 どのボタンを押せば、この形式のコードが表示されるのでしょうか?
SRC----------------------------\|/
--------------------------------------- V
このライン
を意味します。"最後のバーの時間がゼロに等しくない場合"。だから、常にゼロに等しくない。
でも、この行の "NOT "がどこにあるのかがわからないんです。等しくない場合は、記号 !== で示される。
私が言いたかったのは、新しいバーの開始時刻が現れると同時に、つまり新しいバーが現れると同時に、注文が開始されるということです。
そして、これは確かに、各5本のバーのオープニングで注文を開くコードです。
int start() { double Price=Open[0]+300*Point; double SL=Price-300*Point; double TP=Price+150*Point; if (Time[0]) int Ticket=OrderSend(Symbol(),OP_BUYSTOP,0.1,Price,3,SL,TP ); }
私は、よりシンプルだと思われる方法をとることにしました。
保留中の注文を削除するのではなく、5分足のローソク足が終了していない場合のみ、保留中の注文を出すこと
つまり、2つの条件が揃ったときのみ、保留注文を出すようにします。第一条件を満たした場合
if (Time[0])
- 確認したところ、順番が決まっている。
2つ目の条件、つまり5分経過していない場合のみ保留 注文を設定するには、どのように設定すればよいのでしょうか。