エラー番号6 - ページ 7

 
<br / translate="no">それが生き方であり、あなたがやっていることは鉄の強さを試していることなのです。


新バージョンのEAに関する投稿をご覧ください。アイアンはエキスパートごとに1秒ずつ与えられるようになった。一向に良くならない。
そして、リクエストがキューに入ることを約束された。
 
もちろん、2番目の方法は正しいのですが、returnの代わりにSleep()を30秒間使用すればよいのです。


ここで、Roshが提案したバリエーションを紹介します。エラーは残っています。

double dStopLoss;
int nHoursToHold;

datetime timePrev = 0;

int nSlip = 5;

double dLotSize = 0.1;

int nMagic = 0;

//////////////////
int init ()
{
	timePrev = 0;

	dStopLoss = 110 * Point;
	nHoursToHold = 1;
	
	if(Symbol() == "EURUSD")
		nMagic = 1;
	else if(Symbol() == "EURJPY")
		nMagic = 2;
	else if(Symbol() == "USDCHF")
		nMagic = 3;
	else if(Symbol() == "GBPUSD")
		nMagic = 4;
	else if(Symbol() == "GBPJPY")
		nMagic = 5;
	else if(Symbol() == "GBPCHF")
		nMagic = 6;
	else if(Symbol() == "USDJPY")
		nMagic = 7;
	else if(Symbol() == "AUDUSD")
		nMagic = 8;
	else if(Symbol() == "EURGBP")
		nMagic = 9;
	else if(Symbol() == "USDCAD")
		nMagic = 10;
	else if(Symbol() == "EURCHF")
		nMagic = 11;
	else if(Symbol() == "EURAUD")
		nMagic = 12;
		
//	timePrev += nMagic;	// Open nMagic seconds after the new bar

	return(0);	
}

// ------

int deinit()
{
	return(0);
}
// ------
int start()
{
	if(Bars < 5)
		return(0);
	
	// The previous bar just closed
	bool bIsBarEnd = false;
	if(timePrev != Time[0]) 
		bIsBarEnd = true;
	timePrev = Time[0];
	
	if(!bIsBarEnd)
		return(0);

	// ------
	
	int nSignal = GetSignal();

	if(nSignal == OP_BUY) 
		Buy();
	else if(nSignal == OP_SELL) 
		Sell();

	for(int nCnt = OrdersTotal() - 1; nCnt >= 0; nCnt--)
	{
		OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES);

		if(OrderMagicNumber() == nMagic)
		{
			if(CurTime() - OrderOpenTime() > (nHoursToHold - 1) * 60 * 60)
			{
				if(OrderType() == OP_BUY)
					OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
				else if(OrderType() == OP_SELL)
					OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);
					
				Sleep(10);
			}
		}
	}

	return(0);
}
// ------

void Sell()
{
	if(AccountFreeMargin() < 500)
		return;

	dLotSize = GetLotSize();

	int nResult = OrderSend(Symbol(), OP_SELL, dLotSize, Bid, nSlip, Bid + dStopLoss, 
		0, "Friday", nMagic, 0, OrangeRed);

	if(nResult == -1)
	{
		int nError = GetLastError();
		Alert(Symbol() + ", " + nError);
	}

Sleep(10);
}
// ------
void Buy()
{
	if(AccountFreeMargin() < 500)
		return;

	dLotSize = GetLotSize();

	int nResult = OrderSend(Symbol(), OP_BUY, dLotSize, Ask, nSlip, Ask - dStopLoss, 
		0, "Friday", nMagic, 0, Aqua);

	if(nResult == -1)
	{
		int nError = GetLastError();
		Alert(Symbol() + ", " + nError);
	}

Sleep(10);
}
// ------

double GetLotSize()
{
	double dLot = 0.1;
	
	return(dLot);
}

// ------

int GetSignal()
{
	int nSignal;
	if(MathMod(Hour(), 2) == 0)
		nSignal = OP_BUY;
	else
		nSignal = OP_SELL;
		
	return(nSignal);
}

// ------



 
このポイント
if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); else if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed)
となります。


買い注文を 決済した(最初の条件を満たした)場合のOrderType()は何か 2番目の条件のチェックを落としてみる、つまり私はいつもこのように書いています。 。


if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed) となる。
 
まあ、いつものようにロッシュが正しいようです。Sleep(0)を設定しましたが、すでに2人のエキスパートがエラーを出しています。Sleep(100)を入れると、4人のエキスパートは動作しますが、5人目を追加するとエラーが表示されます(5つのウィンドウ、5つの通貨、それぞれに1人のエキスパート)。

Sleep(200)を設定したところ、5人のエキスパートが乗りました(ほとんど、時々まだエラーが出ます)。この方法では、5つのExpert Advisorをエラーなしで取得することはできません)。

今のところ、エラー138と 139についてのみお話します。

まだ、開発者からのヒントを待っているところです。

Roshさん、スペシャルサンクスです。私はあなたのスリップに対するアプローチが好きではありませんが。
 
そんな瞬間<br / translate="no">
if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); else if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed)
となります。


買い注文を決済した場合(第一条件を満たした場合)のOrderType()とは?
2つ目の条件のチェックを落としてみる、つまり、いつもこのように書いています。

if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed) となる。



はい、おそらく。私はこのifの後に間を置いたが、誰が彼らを知っている、マルチタスクの人。

試してみました。体調は良くなったが、まだエラーはある :)
 
<br /> translate="no">。
Rosh、特別感謝します。ただし、あなたのスリップに対するアプローチは好きではありません。


まあ...lifeも最高とは言えない。 いつかは死ぬということがあるんです。私も好きではないのですが、Developerはバージョンを変えません。:)
 


Rosh, тебе отдельное спасибо, хотя твой подход со слипом мне не нравится.


まあ...lifeも最高とは言えない。いつかは死ぬということがある。私も好きではないのですが、Developerはバージョンを変えません。:)


ええ、APIも出しませんしね :)しかし、いつでも回避策を見つけることができます :))
Sleep() を使うなどして :)))しかし、一般的には、これは深い発言です。もっとデベロッパーに応募したほうがいい。出ることもあるらしいです :))))
 
皆さんとお話がしたいのですが?=)))
だって、4ページもそんな議論をしているのに、私は黙っているんですもの(飲み会の日=)・・・。


エラーについて
エラー番号6 - 貿易サーバーとの接続がありません - 接続不良が原因の可能性があります。Data Over Voiceの専用線を引いているのですが、電話を取ると速度が極端に落ちるんです。だから、こういう時にこそ、このエラーが発生するのです。

エラー#139 - 注文がロックされています - 単なる不具合だと思います:ターミナルがこのポジションで何かを行い、EAがその瞬間にそれを扱うことができないようなものです。わからない、他の説明が見つからない(

Error #138 - requote - also might be caused by connection.エラー時のチャンネル負荷を見る。

これらはすべて、純粋な憶測ですが。私は長い間、開発者にエラーの正常な説明と対応方法の指示を求めましたが、彼らはいつか来るだろうと言いました;)。



Sleep() についてですが、これを使うのは常に愚かなことです。しかし、取引と取引の間に間を置く方がよいでしょう。trade_lib&info_lib.mqhのライブラリを完成(リメイク)させているところです。これらの疑問はすべてそこで(部分的に)解決されます。エラーはかなり少なくなるはずです。


今のところ、私の考えは以上です。他に何か思いついたら、お伝えします ;)
 
<br/ translate="no">お二人とおしゃべりをすることはできますか?=)))
4ページも議論されているのに、私は無言(飲み会の日=)...


はい、騒いでしまいましたが...。:)


エラーについて エラー番号6 - 貿易サーバーとの接続がありません - 接続不良が原因の可能性があります。Data Over Voiceの専用線を引いているのですが、電話を取ると速度が極端に落ちるんです。そのため、まさにこのような瞬間にこのエラーが発生します。 。



専用線にした、品質が良い。繰り返しになりますが、接続不良では、複数のEAが同時に何かを行うたびにエラーが発生する理由を説明できません。メガビット(理論上)のチャンネルで!


エラー番号139 - 注文がロックされています - 端末がこの位置で何かを行い、Expert Advisorがその時点でそれを扱うことができないような、単なる不具合のように思われます。わからない、他の説明が見つからない ( )


同意見です。あとはWHEREを解明するためのトリフが残っているだけです。専門家はとてもシンプルなので、単にそのような場所がないだけなのです。もちろん、見えないのは私の方かもしれませんが。(ヘラジカが見えますか?いいえ、見えません。でも、彼は今います。)


エラー番号138 - requoteは、接続が原因である可能性が高いです。エラー時のリンク負荷確認


どうだろう。モスクワで専用回線で2つのEAを同時に取引できないと、全く取引できない。

リクオートを考えて いたんです。例えば、価格が逃げないようにするためには、最低何枚のスリップを入れればいいのか。5点?10?15と入力してもエラーは出ません。 。


これらはすべて、純粋な憶測ですが。私は長い間、開発者にエラーの正常な説明と対応方法の指示を求めましたが、彼らはいつか来るだろうと言いました ;)


そして、市場は完璧だと言われていますハ!


Sleep()についてですが、これを使うのは常に愚かなことです。しかし、取引と取引の間に間を置く方がよいでしょう - LastTradeTimeを使用してください。私はtrade_lib&info_lib.mqhライブラリを仕上げ(作り直し)ています - wikiに投稿してリンクを渡します。これらの疑問はすべてそこで(部分的に)解決されます。エラーはかなり少なくなるはずです。


これらのエラーは、OrderSendをループさせて、マイナス1以外の値を返すようにすれば、「直接」回避できることをすでに書きました。しかし、問題は原理的に、どうなるのか?一度に5~6種類のエラーが出ます。今日のために回避策を描いても、明日になれば想定外のところに飛び出してくる。デモで取引する場合は、この問題を解決した方がいいと思います。損切りは後ほど。


今のところ、私の考えは以上です。もし何か思いついたら、お伝えします ;)


ありがとうございます :)このExpert AdvisorをEAで動かしてみてください。何かアイデアが浮かぶかもしれません。あるいは、デモでトレードしている場合、EAに同様のアラートを入れるか......誰にもわからない。もし、すべてのディールを開けなかったら?
 
私もよくそういうエラーが出ます。そして、私もアルパリに座っています。他の証券会社で試してみたらどうだろう?もしかして、MTのせいではない?