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

 
melnikas:

私の場合は、そんなに難しいことなのでしょうか?

double ExtVolumesBuffer[];

立地については、そのとおりです。配列のサイズを指定してから使用する必要があります。または別のバッファにする

 
//+------------------------------------------------------------------+
int deinit()
  {    
  return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
  f1(); //Как сделать, что-бы после вызова функции, программа могла остановиться?
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
    return(f2());
    }
//+------------------------------------------------------------------+    
  int f2()
    {  
    return(deinit()); //Тут, по задумке, нужно остановить работу всей программы
    }
//+------------------------------------------------------------------+  
あるいは、呼び出された関数から、プログラムの動作を停止させることはできないのでしょうか?(インジケーターで使用するコードの例です。)
 
fore-x:
あるいは、呼び出された関数から、プログラムを停止することはできないのでしょうか?(コード例、インジケーターで使用するため)。
return(deinit());

ストップとは、グラフからEA/インジケータを削除することですか?


deinit() について。

deinitの呼び出しがインジケータ/インジケータの非活性化につながらず、非活性化がdeinitの呼び出しにつながる場合。

 
ilunga:

ストップとは、グラフからEA/インジケータを削除することですか?


deinit() について。

インジケーターやエキスパートを無効にするのはdeinitの呼び出しではなく、無効にすることでdeinitが呼び出されるのです。

停止とは、開始関数の実行を停止することです。return(0)のように。

deinitについては、私も承知していますが、だからこそ、この難問をどう解決すればいいのかわからないのです。どうやらそのやり方ではダメなようです。

 
fore-x:

停止とは、開始関数の実行を停止することです。return(0)のように。

デジニットについては、わかっているんですけど、だから解き方がわからないんです。どうやらそのやり方ではダメなようです。

では、この関数で(-1)などを返して、start()でこの関数をチェック付きで呼び出すことを防ぐには? 例えば、こんな感じです。

int start()
  {
  if (f1() == -1) return (0);
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
if (все плохо) return (-1); else return(0);
    }
 
ilunga:

では、この関数で(-1)などを返して、start()でこの関数をチェック付きで呼び出すことを防ぐにはどうしたらいいのでしょうか? 例えば、こんな感じです。

//+------------------------------------------------------------------+
int start()
  {
  if(f1() < 0) return(0);
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
    return(f2());
    }
//+------------------------------------------------------------------+    
  int f2()
    {  
    return(-1); //Тут, по задумке, нужно остановить работу всей программы
    }
//+------------------------------------------------------------------+  
私はあなたを理解し、ちょうどコードで不要な動きを避けるために、明らかにした。お手本をありがとうございました
 
ilunga:

立地については、そのとおりです。配列のサイズを指定してから使用する必要があります。または別のバッファにする

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


dkfl.zrjdktdbx 2011.12.09 16:56

こんばんは、取引ロボットが50回に1回くらい、利益に達してもポジションを閉じないことがあります。その後、未決済の注文も含めてすべてを終了し、再度設定する必要があります。クローズしないことで、注文の混乱やドローダウンが発生します。


だから、想像してみて、時にはそれがtakeprofit、クロウズ価格 - 注文の終値 - 等しいゼロで閉じた注文が判明した!!!!!!!

下のスクリーンショットの5行目をご覧ください、takeprofitで注文が終了しています。そして、下から9行目には 注文の終値がゼロに等しい!!!!

特に複雑なコードはないようですが...。今すぐお見せします。

注文するときは、wremjapomnimのウィンドウに時間を保存しています。任意の順序がcurrentprofitで閉じているとすぐに、私はすべての注文を削除し、再びwremjapomnim pyrimenで時間を覚えて、それらを設定します。

for ( i=OrdersHistoryTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS,MODE_HISTORY  );
Alert( "wremjapomnim " ,wremjapomnim, "  OrderCloseTime(        )   ",  OrderCloseTime( ),  " ",i , " OrderTakeProfit( ) " ,OrderTakeProfit( ),
  " OrderClosePrice(    )  ",OrderClosePrice(   ) );
if ( OrderTakeProfit( )==OrderClosePrice(       )&&wremjapomnim<OrderCloseTime( )|| (NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)<2*Point)
   &&wremjapomnim<OrderCloseTime(       )|| (NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)>-2*Point)&&wremjapomnim<OrderCloseTime(       )){C=0;A=1 ;  Alert("C",C,"A",A);
   for ( int ii=OrdersTotal();ii>0;ii--){ OrderSelect(ii-1,SELECT_BY_POS );
   if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()|| OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()){ 
  OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vse",  GetLastError( ) ); stsBUY=0;stsSELL=0;
   OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);Alert ("OrderClose-vse",  GetLastError( ) ); C=0; }     }              }
   
                                                      } 
 
アラートはコードの2行目と3行目にあり、注文49のOrderClosePrice()がゼロに等しいことを含め、ログにすべてを書き込んでいます。
 

EAでフラクタルが形成されるのを追跡する方法を教えてください。新しいフラクタルが形成された後に注文を出す必要があるのですが。このインジケータがどのように機能するかは分かりませんが、何らかの上限線 と下限線があります。

例えば、フラクタルが形成され、価格がその最小値を割った場合、フラクタルは再描画されるのか、それとも別のフラクタルを追加するだけなのか?

 
こんにちは、あなたは、例えば、最後のローソクの安値と高値を検索する方法を教えてください。