[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 224

 

ストップロスで 決済した後にメッセージを表示させたいのですが、mt4では何も起こりません。

int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
string sy="NULL";
int op=-1;
int mn=-1;
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
datetime t;
double ocp, osl;
int dg, i, j=-1, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
j=i;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
dg=MarketInfo(sy, MODE_DIGITS);
if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
ocp=NormalizeDouble(OrderClosePrice(), dg);
osl=NormalizeDouble(OrderStopLoss(), dg);
if (ocp==osl) return(True);
}
return(False);
}
int start()
{
//----
bool stopl;
stopl = isCloseLastPosByStop(sy,op,mn);
if (stopl == true)
Alert ("последняя сделка закрылась по s/l");
//----
return(0);
}

ファイル:
33.mq4  3 kb
 
このコードを読むと、文字がすべてグレーアウトしてしまい、不便です...)
 
 

フォーラムメンバーの皆様、「バランスチャート」のインジケータをレビューのために貼っています。リアルタイムで自分の残高の変化を視覚的にコントロールしたり、最終的にExpert Advisorの収益性をコントロールしたり...別ウィンドウにすると便利だと思います。問題は、それがうまくいかないことです...私は自分で「モデリング」しましたが、あまりよく理解できていません。いくつかのインジケータを開発しましたが、何もしていません...。訂正していただけるとありがたいです。欲しいものを書き出しました。結果だけなら、迷わず潰してください!(笑もしかしたら、誰かに必要とされるかもしれない、余計なものではなさそうだ...。

ファイル:
 
すべてのバーで1つのバランスをとっているのですか?
 
eddy:
すべてのバーを1バランスにしているのですか?

私は問題を正確に述べていないかもしれない - 多分それはより正確であろう
アカウントエクィティ( )

を挿入します。でも、それは2つ目の話です。そして何より、ポジションをオープン/クローズ した後の変化を観察してみたい...。

テスターのようなバランスラインみたいなものでしょうが、実機では?

 
kulon:

私は問題を正確に述べていないかもしれない - より正確には、次のようになります。
アカウントエクィティ( )
を挿入します。でも、これは2枚目です。そして何より、ポジションをオープン/クローズした後のこれらの変化を観察したいのですが...。


取引履歴を読み、次のポジションが決済された時点の残高を読み取る必要があります。

エクイティは少し複雑ですが、全く同じ方法でできます。

すべての計算を標準ロットに変換したり、pipsでカウントすることができます。

 

ウィンドウで質問...

標準のインジケーターに#property indicator_separate_windowを 挿入したところ、MT4がそれをファイナンスツールにアタッチすることを嫌がります。なぜ?

 
100yan:

ウィンドウで質問...

標準のインジケーターに#property indicator_separate_windowを 挿入したところ、MT4がそれをファイナンスツールにアタッチすることを嫌がります。なぜ?


もしかしたら、値が非常に小さく、下の方(ウィンドウの外側)のどこかにあるのかもしれません。
 
Vinin:

もしかしたら、値が非常に小さいだけで、下の方(ウィンドウの外側)にあるのかもしれません。


しかし、理論的には、空のウィンドウとはいえ、別のウィンドウがあるはずなのですが?

また、インジケーターもアドバイザーも......アタフタ。

 
100yan:

ウィンドウで質問...

標準のインジケーターに#property indicator_separate_windowを 挿入したところ、MT4がそれをファイナンスツールにアタッチすることを嫌がります。なぜ?

アナログを ご覧ください。特にEquity_simple.mq4