double Lot;
int Magic=123;
int start() {
double Price=iOpen(Symbol (),0,0);
int last_order_bar=0;
int ot=OrdersTotal();
if (ot>0) {
if (OrderSelect(ot-1,SELECT_BY_POS))
if (OrderType()==OP_BUY || OrderType()==OP_SELL) last_order_bar=iBarShift(Symbol(),0,OrderOpenTime());
}
int last_hist_order_bar=0;
int oht=OrdersHistoryTotal();
if (oht>0) {
if (OrderSelect(oht-1,SELECT_BY_POS, MODE_HISTORY))
if (OrderType()==OP_BUY || OrderType()==OP_SELL) last_hist_order_bar=iBarShift(Symbol(),0,OrderOpenTime());
}
if (ot==0)
if (Bid==Price)
//=============================================================== if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point))
if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point))
if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))
//============================================================
Lot=MarketInfo(Symbol(), MODE_MINLOT);
if (isCloseLastPosByStop(Symbol(), OP_BUY, Magic, Lot)) {
Lot=Lot*2;
OrderSend(Symbol(),OP_SELL,Lot,Bid,1,Ask+1500*Point,Ask-300*Point,"jfh",123 );
}
else {
Lot=0.1;
OrderSend(Symbol(),OP_SELL,1,Bid,Lot,Ask+1500*Point,Ask-300*Point,"jfh",123 );
}
return(0);
}
//+----------------------------------------------------------------------------+bool isCloseLastPosByStop(string sy, int op, int mn, double &ll) {
double pt;
int dg, i, j=-1, k=OrdersHistoryTotal()-1;
datetime t=0; // во избежание возможных ошибок после возможных будущих улучшенийfor (i=k; i>=0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderMagicNumber()!=mn) continue; // если магик не тот, переходим к следующемуif (OrderSymbol()!=sy) continue; // если символ не тот, переходим к следующемуif (OrderType()!=op) continue; // если тип не тот, переходим к следующемуif (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(OrderSymbol(), MODE_DIGITS); // количество знаков в цене символа ордера
pt=MarketInfo(OrderSymbol(), MODE_POINT); // размер пункта инструмента в валюте котировки ордераif (MathAbs(OrderClosePrice()-OrderStopLoss())<0.5*pt) { // Если закрыт по стопу
ll=OrderLots(); // записываем количество лотов в ордере, закрытом по стопуreturn(true); // возвращаем истину
}
}
return(False); // возвращаем ложь (позиции нету, либо не по стопу)
}
//+----------------------------------------------------------------------------+
if (ot==0) if (Bid==Price) if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point)) if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point)) if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))
しかし、開き直ると、スプレッド分だけポジションがカットされる。
まあ、それは特にすてきな変態でしょう。そんなことはないだろう。
まあ、それは特に優雅な倒錯でしょうね。そんなことはないだろう。
うん、もう確認したんだけど、確か...そうじゃなかったら、イスラム口座に売りオーストリー、スプレッド口座に買いを入れておけばいいんだよね。安定した利益が出る...銀行に預けるよりも多い
1.注文の一部終了の状況 - チケットが変更され、新しい注文にコメントに書かれている、それは明らかである、それは到達することができます。
2.夜間・週末にポジションを移管する際、一部のブローカーがポジションをクローズし、日中に再度オープンするという状況がありますが、この場合、チケットはどのように動作するのでしょうか。新ポジションのコメントに旧チケットが書き込まれている、何も起こらない? 注文が4~8件以上ある場合の管理方法は?
datetimeはintと同じです。
私はdatetimeが 符号なしint であると確信していたのですが、確認したところ、あなたの言うとおりでした。MT4は2038年より長くは生きられないことが判明しました;)。まだ間に合う )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
ウラジスラフ:投稿を削除すべきではなかったですね、イミフ。
もちろん、IMHOは無意味ではありません:datetimeは 本当にint です。しかし、書かれていることは一般的にはすべて正しいのですが、この場合はそうではありません。ここで、ICL開発者の論理が理解できない((((((( ;゚Д゚))))))もしかしたら、新しいバージョンの言語で修正されるかもしれません。
HH 削除された投稿の意味は、型は意図したとおりに使うべきで、そうしないとランタイムエラーに陥る可能性があるということです。この場合、日付はint型ではなくdatetime型にした方が、型の不一致が修正される期待が持てるからです。
もちろん、IMHOは、何の意味もありません:datetimeは 本当にint です。しかし、書かれていることは一般的にはすべて正しいが、この場合は違う。ここのICL開発者の論理が理解できない(((((( ;゚Д゚)))))もしかしたら、新しいバージョンの言語で修正されるかもしれません。
SZ 削除された投稿の意味は、型は意図したとおりに使うべきで、そうでなければランタイムエラーが発生する可能性があるということです。この場合、日付はdatetimeの方が良いが、型の不一致が修正される期待があるため、intはダメだ。
実行エラーではなく、開発者が物事を整理したときにどうなるかを考えても、datetimeの代わりにintを使ったり、colorを使ったりしてはいけないと思います。
もちろん、IMHOは、何の意味もありません:datetimeは 本当にint です。しかし、書かれていることは一般的にはすべて正しいが、この場合は違う。ここのICL開発者の論理が理解できない(((((( ;゚Д゚)))))もしかしたら、新しいバージョンの言語で修正されるかもしれません。
SZ 削除された投稿の意味は、型は意図したとおりに使うべきで、そうでなければランタイムエラーが発生する可能性があるということです。この場合、日付はdatetimeの方が良いが、型の不一致が修正される期待があるため、intはダメだ。
プロフェッショナルの皆さん・・・・・・・・・・・・・・・・迷いますね
TarasBYと artmedia70は 、私のエラーは注文のマジックナンバーを格納する変数の値に関連して いると言っています。
Vininは 、マジックナンバーの問題ではなく、間違ったロジックの 問題だと言っている......artmedia70 は彼に反論している。
.
専門家のコンセンサスが得られていない場合、初心者の私は何をすればよいのでしょうか?
。
マジシャンのミスにより、EAがストップでクローズしたときに、そのポジションがストップでクローズしたことを認識しないことがあります。なぜ?答えは、マジック123でポジションを開き、ストップでポジションを閉じるかどうかをチェックする関数に変数Magicを送るというものです。暗黙の初期化中は何に相当するのでしょうか?ゼロです。この機能は、当然ながらマジックナンバー0を持つポジションを検索し、それが自分のポジションで123と等しくなるようにします。そして、私たちは議論しているのではなく、ただ...推理...ストップで閉じる反応を確認する。
私はあなたの「死んだ」EAロジックの残りを見ていません - 私はあなたがストップで閉じることをチェックする関数を理解するのを手伝っていました...
どういたしまして。がんばってください。
アレクセイ、こんにちは。
私たちのコミュニケーションが頭から離れない......その理由は、ここにある......。
私のコーディングに関連して、「ロジックがない」というコメントを何度も耳にしました。
昨日、ブール代数を説明していただきましたが、広くて深いテーマですね。
実は、私は数学者ではなく、確かに代数的な頭脳を持っていない。
あまり難しくない数学的なことでも、理解できる......のではなく、一度で理解できないものもあるし、複雑なものは脳がまったく認識しない。
半年以上前、MCLのプログラミングの教科書を勉強し始める前に
数学的な能力がなくても理解できるかどうか。
しかし、コズロフ氏は教科書の序文で、「実は一見したところ、もっとシンプルなんだ」と述べている。
一見して
そして実際、彼のチュートリアルの60-70%は理解できたと思います(おそらく初めてではないと思いますが)。
昨日までは、(私には理解できない)複雑な数学的計算はすべてプログラムがやってくれていて、私はそのルールを知るだけでいいと思っていた。
プログラムが動作し、計算を行います。
しかし、昨日の会話で、ブール代数を学ばなければ、私のコードは論理不在になってしまうという考えに至った。
もし、私のコードがブーリアンロジックを欠いていたら、私のプログラムは正しく動作しないか、あるいは全く動作しないでしょう。
しかし、昨日ちらっとWikipediaを見て、ブール代数とおそらく論理学は私の頭には合わないのだと悟りました
昨日、あなたは私のコードの断片をざっと見ただけで、それがブール論理を欠いていることをすぐに推論しました。
もし差し支えなければ、この断片に論理性がないという結論に至る、あなたの推論の過程を説明していただけませんか。
私があなたを理解すれば、私は前に進みます。 わからなければ......プログラミングは自分の能力を大きく超えるものだという結論になるのでしょう。
ありがとうございます。
if (ot==0)
if (Bid==Price)
if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point))
if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point))
if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point))