doubleMagic, Lot;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))
//============================================================
// задавать минимальное значение лота я не стал,мне кажется для тестера это не обязательно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) //у Вас перед названием формального параметра 11 стоял знак &- я его убрал.
{
double pt;
datetime t; //у вас тип переменной t был int - я сделал datetimeint dg, i, j=-1, k=OrdersHistoryTotal()-1;
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); // возвращаем ложь (позиции нету, либо не по стопу)
}
こんばんは。
取引週の終わりに、すべてのポジションの決済とすべての注文の削除を追加する方法を教えてください。
ありがとうございました。
こんばんは。
取引週の終わりに、すべてのポジションの決済とすべての注文の削除を追加する方法を教えてください。
ありがとうございました。
そんなスクリプトを書いて、クローズするときにチャートに放り込んで、全部消す。以上です...。
どういたしまして。
そんなスクリプトを書いて、クローズするときにチャートに放り込んで、全部消す。要は...
お願い!
ありがとうございます:)要望を明確にすること。
取引週の終わりにすべての注文とポジションをクローズするコードをEAに追加する必要があります。
このコードを書いていただけませんか?
ありがとうございます:)要望を明確にすること。
取引週の終わりにすべての注文とポジションをクローズするコードをEAに追加する必要があります。
このコードを書いていただけませんか?
できるんです。問題ありません。自分で何かをしたことがありますか?このスレッドは、無料で何かを用意することではなく、自分でコーディングしようとしている人を助けるためのものです。
https://book.mql4.com/ru/trading/orderclose、調べました。
googleで検索して、フォーラムで検索して。見つからなかった。クエリーの書き方が間違っているのかもしれません。
初心者スレで聞こうと思って。
どのように処方すればよいのですか?
スクリプトを実行すると
一般」タブと「入力パラメータ」タブを持つウィンドウがポップアップ表示されます。
スクリプトを実行すると、日付のボックスがポップアップし、日付を入力してokをクリックすれば、すべてがうまくいくのでしょうか?
また、最後に入力した日付をスクリプトに記憶させることは可能ですか?
ストップの最終閉位置を決定する関数はbool型ですが、あなたはそこからdouble型を返そうとしています。従って、0か1のどちらかを返す。
その中に1つの変数の参照渡しを追加してくださいということをお伝えしました。
では、最後の「Buy」を例に確認してみましょう。
このように...
ストップの最終閉位置を決定する関数はbool型ですが、あなたはそこからdouble型を返そうとしています。従って、0か1のどちらかを返す。
その中に1つの変数の参照渡しを追加してくださいということをお伝えしました。
では、最後の「Buy」を例に確認してみましょう。
このように...
言われたとおりに全部やりました。全てコンパイル済み......ですが、アドバイザーをテスト すると機能が動作しません......全てのポジションのアドバイザーが0.1ロットをオープンします。
私の間違いが何なのか教えてください。
私はこの点を理解していない - あなたが正しく気づいたように、関数は、型のboolの値を返すが、関数の呼び出しで、関数は、型のboolの値を配置する必要があります。
他の値の種類を指定するよう提案されました。
ありがとうございます。
言われたとおりに全部やりました。コンパイルは全て完了したのですが、EAをテストすると機能が動作しません・・・全てのポジションでEAが0.1ロットオープンします。
私の間違いが何なのか、教えていただけませんか?
私はこの瞬間を理解していません - あなたが正しく気づいたように、関数はbool型の値を返しますが、関数はbool型の値を置くべきで、関数呼び出しで
他のタイプの値を指定することをお勧めしますか。
ありがとうございます。
なぜ削除したのですか。そのままにしておけば、すべてがうまくいったはずです。
なぜ削除するのか。もしそうなら、すべてがうまくいったはずだ