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

 
VladislavVG:

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

私はプログラマーではありませんが、簡単なものなら自分で書くこともあります。複雑なロボットをどの言語で書く必要もなく、全く問題ない。機能の一部をDLLとして実行し、μlから呼び出すのではなく、独自のインターフェースでロボットを書きたい。幸いなことに、さまざまなビジュアル言語があり、労せずしてこれを実現することができます。
 
lottamer:


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

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

.

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

プリントはゼロ...。


この関数はローカル変数を使っているので、別の関数として何度も実行したり、1つの関数で2つのループを次々に作ったり、Aをグローバル変数として 宣言したりしてはいけません。私がタバコを買ってくるから、やってみて、うまくいかなかったら、帰ってきたらノックして、一緒に考えましょう。
 
Desead:

私はプログラマーではありませんが、簡単なものなら自分で書くこともあります。どんな言語でも簡単なロボットを書きたいのですが、全く問題ありません。メタトレーダーを呼び出すことなく、独自のインターフェースを持つロボット全体を書き、その機能の一部をDLLに入れず、μlから呼び出したかったのです。私は、これが無理なくできるさまざまな視覚言語を発明してきました。

端末の機能(100種類以上の組み込み機能、組み込みインジケーター、プログラムインターフェース自体)を全く使いたくない場合は、単純なExpert Advisorではなく、自分で設計した端末を使用することになります。
 
rigonich:

この関数はローカル変数を使っているので、別の関数として何度も実行したり、1つの関数で2つのループを次々に作ったり、Aをグローバル変数として宣言したりしないようにしましょう。私がタバコを買いに行くから、その間やってみて、もし失敗したら、私が戻ってきたらノックして、一緒に考えましょう。


IS!!小さなミスがありました...プリントされるべきはTicketではなくLastClosetPoz()とSec_LastClosetPoz()でしたね。

私のバージョンは、最もエレガントではないと思いますが......。1つの関数に2つのループを入れるにはどうしたらいいのでしょうか?どうしよう・・・やってみたらエラーになった・・・もういいや!って感じです。(面倒でなければ-見せてください-私の役に立つと思います。そうでなければ-まあ、気にしないでください)とにかくありがとうございました。

しかし、35回目のクローズドトランザクションのチケットを把握する必要があるとしたら...私のアプローチに問題があるような気がします :))))アハハハ

は、まだ目処も立っていない......せいぜい3つくらいか......。

 
rigonich:

この関数はローカル変数を使っているので、別の関数として何度も実行したり、1つの関数で2つのループを次々に作ったり、Aをグローバル変数として宣言したりしないようにしましょう。タバコを買ってくるから試してみて、うまくいかなかったら帰ってきたらノックして、一緒に考えよう。


を挿入するまではうまくいきました。

if (OrderSelect( (LastClosetPoz (),SELECT_BY_TICKET)==true))Print("Stop loss", OrderStopLoss();

泣き言

')'- wrong parameters count G:\Program_Files_2MT4-demo︵000.mq4 (57, 60)

何がしたいのかわからない?

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

FIGURED IT OUT

==true...です。

チュートリアルの例ではいつもそう書いてあるのに、不思議です...。

と、停止値も4桁に切り上げられた...。

 
lottamer:


IS!!小さなミスがありました...プリントはTicketではなく、LastClosetPoz()とSec_LastClosetPoz()にすべきでしたね。

私のバージョンは、最もエレガントではないと思いますが......。しかし、それは動作します... 1つの関数に2つのループを挿入する方法...どうしよう・・・やってみたらエラーになっちゃった・・・もういいや(面倒でなければ-見せてください-私の役に立つと思います。そうでなければ-まあ、気にしないでください)とにかくありがとうございました。

しかし、35回目のクローズドトランザクションのチケットを把握する必要があるとしたら...私のアプローチに問題があるような気がします :))))アハハハ

は、まだ目処も立っていない......せいぜい3つくらいか......。



int Ticket1,Ticket2;
//+------------------------------------------------------------------+
int fLastClosetPoz()
{
int Tot=OrdersHistoryTotal(),A,i;Ticket1=-1;Ticket2=-1;datetime時間=0;
if(Tot>0)
{
for(i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderSymbol()==Symbol())とする。
{
if(OrderCloseTime()>時間)
{
time=OrderCloseTime();Ticket1=OrderTicket()。
}
}
}
でなければ続ける。
}
}
Tot=OrdersHistoryTotal();A=Ticket1;time=0;
if(Tot>0)
{
for(i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderTicket()==A)continue;
if(OrderSymbol()==Symbol())とする。
{
if(OrderCloseTime()>時間)
{
time=OrderCloseTime();Ticket2=OrderTicket()です。
}
}
}
でなければ続ける。
}
}
return(0)です。
}
//+------------------------------------------------------------------+
追伸:35回目のクローズド・トレードを 決定するためには、ネストされたループ(ループの中のループ)を使用する必要があります。
 
rigonich:


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


はゼロをプリントする...動作しない...ループを一つずつ代用しているだけなのは明らかなので、これ以上掘り下げない...ボリュームは明らかに減っていない...そしてすでに動作するバージョンがあるのだ。最初のバリアントではオーダーを比較できるのに・・・ここでは2番目がどこかもわからないし・・・1番目がゼロになってるし・・・。

このコードも、ちょっとした工夫で、明らかに脳を発達させることができました。ありがとうございます。

 
lottamer:


を挿入するまではうまくいきました。

if (Print("Stop loss", OrderStopLoss());)Print("Stop loss", OrderStopLoss();

泣き言

')'- wrong parameters count G:\Program_Files_2MT4-demo︵000.mq4 (57, 60)

何がしたいのかわからない?


また45、このフォームではOrderSelect(LastClosetPoz (),SELECT_BY_TICKET)はデフォルトで保留とオープンオーダーから選択し、このオーダーは存在しない。OrderSelect(LastClosetPoz (),SELECT_BY_TICKET, MODE_HISTORY) と入れてください。
 
lottamer:


はゼロをプリントしている...機能していない...掘り下げる必要はない、サイクルが1つずつ置き換えられているだけであることは明らかだからだ...量は明らかに減っていない...そして我々はすでに機能している変種を持っているのだ。さらに、最初のバリアントでは - 私は順序を比較することができます...そしてここで私は第二がどこにあるか見ることができない...と最初のゼロです...。

このコードも、ちょっとした工夫で、明らかに脳を発達させることができました。ありがとうございます。


関数呼び出しの 後に、Ticket1 と Ticket2 変数を表示するだけです。
 

リゴニッチ

glob.変数がどのファイルに書き込まれているか教えてください。他の端末に素早く転送できるように。