for (int i=OrdersHistoryTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) { if (OrderMagicNumber()==magic) { if (OrderStopLoss()==OrderClosePrice()) { lot=lot*4; } } }
for (int i=OrdersHistoryTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) { if (OrderMagicNumber()==magic) { if (OrderStopLoss()==OrderClosePrice()) { lot=lot*4; } } }
for (int i=OrdersHistoryTotal()-1; i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) { if (OrderMagicNumber()==magic) { if (OrderStopLoss()==OrderClosePrice()) { lot=lot*4; } } }
バランスに例えると、そういうことです。
ありがとうございます。
OK、それなら私の理解では、(3つの異なるパラメータを探せば)正しいものを返した3つの異なるカスタム関数が得られます
アレイソート
では
右の数字でArrayBsearch
と、その後にどう対処するか?
まさに配列から構造体要素への移行わかっていないようですね。
グローバルに宣言された配列への 入力とソートを 行う関数を1つ作る必要があります。この配列は、関数に参照渡しする必要があります。
そして、この配列から必要なデータを取り出す関数が追加で必要です。
わかっていないようですね。
グローバルに宣言された配列を埋めてソート する関数を1つ作る必要があります。この配列は、関数に参照渡しする必要があります。
そして、この配列から必要なデータを取り出す関数が追加で必要です。
OK、構造体の配列から何かを取り出す方法を教えてください。
参照と書き込みによる転送の方法。
どのような状態であればよいのか、アドバイスをお願いします。ストップロスが発生した場合、ロットは2倍になり、次の注文でテイクプロフィットが 発生すると、ストップロス発生前の元のロットに戻ることになります。
こんな風に理解しているのですが、この先どうしたらいいのか......。
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
もう一つの質問ですが、注文の削除ブロックに何か間違ったことを書いてしまったのでしょうか?
market order #1 cannot be deleted
{
for(int n=OrdersTotal()-1;n>=0;n--)
{
if(OrderSelect(n,SELECT_BY_POS))
{
if(OrderMagicNumber()==magic)
{
bool del=OrderDelete(OrderTicket());
if (del==true)
{
otl_b=0; otl_s=0; //обнуляем переменные отложек
}
}
}
}
}
もう一つ質問ですが、注文を削除するブロックに何を書き間違えたのでしょうか? いつも注文が削除されるわけではなく、ログによると
market order #1 cannot be deleted
{
for(int n=OrdersTotal()-1;n>=0;n--)
{
if(OrderSelect(n,SELECT_BY_POS))
{
if(OrderMagicNumber()==magic)
{
bool del=OrderDelete(OrderTicket());
if (del==true)
{
otl_b=0; otl_s=0; //обнуляем переменные отложек
}
}
}
}
}
成行注文を削除しようとしていますが、削除されるわけではなく、OrderClose()関数を使用して閉じられるのです。ループを正しく削除したり閉じたりするためには、その型によって順序を区別する必要があります。
if(OrderType()<=OP_SELL) - 成行注文の場合、 if(OrderType()>OP_SELL) - 保留注文の場合。
CHARTEVENT_MOUSE_MOVE というものがあります。
質問:マウスがないモバイル機器でも使えるのでしょうか?
どのような状態であればよいのか、アドバイスをお願いします。ストップロスが発生した場合、ロットは2倍になり、次の注文でテイクプロフィットが 発生すると、ストップロス発生前の元のロットに戻ることになります。
こんな風に理解しているのですが、この先どうしたらいいのか......。
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
どのような状態であればよいのか、アドバイスをお願いします。ストップロスが発生した場合、ロットは2倍になり、次の注文でテイクプロフィットが 発生すると、ストップロス発生前の元のロットに戻ることになります。
こんな風に理解しているのですが、この先どうしたらいいのか......。
for (int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)
{
if (OrderMagicNumber()==magic)
{
if (OrderStopLoss()==OrderClosePrice())
{
lot=lot*4;
}
}
}
}
この問題の解決はExpert Advisorの完全なロジックに依存し、そのコメントによってストップロスやテイクプロフィットのトリガーを追跡することができます。
if(StringFind(OrderComment(),"tp")>=0)// сработал тейкпрофит
...
わかっていないようですね。
グローバルレベルで宣言された 配列を埋めてソート する関数を1つ作る必要があります。この配列は、関数に参照渡し する必要があります。
そして、この配列から必要なデータを取り出す関数が追加で必要です。