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

 

ストップロスを修正し、テイクプロフィットは1行に残す方法はありますか(言及しない、つまり他の機能によって以前設定された方法を維持する必要がある)。

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE);

 
rigonich:


もしテスターがサーバーと同じ数の注文をカウントしていたら、データも数桁になるはずです。

テスターもサーバーと同様に、新しい注文ごとに固有の注文番号(チケット)を割り当てますが、サーバーは証券会社が誕生した瞬間から、すべての顧客とすべての商品についてこれを行います。


了解です、ありがとうございます :)))
 
rigonich:
おそらく端末の設定で「EAを取引可能にする」になっていると思います。


役に立ちません
 
i999i:

役に立ちません

申し訳ありません - オールクラス ......ありがとうございます。
 
lottamer:

ストップロスを修正し、テイクプロフィットは1行に残す方法はありますか(言及しない、つまり他の機能によって以前設定された方法を維持する必要がある)。

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE);

OrderModify(OrderTicket(),OrderLots(),Stop_loss,OrderTakeProfit(), 0,CLR_NONE)を実行。

ストップ、だからロットが0になる。

 
このオーダーも予めオーダーセレクトで 選択しておく必要がある。そうしないと、チケットが何でもありになってしまうことが多いのです。
 
Dimka-novitsek:
このオーダーも予めオーダーセレクトで選択しておく必要がある。そうしないと、チケットが何でもありになってしまうことが多いのです。

はい、チケットはあなたが指定したものになりますが、OrderLots( )とOrderTakeProfit( )の値は、任意の注文に対して返される可能性が あります。
 

おはようございます。

トレーリングストップの条件がうまくいかないのです。

//***************************************   
 
 bool nahodka=false;
  
 if (OrderSelect(tacket, SELECT_BY_TICKET , MODE_HISTORY)) 
 if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true;     // Находим ордер, сработавший именно по тейкпрофиту 
   
 if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )<Bid-treylingstop*Point ){ Print ("втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 if (BUY == 0) {perenos=false;srabotka=false;nahodka=false;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
               
               //SELL

だから、まだ履歴に残ってないのにすぐに注文が取られてしまうんです!全然理解できません。

//***************************************   
 
  nahodka=false;
 
 for (i=0; i<=OrdersHistoryTotal(); i++) {
 if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
 if (OrderSymbol()!=Symbol())continue; 
 if (OrderMagicNumber() != 450) continue; 
 if (tocket==OrderTicket()) 
 if (OrderTakeProfit( )-3*Point<profitsell&&OrderTakeProfit( )+3*Point>profitsell) nahodka=true;}
     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if(nahodka){if (OrderSelect(tecket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )>Bid+treylingstop*Point ){ Print ("четвёртаямодифи    " );
 OrderModify(  tecket, OrderOpenPrice(), Bid+treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 for ( i = OrdersTotal() - 1; i >= 0; i--)

そして、この状況の方が良いのですこの仕掛けがあれば、少なくとも、すでに履歴に残っているオーダーは修正されます。

しかし、5回や10回に1回はナホドカが真値を とらず、それ以上の修正が 発生しないのです

 
そうそう!!!
 

ここでは、バイを修正しない方法-そしてそれはジル条件であり、また、常に動作するわけではありません。

ここがそうです。

//***************************************   
 
 bool nahodka=false;
 
 for (i=0; i<=OrdersHistoryTotal(); i++) {
 if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
 if (OrderSymbol()!=Symbol())continue; 
 if (OrderMagicNumber() != 450) continue; Print (" tacket ",tacket, "  OrderTicket() ",OrderTicket(),"    profit " , profit, "    OrderTakeProfit( ) ",OrderTakeProfit( ) );
 if (tacket==OrderTicket()) {Print ("tacket==OrderTicket()    " );
 if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true;}}     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if(nahodka){if (OrderSelect(tucket,SELECT_BY_TICKET)){
 if(OrderStopLoss( )<Bid-treylingstop*Point ){ Print ("втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
 if (BUY == 0) {perenos=false;srabotka=false;nahodka=false;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
               
               //SELL