MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 843

 
tim2019:
では、やりすぎとは思わないのですか?開発者は、他のフリーランスのリソースを見て、ユーザーフレンドリーなインターフェースがどうあるべきかを理解すべきかもしれません。サインアップボタンもすぐには見つけられませんでした。全体としては、ひどいものです。

いいえ、そんなことはありません。

昨日ここに登録したばかりなのに。何を売りにしているのか?フリーランスで受注した案件をまともに遂行するための知識は?あらゆる方法を、ただバンバン使う」というレベルではなく、「優秀な、いい人になろうよ」という開発者のレベルに見合ったものですか?

それとも、気が変わらないうちに急いだ方がいいのか?

 
Artyom Trishkin:

いいえ、そんなことはありません。

昨日ここに登録したばかりなのに。何を売りにしているのか?フリーランスのサービスで、まともなレベルで注文を実行するための知識は?あらゆる方法を、ただバンバン使う」というレベルではなく、優秀な、といってもいい開発者並みのレベル?

それとも、気が変わる前に急ぐか?

やはり、インターフェースにはある程度の規格があります。もしエラーがあったのなら、キツツキのような頑固さで何度も叩いて、再度ダウンロード/記入を強要するのではなく、せめてどんなエラーなのかをユーザーに知らせるべきでしょう。

知識とか売り物とか関係あるのか?その段階までいっていないんです。というより、残念ながら、現代社会はそういうものなのです。気に入らず、閉じて通り過ぎた。それは、私たちの姿ではありません。と、全体的に空虚な会話に。曲がって話しているのに、それが当たり前だと説得される。なるほど。

 
tim2019:

やはり、インターフェイスの規格がある。エラーがあった場合、キツツキのような粘り強さで何度もつつき、再度ダウンロード/記入を強いるのではなく、せめてどんなエラーがあるのか伝えるのが通例です。

知識とか売り物とか関係あるのか?その段階までいっていないんです。というより、残念ながら、現代社会はそういうものなのです。気に入らず、閉じて通り過ぎた。それは、私たちの姿ではありません。と、全体的に空虚な会話に。曲がって話しているのに、それが当たり前だと説得される。なるほど。

文字通り1日で売り手登録を済ませた人を知っています。しかし、この人たちは、それを示すように、好奇心が旺盛で、急ぐことはない。また、何ヶ月も掲示板で質問しているのに、言われたこと、書かれたことに対して何もしない人も見受けられます。

ちなみに、そこには人間はいません。すべての登録はロボットが監視しています。だから、長い間、彼のドアをノックして、何か悪いことをすり込めばいい。でも、彼の投稿を読む価値はありますよ。すべてがそこにあるはずです。残念ながら、私はこれらのことをずっと以前に経験しており、その後多くのことが変化したため、実質的にあなたの問題が何であるかを正確に伝えることができないのです。例えば、ベンダー・プロフィールのセクションを読んでみてください。


 

オープニング ポジションの条件調整を支援

// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     
// закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     
// закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])

指標となるパラメータがロボットに内蔵されていることを考慮すると

------------------------------------------------------------------+
//|                                       Test advisor on ZigZag.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2010, MQL для тебя."
#property link "http://mql4you.ru"
#property strict
extern double lots = 0.01; //
extern int  TakeProfit=60; //
extern int  StopLoss=100; //
extern int Magic=111111111;
extern int Slippage=3;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

datetime Today=0;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit *=10;
      StopLoss   *=10;
      Slippage   *=10;
     }
   return(INIT_SUCCEEDED);
  }
//±-----------------------------------------------------------------+
int deinit() {return(0);}
//±-----------------------------------------------------------------+
int start()
  {

   if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
   if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
                                    //:проверим открытие новой свечи
   if(Time[0]==Today) return(0);
   Today=Time[0];
//:получим значение ZigZag на предыдущей свече
   double lZZ=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,1);
  
// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     {
      SL = NormalizeDouble(Bid+StopLoss*Point, Digits);
      TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);
        {

         ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,SL,TP,"macd sample",Magic,0,Red);
         if(ticket>0)
           {
            // закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                        if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на покупку !");
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);
      SL = NormalizeDouble(Ask-StopLoss*Point, Digits);
        {
         ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,SL,TP,"macd sample",Magic,0,Green);
         if(ticket>0)
           {
            // закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                        if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на продажу!");
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Алексей Тарабанов:

稼げないなら、盗め。

ある映画の名台詞で、題名は忘れましたが、「盗めないなら、稼ぐ方法を学べ」というのがあります。
 
こんにちは、なぜかEAがターミナルを読み込んでいます。エラーを検出する方法は?((((((((( ;゚Д゚))))))) ありがとうございます。
 
rabanik:
こんにちは、なぜかEAがターミナルを読み込んでいます。エラーを検出する方法は?(( ありがとうございます。
Профилирование кода - Разработка программ - MetaTrader 5
Профилирование кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 

こんにちは。実際の口座で Expert Advisorのテストを開始しました。売り注文でこのようなことは見たことがありません。

 
Lomonosov1991:

こんにちは。実際の口座で Expert Advisorのテストを開始しました。売り注文でこのようなことは見たことがありません。

エキスパート "ジャーナルを見る

 

皆さん、ごきげんよう。皆さん、どなたかご存知の方はアドバイスください。

現在の価格を 知るために使用できるコードです。

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);
     }
   else 
      Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }

質問です。

これはどのように取り付けるのが正しいのでしょうか?

bool  SymbolInfoTick(
   string    symbol,     // символ
   MqlTick&  tick        // ссылка на структуру
   );

まあ、1つのExpert Advisorで複数の通貨ペアの現在値を取得することが可能だったということです。

まあ、私はプログラミングが苦手なので、何とかしようと思っています