[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 304 1...297298299300301302303304305306307308309310311...652 新しいコメント costy_ 2011.10.30 10:09 #3031 pigvin: 問題は、EAが常に注文を再開することです。つまり、買いシグナルがあると、注文を開き、利益でそれを閉じ、条件がまだ維持されていると、再び注文を開くのです。 買い注文が開いたらカウンターが+1され、カウンターが0を超えないと新しい買いが開けられず、売った後だけカウンターがリセットされるという、従来の売買カウンターで解決できると思っていたのですが。 つまり、1本のバーに信号があるが、すでに使用されている? このようにすることができます。 datetime save_time; int tf=0; старт ... if(total<1)//проверка количества ордеров { if(save_time!=iTime(0,tf, iBarShift(0,tf,Time[0]))) save_time =iTime(0,tf, iBarShift(0,tf,Time[0])); else return; ... if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("открыта позиция BUY : ",OrderOpenPrice()); else Print("Ошибка при открытии BUY позиции : ",GetLastError()); }else{ save_time =0;}// так как ошибка запретим ретурн (см. выше) costy_ 2011.10.30 10:14 #3032 Operr: こんな風に試してみてください。 if (OrderOpenTime()+2*1440*60 > Time[0]) //т.е. последнее время текушего графика а не локальное どちらにも対応できるはずです。 そのほうが納得がいく。 if (Time[0]-OrderOpenTime() >= 2*1440*60 ) Вячеслав 2011.10.30 10:43 #3033 皆さん、こんにちは。 オフトピックですみません、話題は需要です、だからここに書いています、ヒントをいただけますか?スタックしている。 実数の指数(実数含む)を初歩的な操作(+-*/%)だけで行うには?例えば、風力発電の計算機を1.2の電力に適用すると、1.24456474720739397772169154111826という結果が得られます。アルゴリズムに興味があり、言語は問わない。自分で翻訳してみる。 ZS.プログラミングのテストは何回やってもダメで、初めてこういう問題を見ました。 削除済み 2011.10.30 11:35 #3034 皆さん、こんにちは。 多くのフォーラムやGoogleの 記事を検索しましたが、答えは見つかりませんでした。 М1の2つの反対注文で取引するEAを書く ことにしました。 考え方は簡単で、小さなTPの反対注文を2つ入れておき、2番目に起動したタイマーの片方のTPがバーの数(例えば5)になったら、一時的にSLにするのです。通貨が同じ方向に動けば、2順目の一時的なSL発動時の損失は最小限に抑えられ、チャートが反転すれば、2ポジションで黒字になるという計算です。 片方のTPが発動したら、もう片方のタイマーがバーの数だけ切り 替わる」というコードの書き方がわからないのです。 現在、2つの注文を同時に行うタイマーしか持っていないが、あまり活用できていない。 PS 私は1ヶ月間この問題を解決していない、アドバイスやコードで私を助けてください:) 以下は、アドバイザーのコードです。 extern int SL=100; extern int TP=100; extern double StartLot=0.1; extern double StopLot=1.0; extern int bar_time=20; double Lot() { double lt; if(OrdersHistoryTotal()==0) return (StartLot); if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)) { if(OrderProfit()<0) { lt=OrderLots()*2; if(lt>StopLot) return (StartLot); else return (lt); } else return (StartLot); } else return (StartLot); } int start() { double lot; if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False) { int order; { lot=Lot(); order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green); order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green); } } //вот здесь должно быть что-то что является решением проблемы и связующим звеном { int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ; if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; } if ( bars >= bar_time ) OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White); } return(0); } ありがとうございました。 [ARCHIVE] Any rookie question, [アーカイブ!】どんなエキスパートやインジケーターでも無料で書きます。 [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 削除済み 2011.10.30 11:59 #3035 1本のバーではダメ!原則、反転のシグナルや市場の乱高下がない限り、このトレンドでオープンしてはいけないのです!。 costy_: つまり、1本のバーに信号があるが、すでに使用されている? こんなことができる Всеволод 2011.10.30 13:52 #3036 snail09: 皆さん、こんにちは。 オフトピックですみません、話題は需要です、だからここに書いています、ヒントをいただけますか?スタックしている。 実数の指数(実数含む)を初歩的な操作(+-*/%)だけで行うには?例えば、風力発電の計算機を1.2の電力に適用すると、1.24456474720739397772169154111826という結果が得られます。アルゴリズムに興味があり、言語は問わない。自分で翻訳してみる。 ZS.プログラミングテストは何回やっていないのか、人によっては些細なことかもしれないが、このような問題は初めて見た。 https://docs.mql4.com/ru/math/MathPow ない?あるいは初歩的な演算が問題の条件。 それなら選択肢http://bpascal.ru/download/desc/436.php すべて手書きでやるなら、指数や対数を自作関数で実装する。 Александр 2011.10.30 15:26 #3037 индикаторcosty_: while(i>=0) を使っているので、新しいローソク足が現れたらi=1(前のローソク足のデータを一旦固定データで計算するようにするため) です。なぜsome_time=D'1971.01.11 00:00' を入力し、Bars、 IndicatorCountedを使用 すると、私のために動作しません(まあ、エラーはおそらく最初の_t_barのせいです)。あなたのアルゴリズムで、修正すべきです。"プログラミング 初心者 "です。"2007年からプログラミングを始めた新参者 "です)。 some_time=D'1971.01.11 00:00'; ここでは起動時に一度だけ使用 されます。しかし、ある場合はうまくいき、別の場合はうまくいかないので、そのこととは関係ないのです。後日、インジケーターを作り直します。これは、別のインジケーターを改良したものです。返信ありがとうございました Artyom Trishkin 2011.10.30 16:20 #3038 Sonne:皆さん、こんにちは。多くのフォーラムやGoogleの 記事を検索しましたが、答えは見つかりませんでした。М1の2つの反対注文で取引するEAを書くことにしました。 考え方は簡単で、小さなTPの反対注文を2つ入れておき、2番目に起動したタイマーの片方のTPがバーの数(例えば5)になったら、一時的にSLにするのです。通貨が同じ方向に動いてくれれば、2順目の一時的なSL発動時の損失は最小限で済むが、チャートが反転すれば、2ポジションで黒字になるという計算である。片方のTPが発動したら、もう片方のタイマーがバーの数だけ切り 替わる」というコードの書き方がわからないのです。現在、2つの注文を同時に行うタイマーしか持っていないが、あまり活用できていない。月のPSは、この問題を解決することはできませんが、アドバイスやコードを助けてください:)。以下はそのコードです。 ................................................ありがとうございました。1.武井のクローズドポジションがある場合... 1.1 タイプがOP_BUYの場合 ... 1.1.2 OP_SELL、...のオープンポジションがある場合 1.1.3 現在のバーの時間から売りポジションを開始したバーの時間を引いた値が、遅延のためのバー数 以上である場合、...。 1.1.4 売りポジションを決済する 1.2 タイプが OP_SELL の場合、 ... 1.2.2 オープンポジションOP_BUYがある場合 ... 1.2.3 現在のバーの時間から買いポジションの開始時間を引いた時間が、保持するバー数以上である場合、 ......。 1.2.4 買いポジションを閉じる Sergey Diubakin 2011.10.30 16:32 #3039 こんにちは、あなたは、通常の物語(穴なし)を取得する場所をアドバイスしてくださいとMT4用のMT5から分ストーリーかどうかを教えてください。 削除済み 2011.10.30 17:22 #3040 皆さんこんばんは、以前はくだらない質問で申し訳ありませんでした) Aという変数があり、その瞬間に価格値を与えて取引するEAが可能かどうか知りたい。この値を任意の履歴値に変更したい場合は、例えば任意の月次値を取り、履歴の解析から目的の値を導き出す。ストラテジーテスターでやって みたが、その正しさには疑問が多い。それとも、やり直して配列で作業しなければならないのでしょうか!?皆さん、ありがとうございました。 p.s. MQLハンドブックやチュートリアルに載っていなかったので、知りたいです。 1...297298299300301302303304305306307308309310311...652 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
問題は、EAが常に注文を再開することです。つまり、買いシグナルがあると、注文を開き、利益でそれを閉じ、条件がまだ維持されていると、再び注文を開くのです。
買い注文が開いたらカウンターが+1され、カウンターが0を超えないと新しい買いが開けられず、売った後だけカウンターがリセットされるという、従来の売買カウンターで解決できると思っていたのですが。
つまり、1本のバーに信号があるが、すでに使用されている?
このようにすることができます。
こんな風に試してみてください。
どちらにも対応できるはずです。
そのほうが納得がいく。
皆さん、こんにちは。
オフトピックですみません、話題は需要です、だからここに書いています、ヒントをいただけますか?スタックしている。
実数の指数(実数含む)を初歩的な操作(+-*/%)だけで行うには?例えば、風力発電の計算機を1.2の電力に適用すると、1.24456474720739397772169154111826という結果が得られます。アルゴリズムに興味があり、言語は問わない。自分で翻訳してみる。
ZS.プログラミングのテストは何回やってもダメで、初めてこういう問題を見ました。
皆さん、こんにちは。
多くのフォーラムやGoogleの 記事を検索しましたが、答えは見つかりませんでした。
М1の2つの反対注文で取引するEAを書く ことにしました。
考え方は簡単で、小さなTPの反対注文を2つ入れておき、2番目に起動したタイマーの片方のTPがバーの数(例えば5)になったら、一時的にSLにするのです。通貨が同じ方向に動けば、2順目の一時的なSL発動時の損失は最小限に抑えられ、チャートが反転すれば、2ポジションで黒字になるという計算です。
片方のTPが発動したら、もう片方のタイマーがバーの数だけ切り 替わる」というコードの書き方がわからないのです。
現在、2つの注文を同時に行うタイマーしか持っていないが、あまり活用できていない。
PS 私は1ヶ月間この問題を解決していない、アドバイスやコードで私を助けてください:)
以下は、アドバイザーのコードです。
extern int SL=100;
extern int TP=100;
extern double StartLot=0.1;
extern double StopLot=1.0;
extern int bar_time=20;
double Lot()
{
double lt;
if(OrdersHistoryTotal()==0) return (StartLot);
if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderProfit()<0)
{
lt=OrderLots()*2;
if(lt>StopLot) return (StartLot);
else return (lt);
}
else
return (StartLot);
}
else
return (StartLot);
}
int start()
{
double lot;
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)
{
int order;
{
lot=Lot();
order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green);
}
}
//вот здесь должно быть что-то что является решением проблемы и связующим звеном
{
int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ;
if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; }
if ( bars >= bar_time )
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White);
}
return(0);
}
ありがとうございました。
つまり、1本のバーに信号があるが、すでに使用されている?
こんなことができる
皆さん、こんにちは。
オフトピックですみません、話題は需要です、だからここに書いています、ヒントをいただけますか?スタックしている。
実数の指数(実数含む)を初歩的な操作(+-*/%)だけで行うには?例えば、風力発電の計算機を1.2の電力に適用すると、1.24456474720739397772169154111826という結果が得られます。アルゴリズムに興味があり、言語は問わない。自分で翻訳してみる。
ZS.プログラミングテストは何回やっていないのか、人によっては些細なことかもしれないが、このような問題は初めて見た。
https://docs.mql4.com/ru/math/MathPow ない?あるいは初歩的な演算が問題の条件。 それなら選択肢http://bpascal.ru/download/desc/436.php すべて手書きでやるなら、指数や対数を自作関数で実装する。
while(i>=0) を使っているので、新しいローソク足が現れたらi=1(前のローソク足のデータを一旦固定データで計算するようにするため) です。
なぜsome_time=D'1971.01.11 00:00' を入力し、Bars、 IndicatorCountedを使用 すると、私のために動作しません(まあ、エラーはおそらく最初の_t_barのせいです)。
あなたのアルゴリズムで、修正すべきです。
"プログラミング 初心者 "です。"2007年からプログラミングを始めた新参者 "です)。
some_time=D'1971.01.11 00:00'; ここでは起動時に一度だけ使用 されます。しかし、ある場合はうまくいき、別の場合はうまくいかないので、そのこととは関係ないのです。後日、インジケーターを作り直します。これは、別のインジケーターを改良したものです。返信ありがとうございました
皆さん、こんにちは。
多くのフォーラムやGoogleの 記事を検索しましたが、答えは見つかりませんでした。
М1の2つの反対注文で取引するEAを書くことにしました。
考え方は簡単で、小さなTPの反対注文を2つ入れておき、2番目に起動したタイマーの片方のTPがバーの数(例えば5)になったら、一時的にSLにするのです。通貨が同じ方向に動いてくれれば、2順目の一時的なSL発動時の損失は最小限で済むが、チャートが反転すれば、2ポジションで黒字になるという計算である。
片方のTPが発動したら、もう片方のタイマーがバーの数だけ切り 替わる」というコードの書き方がわからないのです。
現在、2つの注文を同時に行うタイマーしか持っていないが、あまり活用できていない。
月のPSは、この問題を解決することはできませんが、アドバイスやコードを助けてください:)。
以下はそのコードです。
................................................
ありがとうございました。
1.武井のクローズドポジションがある場合...
1.1 タイプがOP_BUYの場合 ...
1.1.2 OP_SELL、...のオープンポジションがある場合
1.1.3 現在のバーの時間から売りポジションを開始したバーの時間を引いた値が、遅延のためのバー数 以上である場合、...。
1.1.4 売りポジションを決済する
1.2 タイプが OP_SELL の場合、 ...
1.2.2 オープンポジションOP_BUYがある場合 ...
1.2.3 現在のバーの時間から買いポジションの開始時間を引いた時間が、保持するバー数以上である場合、 ......。
1.2.4 買いポジションを閉じる
皆さんこんばんは、以前はくだらない質問で申し訳ありませんでした)
Aという変数があり、その瞬間に価格値を与えて取引するEAが可能かどうか知りたい。この値を任意の履歴値に変更したい場合は、例えば任意の月次値を取り、履歴の解析から目的の値を導き出す。ストラテジーテスターでやって みたが、その正しさには疑問が多い。それとも、やり直して配列で作業しなければならないのでしょうか!?皆さん、ありがとうございました。
p.s. MQLハンドブックやチュートリアルに載っていなかったので、知りたいです。