[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 148

 

私はコードを少し修正し、以下のコードラインなしで、EAがすべてのティックで ピップを開いていました。

というコード行を貼り付けたら、EAが計画通りに1ポジションをオープンしてくれました。

int start()
   {
// начало открытия ордеров 
   if (OrdersTotal()>0)return(0);
 
first_may:

CMEって何?

o_o -CME
 
BeerGod:
以前にもあったことですが、これはDCの陰謀だと思うので、何かをテストするのは問題でしょう。
DCはヒストリカルデータサーバーからダウンロードした相場とは関係ない。
 
DCはヒストリカルデータサーバーからダウンロードした相場とは関係ない。

まあ、すべて1つのサーバーからダウンロードする「はず」なのですが...あと、テスターでは現在のアカウントのレバレッジは影響しないのでは...。でも、証券会社によっては、こんなストリートマジックもあるんですね・・・もしかして、相場も遊べる証券会社もあるのかな?(いずれもここが問題なのだろうが)...。
 
alex12:

私はコードを少し修正し、実際に以下のコード行がなければ、EAはすべてのティックでピップを開いていたのですが、ヒントをありがとうございます。

というコード行を貼り付けたら、EAが計画通りに1ポジションをオープンしてくれました。

まあ...というのは、予定されたものに見かけ上対応したものに過ぎません。この構築では、シンボル、オーダータイプ、そのマジックを考慮しない。すなわち、もし別のシンボルの口座で別のEAが動作している場合、すでにポジションを持っているため、このEAは動作しません。このEAだけが動作しますが、売りポジションがあり、買いポジションを開く必要がある場合、それを開くことはありません - ポジションはすでに存在し、他の多くの可能なルールがあります、例えば、手動でポジションを開いたり、保留注文を設定した - それです、EAは上昇しました...

このようなシンボルで、このようなマジシャンで、このようなタイプのポジションが既にオープンになって いるかどうか。そうでない場合 - 開いてください。

 
artmedia70:

まあ...予定されているものと見かけ上一致しているに過ぎない。このデザインは、シンボル、オーダータイプ、そのマジックを考慮したものではありません。つまり、口座内の別のシンボルに対して別のEAが動作している場合、すでにポジションが存在するため、このEAは動作しないことになります。このEAだけが動作しますが、売りポジションがあり、買いポジションを開く必要がある場合、それを開くことはありません - ポジションはすでに存在し、他の多くの可能なルールがあります、例えば、手動でポジションを開いたり、保留注文を設定した - それです、EAは上昇しました...

このようなシンボルで、このようなマジシャンで、このようなタイプのポジションが既にオープンになっているか?ない場合 - 開いてください。

そうなんです、このEAは買いポジションを開いて動きを継続 させるだけで、
、買いポジションのクローズ後にテイクするからです。例えば、買いポジションが開いていて価格が
設定レベルまで下がると、別の買いポジションは開きません(TSによって開かれるはずでした)。
私は、Send order lines - priceのセクションで、ある価格を規定しました。
私の仕事は、EAで正しいコードを書くことです = 買いの位置を開いた後、もう一つの買いの位置を開くために、
、価格が事前に定義されたレベルまで下がる場合 - もう一つの買いの位置を開く。 そうどんなレベル
価格はコードで交差していない - 常にオープン買いポジション、どんなに多くありません

現在、募集中のポジションがあります。

extern double Lot=1;

int g=20; //тейкпрофит

double price[10];   // Заданный уровень 

//-----------------------
 
int init()
  {
  
double price[10];   // объявляем массив из 5 элементов  
           
price[0] = 1.2100; // обращаемся к первому элементу массива и 
                   // присваиваем ему цену. Обратите внимание 
                   // на то, что индекс первого элемента 
                   // начинается с 0. Это важная особенность,
                   // к которой нужно привыкнуть.   
 
price[1] = 1.2200;  // обращаемся ко второму элементу 
price[2] = 1.2300;  // и так далее 
price[3] = 1.2400; 
price[4] = 1.2500;
price[5] = 1.2600; 
price[6] = 1.2700;  
price[7] = 1.2800; 
price[8] = 1.2900;
price[9] = 1.3000;  

   return(0);
  }
//---------------
int start()
   {
// начало открытия ордеров 
   if (OrdersTotal()>0)return(0);
   
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)//проверка наличия откр.поз
   price[0]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2100,10,0,Ask+g*Point,"My order #",11);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[1]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2200,10,0,Ask+g*Point,"My order #",12);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[2]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2300,10,0,Ask+g*Point,"My order #",13);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[3]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2400,10,0,Ask+g*Point,"My order #",14);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[4]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2500,10,0,Ask+g*Point,"My order #",15);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[5]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2600,10,0,Ask+g*Point,"My order #",16);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[6]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2700,10,0,Ask+g*Point,"My order #",17);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[7]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2800,10,0,Ask+g*Point,"My order #",18);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[8]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2900,10,0,Ask+g*Point,"My order #",19);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[9]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.3000,10,0,Ask+g*Point,"My order #",20);
   }
      return(0);
  }
//+------------------------------------------------------------------+
 
こんにちは。コードを最適化したい。 インジケータに3つのバッファを追加しました。まずMA1[]、次にМА2[]、МА3[]を検索しています。違いは、計算に使うバッファ名の1桁だけです。コードをループさせることは可能ですか?
 
alex12:
そうなんです、このEAでは移動の継続時にしかバイを開かないので
テイクオフの買いポジションをクローズしてから
冒頭の中括弧{は、price[...]=Ask;の前に置かなければなりません(下記参照)。if "演算子について、もう一度お読みください。ifの直後に括弧がない場合、1つのアクションしか処理しません(price[...]=Ask;となります)。複数のアクションが必要な場合は、ifの直後に{...}で囲む必要があります。
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)//проверка наличия откр.поз
   { 
      price[0]=Ask;
      OrderSend (Symbol(),OP_BUY,Lot,1.2100,10,0,Ask+g*Point,"My order #",11);
   }
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   {
      price[1]=Ask;
      OrderSend (Symbol(),OP_BUY,Lot,1.2200,10,0,Ask+g*Point,"My order #",12);
   }
 

午後

2009年以前のEURUSDのm5/m15の 履歴が必要なのですが、どなたか教えていただけませんか?(つまり、エキスパートをデバッグするためのもの)。

とてもありがたいことです。

 
ewoke:

午後

2009年以前のEURUSDのm5/m15の履歴が必要なのですが、どなたか教えていただけませんか?(つまり、エキスパートをデバッグするためのもの)。

とてもありがたいことです。

ターミナルを開いた状態でF2を押し、Fx Majors -> EURUSD -> 1 Minute (M1) -> Downloadと進みます。