[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 219

 

ありがとうございます。このコードをEAに貼り付けたところ、コンパイルで「(' -function definition unexpected after bool ExistOrders, there's an extra parenthesis or something...)」と出てしまいました。

for (int k=0;k<OrdersTotal();k++)//We review among all open orders
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,", 123,0,Red);
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType()。
if (ty<6)
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}}return(False)です。
}
//----
return(0)です。
}
 
Graall:

ありがとうございます。このコードをEAに貼り付けたところ、コンパイルで「(' - function definition unexpected after bool ExistOrders, there's a extra parenthesis or something...)」と出てしまいました。


ExistOrders 関数をstart関数から取り出してください .
int start()
{
.....
for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
}
   return(0);
 }

    bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
 
 

ExistOrders関数はカスタム関数で、start関数から取り出したのですが、エラーは同じで、EAの最初の部分で何かと戦って います。


//+------------------------------------------------------------------+

//| 1.mq4
//| 2013年2月28日
//||
//+------------------------------------------------------------------+
#define マジック 123

//--- 入力パラメータ
extern int TakeProfit = 100;
extern double Lots = 0.1;
extern int Shag = 100;
文字列sy;
int ty;
int op;
int mn
int k;
int i;
//--------------------------------------------------------------------------------------------
int start()
{
// 最初のゼロの要素を検索する
int total=OrdersTotal();
if (total==0)
{
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,", 123,0,Red);
OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0,", 123,0,Blue);
for (int i=0;i<OrdersTotal();i++)// すべての未決済注文を表示します。
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if ( OrderType()==OP_SELLLIMIT))
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask-(TakeProfit/0.2)*Point, 0)です。
if ( OrderType()==OP_BUYLIMIT))
OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask+(TakeProfit/0.2)*Point, 0)を実行。
}
}
for (int k=0;k<OrdersTotal();k++)// すべてのオープンオーダーを見る
{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )
OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,", 123,0,Red);

//----
return(0)です。
}
//+------------------------------------------------------------------+
bool ExistOrders(string sy="", int op=-1, int mn=123)
{
int i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
ty=OrderType()。
if (ty<6)
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op))
{
if (mn<0 || OrderMagicNumber()==mn) return(True);
}}}}return(False)です。
}
 
Graall:



括弧のペアリング{}を確認する(慎重に)。このエラーは、start()関数に少なくとも1つのクロージングが欠けていることを意味します。
 
alsu:

括弧{}の組合せを確認する(慎重に)。このエラーは、start()関数に少なくとも1つのclosingが欠けていることを意味します。


そばから

for (int k=0;k<OrdersTotal();k++)//Watch among all open orders

{
OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )

OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,", 123,0,Red);

見逃し}おつかれさまでした

 
私はM5キャンドルショー18.45にカーソルを置く場合こんにちは、端末内の私の時間は、今、実際の時間と一致しない、と実際にはウクライナで19.45、時間を変更する方法は?
 
sanktum:
こんにちは、端末内の私の時間は、あなたがM5のローソク足の上に置く場合は、今、実際の時間と一致していない18.45を示していますが、実際にウクライナで19.45、時間を変更する方法ですか?

なし。ローソク足上の時刻はサーバーの時刻です。

 

こんにちは。

新しいバーが 開くたびにデータをファイルに書き込んでいます。

int handle=FileOpen(Symbol1+Symbol2+".csv",FILE_WRITE|FILE_READ|FILE_CSV);
      if(handle>0)
        {
         FileSeek(handle,0,SEEK_END);
         FileWrite(handle,TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES), DoubleToString(Pr1,2),DoubleToString(Pr2,2),DoubleToString(Pr3,2),DoubleToString(Pr4,2));
         FileClose(handle);
        }

このデータを読み込んで、記録された時間間隔でチャートを作成するインジケータが必要です。

このデータを読み込んで、新しいバーが開くたびにチャートにプロットするインジケータが欲しいのです。

 

MT4 (Version: 4.00 Build 451) をインストールしたところ、Experts Logs フォルダにターミナルをインストールした 日、つまり13日の日付のファイルが1つだけあることに気づきました。 何度もプラットフォームの電源を入れたり切ったりしましたが、これ以上ログファイルがありません。

この現象について、何かコメントがあればお願いします。

 
Geowind64:

MT4 (Version: 4.00 Build 451) をインストールしたところ、Experts Logs フォルダにターミナルをインストールした日、つまり13日の日付のファイルが1つだけあることに気づきました。 何度もプラットフォームの電源を入れたり切ったりしましたが、これ以上ログファイルがありません。

この現象について、何かコメントがあればお願いします。


少なくとも1つのエキスパート/インジケータ/スクリプトを実行する必要があり、それらはこのフォルダに書き込まれるものです。