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

 
Forexman77:
大まかにどのように実装すればいいのか?他の関数は慣れているのですが、オーダーと配列はまだよく分かっていません。

こんな感じでしょうか。

 // Учёт ордеров
   Symb=Symbol();                               // Название фин.инстр.
   Total=0;                                     // Количество ордеров
   int Ticket[5];
   ArrayInitialize(Ticket,0);
   for(int i=1; i<=OrdersTotal(); i++)          // Цикл перебора ордер
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if (OrderSymbol()!=Symb)continue;      // Не наш фин. инструм
         if (OrderType()>1)                     // Попался отложенный
           {
            Alert("Обнаружен отложенный ордер. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Total++;                               // Счётчик рыночн. орд
         if (Total>5)                           // Было не более одного орд, стало не более пяти
           {
            Alert("Несколько рыночных ордеров. Эксперт не работает.");
            return;                             // Выход из start()
           }
         Ticket[Total-1]=OrderTicket();                  // Номер выбранн. орд.
         Tip   =OrderType();                    // Тип выбранного орд.
         Price =OrderOpenPrice();               // Цена выбранн. орд.
         SL    =OrderStopLoss();                // SL выбранного орд.
         TP    =OrderTakeProfit();              // TP выбранного орд.
         Lot   =OrderLots();                    // Количество лотов
        }
     }
   // Открытие ордеров
   while(true)                                  // Цикл закрытия орд.
     {
      if (Total < 5 && Opn_B==true)     // Открытых орд. нет +. Было Total < 1, стало Total < 5
        {                                       // критерий откр. Buy
         RefreshRates();                        // Обновление данных
         SL=Bid - New_Stop(StopLoss)*Point;     // Вычисление SL откр.
         TP=Bid + New_Stop(TakeProfit)*Point;   // Вычисление TP откр.
         Alert("Попытка открыть Buy. Ожидание ответа..");
         Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buy
         if (Ticket > 0)                        // Получилось :)
           {
            Alert ("Открыт ордер Buy ",Ticket);
            return;                             // Выход из start()
           }
         if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            continue;                           // Повторная попытка
         return;                                // Выход из start()
        }
   // Закрытие ордеров
      if (Tip==0 && Cls_B==true)                // Открыт ордер Buy и есть критерий закр
        {
          for(i=0;i<5;i++)                             
          {
            if (Ticket[i]==0) continue;           

            Alert("Попытка закрыть Buy ",Ticket[i],". Ожидание ответа..");
            RefreshRates();                        // Обновление данных
         
            Ans=OrderClose(Ticket[i],Lot,Bid,2);      // Закрытие Buy

            if (Ans==true)                         // Получилось :)
            {
               Alert ("Закрыт ордер Buy ",Ticket[i]);
            }

            if (Fun_Error(GetLastError())==1)      // Обработка ошибок
            {
               i--;
               continue;                           // Повторная попытка
            }

         }
 
Vitek2010:
しかし、そのようなことはありません。私は説明します - あなたのフォーラムは、プログとサイズの挿入の最後の有能な砦の希望のようなものです - それは書き込み PERIOD_W1がそれを見る方法ですが、サイズの使用や日付の形で固定データムの使用はどちらも望ましい効果を得る ことができます。私は金曜日についての具体的な質問を投稿しました。ところで、あなたのコードは「バージョン」-不明なプロパティと書かれているため、コンパイルさ れません。


だから、間違ったことを言っているんだ。

ファイル:
vitek2010.mq4  2 kb
 

皆さん、こんにちは。残念ながらフリーズして時間内に矢印が描けない インジケータを掲載しているのですが、チャートを更新した時だけ...。異なるTFに切り替わる

もし、誰かが各ローソク足の終わりにインジケータを更新させることができれば...、そう、ローソク足が閉じる5〜10秒前とでも言うのでしょうか。それとも、この問題を解決する別の方法があるのでしょうか?

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

ファイル:
 
Vinin:


だから、間違ったことを言っているんだ。


私は指標に入れ - それが何を示している - 明白ではありません。私のバリアントは、以前の動きの継続または変更の条件を持っていた...すなわち、下またはゼロライン以上...とあなたは、すべての上に、すべての週にそれは簡単ではありません持っている...あなたはベース(私の)バリアントから逸脱し、物事を単純化してはならない.あなたは私の指標に基づいて行う必要があります...敬具
 
alsu:

こんな感じでしょうか。


線を入れる
int Ticket[5];
ArrayInitialize(Ticket,0);

int Ticketの代わりに、エラーが出る。

'=' - 左角括弧、配列に期待される('=' - 左角括弧、配列に期待される)

'>' - 左角括弧は配列を表すものと思われます ('=' - 左角括弧は配列を表すものと思われます)

'>' - 予期しないトークン('>' - Unexpected token)

')'- 期待される課題('' - 期待される課題)

'continue' - 'break' または 'continue' は、いくつかのループ内でのみ使用されます )

などなど。

 

なぜアドバイザーは無限の注文を 開くのですか、それを修正するのを助けてください。

しゃい

extern double tp = 100;
extern double l = 0.1;




int start()
{
// 1.3600
if(OrderMagicNumber() ==1 >0){return;}。
さもなくば
{
OrderSend ("EURUSD",OP_BUYLIMIT,l,1.36000,5,0,1.36000+tp*Point,"my order",1);
OrderSend ("EURUSD",OP_BUYSTOP,l,1.36000,5,0,1.36000+tp*Point,"my order",1);
}
if(OrderMagicNumber() ==2 >0){return;}。
さもなくば
{
OrderSend ("EURUSD",OP_SELLLIMIT,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
OrderSend ("EURUSD",OP_SELLSTOP,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
}
を返します。
}

 
addict:

なぜアドバイザーは無限の注文を開くのですか、それを修正するのを助けてください。

しゃい

extern double tp = 100;
extern double l = 0.1;




int start()

追加 if(OrdersTotal()==0)




// 1.3600
if(OrderMagicNumber() ==1 >0){return;}。
さもなくば
{
OrderSend ("EURUSD",OP_BUYLIMIT,l,1.36000,5,0,1.36000+tp*Point,"my order",1);
OrderSend ("EURUSD",OP_BUYSTOP,l,1.36000,5,0,1.36000+tp*Point,"my order",1);
}
if(OrderMagicNumber() ==2 >0){return;}。
さもなくば
{
OrderSend ("EURUSD",OP_SELLLIMIT,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
OrderSend ("EURUSD",OP_SELLSTOP,l,1.36000,5,0,1.36000-tp*Point,"my order",2);
}
を返します。
}

 
denis77515:

追加 if(OrdersTotal()==0)

買い注文は1つ、売り注文は1つ、また無限に注文を出すことができます。
 

こんにちは。

この仕組みがよくわからない

03:00:24 '9473965': 注文 sell 0.01 GBPUSD opening at 0.00000 sl: 1.65314 tp: 0.00000 failed [Invalid S/L or T/P] (無効なS/LまたはT/P)。

このコードで

RefreshRates();
tick=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),30,ssll,0,CMM,MAGIC,0,Blue);
     
なぜオープニングが ゼロなのか
 

こんにちは。

そのような機能の作成にご協力いただけないでしょうか。

最後に判明したサーバー時刻 (TimeCurrent())からある日の最初のバ(TimeDay(Time[80]))まで、現在のチャートの何本目のバーか

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