あなたのアイデアを元にEAを書くことに100%興味を持つプログラマーを獲得する方法 - ページ 11 1...45678910111213 新しいコメント 削除済み 2008.03.10 00:06 #101 または、このEAで調整可能なテイクプロフィット設定を整理してください。 以下は、そのコードの全容です。 削除済み 2008.03.10 00:10 #102 //+------------------------------------------------------------------+ //| Gray.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" extern double lot=1; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int tiket=0; //---- if (iVolume(NULL,0,0)==1){ Print("WATR1="+iCustom( NULL, 0, "WATR", 0, 0) ); Print("WATR2="+iCustom( NULL, 0, "WATR", 1, 0) ); if (iCustom( NULL, 0, "WATR", 0, 2)<1000 && iCustom( NULL, 0, "WATR", 1, 1)<1000) {tiket =OrderSend(Symbol(),OP_SELL,lot,Bid,3,iCustom( NULL, 0, "WATR", 1, 0),0,NULL,16384,0,Red);} if (iCustom( NULL, 0, "WATR", 1, 2)<1000 && iCustom( NULL, 0, "WATR", 0, 1)<1000) {tiket= OrderSend(Symbol(),OP_BUY,lot,Ask,3, iCustom( NULL, 0, "WATR", 0, 0),0,NULL,16384,0,Green);} CheckOrders(); //---- return(0); } //+------------------------------------------------------------------+ } void CheckOrders(){ int pos=0; int total=OrdersTotal(); for (pos=0;pos<total;pos++) { if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true){ if (OrderType()==OP_BUY && OrderStopLoss()<iCustom( NULL, 0, "WATR", 0, 1))OrderModify(OrderTicket(),OrderOpenPrice(),iCustom( NULL, 0, "WATR", 0, 1),OrderTakeProfit(),0,Green); if (OrderType()==OP_SELL && OrderStopLoss()>iCustom( NULL, 0, "WATR", 1, 1))OrderModify(OrderTicket(),OrderOpenPrice(),iCustom( NULL, 0, "WATR", 1, 1),OrderTakeProfit(),0,Red); } } } registr 2008.03.10 09:02 #103 Ultramarin: または、このEAで調整可能なテイクプロフィット設定を整理してください。 以下は、そのコードの全容です。 試してみましたか? Aleksandr Pak 2008.03.10 10:13 #104 Registr: ウルトラマリン または、このEAで調整可能なテイクプロフィット設定を整理してください。 以下はコードの全文です。 働いてみましたか? これが完全なEAコードであれば、Registrは 最高のアドバイスをしてくれたことになります。 Alexey Klenov 2008.03.10 11:36 #105 今なら少しは発言できる 1. 開始関数に属するreturn(0)演算 子は、少なくとも 1 つの中括弧の下に重複して配置される必要があります。ボリュームが1の条件を満たした場合のみ実行されるため。 それ以外の時間は、スタート機能が正しく終了しないはずです。 呼び出されたインジケータからの値<1000の2つの条件は、おそらく、バー上でバッファから1つの値が存在しないことを示すためのアイデアです。 擦れ違い この場合、現在の価格が1000以上のシンボル(例えば、PDR)に対してのみ機能するようです。 インジケータが現在のバーに1色しか描画しない場合(このバーの別のバッファの値が0である)。 そうでなければ、ほとんどすべての通貨ペアで、インジケータの現在値が常に1000未満となり、すべてのバーで条件がトリガーされることになります。 3.新しいバーの条件は、次のように取ることをお勧めします。 int time; int start { if (time!=Time[1]) { // расчет индикатора и выполение действий с ордерами //----- //----- //----- //----- time=Time[1]; } return(0); } registr 2008.03.10 19:36 #106 olyakish: 今なら少しは発言できる 1. 開始関数に属する return(0) 演算子は、少なくとも 1 つの中括弧の下に重複して配置される必要があります。ボリュームが1の条件を満たした場合のみ実行されるため。 それ以外の時間は、スタート機能が正しく終了しないはずです。 呼び出されたインジケータからの値<1000の2つの条件は、おそらく、バー上でバッファから1つの値が存在しないことを示すためのアイデアです。 擦れ違い この場合、現在の価格が1000以上のシンボル(例えば、PDR)に対してのみ機能するようです。 インジケータが現在のバーに1色しか描画しない場合(このバーの別のバッファの値が0である)。 そうでなければ、ほとんどすべての通貨ペアで、インジケータの現在値が常に1000未満となり、すべてのバーで条件がトリガーされることになります。 3.新しいバーの条件は、次のように取ることをお勧めします。 どのキーを押せばいいのか、教えてあげないと......。:) Alexey Klenov 2008.03.10 22:46 #107 あ、それからもうひとつ。 4.カスタムインジケーターを 12回呼び出すのは、少なくとも神への冒涜です :) あなたの場合、6回で十分です(私はその回数だけ数えました)。 EAの処理速度は2倍ではなく、1.5倍になると思います。 これらのアクションは(コードの最適化)だけであり、パラメータの最適化と混同しないでください。 //+------------------------------------------------------------------+ //| Gray.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| https://www.metaquotes.net | //| обработал напильником olyakish | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "https://www.metaquotes.net" extern double lot=1; extern string rem01="Профит в пунктах от текущей цены"; extern int TP=100; int time; double WATR[2,3];// первое измерение - индекс буфера; второе измерение - индекс бара //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int tiket=0; if (Time[1]!=time) { WATR[0,0]=iCustom( NULL, 0, "WATR", 0, 0); WATR[1,0]=iCustom( NULL, 0, "WATR", 1, 0); WATR[0,1]=iCustom( NULL, 0, "WATR", 0, 1); WATR[1,1]=iCustom( NULL, 0, "WATR", 1, 1); WATR[0,2]=iCustom( NULL, 0, "WATR", 0, 2); WATR[1,2]=iCustom( NULL, 0, "WATR", 1, 2); Print("WATR1=",WATR[0,0]); Print("WATR2=",WATR[1,0]); if (WATR[0,2]>0 && WATR[1,1]>0) // проверить это место (правильно ли будет направелние открытия по индикатору) { tiket= OrderSend(Symbol(),OP_BUY,lot,Ask,3,WATR[0,0],Bid+TP*Point,NULL,16384,0,Green); } if (WATR[1,2]>0 && WATR[0,1]>0) // проверить это место (правильно ли будет направелние открытия по индикатору) { tiket =OrderSend(Symbol(),OP_SELL,lot,Bid,3,WATR[1,0],Ask-TP*Point,NULL,16384,0,Red); } CheckOrders(); time=Time[1]; } return(0); } //+------------------------------------------------------------------+ void CheckOrders() { int pos=0; int total=OrdersTotal(); for (pos=0;pos<total;pos++) { if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true) { if (OrderType()==OP_BUY && OrderStopLoss()<WATR[0,1]){OrderModify(OrderTicket(),OrderOpenPrice(),WATR[0,1],OrderTakeProfit(),0,Green);} if (OrderType()==OP_SELL && OrderStopLoss()>WATR[1,1]){OrderModify(OrderTicket(),OrderOpenPrice(),WATR[1,1],OrderTakeProfit(),0,Red);} } } return(0); // на самом деле нужно просто return но так вроде писать нельзя ... } //+------------------------------------------------------------------+ 少なくともこのように チェック 削除済み 2008.03.11 09:12 #108 残念ながら、うまくいきません。 削除済み 2008.03.11 09:16 #109 どなたか説明してください。 全く同じパラメータを持つ2つのEAがあります。 ある人は同時に買い、別の人は同時に売る エントリーモーメントとエグジットモーメントが同じ どうすれば、どちらもきれいに消えるのでしょうか? 削除済み 2008.03.11 09:49 #110 Ultramarin: どうすればきれいに融合できるのか? スプレッドについて。 1...45678910111213 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
または、このEAで調整可能なテイクプロフィット設定を整理してください。
以下は、そのコードの全容です。
または、このEAで調整可能なテイクプロフィット設定を整理してください。
以下は、そのコードの全容です。
または、このEAで調整可能なテイクプロフィット設定を整理してください。
以下はコードの全文です。
今なら少しは発言できる
1. 開始関数に属するreturn(0)演算 子は、少なくとも 1 つの中括弧の下に重複して配置される必要があります。ボリュームが1の条件を満たした場合のみ実行されるため。
それ以外の時間は、スタート機能が正しく終了しないはずです。
呼び出されたインジケータからの値<1000の2つの条件は、おそらく、バー上でバッファから1つの値が存在しないことを示すためのアイデアです。
擦れ違い
この場合、現在の価格が1000以上のシンボル(例えば、PDR)に対してのみ機能するようです。
インジケータが現在のバーに1色しか描画しない場合(このバーの別のバッファの値が0である)。
そうでなければ、ほとんどすべての通貨ペアで、インジケータの現在値が常に1000未満となり、すべてのバーで条件がトリガーされることになります。
3.新しいバーの条件は、次のように取ることをお勧めします。
今なら少しは発言できる
1. 開始関数に属する return(0) 演算子は、少なくとも 1 つの中括弧の下に重複して配置される必要があります。ボリュームが1の条件を満たした場合のみ実行されるため。
それ以外の時間は、スタート機能が正しく終了しないはずです。
呼び出されたインジケータからの値<1000の2つの条件は、おそらく、バー上でバッファから1つの値が存在しないことを示すためのアイデアです。
擦れ違い
この場合、現在の価格が1000以上のシンボル(例えば、PDR)に対してのみ機能するようです。
インジケータが現在のバーに1色しか描画しない場合(このバーの別のバッファの値が0である)。
そうでなければ、ほとんどすべての通貨ペアで、インジケータの現在値が常に1000未満となり、すべてのバーで条件がトリガーされることになります。
3.新しいバーの条件は、次のように取ることをお勧めします。
あ、それからもうひとつ。
4.カスタムインジケーターを 12回呼び出すのは、少なくとも神への冒涜です :)
あなたの場合、6回で十分です(私はその回数だけ数えました)。
EAの処理速度は2倍ではなく、1.5倍になると思います。 これらのアクションは(コードの最適化)だけであり、パラメータの最適化と混同しないでください。
少なくともこのように
チェック
どなたか説明してください。
全く同じパラメータを持つ2つのEAがあります。
ある人は同時に買い、別の人は同時に売る
エントリーモーメントとエグジットモーメントが同じ
どうすれば、どちらもきれいに消えるのでしょうか?
どうすればきれいに融合できるのか?