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

 
初心者の皆様へここで議論されているいくつかの質問は、非常に具体的で、本当にヒントとヘルプに値するものです。しかし、いくつかの、まあ、率直に言って、いくつかのEXPERTライターがMCLの教科書を読んでさえいないプログラミングを開始するという事実から生じる。HINT: チュートリアル(5 mb)をダウンロードして読めば、フォーラムからの回答を待つ必要はなく、頭の中に入っているはずです。
 
costy_ >> :

保存された表示パラメータは、テンプレートの初期化時に一度だけインジケータに「入力」され、その後「完全に独立する」/。

変更したインジケータパラメータは全てテンプレートに保存されますので、インジケータパラメータを変更した場合は、テンプレートを再保存してください。


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

 

mazepa 2009.12.08 17:42

ANSWER: on the CODE!

もし私がこのアルゴリズムを理解していれば、設定した時間に買い(売り)を建て、価格が反対方向に10pips以上通過していれば、注文を閉じて反対方向に立つということになります。

クロージングには、私独自のユニバーサル機能を使っています。

//Function for all market orders in------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //すべての通貨の注文をクロス
{
if (OrderSelect(i,SELECT_BY_POS)==true) //注文が正常に選択されたら
{
if (OrderSymbol() !i) //注文が成功したら { If (OrderSymbol() !i) //注文が成功したら { If (OrderSymbol() !i)//注文が成功したら If (OrderSymbol()!=Symbol()) continue; //通貨が違う注文の 場合、検索を継続
{
switch(OrderType()) //必要な注文で、タイプ(Bue_Sell)を判断してクローズ
{
case 0:
case 1:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
}
}
}
}
return;
}
これで、反対方向に開く前に、_CloseAllOrder()と記述するだけでよいわけです。

 


友よ、私はただ学んでいるだけだ。プログラムの中身は見ないで、プログラムのバグを見つけるのに協力してください。

int start()
{
switch(CurrentState)
{
case STATE_SHORT:
MyOrderTicket =OrderSend(Symbol(), OP_SELL, Lots, Bid, 1, 0, 0,NULL, 1, 0, Red);
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if (オーダーモディファイ(OrderTicket(),OrderOpenPrice(),Bid+90*ポイント,Bid-Profit1*ポイント,0,Green) ==true)
{CurrentState=STATE_1;
break;
}
case STATE_1:
OrderSelect(MyOrderTicket,SELECT_BY_TICKET);
if(Ask <= OrderTakeProfit())
{CurrentState=STATE_SHORT;
break;
}
if(Bid >= (OrderOpenPrice()+Profit1*Point)
{CurrentState=STATE_SHORT;
break;
}
}
//----
return(0);
}


エラーは以下の通りです。\左括弧のバランスが 悪い。どこにエラーがあるのか?









 
Klinskih >> :

友よ、私はただ学んでいるだけだ。プログラムの中身は見ないで、プログラムのバグを見つけるのに協力してください。

了解です。

                    if(Bid >= (OrderOpenPrice()+ Profit1*Point)

が必要です。

                    if(Bid >= OrderOpenPrice()+ Profit1*Point)



 

各メモリセルに書き込みを行わずに1次元配列を宣言する方法(可能かどうか)

  ии[1]=ExtMapBuffer1[0]; ии[2]=ExtMapBuffer2[0];  ии[3]=ExtMapBuffer3[0]; 

が、1次元の数列によって

  ии[3]={ExtMapBuffer1[0],ExtMapBuffer2[0],ExtMapBuffer3[0]} 

それとも一次元配列は数値と論理定数のみなのか!!!?

 
TheXpert >> :

了解です。

>> しなければならない。



ありがとう、友よ!

 
future >> :

もう1つ質問です。If (OrdersTotal()==0) this...未決済注文の数がゼロの場合...では、その日の注文数がゼロの場合はどうなるのでしょう。

OrdersDayTotalのようなものはないのでしょうか?

いいえ、しかし、我々は常に独自の関数を書くことができます)

int OrdersDayTotal(string Symb)
 {
int cnt,
OrdersDayTotal=0,
Time0=iTime(NULL,PERIOD_D1,0);

for( cnt=0; cnt<OrdersTotal(); cnt++)
   {
   OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES);
   if(OrderSymbol()== Symb && OrderType()<2)
      {
      if(OrderOpenTime()> Time0) OrdersDayTotal++;
      }
   }
for( cnt=0; cnt<OrdersHistoryTotal(); cnt++)
   {
   OrderSelect( cnt, SELECT_BY_POS, MODE_HISTORY);
   if(OrderSymbol()== Symb && OrderType()<2)
      {
      if(OrderOpenTime()> Time0) OrdersDayTotal++;
      }
   }
return( OrdersDayTotal);
 }

指定されたシンボルに対して、本日開始された買い注文と売り注文をカウントします。未決済の注文はありません。

if(OrdersDayTotal(Symbol())==0){...}。

というような)

 
Stepan241 >> :

マゼパ 2009.12.08 17:42

ANSWER: オンCOD!

アルゴリズムを理解すると、設定した時間に買い(売り)を建て、価格が反対方向に10pips以上通過したら、注文を閉じて反対側に行くということです。

自分で作ったユニバーサル機能を使って閉じています。

//Function to close all market orders in window --------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //全通貨の全注文を取り出す。
{
if (OrderSelect(i,SELECT_BY_POS)==true) //注文が正常に選択された場合
{
if (OrderSymbol()!=Symbol()) continue; //注文の通貨が誤っている場合、検索を続行します。
{
switch(OrderType()) //必要な注文が出されたら、そのタイプ(Bue_Sell)を定義して閉じる
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
case 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
を返します。
}
そこで、今度は逆に開く前に_CloseAllOrder() を書けばいいのです


この機能は爆弾です......数ページで終わりました。 ありがとうございました。
 
Stepan241 >> :

マゼパ 2009.12.08 17:42

ANSWER: オンCOD!

アルゴリズムを理解すると、設定した時間に買い(売り)をオープンし、価格が反対方向に10pips以上動いた場合、注文を閉じて反対方向に動きます。

クロージングには、私独自のユニバーサル機能を使っています。

//Function to close all market orders in window --------------------------------------------------------------------------------
void _CloseAllOrder()
{
for(int i=0; i<OrdersTotal(); i++) //全通貨の全注文を取り出す。
{
if (OrderSelect(i,SELECT_BY_POS)==true) //オーダーが正常に選択された場合
{
if (OrderSymbol()!=Symbol()) continue; //注文の通貨が誤っている場合、検索を続行します。
{
switch(OrderType()) //必要な注文が出されたら、そのタイプ(Bue_Sell)を定義して閉じる
{
case 0:OrderClose(OrderTicket(),OrderLots(),Bid,2);break;
case 1:OrderClose(OrderTicket(),OrderLots(),Ask,2);break;
}
}
}
}
を返します。
}
そこで、今度は逆に開く前に_CloseAllOrder() を書けばいいのです


この機能は爆弾です......数ページで終わりました。 ありがとうございました。