そして、それを「漫画」にしよう(多通貨化) - ページ 5

 

喜ぶのが早すぎる。コンパイルではエラーにならないのですが、Strategy Testerでは、注文が開かれたときに、この関数を通してインジケータに価格が来ないのです。OP=PriceOpenLastPos()と呼びますが、コード上ではOPは0に等しいままです。

可視化モードでウィンドウにぶら下がるインジケータに値が渡らないのはテスターの問題でしょうか?

 
Angela писал(а)>>

喜ぶのが早すぎる。コンパイルではエラーにならないのですが、Strategy Testerでは、注文が開かれたときに、この関数を通してインジケータに価格が来ないのです。OP=PriceOpenLastPos()と呼びますが、コード上ではOPは0に等しいままです。

可視化モードのウィンドウでハングアップするインジケータに値を渡さないのは、テストの問題でしょうか?

インジケーターはテスターで何が起こっているかを見ることができません。しかし、未決済の注文があれば、それが表示されるのです。

 
ALex2008 писал(а)>>

ご返信ください)

//-------Поиск ордеров
bool WorkOrders(){
      for (int i=OrdersTotal()-1; i>=0; i--){
      if (!OrderSelect( i, SELECT_BY_POS))  continue;
      if (OrderSymbol()!=Symbol())        continue;
      Type = OrderType();
      Ticket=OrderTicket();
      return(true);
  }
  return(false);  
}
 
Vinin >> :

修正しました...しかし、問題は残る(

注文の削除 DellAllOrders()関数が機能しない...。

//-------Удаление всех ордеров
void DellAllOrders(){
      if( WorkOrders())OrderClose( Ticket,OrderLots(),OrderClosePrice(),10);
  }
  
//-------Поиск ордеров
bool WorkOrders(){
      for (int i=OrdersTotal()-1; i>=0; i--){
      if (!OrderSelect( i, SELECT_BY_POS))  continue;
      if (OrderSymbol()!=Symbol())        continue;
      Type = OrderType();
      Ticket=OrderTicket();
      return(true);}
  return(false);
  }

を追加するべきだったと思っています。





OrderDelete(Ticket);

こんな感じ......?

//-------Удаление всех ордеров, открытых и отложенных
void DellAllOrders(){
      if( WorkOrders()){
      OrderClose( Ticket,OrderLots(),OrderClosePrice(),10);
      OrderDelete( Ticket);}
  }
 
ALex2008 писал(а)>>

修正しました...しかし、問題は残る(

DellAllOrders()が動作しない。

//-------Удаление всех ордеров
void DellAllOrders(){
  for (int i=OrdersTotal()-1; i>=0; i--){
      if (!OrderSelect( i, SELECT_BY_POS))  continue;
      if (OrderSymbol()!=Symbol())        continue;
      if (OrderType()<=OP_SELL) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),10);
      else OrderDelete(OrderTicket());
  }
}
保留中の注文も削除します。
 
Vinin >> :
延期分も削除します。

ありがとうございました)

>> これですべてうまくいくはずです。

//-------Удаление всех ордеров, открытых и отложенных
void DellAllOrders(){
      if( WorkOrders()){
      if( Type<=1)OrderClose( Ticket,OrderLots(),OrderClosePrice(),10);
      else OrderDelete( Ticket);}
  }
あと、EAを再保存するときに間違いに気づいたのですが...(ターミナルを再起動すれば同じになると思います)。
ストップロス設定前のチェックを追加した。


if(WorkOrders())
      if ((Type<=1)&& (Stop==0))SetStop();



//-------Поиск ордеров
bool WorkOrders(){
      for (int i=OrdersTotal()-1; i>=0; i--){
      if (!OrderSelect( i, SELECT_BY_POS))  continue;
      if (OrderSymbol()!=Symbol())        continue;
      Type  = OrderType();
      Ticket=OrderTicket();
      Stop  =OrderStopLoss();
      return(true);}
  return(false);
  }
 
人)ほら...。他に何か問題があるのでは、何か手を加える必要があるのでは?
 
ALex2008 >> :
人)ほら...。他に何か問題があるのでは、何か手を加える必要があるのでは?
OrderSend(Symbol(), OP_BUYSTOP, 0.1, Enter, 0, 0, Ask+ Profit, 0, 0,0, Green);

>> そういうものなのでしょうか?

Enter+ Profit
 
Swan >> :

>> そういうものなのでしょうか、それとも

本当に間違いです)振り子ですからね!!!!(笑>> ありがとうございました。作り直した。

 
ALex2008 >> :

エラーは本当です)でも、致命的ではありません・・・。>> ありがとうございました。

エラー130をずっと繰り返している。

StopLevelは、StopLossとEnterのために、チェックする必要があります。


>>とichoさん。

if(b0<b1) StopLoss=b1;
else StopLoss=b0;

>> 一番大きいものを選ぶべき?