どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 313

 
 
Burger:
EAヘルプラインについての批評が必要ですhttps://docs.google.com/document/d/1Bkqu7NzSj8mrNsa5iO8lB6UmKNCJ4YiaY-wKXzbF3Wo/pub


私は批判するのが好きなのですが、たくさんの - 最初の段落を少し歩いてみてください。

アーカイブがうまく留まらない(( これからファイル共有 サイトにアップロードします。

 
VladislavVG:

この場合 いつも一番近い であれば、非常にシンプルで、マジシャンももちろん必要ありません。しかし、PGM5からは そのような話は聞いていませんし、一般的には直近の 注文ではなく、現在の価格から少しでも離れた注文が出されるかもしれませんし、その間の注文は他の理由によって出されるかもしれません:意思決定アルゴリズムについては何もわかりません。私たちは、あくまでも関連する注文について話していたのです。
なぜか私の中では、一番近いものを外すべきだという思いがあるのです。他はすべて距離が離れており、開通条件も異なります。そして、最も近い保留中の注文は市場のものと反対側にあるので、それを正しく見つけるためのデータはすべて揃っているのです。
 
PGM5:
よろしくお願いします。この質問の答えをどこで探したらいいか教えてください。そうそう、もうひとつ、注文は注文がトリガーされたときとtakeprofitがトリガーされたときに設定し、その前に一番近いものを削除しておくことです。 ありがとうございました。

もうTORを書き始めているんですね。何か始めたこともあるのでしょうか?それとも、魚を待っているのですか?このスレッドでは、mql4でプログラミングする方法を無料で学びたい人を助けるのであって、無料で出来上がったソリューションを手に入れたい人を助けるのではありません。
 
43
alexey1979621 2013.11.29 11:52#

皆さん、こんにちは。興味深い問題を解決するために助けを求めているのです。あるEAの特徴として、利益を得た後、次の1~4のトレードをストップロスで決済し、その後再び利益を得るというものがあります。 Expert Advisorは、インジケータのシグナルに基づいて取引を開始します。利益を得た後に続く有益な取引を除外するために、指標によって生成されたシグナルをスキップする、つまり、利益を得た後に取引(1、2、3、4)を閉じないようにする必要があります。そのために用意されているのが、Sig機能です。しかし、EAがこの関数で注文を開くことは全くなく、この関数がなくてもすべてが非常にクリアに動作するので、私はこの関数を間違って書いたと思います。もしかしたら、条件にも間違いがあるのかもしれません。一般に、 ...一体何なんだろう、この「混乱」から2週間も抜け出せないでいる。頭のいい人たち、どこがエラーなのか、アドバイスしてくれませんか?

はい、signalは利益確定後のシグナル数、pynktは利益の大きさをpipsで表しています。

ご教示いただければ幸いです。

void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);


   double MA1Low = NormalizeDouble (iMA(NULL,0,MA_Period_2,MA_Shift_2,MA_Method_2,0,1), Digits); 
   double MA2High = NormalizeDouble (iMA(NULL,0,MA_Period_2,MA_Shift_2,MA_Method_2,1,1), Digits);
   
 
  
   if(Volume[0]>1) return;

    // продажа
   if (Open[1]>Close[1] && Open[1] > MA1Low && Close[1] < MA1Low)
   
{
      if(Pro(1,100))

   {
       ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",1000,0,Red);
      return;
    }
   
  }  
//---- buy conditions
   // покупка
  if (Open[1]<Close[1] && Open[1] < MA2High && Close[1] > MA2High)
 
 { 
   if(Pro(1,100))
   {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"Pattern_1",1000,0,Blue);
      return;
   }       
   }
}
 
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool Sig(int signal,int pynkt)
 {
  static int cnt = 0;
  static datetime tm;
  if(Time[0] == tm) return(false);
  tm = Time[0];
  if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY) == true)
   {
    cnt = cnt + 1;
    if(OrderType() == OP_BUY && OrderClosePrice() - OrderOpenPrice() < pynkt*Point) cnt = 0;
    if(OrderType() == OP_SELL && OrderOpenPrice() - OrderClosePrice() < pynkt*Point) cnt = 0;
    if(cnt >= signal) return(true);
   }
  return(false);
 }
//+------------------------------------------------------------------+
 
artmedia70:
もうToRを書き始めているんですね。自分で何か始めることもあるのでしょうか?それとも、魚を待っているのですか?このスレッドでは、mql4でプログラミングする方法を無料で学びたい人を助けるのであって、無料で出来上がったソリューションを手に入れたい人を助けるのではありません。



こんにちは。私はプログラミングの初心者です。私はこれまでフォーラムとチュートリアルを使って学習したのみです。最初はすべて理解していたのですが、一般的な機能になると、何か勘違いをしてしまうのです。ちなみに、通信教育では、あることを学んでいました......。私はそこからスクリプトを、フォーラムからいくつかの下線を引きました。 デモで試したところ、利益は出ていますが、スクリプトが単純で、常に注文が入るわけではなく、1回注文を逃すとシステム障害が発生します。実際の口座で試したところ、すべての注文が発注され(ただし今回はギャップがなかった)、利益をもたらしますが、不必要なポジションが多く開設されています。単純なスクリプトや関数では解決できないことに気づき、助けを求めました。Expert Advisorは収益性が高いのですが、時々「手を貸して」あげないといけません。いずれはこの「お手伝い」を自動化しようと考えています。
 
顧問ファイルhttp://drive.google.com/file/d/0B0Zxi_UuVVTZejc3Tmg1Zk5ablU/edit?usp=sharing
 
alexey1979621:
43
alexey1979621 2013.11.29 11:52#

皆さん、こんにちは。興味深い問題を解決するために助けを求めているのです。あるEAの特徴として、利益を得た後、次の1~4のトレードをストップロスで決済し、その後再び利益を得るというものがあります。 Expert Advisorは、インジケータのシグナルに基づいて取引を開始します。利益を得た後に続く有益な取引を除外するために、指標によって生成されたシグナルをスキップする、つまり、利益を得た後に取引(1、2、3、4)を閉じないようにする必要があります。そのために用意されているのが、Sig機能です。しかし、EAがこの関数で注文を出すことは全くなく、この関数がなくてもすべてが非常にクリアに動作しているので、私はこの関数を間違って書いたのだと思います。もしかしたら、条件にも間違いがあるのかもしれません。一般に、 ...一体何なんだろう、この「行き詰まり」から2週間も抜け出せないでいる。頭のいい人たち、どこがエラーなのか、アドバイスしてくれませんか?

はい、signalは利益確定後のシグナル数、pynktは利益の大きさをpipsで表しています。

ご教示いただければ幸いです。


関数Sig()は注文履歴がない場合、取引開始を禁止する(falseを返す)
 
Vinin:

関数Sig()は注文履歴がない場合、取引開始を禁止する(falseを返す)
テスターでの履歴はシミュレートされていると思い込んでいました(だから間違っていたのです)。サイマル、スライダーによる最後の注文の検索機能を実行し、保留中の注文を破棄する必要があるようです。頭では(正しい方向で考えていれば)理解できるのですが、自分の手を使ってコードを実行することができないのです。ヒントを教えてください。ありがとうございました。
 
alexey1979621:
テスターでの履歴はシミュレートされていると思い込んでいました(だから間違っていたのです)。サイマル、メジで、最後のオーダーを検索して、保留のものを破棄する機能が必要なことがわかりました。頭では(正しい方向で考えていれば)理解できるのですが、自分の手を使ってコードを実行することができないのです。ヒントを教えてください。よろしくお願いします。
すべてのヒント!
ドキュメンテーション チュートリアル

そして機能。

GetIndexLastPos - 最後にオープンしたポジションのインデックスまたは -1 を返します。
GetLotLastPos - 最後にオープンしたポジションのロットサイズまたは -1 を返します。

その他にも、とても便利なものがたくさんあります