どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1101

 
AlexeyVik:
チケットはゼロに等しいことができますか?

OrderSend()に関するドキュメントより。

.......

戻り値

取引サーバーが注文に割り当てたチケット番号、または失敗した場合は -1 を返します。エラー情報を取得するには、GetLastError() を呼び出します。

 
Sepulca:

OrderSend()に関するドキュメントより。

.......

戻り値

トレードサーバーが注文に割り当てたチケット番号、または失敗した場合は -1 を返します。エラー情報を取得するには、GetLastError()を呼び出します。

私が言いたいのは、まさに...。テスターでもチケット番号が0になることはなく、エラーになると0より小さい-1が返されます。そこで、どのような場合にチケットが0になるのか聞いてみました...条件には >= つまり、以上と書いてあるから......。
 
h-l


mt4で、選択した時間枠でボラティリティをカウントするインジケーターがあれば教えてください。

例えば、days( H-L )n の場合、n-日数。

 
lempopo:


MT4で、選択した時間枠でボラティリティを計算するインジケーターがあれば教えてください。

例えば、days( H-L )n の場合、n-日数。

ボラティリティでしょうか。

"ボラティリティは、価格変動の傾向を示す統計的指標"- 定義としてはそんな感じです。

ヒストリカル・ボラティリティは、金融商品の価値に関する過去のデータに基づいて計算された、一定期間の価値の標準偏差に等しい値です。

そして、端末のボラティリティの指標として、標準偏差 - StandardDeviationが ある。

 
AlexeyVik:
そういうことなんだ...。テスターでもチケット番号が0になることはなく、エラー時には0より小さい-1が返されます。条件には >= つまり、以上と書いてあるから......。

チケットですべてがclear.IはOrderTupy分割でも最後のオープンオーダー(チケットによると)を決定する関数を持っています。質問は次のとおりです。complimatorはエラーを出さないとテスターでエラーがありませんが、注文が変更されていません...なぜ?

if(OrderSend(Symbol(),OP_BUYLIMIT,0.10,Ask,Slippage,0,0, "first buy order set",Magik,0)== true) とする。

{
TicketB = FindLastTicket(OP_BUY)。
if(TicketB >0)
{
SL = priseBuy +NormalizeDouble(takeP1 * Point,Digits)です。
TP = priseBuy - NormalizeDouble(stopL1 * Point,Digits);
if(OrderModify(TicketB,priseBuy,SL,TP,0)== true)
Comment("hooraaaaaah");
}
 

無料で試せる小さなスクリプトを書いてくれるウィザードはどこにいるのでしょうか?

 
burbur87:

私はOrderTupy.anyesでも最後のオープンオーダー(チケットで)を決定する機能を持っている質問はこれです:コンプリメータはエラーを出さず、テスターではエラーがありませんが、注文は変更されません...なぜ? 私のエラーを理解できない場合は、私はそれを実現することはできません


if(OrderSend(Symbol(),OP_BUYLIMIT,0.10,Ask,Slippage,0,0,"первый ордер бай установлен",Magik,0)== true)
      { 
          TicketB = FindLastTicket(OP_BUY);
          if(TicketB >0)
          {
             SL = priseBuy + NormalizeDouble(takeP1 * Point,Digits);
             TP = priseBuy - NormalizeDouble(stopL1 * Point,Digits);
             if(OrderModify(TicketB,priseBuy,SL,TP,0)== true)
             Comment("урааааааа");
            
          }

テキスト入力ウィンドウの上のパネルにあるSRCボタンを使用します。

基本的には、コンパイラがエラーを投げないからと言って、何の意味もありません。ログにエラーがないか確認し、条件やパラメータを印刷する必要があります。これらは一般的な推奨事項です。

OrderSend() 関数は、チケット番号を返すか、エラーの場合は -1 を返します。データ型、特にbool型のドキュメントを注意深く読めば、falseの値は0であり、それ以外はtrueであることが理解できるだろう。したがって、OrderSend()関数がどのように終了しても、boolean値は常にtrueとなる。

上記の例では、チケット注文は OrderSend() で返されるため、追加の関数を使って検索する必要はありません。

指値注文は、現在の価格では発注されません。そのような命令で開いてはいけないとしたら、どのような改造をしたことになるのでしょうか。

 
virginvl:

無料で試せる小さなスクリプトを書くウィザードはどこにあるのですか?


どのフォーラムでも、無料で書き込むためのオファーを持ついくつかのトピックで。人は書き方を学ぶ・・・。
 
virginvl:   無料で試せる小さなスクリプトを書くためのウィザードはどこにありますか?

ウィザードは、MetaEditor:File --> Createにあります。スクリプトはどうすればいいのか?さあ、一緒に書こう!!!!順を追って説明しますと...。


 
AlexeyVik:

テキスト入力ウィンドウの上のパネルにあるSRCボタンを使用します。

要するに、コンパイラがエラーを出さないということは、何の意味もないのです。ログにエラーがないか確認し、条件やパラメータをプリントしておくとよいでしょう。これらは一般的な推奨事項です。

OrderSend() 関数は、チケット番号を返すか、エラーの場合は -1 を返します。データ型、特にbool型のドキュメントを注意深く読めば、falseの値は0であり、それ以外はtrueであることが理解できるだろう。したがって、OrderSend()関数がどのように終了しても、boolean値は常にtrueとなる。

上記の例では、チケット注文は OrderSend() で返されるため、追加の関数を使って検索する必要はありません。

指値注文は、現在の価格では発注されません。そのような命令で開いてはいけないとしたら、どのような改造をしたことになるのでしょうか。


しかも、この注文は、後にグリッドを 開くフラグのようなものだった......。

void OnTick()

{

if(trend == 1)

Comment("7ヶ月以内に、買いのトレンドになる")。

else Comment("トレンドは7ヶ月間ダウン");

double priseBuy = FindLastOrderPrise (OP_BUY);

double priseSel = FindLastOrderPrise (OP_SELL);


double frezeelevl = MarketInfo(OrderSymbol(),MODE_FREEZELEVEL);

rsi = iRSI(Symbol(),PERIOD_D1,7,PRICE_CLOSE,0)。

trend = WhatTrend()。

if (CountTrades() == 0)

{

if(trend == 1 && rsi <=30)

{ double vtoroilimt = NormalizeDouble (priseBuy - Vtoroilimit * Point,Digits);

double tretiilimit = NormalizeDouble (priseBuy - Tretiilimit * Point,Digits);

double hetvertiilimit = NormalizeDouble (priseBuy - Hetvertiilimit * Point,Digits);

double pervstop = NormalizeDouble (priseBuy + Pervstop * Point,Digits);

double vtoroistop = NormalizeDouble (priseBuy + Vtoroistop * Point,Digits);

if(OrderSend(Symbol(),OP_BUYLIMIT,0.04,Ask,Slippage,0,0, "first buy order set",Magik,0)== true)とする。

{

OrderSend(Symbol(),OP_BUYLIMIT,0.06,Ask-vtoroilimt,Slippage,0,0,", Magik,0);

OrderSend(Symbol(),OP_BUYLIMIT,0.08,Ask-tretiilimit,Slippage,0,0", Magik,0);

OrderSend(Symbol(),OP_BUYLIMIT,0.10,Ask - hetvertiilimit,Slippage,0,0,",Magik,0);

OrderSend(Symbol(),OP_BUYLIMIT,0.02,Ask-pervstop,Slippage,0,0,", Magik,0);

OrderSend(Symbol(),OP_BUYLIMIT,0.01,Ask-vtoroistop,Slippage,0,0,", Magik,0);

}

}// if(trend == 1 && rsi <=30)

else if(trend == 2 && rsi >= 70)

{ double vtoroilimt = NormalizeDouble (priseSel + Vtoroilimit * Point,Digits);

double tretiilimit = NormalizeDouble (priseSel + Tretiilimit * Point,Digits);

double hetvertiilimit = NormalizeDouble (priseSel + Hetvertiilimit * Point,Digits);

double pervstop = NormalizeDouble (priseSel - Pervstop * Point,Digits);

double vtoroistop = NormalizeDouble (priseSel - Vtoroistop * Point,Digits);

if(OrderSend (Symbol(),OP_SELLLIMIT,0.04,Bid,Slippage,0,0, "first order is set",Magik,0)== true)を選択。

{

OrderSend(Symbol(),OP_SELLLIMIT,0.06, Bid + vtoroilimt,Slippage,0,0,",Magik,0) を実行します。

OrderSend(Symbol(),OP_SELLLIMIT,0.08, Bid + tretiilimit,Slippage,0,0,",Magik,0) を実行します。

OrderSend(Symbol(),OP_SELLLIMIT,0.10,Bid + hetvertiilimit,Slippage,0,0,", Magik,0)を実行。

OrderSend(Symbol(),OP_SELLSTOP,0.02,Bid+pervstop,Slippage,0,0,", Magik,0);

OrderSend(Symbol(),OP_SELLSTOP,0.01,Bid+vtoroistop,Slippage,0,0,",Magik,0)。

}// if(OrderSend(Symbol(),OP_SELLLIMIT,0.10,Bid,Slippage,0,0, "first order is set",Magik,0)== true)


}// else if(trend == 2 && rsi >= 70)

}// if(CountTrades() == 0)


}

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

コードは多くの苦悩とともに成長します。しかし、注文の修正なしでは、どこにもありません。私は最初の注文を修正します。