[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 77

 

こんにちは

なぜスクープが買うのか、アドバイスしてください、しかし、条件が熟しているときに位置を閉じません

/---- 入力パラメータ
extern int PerRSI=8;
extern int MagicNamber=77771;
extern double Lots=1.0;
//+------------------------------------------------------------------+
int start()
{
イント
cnt, // オーダーインデックス
ticket, // 注文識別番号
total; // すでにオープンしているオーダーの数
二重
rsi_0, // 値。rsi_0電流
rsi_1; // 値。rsi_1 1本目
if (Bars<100)
{
Print("bars less than 100");
return(0)です。
}
total=OrdersTotal()。
if(total<1)
{
rsi_0=iRSI(NULL,0, PerRSI,0,0); // 現在のバー
rsi_1=iRSI(NULL,0, PerRSI,0,1); // 現在のバー+1

if(rsi_0 < rsi_1 && rsi_0 < 30) // ラインが30を超えたら
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "My RSI", MagicNamber,0,Green)を実行。
if(チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice())
}
else Print("Error opening SELL order : ",GetLastError());
return(0)です。
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES)です。
if(OrderType()<=OP_BUY && OrderSymbol()==Symbol()) // これはオープンポジションか?OP_BUYまたはOP_SELL
{
if(OrderType()==OP_BUY) // ロングポジションを開く
{
if(rsi_0 > rsi_1 && rsi_0 > 70) // ラインが70を超えたら
{
オーダークローズ(OrderTicket(),1,Bid,3,Violet); // クローズポジション

return(0); // 終了
}}}}}}
 
KoZaNOStra >> :

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "My RSI", MagicNamber,0,Green)を実行。
if(チケット>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL order opened : ",OrderOpenPrice())
}


これは一体何なんだ?OrderSelect()は何のためにあるのですか?


あとは、コードがインデントなしで並べられていて、括弧を追うことができないため、理解しにくい--視界を損ねないようにしたいですね。

 
トレーリングエッジの動きを表示させるには、どのようにチャートを色分けすればよいのでしょうか?
 
anat писал(а)>>

本当にありがとうございました。また、コンドルに-y。さて、もうひとつ問題があります。例えば、買いポジションを10個開設しています。ストップやテイクで1、2、3などのポジションを決済したとき、Expert Advisorは、買いのシグナルがあれば、買いを開始します。しかし、まずすべての注文を決済して、オープンポジションが1つもないときに、新しい取引サイクルを開始する必要があるのです。つまり、カウンターが必要なのです。最初にポジションを所定の数まで開き、ポジションを閉じるときにゼロにします。事前にお礼を申し上げたい。

まさに、今の時代に合ったやり方です。少なくとも1つの未決済注文がある限り、別の注文が開くことはありません。そうでない場合は、より精度を高めなければなりません。そして、オープンポジションがある場合に注文をオープンするかどうかを選択する必要があります。

 

ここで質問です。

MetaTraderにデバッグツールはありますか?

スクリプトやEAをどのようにデバッグしているか、ご経験をお聞かせください。

桁数、パラメータ、アルゴリズムのビジョンなど、すべてです。アルゴリズムのバグはどのようにキャッチするのですか?

 
Ryan_ryan >> :

ここで質問です。

MetaTraderにデバッグツールはありますか?

スクリプトやExpert Advisorをどのようにデバッグしているか、あなたの経験を教えてください。

デバッグが必要な場合は、Print()で行います。

しかし、ほとんどの場合、そのようなニーズは発生しません。

 

RefreshRates();
if(OrderType()==OP_SELL && OrderMagicNumber()==mnum
bool sellclose = OrderClose(OrderTicket(),OrderLots(),Ask,3,YellowGreen);
if (sellclose)
{
PlaySound("money.wav");
}
else
{
Print("Ошибка : ",Error(GetLastError()));
PlaySound("timeout.wav");
}

このデザインで、注文を閉じた後、最初に「timeout.wav」、閉じる注文の数と同じだけ「no error」(2つの注文を閉じた場合、「no error」は2回ポップアップするなど)が鳴り、その後「money.wav」が聞こえる理由を教えていただけませんでしょうか?面白いのは、これがショートトレードの場合だけで、ロングトレードの場合はすべてうまくいくことです。何がトリックなのか、どうすれば直るのか、誰が知っているのか。

 
Dimoncheg писал(а)>>

RefreshRates();
if(OrderType()==OP_SELL && OrderMagicNumber()==mnum
bool sellclose = OrderClose(OrderTicket(),OrderLots(),Ask,3,YellowGreen);
if (sellclose)
{
PlaySound("money.wav");
}
else
{
Print("Ошибка : ",Error(GetLastError()));
PlaySound("timeout.wav");
}

このデザインで、注文を閉じた後、最初に「timeout.wav」、閉じる注文の数と同じだけ「no error」(2つの注文を閉じた場合、「no error」は2回ポップアップするなど)、そして「money.wav」が聞こえる理由を教えていただけませんでしょうか?面白いのは、これがショートトレードの場合だけで、ロングトレードの場合はすべてうまくいくことです。何がトリックなのか、どうすれば直るのか、誰が知っているのか。

ブラケットって、クローズドならファーストの後じゃないの?

if(OrderType()==OP_SELL && OrderMagicNumber()==mnum)

この線がなぜか落ちてくる。

 
Dimoncheg >> :

RefreshRates();
if(OrderType()==OP_SELL && OrderMagicNumber()==mnum
bool sellclose = OrderClose(OrderTicket(),OrderLots(),Ask,3,YellowGreen);
if (sellclose)
{
PlaySound("money.wav");
}
else
{
Print("Ошибка : ",Error(GetLastError()));
PlaySound("timeout.wav");
}

このデザインで、注文を閉じた後、最初に「timeout.wav」、閉じる注文の数と同じだけ「no error」(2つの注文を閉じた場合、「no error」は2回ポップアップするなど)が鳴り、その後「money.wav」が聞こえる理由を教えていただけませんでしょうか?面白いのは、これがショートトレードの場合だけで、ロングトレードの場合はすべてうまくいくことです。何がトリックなのか、どうすれば直るのか、誰が知っているのか。


最初の条件付き「if」演算子の条件は、それに続く次の演算子(次の行)にのみ影響します。

その他は、注文がクローズされることなく実行されます。 つまり、オーダーを閉じるコマンドがなくても、プレイサウンドのいずれかが動作します。

正しくはこうです。

  RefreshRates();
  if(OrderType()==OP_SELL && OrderMagicNumber()== mnum) 
  {
     bool sellclose = OrderClose(OrderTicket(),OrderLots(),Ask,3,YellowGreen);  
     if ( sellclose) 
        PlaySound("money.wav");
     else 
     {
        Print("Ошибка : ", Error(GetLastError()));
        PlaySound("timeout.wav");  
     }
  }
 
infinum13 >> :

最初のifの後に括弧が閉じていませんか?

if(OrderType()==OP_SELL && OrderMagicNumber()==mnum)

この線はなぜか閉じない。

Closes、これは私が偶然に削除された、そうでなければコンパイルされません、 if(OrderType()==OP_SELL && OrderMagicNumber()==mnum then falls out, but works trick on short and long transactions, and error "No error" with sound "timeout." msgstr "タイムアウト。wav "はショートトレードでのみ動作し、ロングトレードでは問題なく動作します、同じ括弧があり、すべて同じです