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

 

EAでは、イベントが起こるまでの時間を記録したカウントダウンを使いました。

if (line1 < 0 && time ==0){time=Time[0];}//сработало предварительное условие входа, записываем время
if (time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара

で、条件が成立しなかった場合

if (line1 == 0){time=0;}

が、小節を重ねるごとに指数が上がっていく。

インジケータでは、あるインデックスの後に一度だけ矢印を付ける必要があります。

インジケータで同じようにやってみましたが、何も動きません。

int tikket;// расположено на глобальном уровне
datetime time;// расположено на глобальном уровне

///////////////////////////////////

for(i=limit1;i>=0;i--)
     {
      if(ExtMapBuffer2[i]<0 && time == 0){time=Time[i];}
      if(time > 0)shift=iBarShift(Symbol(),Period(),time);//находим индекс бара
      if(ExtMapBuffer2[i]==0){time=0;tikket=0;}
      if(ExtMapBuffer2[i]<0 && shift>=shet && tikket==0){tikket=1;if(tikket>0)ExtMapBuffer3[i]=High[i]+150*Point;}
     }


ExtMapBuffer2[i]<0"の最初のバーでは、矢印が置かれ、"shift>=shet "は考慮されません。

論理的には、「if(time >0)shift=iBarShift(Symbol(),Period(),time); 」という行をどうにかする必要があります。

いかがでしょうか?

 

プログラマーの皆さん、助けてください。

CloseAllOrders EAをコンパイルしようとしたのですが、以下のようなエントリーが表示されます。

------------------------------------------

CloseAllOrders_v5.mq4'
'WinUser32.mqh'
関数は 必ず値 CloseAllOrders_v5 を返します。mq4 30 22
関数は値を返す必要があります CloseAllOrders_v5.mq4 79 41
0 エラー(s), 2 警告(s)

--------------------------------------------------

EAを動作させるために必要なことは何ですか?

EAを添付します。

よろしくお願いします。

リーズナブル。

ファイル:
 
Geowind64:

プログラマーの皆さん、助けてください。

CloseAllOrdersのEAをコンパイルしようとしたのですが、以下のようなエントリーが表示されます。

------------------------------------------

'CloseAllOrders_v5.mq4'。
WinUser32.mqh'
関数は値を返さなければならない CloseAllOrders_v5.mq4 30 22
関数は値を返さなければならない CloseAllOrders_v5.mq4 79 41
エラー0件、警告2件

--------------------------------------------------

EAを動作させるためには、どうしたらよいですか?

Expert Advisorを添付。

よろしくお願いします。

リーズナブル。


の値を返さなければならない。

if (ret==IDCANCEL)return(0);

и

if (ret1==IDCANCEL)return(0);

こんな感じ。

 

あなたに質問です。

Expert Advisorには、どのローソク足でエントリーするかを決定する設定があります。シグナル発生後、3本目のローソク足で取引を開始します。シグナル発生後2本目のローソク足で、反対方向のシグナルが発生しています。反対側への信号があるときにエントリーしないようにするには、条件をどのように書けばよいのでしょうか?

extern int sdvig=3;//На какой свече заходим

 double pokupaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,3,sdvig);

 double prodaem=iCustom(Symbol(),Per,"super-signals-channel",4,500,2,sdvig);

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 &&SelBuyDaily==Vhodim1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

追加変数を用いて問題を解いた。現在のローソク足がシグナルとなるインジケーターを処方しています。最初の信号が現れたら変数に1桁の数字を代入し、反対の信号が現れたらもう1桁の数字を代入する。

 ////////////////////////////////////////////////////////////////////////////////////////

 //                       Проверка на наличие обратного сигнала                       //

 //////////////////////////////////////////////////////////////////////////////////////

  double pokup=iCustom(Symbol(),Period(),"super-signals-channel",4,500,3,0);

  double prod=iCustom(Symbol(),Period(),"super-signals-channel",4,500,2,0);

 if(pokup>0){

  proverka=1;

  }

 if(prod>0){

  proverka=2;

  }

/////////////////////////////////////////////////////////////////////////////////////////////////////

//                  Блок открытия зделок при отключённых стоп-лосс и тейк-профит                  //

///////////////////////////////////////////////////////////////////////////////////////////////////

 if(OrdersTotal()==0)

 {

  double lot=(AccountBalance()/ MinLot)*0.01;

  if(center>Ask && pokupaem>0 && prodaem<1 && prodaem1<1 && SelBuyDaily==Vhodim1 && proverka==1)

  {

   x=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,Komment,Magic,0,Blue);

  }

  if(center<Bid && prodaem>0 && pokupaem<1 && pokupaem1<1 && SelBuyDaily==Vhodim2 && proverka==2)

  {

   y=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,Komment,Magic,0,Red);

  }

 }

 

こんにちは、なぜEAが開......いや、価格以上の注文を開けるか?メタトレーダーのストラテジーテスターでEAを試しています。

こんな感じで注文を受け付けています。

   RefreshRates();
   switch(send)
      {
      case 1: ticked = OrderSend(Symbol(), OP_BUY, lot, Ask, 4, NormalizeDouble(Bid-SL*Point, Digits), NormalizeDouble(Ask+TP*Point, Digits), "Buy_", magik, 0, clrBlue); break;
      case 2: ticked = OrderSend(Symbol(), OP_SELL, lot, Bid, 4, NormalizeDouble(Ask+SL*Point, Digits), NormalizeDouble(Bid-TP*Point, Digits), "Sell_", magik, 0, clrRed); break;
      default : ticked = 0;
      }



 
nr72:

こんにちは、なぜEAが開......いや、価格以上の注文を開けるか?メタトレーダーのストラテジーテスターでEAを試しています。

こんな感じで注文を受け付けています。



買いはAskでも開く。ビジュアライゼーションチャート上でF8キーを押し、「一般」タブの「アスクラインを表示」にチェックを入れます。すべての疑問は勝手に消える。
 
artmedia70:
Ask sameで買い付け開始。ビジュアライゼーションチャート上でF8キーを押し、「一般」タブの「アスクラインを表示」にチェックを入れます。すべての疑問は勝手に消える。


ありがとうございました。今、手に入れた...
 
alexey1979621:
皆さんこんにちは、フクロウの七面鳥が付けられません、知識のある方からのヘルプをお願いします。
ユーロ線(緑)がポンド線(薄茶)を上から下へクロスして、ユーロポンドの売り注文を出します。ポンドがユーロラインを下から上に抜けたら、ユーロポンドを買います。
ログによると、インジケータが表示されていないようです。
アドバイザーとインジケーターを添付します。

ありがとうございました。


デコンパイルはお勧めしません。お風呂まであと少し。
 

1.チャートの左上に あるクイックトレードバーをプログラムで折りたたむことが可能かどうか教えてください。

2.プログラム上で高速取引を無効にすることはできますか?