[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 620

 
lottamer:

MISTIC!!!

この方

-----------------------------------------------------------------------------


pp_sell=(-(PriceOpenLastClosePos()-PriceCloseLastPos())*100000); // EURディメンジョンの通貨用


印刷する(pp_sell)。

------------------------------------------------------------------------------------

最後の売りの取引で10%の利益があるため、本来は-10と表示されます。

が、PRINTとVARIABLEの間にDIFFICULT TIMESをいくつか挿入すると、例えば。

----------------------------------------------------------------------------


pp_sell=(-(PriceOpenLastClosePos()-PriceCloseLastPos())*100000); // EURディメンジョンの通貨用


if ( Hour()>=10 && Hour()<20 )

{

if ( Stoch_1>Stoch_2) return(0);

else {

if (注文合計()==0)

{ PlaySound("ok.wav")。

if ( GetTypeLastClosePos()==1) Print (pp_sell);

}

Print("___");

}

}

return(0)です。

}

------------------------------------------------------------------------------------

と表示され、-9と表示されます。

ひみつはなんですか?


このような場合、計算の不正確さが蓄積され、やがて重大な問題に発展する可能性があります。条件を何も変えずに 挿入したつもりでも、実際にはコンピュータに無駄な計算をさせ、条件は何も変わっていない のです。

また、PriceOpenLastClosePos()とPriceCloseLastPos()が同じ位置の値を設定していることは間違いないでしょうか?

 
rigonich:


int fLastClosetPoz()

{
int Tot=OrdersHistoryTotal(),Ticket=-1; datetime time=0;
if(Tot>0)
{
for(int i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderSymbol()==Symbol())とする。
{
if(OrderCloseTime()>時間)
{
time=OrderCloseTime();Ticket=OrderTicket()です。
}
}
}
でなければ続ける。
}
}
return(Ticket)です。
}


if(OrderCloseTime()>time) で始まる...となると、どこから出てくるかわからない...まあ、いいや...。

チケットは印刷されますが、最後の1枚だけです。2枚目のチケットはどうすれば印刷できるのかがわからないのですが?

まず、Print LastClosetPoz()と書きます。

2番目(i)を取るか?OrderSelect(2,SELECT_BY_POS,MODE_HISTORY)...?

Print LastClosetPoz(2) ?明らかな間違いだが、論理的なものだろう :)))

Ticket=OrderTicket()の行にOrderTicketの代わりにクローズドポジションの他のパラメータ ストップポジションの終値)を入れてみましたが、うまくいきません。

 
rigonich:

doubleのような正規化されていない 値を扱っている場合、計算の不正確さが蓄積され、最終的に大きな値になる可能性があります。


4行で10%もの誤差が蓄積されるなんて、コンピューターとしては太っ腹じゃないですか。:)))))))))))(多い時は1割弱)

1)クローズド・オーダーが固定で、そのすべてのパラメーターが「浮動しない」場合、何を保存する必要があるのか?

2) 出力パラメーターの計算とは全く関係のない条件であったこと。彼らはただのバリアーで、離さない、行かせない...。

3) ではなぜ、1つのEAの作品内で結果が浮くのではなく、1つのEAから別のEAへと浮くのでしょうか?

 
lottamer:


if(OrderCloseTime()>time) で始まる...となると、どこから出てくるかわからないが...まあいいか...。

チケットは印刷されますが、最後の1枚だけです。そして、penultimateはどうするのでしょうか?

take 2nd (i) ?OrderSelect(2,SELECT_BY_POS,MODE_HISTORY)...?

1.歴史からのチケット要求で作品を書いてください。- ご質問の件

最後尾を見つけるには、最新のチケット(例えば変数A)を記憶して、もう一回ループを実行してこの順番を「飛ばす」必要がある、つまり、例えば行を変えて

if(OrderSymbol()==Symbol()) からif(OrderSymbol()==Symbol()&& OrderTicket()!=A) へ、またはif(Ticket()!=A)continue行を 追加してください。

そして、私はすでに説明したように、注文インデックスは常にアカウントで閉じられたものと一致するわけではありません。 市場と保留中の注文が 一緒に考慮され、後者のものは終値を持っていないので、すべての注文は最後に閉じたものを見つけるためにループされ、最長終値で注文が調べられます。 つまり、最後に閉じた注文はインデックス3、最後が1 - 7かもしれないのです。

 
rigonich:

1.物語の最終週にチケットを要求する作品を書いてください・・・。- ご質問の件

最後尾を見つけるには、最後尾のチケット(例えば変数A)を記憶しておき、もう一回ループを実行してこの順番を「飛ばす」、つまり行を変える必要があります。

if(OrderSymbol()==Symbol()) からif(OrderSymbol()==Symbol()&& OrderTicket()!=A) へ、またはif(Ticket()!=A)continue行を 追加してください。


リーディングクエスチョン

what for(int i=0;i<OrdersHistoryTotal();i++)例えば、2回しか取引しないのに、OrdersHistoryTotal()が必要なのでしょうか?

こんなのはどうでしょう

or(int i=0;i<2;i++) ?(チェック済み-チケット=-1...)ンダ...ツマンネ...:)))

 
lottamer:


リーディングクエスチョン

という行がありますが、なぜ for(int i=0;i<OrdersHistoryTotal();i++) が必要なのでしょうか?例えば、2回しか取引しないのに、OrdersHistoryTotal()が必要なのでしょうか?

こんなのはどうでしょう

or(int i=0;i<2;i++) ?(チェック済み-チケット=-1...)ンダ...ツマンネ...:)))


前のコメントを書き終えました、ご覧ください。また、現在の商品で最後に決済された取引を探すコードも書きました。
 
例えばC/C++でロボットを書こうと 思ったら助けてください。書くのは問題ないのですが、メタトレーダーとの接続はどうすればいいのでしょうか?見積もりを取る方法と、売買シグナルを送り返す方法を教えてください。
 
Desead:
例えばC/C++でロボットを書こうと思ったら助けてください。書くのは問題ないのですが、メタトレーダーとの接続はどうすればいいのでしょうか?見積もりを取る方法と、売買シグナルを送り返す方法を教えてください。

他の言語は知りませんが、DLLとしてコードを書き、MQLプログラムから呼び出すことは可能かもしれません。
 
rigonich:

前コメントを終了しましたので、ご覧ください。


そうですね、ループ内の時間と一般的な時間の比較がある理由がわかりました......。

A "をマークし、"A "を除外するという論理も理解できますが、まず、この "A "を固定できる場所のすべてのオプションを私は試しました - それでもアドバイザーは私に最後のチケットではなく、最後を返します。

.

2つのループ(2つの関数)を入力しました。1つ目はあなたのオリジナル、2つ目は "A "を除いて...。を次々と走らせる。

プリントはゼロ...。

----------------------------------------------------------------------------------------------------

if ( Hour()>=10 && Hour()<20 )

{

LastClosetPoz();Sec_LastClosetPoz()。

Print ( ticket2,ticket);

}

return(0)です。

}

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

int LastClosetPoz()

{

int Tot=OrdersHistoryTotal(),Ticket=-1; datetime time=0;

if(Tot>0)

{

for(int i=0;i<OrdersHistoryTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)

{

if(OrderSymbol()==Symbol())とする。

{

if(OrderCloseTime()>時間)

{

time=OrderCloseTime();Ticket=OrderTicket();A=Ticket;

}

}

}

でなければ続ける。

}

}

return(Ticket)です。

}


//--------------------------------------------

int Sec_LastClosetPoz()

{

int Tott=OrdersHistoryTotal(),Ticket2=-1; datetime time2=0;

if(Tott>0)

{

for(int i=0;i<OrdersHistoryTotal();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)

{

if(OrderSymbol()==Symbol()&&OrderTicket()!=A))です。

{

if(OrderCloseTime()>時間2)

{

time2=OrderCloseTime();Ticket2=OrderTicket()です。

}

}

}

でなければ続ける。

}

}

return(Ticket2)です。

}

 
Desead:
例えばC/C++でロボットを書こうと思ったら助けてください。書くのは問題ないのですが、メタトレーダーとの接続はどうすればいいのでしょうか?見積もりを取る方法と、売買シグナルを送り返す方法を教えてください。

DLL - 例を参照してください。C/C++で書く方法を知っているプログラマーが、МТ配信の標準的な例題を扱えないということは、フォーラムに多くの資料があるにもかかわらず、あり得るのでしょうか?