[アーカイブ!】アドバイザーの書き方を無料公開中 - ページ 26

 
Necron >>:

Так в чем у Вас проблема? Вы же написали на что хотите изменить (и притом как изменить:)). Осталось только открыть MetaEditor и исправить код. А чтобы количество пунктов можно было изменить сделайте так:

PS. Писать один и тот же вопрос в нескольких темах не есть хорошо:)


ポジションを閉じるのを手伝ってください!!!3つのBUY注文があり、1つのBUYポジションをクローズするシグナルが出て、最後に開いた注文はクローズされていますが、最初の注文(一番早いもの)をクローズする必要があります。 Thanks lot!
//---------------Закрытие ордеров----------------------------- 8 --

   while(true)                                  // Цикл закрытия орд.
     {
      if ( Tip==0 && Cls_B==true)                // Открыт ордер Buy..
        {                                       //и есть критерий закр
         Alert("Попытка закрыть Buy ", Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose( Ticket, Lot,Bid,2);      // Закрытие Buy
         if ( Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Buy ", Ticket);
            break;                              // Выход из цикла закр
           }
         if ( Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
 
      if ( Tip==1 && Cls_S==true)                // Открыт ордер Sell..
        {                                       // и есть критерий закр
         Alert("Попытка закрыть Sell ", Ticket,". Ожидание ответа..");
         RefreshRates();                        // Обновление данных
         Ans=OrderClose( Ticket, Lot,Ask,2);      // Закрытие Sell
         if ( Ans==true)                         // Получилось :)
           {
            Alert ("Закрыт ордер Sell ", Ticket);
            break;                              // Выход из цикла закр
           }
         if ( Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
      break;                                    // Выход из while
     }
 
Serg-s-n >>:


Помогите пожалуйста закрыть позицию!!! У меня стоит 3 ордера BUY, выходит сигнал на закрытие одной позиции BUY и у меня закрывается последний ордер, который я открывал, а мне нужно закрыть первый( самый ранний) Заранее спасибо!

クローズするチケットがあり、注文の一番新しいチケットが記憶されています。そのため、最後の注文で締め切られることになります。複数のチケットを使用し、クロージング時に必要なチケットを選択するだけです。そうすれば、この問題は発生しません。

PS.同じ質問を複数のスレッドに書き込むのはよくないですね :))))

 
Necron >>:

Так в чем у Вас проблема? Вы же написали на что хотите изменить (и притом как изменить:)). Осталось только открыть MetaEditor и исправить код. А чтобы количество пунктов можно было изменить сделайте так:

PS. Писать один и тот же вопрос в нескольких темах не есть хорошо:)

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

 
Necron >>:

У Вас закрытие по тикету, а запоминается самый последний тикет ордера. Поэтому именно последний ордер и закрывается. Используйте несколько тикетов, а при закрытии просто выберите необходимый. Тогда этой проблемы не будет.

PS. Писать один и тот же вопрос в нескольких темах не есть хорошо:)-к Вам это тоже относится)))


EAでこれを行うには、私はまだそのようなプログラミングに精通していない、少なくとも私にそれを行うためのおおよその方法を示してください。
 
Serg-s-n >>:


А как это сделать в советнике, я в таких тонкостях программирования еще не разбираюсь, хотя бы примерно покажите как это сделать

私も細かいところは苦手です:)))しかも、まだ書き始めて1ヶ月ちょっとです:))。ここにコードを投稿すれば、誰かが助けてくれるでしょう。私はあるEAでこのようにしました。

int               b1, b2, b3, s1, s2, s3;


int start()
   int      ts1, ts2, ts3, tb1, tb2, tb3;
      

if(OrdersTotal()==0)
         {
             b1=0; b2=0; b3=0; s1=0; s2=0; s3=0;
         }

     if( b1==0)
      {
        if( условие для открытия ордера)
            {
            tb1=OrderSend(Symbol(),OP_BUYSTOP, lot, HL,3* PointX, sl_b, BuyTarget1,"lot_1_buy", Magic,0,Lime);
            if( tb1>0)
              {
                  if(OrderSelect( tb1, SELECT_BY_TICKET, MODE_TRADES))
                     {
                     b1= tb1;
                     Print("lot_1_buy order opened : ",OrderOpenPrice());
                     }
              }
            else Print("Error opening BUY order : ",GetLastError());
            return(0);
            }         
      }

そして、6つの注文(買い3つ、売り3つ)それぞれについて、です。そして、注文が終了した後、すべてのbとsの値をゼロにします。もしかしたら、誰かが他の方法を提案してくれるかもしれません。

  for( cnt=0; cnt< total; cnt++)
     {
         OrderSelect( tb1, SELECT_BY_TICKET);
         if(OrderClosePrice()>0) { b1=0;}
         OrderSelect( tb2, SELECT_BY_TICKET);
         if(OrderClosePrice()>0) { b2=0;}
         OrderSelect( tb3, SELECT_BY_TICKET);
         if(OrderClosePrice()>0) { b3=0;}
         OrderSelect( ts1, SELECT_BY_TICKET);
         if(OrderClosePrice()>0) { s1=0;}
         OrderSelect( ts2, SELECT_BY_TICKET);
         if(OrderClosePrice()>0) { s2=0;}     
         OrderSelect( ts3, SELECT_BY_TICKET);
         if(OrderClosePrice()>0) { s3=0;} 
     }
 

プログラマーの皆さん、こんにちは。 あなたは、EAに挿入するために、2つの指標から計算するためにインジケータフォーラムから引っ張って、目的のキャンドルとラインガーナの D_RSI の値を決定し、助けてください.......

ファイル:
 
miha-28 >>:

Здравствуйте господа программисты. Не могли бы вы помочь, выдернуть из индикатора форумы для расчета из двух индикаторов для того чтобы вставить в советник, определить значение D_RSI для нужной свечи и линии Гана……..





ほとんどの場合、フォーラム==数式、もしそうなら、なぜiCustomhttps://docs.mql4.com/ru/indicators/iCustom、 あなたは幸せになることができます。
 

インジケーターアドバイザーは誰が書くのですか?
ikarfx@mail.ru

 
SofTAA

多くの人間感謝!!!!!!!!!!

 
紳士プログラマー )

私が必要とする取引戦略は2つあります:

1.タートルズ(取引は起こらない限り、インジケータによって市場に参入 するための順序の自動調整と(ここで見たが、それではない類似の)、!。そして、インジケーターによる厳密な同じ出口!まあ、保険のために、ストップロスやトレーリングを無効 化することはできます。

2.アリゲーター(BARS ALLIGATORとon the alligator Vol.1.1で鼻をこする必要はないとすぐに言いますが、私は見たことがあります)

基本的にはこれを飲んでください https://www.mql5.com/ru/code/8749 市場にうまく入るのですが、その後、クソが発生するんです。アリクラインを越えてポジションを抜ける部分を少し調整すればいいだけです+ トレーリングなしでポジションオープン時に15ピップでストップ!そしてTProfitsなし!

すべての質問について svs-trade@rambler.ru
また、もちろん私は、電子メールへのリクエストに応じて写真付き戦略の詳細な説明を送信します。