[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 158

 
Xaoss1990:

助けて、お願い...何日も悩んだ末に...。

コードはどこだ?どうしたらいいですか?
 
Roger:
コードはどこだ?どうしたらいいでしょうか?

ここでは、お得なコードの一部をご紹介します。

//+-----------------------------------------------------------------+
//+-----------------------------------------------------------------+
//+-----------------------------------------------------------------+
if (POINT_BUY_M15 >= Strgh_UP_M15 &)&& POINT_BUY_H1 >= Strgh_UP_H1 && POINT_BUY_H4 >= Strgh_UP_H4 && OrdersTotal() == 0)
{
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, 5, 0, 0, "My order #", 111, 0, Blue);
if(ticket < 0)
{
Print("注文が設定されていません。Error - #",GetLastError());
return(0);
}.
}

//+------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС-------------------------+
//+------------------------------------------------------------------+
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (POINT_BUY_M15 < Strgh_UP_M15 || POINT_BUY_H1 < Strgh_UP_H1 || POINT_BUY_H4 < Strgh_UP_H4 && OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0)
{
close = 1;
} }.
if (close == 1)
{
if (OrderClose(OrderTicket(), lots, Bid, 5, Yellow) == true) Alert("OrderTicket() = ", OrderTicket(), ", lots = ", lots, ", Bid = ", Bid);
else Print ("Stop not set;").

}

//+-----------------------------------------------------------------+
//+-----------------------------------------------------------------+
//+-----------------------------------------------------------------+
if (POINT_SELL_M15 >= Strgh_DOWN_M15 &)& POINT_SELL_H1 >= Strgh_DOWN_H1 && POINT_SELL_H4 >= Strgh_DOWN_H4 && OrdersTotal() == 0)
{
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, 5, 0, 0, "My order #", 222, 0, Green);
if(ticket < 0)
{
Print("オーダーが設定されていません.Error - #",GetLastError());
return(0);
}.
}
//選択するパラメータの印刷------------------------
//Print("売りM15 = ", POINT_SELL_M15, ", 売りH1 = ", POINT_SELL_H1, ", 売りH4 = ", POINT_SELL_H4, ", 注文番号 = ", ticket).このパラメータが選択された場合、注文を受け付けます。
//------------------------------------------------Печать параметров на выбор----------------------------------------------------

//+------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС-------------------------+
//+------------------------------------------------------------------+
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
Magic = OrderMagicNumber();

if (POINT_SELL_M15 < Strgh_DOWN_M15 || POINT_SELL_H1 < Strgh_DOWN_H1 || POINT_SELL_H4 < Strgh_DOWN_H4 && OrdersTotal() == 1 && Magic == 222 && OrderType( ) == 1)
{
close = 1;
}.
if (close == 1)
{
OrderClose(OrderTicket(), lots, Ask, 5, Red);
}.

 
この部分は、エラーが発生する可能性がある部分ではありません。
 
Roger:
この部分は、エラーが発生する可能性がある部分ではありません。 。

えーで、残りのコードは取引を行うための値(POINT_BUY_M15, POINT_BUY_H, POINT_BUY_H4, POINT_SELL_M15, POINT_SELL_H, POINT_SELL_H4)を計算しており、正常に動作しています... チェック済みです。そこはシンプルに......。

 
もしここでエラーが出たのであれば、ログには「Stop not set」と書かれているはずですが、そうではありません。
 
アドバイスをお願いします。ある条件でオーダーが開かれ、トロールでクローズされた。このローソク足で条件が成立した場合、二度とポジションを建てない ようにするにはどうしたらよいでしょうか。
 

init関数内の条件をチェックしています。

...
extern int proc_zahlest=50;

int init() 
{
if (proc_zahlest>100)
{
Alert("Параметр proc_zahlest д.б. <100% !!!");
}
return(0);
}

proc_zahlest>100の 場合、インジケータの実行を停止する(スタート関数を実行しないようにする)方法

 
prom18:
アドバイスをお願いします。ある条件でオーダーが開かれ、トロールでクローズされた。このローソク足で条件が成立した場合、二度とポジションを建てないようにするにはどうしたらよいでしょうか。


注文が1つしか開けられない場合は、簡単に

start()
{
static int newbar;
if(newbar==Time[0])return(0);
if(OrdersTotal()>0)newbar=Time[0];
...
 
Roger:


注文が1つしか開けられない場合は、簡単に

書かれていることの論理を言葉で説明してください。
 
prom18:
書かれていることの論理を言葉で説明してください。 。

注文が開始されると、newbar変数に現在のバーの開始時刻の 値が代入されます。次のティックでは、新しいバーまで、EAはブロックされます。注文がまだ終了していない場合は、この操作を繰り返す。そして、注文が締め切られるまで、それを続けるのです。そして、次のバーでは、Expert Advisorは新しいオープンの準備ができています。