初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 190

 
gyulnara.kosareva:
こんにちは、EAのexファイルさえあれば、mql4ファイルがなくてもEAをインストールすることができるのでしょうか?

はい、そのための.exファイルです。

 
皆さん、こんにちは。
アンドロイドにMT4アプリバージョン400.1129をインストールしていましたが、2019.10.29まではアプリが正常に動作していました。金曜日にスマホで開き始めたら、新しいデモ口座を開いているとスプラッシュ画面が光り、すぐにアプリが閉じました。そして、デスクトップに行き着いたのです。何十回とやっても同じ結果になりました。ターミナルを外し、プレイリストから新しいターミナルをダウンロードし、インストールし、実行しても同じ結果、アプリケーションがクラッシュしました。マーケットからRojo forex MT4をダウンロードし、インストールして起動したところ、見事に動作しています。また、MT5のバージョン500.1780をマーケットからダウンロードし、インストールして実行し、デモ口座を開設しましたが、すべて正常に動作しています。
MT4を再び携帯で使えるようにするにはどうしたらいいか、アドバイスをお願いします。お願いします。
 

皆さん、こんにちは!何が問題なのか、教えてください。マーケットでのストラテジーテスターがrequoteで文句を言う -NEW_ORDER(): lot=0.20;POSITION_TYPE_BUY(EURUSD); err: 4756/Failed tosend trade request; retcode: 10004/Requote. TO: 4756/Requote.TO:4756/Failed tosend trade request;

このエラーの詳細と修正方法はどこで読むことができますか?

 
Nikolai Konstantinov:

こんにちは、皆さん、何が問題なのか教えてください。マーケットでのストラテジーテスターがrequoteで文句を言う -NEW_ORDER(): lot=0.20;POSITION_TYPE_BUY(EURUSD); err: 4756/Failed tosend trade request; retcode: 10004/Requote.TO:4756/取引要求の 送信に失敗しました。

このエラーの詳細と修正方法はどこで読むことができますか?


これはエラーではなく、市場の状況です。
1. 取引を執行に移す前に価格を更新する。
2.修理後の再オープン
3.スリッページの増加
 
Vladislav Andruschenko:

間違いではなく、市場の状況です。
1.取引を執行する前に価格を更新する。
2.修理後、再オープン。
3.スリッページの増加

ありがとうございます。でも、あなたが書いたことはすべてすでに説明されています。他に検討すべきことはありますか?

 

こんにちは!助けてください

突然、MT4がハングアップするようになった。すべて異なる証券会社から。

起動 時に端末が ハングアップする。イン・マネージャーは、その前で「反応しない」と言う。MTパネルの一番下に、接続がない旨のマークがあります。

端末を再起動し、別のブローカーからそれらを変更し、削除して再インストールし、プログラムクリーンでデータをきれいにし、コンピュータの電源をオフにしてオンにする - 結果を与えていない。

OSの再インストールが残っているが、あまりに渋い。

もしかして、そんなの持ってた人いるのかな?

何かアドバイスはありますか?

 
odyn:

OSの再インストールが残っているが、あまり気が進まない。

または、仮想マシン 上にOSと端末をインストールし、そこにOracle VM VirtualBoxを問題なくインストールしてMT4/MT5を動作させます。

OSの問題であれば、OSの再インストールが必要です。


私自身も確認しましたが、MT4、MT5で問題なく動作しています。

 
odyn:

こんにちは!助けてください

突然、MT4がハングアップするようになった。すべて異なる証券会社から。

起動 時に端末が ハングアップする。イン・マネージャーは、その前で「反応しない」と言う。MTパネルの一番下に、接続がない旨のマークがあります。

端末を再起動し、別のブローカーからそれらを変更し、削除して再インストールし、プログラムクリーンでデータをきれいにし、コンピュータの電源をオフにしてオンにする - 結果を与えていない。

OSの再インストールが残っているが、あまりに渋い。

もしかして、そんなの持ってた人いるのかな?

できる人のアドバイスをお願いします。

Internet Explorerが問題の根源である可能性

アップグレードするか、ロールバックする必要があります。)そして、決して、あらゆる種類のアドオン、プラグイン、拡張機能を許可するものではありません。

マーケットプレイス/シグナル/ニュース/チャットを表示するためにエクスプローラーコンポーネントが支配的であると著者は判断したが、エクスプローラー自体は永久にベータ版である。そしてその問題は、端末に「干渉」する

 

皆さん、ごきげんよう。

Expert Advisor は、最後のポジションの終値に応じてポジションを開く」というコードの条件を変更できますか?ポジションがない場合は、直前のローソク足の方向によって開く」とし、現在の価格から一定距離のところに2つの保留注文を 出し、そのうちの1つがトリガーされると、2つ目の注文が削除 されるように変更する必要があります。残りのアルゴリズムは変更されません。

自分で手を加えてみたが、動作するバージョンを実現することはできなかった。

#property description "Советник открывает позицию в зависимости от закрытия прошлой позиции. Если позиции не было то в зависимости от направления прошлой свечи"
#property description "При достижение Т/P следующий ордер открывается в эту же сторону"
#property description "При достижение S/L следующий открывается в противоположную сторону"
//+------------------------------------------------------------------
#property  show_inputs
//+------------------------------------------------------------------
enum TT {BUY, SELL, BUYLIMIT, SELLLIMIT, BUYSTOP, SELLSTOP};
enum YN {No,Yes};
//+------------------------------------------------------------------
extern TT     Type         = BUY;
extern double Price        = 0; 
extern int    Distance     = 0;
extern int    stoploss     = 300,
              takeprofit   = 300;
extern double risk         = 0.01; //процент от депозита для рассчета объема первой позиции
extern double KoeffMartin  = 2.0;
extern int    OkrLOT       = 2;//округление лота
extern int    slippage     = 3;//Максимально допустимое отклонение цены для рыночных ордеров
extern int    MagicNumb    = 77;//Magic

double MINLOT,MAXLOT;                                  
//+------------------------------------------------------------------+
int OnInit()
{
   MAXLOT = MarketInfo(Symbol(),MODE_MAXLOT);
   MINLOT = MarketInfo(Symbol(),MODE_MINLOT);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{
   double OSL,OTP,OOP,SL,TP;
   int tip;
   double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   for (int i=0; i
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            tip = OrderType(); 
            OSL = NormalizeDouble(OrderStopLoss(),Digits);
            OTP = NormalizeDouble(OrderTakeProfit(),Digits);
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            SL=OSL;TP=OTP;
            if (tip==OP_BUY)             
            {  
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP - stoploss   * Point,Digits);
               } 
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP + takeprofit * Point,Digits);
               } 
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            }                                         
            if (tip==OP_SELL)        
            {
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP + stoploss   * Point,Digits);
               }
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP - takeprofit * Point,Digits);
               }
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            } 
            return;
         }
      }
   }
   tip=-1;
   double Lot=0;
    for (i=OrdersHistoryTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            if (OrderProfit()<0) 
            {
               Lot=lot(OrderLots(),KoeffMartin);
               tip=OrderType();
            }
            else 
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                               
}
//--------------------------------------------------------------------

double lot(double l,double k)

{

   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);

   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                                 
}
//--------------------------------------------------------------------
double lot(double l,double k)
{
   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
ファイル:
SSSR_v.1.mq4  11 kb
 
前回の投稿を言い換えてみます。

//--------------------------------------
アルゴリズムによると、Expert Advisorは前のポジションの終値に応じてポジションを開きます。
ポジションがなかった場合、最後のローソク足の方向によって開きます。

このアルゴリズムは、次のように変更する必要があります。

購入する。

設定で指定した価格でBuyStop、設定で指定した価格でSellStopの2つの保留注文を 出す。
価格がいずれかの逆指値注文に到達すると同時に、ТРとSLを設定した成行ポジションに移行する。トリガーしなかったオーダーは削除されます。

アルゴリズムの残りの部分は変更されない、すなわち "TP/Pに到達したら、同じ方向で次の注文を出す"。
"S/Lになったら、次の注文は反対方向に開く"
//---------------------------------------------------