voidOnTick()
{
// Получим значение индикатора
dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.// Если нет открытых ордеров, то входим в условиеif(CountOrders()==0)
{
// Если появился сигнал на покупку, то откроем ордер на покупкуif(bSignalBuy() == true)
vOrderOpenBuy();
// Если появился сигнал на продажу, то откроем ордер на продажуif(bSignalSell() == true)
vOrderOpenSell();
}
}
という信号で、このようになります。
bool bSignalBuy()
{
if (openPrice > Open[1] && openPrice < Close[1]) //Open[1] и Close[1]- цены открытия и закрытия каждого бара текущего графика.return(true);
return(false);
}
//+-----------------------------------------------------------------------------------------------+//| Функция поиска сигнала на продажу |//+-----------------------------------------------------------------------------------------------+bool bSignalSell()
{
if(openPrice< Open[1] && openPrice > Close[1])
return(true);
return(false);
}
みんな、どう考えても、最後にチェックしたときのループインデックスの値を覚えていなければ、利用可能なすべての履歴をループしていることになる。そして、その数が多ければ多いほど、ループが長くなる。
よくわからない
私は、収益性をチェックする同様の設計のEAを他に2つ持っていますが、どちらも15~20分以内にテスターで全履歴をパスしています。
よくわからないのです。
同じデザインのロットチェックのEAを他に2つ持っていますが、どちらもテスターで15~20分で全編パスします
まあ、あなた次第なんですけどね。反論するつもりはない。
順序を変更する オーバーライド
同様に
ええ、どんなペアでも。
AUD/USDはM15を使用しています。
御社のインジケータ(添付)でも同じ問題が発生しました。
このことが処理を遅くしていることが消去法でわかりました。
結果をキャッシュする(変数で)。また、注文のリストが変更された場合は、キャッシュを更新する必要があります。そして、何も変化がなければ、キャッシュの値を返すだけでよい。
みんな、どう考えても、最後にチェックしたときのループインデックスの値を覚えていなければ、利用可能なすべての履歴をループしていることになる。そして、数が多ければ多いほど、ループに時間がかかる。
常に停電などがあることを想定しておく必要があります。
履歴にあるEAがいつでも設定され、実行できること。
常に停電などのことを考えなければならない...。
話に出てきたアドバイザーは、いつでも設定し、働けるようにしておく必要があります。
VPSがあるので、明かりをつけることができます。
なぜ問題があるのか、おおよそ理解できました。
さて、次のようにしたいと思います。
クリーンアップ void OnTick
という信号で、このようになります。
ここでopenPriceがこのように表現しようと すると、エラーが出ます。
型変換によるデータ消失の可能 性
void関数を正しく使用していますか?
drawとdeleteでボタンを押した後、マウスカーソルに線が追従するようにしました。
もしかして、別の方法があるのでは?CPUクーラーがうるさくなってきた :)
常に停電などのことを考えなければならない...。
歴史に残るアドバイザーが、いつでも設定され、働いているはずです。