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

 
買い注文は一度に複数回できないのでしょうか?
 
dkfl.zrjdktdbx:
ありがとうございます!!!

これが スタート地点のリンクです。あとは、IMHO。
 
Ivn:

説明してください

分析的な部分では、厳密に定義された時間枠を使用します。またはタイムフレーム
 
よし、いいこと思いついた!ちょっとムラムラしてるかも...。
 int BUY;
 for( i=OrdersTotal();i>0;i--){OrderSelect(i-1,SELECT_BY_POS );if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==????){
if(OrderType( )==OP_BUY){BUY++;}}} 
   if ( BUY> stsBUY) {//Alert ("NashlY BUY " );
   for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS );
if( OrderMagicNumber( )==???? &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUYSTOP) {    
 OrderDelete(OrderTicket( ) ); 
  stsBUY=BUY;  Alert ("OrderDelete-OP_BUYSTOP",  GetLastError( ) );      }

if( OrderMagicNumber( )==???? &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUYLIMIT) {    
 OrderDelete(OrderTicket( ) ); 
  stsBUY=BUY;  Alert ("OrderDelete-OP_BUYSTOP",  GetLastError( ) );      }


}}
いや、ちょっとおかしいな、買い注文が検出されると、保留中の注文がすべて削除されるように見えるんだけど......。全ての買い注文。stsBUYは開始前に設定すること。エラーチェックはしていない。
 
Vinin:

分析的な部分では、厳密に定義された時間枠を使用します。またはタイムフレーム

パース用の "fish "を削除していただけないでしょうか、コメントがあればお願いします。
 
dkfl.zrjdktdbx:
よし、いいこと思いついた!ちょっとムラムラしてるかも...。 いや、ちょっとおかしいな、買い注文が検出されると、保留中の注文がすべて削除されるように見えるんだけど......。全ての買い注文。stsBUYは開始前に設定すること。エラーチェックはしていません。


もっと正しいコードが必要だろう。エラーなし

そして、その論理が悪い。

 
Ivn:

パースの「魚」を落としていただけませんか、コメントがあればお願いします。

2×2」はいくつなんだ、と言われないように、教科書くらいは少しは読んどけよ。

 
FelixFX:

2×2」はいくらなのか、くらいは教科書を少しは読めよ。


重要なポイントであることは論を待たないが、理解していれば質問することもないだろう?

つまり、アルゴリズムの中で、指標における時間軸を指定するところで、それを明確に綴っているのです。

そうだろ?

であれば、次のことを説明してください.

Expert Advisor - ストキャスティクスのクロス、トレードへのエントリー。

以下はそのアルゴリズムです。

int start()
{
RefreshRates(); // データのリフレッシュ
Symb=Symbol();

x1=x;
y1=y;

x=iStochastic( NULL,0,5,3,3,MODE_SMA,1,0,0); // 0バーでの確率的主線値
y=iStochastic( NULL,0,5,3,3,MODE_SMA,1,1,0); // 0バーでの確率的シグナル線値
アラート("stochastic main",x);
Alert ("stochastic signal",y);

//シグナルと メインラインの交点
if (y < x && y1> x1) // チェックアップパス
{
f=1// フラグアップ
}
//--------------------------------------------------------
if (y > x && y1< x1) // 下方向への通過をチェック
{
f=2; // フラグダウン
}
//---- 本線と 20 線の下方向への交差をチェック
if (f==1 && x1<20)&& x1<20 && x>= 20)
{ if (Ticket > 0) // 注文があれば削除
OrderClose(Ticket,Lts,Bid,10);
SL=Bid - StopLoss*Point; // SL openの計算。
TP=Bid + TakeProfit*Point; // TPオープンの計算
Alert("Attempting to open Buy. Waiting for reply...");
OrderSelect(Ticket, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(Ticket, SELECT_BY_TICKET)).
{

Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,3,SL,TP);//Open Buy
}.

if (Ticket > 0) // うまくいきました :)
{
Alert ("Opened Buy order ",Ticket);
return;
f=0; // reset flag
}

}
//---- 本線の上から下へのクロスをチェックする 80
if (f==2 &)&& x1>80 && x<= 80)
{ if (Ticket > 0)
OrderClose(Ticket,Lts,Ask, 10); // 注文がある場合は削除
SL=Ask + StopLoss*Point; // SLを計算する。
TP=Ask - TakeProfit*Point; // TPオープンの計算
Alert("Attempting to open Sell. Waiting for reply...");
OrderSelect(Ticket, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(Ticket, SELECT_BY_TICKET)).
{
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,3,SL,TP);//Open Buy
}
if (Ticket > 0) // うまくいきました :)
{
Alert ("Sell order opened ",Ticket);
return;
f=0; // ゼロ化フラグ
}

} }.


return(0); }.

を実行すると、Expert Advisorは30分以内に、9.04でオープン、9.05でクローズ、9.06で再びオープン、9.07でクローズというように、同じ方向で注文をオープン、クローズします。

なぜこうなる

リーズナブル。

 
sss2019:
また、BUYLIMITとBUYSTOPの2つの注文が開いている場合、BUYLIMITのトリガー時にBUYSTOPを削除する必要があり、その逆も同様です。この条件が満たされる方法を教えてください。 。

実際には、次のようなロジックになるはずです。

1.もし、保留中の注文が 2つあり、ポジションがない場合は、これらの保留中の注文のティックを変数に記憶しておきます。

2.保留中のSellStopがあり、保留中のBuyStopがない場合、買いポジションがあれば、最後にオープンした買いポジションのチケットと記憶しているBuyStopのチケットを比較します。

もし、同じであれば、ByStopが成行買いされたことを意味します。

保留中のBuyStopがあり、保留中のSellStopがない場合、売りポジションがあれば、最後にオープンした売りポジションのチケットと記憶しているSellStopのチケットを比較します。

等しければSellStopを成行売りに変換→BuyStopの保留があれば削除。

ほぼ同じ...これはあくまで大まかなロジックです。機能が必要なのです。

 
ええと、すみません、ちょっとだけ......。 実は、そうなんです、私のミスです、逆なんです。私は、歴史を調べて、最後の命令を見つけなければならない... и... いや、本当に知らないんだ...。