[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 5

 
granit77:

質問:きれいな端子をつけるにはどうしたらいいですか? 結局、再起動しようとすると、システムが自動的に私を認識し、ターミナルファイルを再ロードすることができ、以前に蓄積した情報(デモ口座、書き込んだインジケータなど)を保存することができます。どうやら保存されたファイルの中に、過去のデータを再読み込みできないファイルがあるようです。 :)
 
こんにちは、私の質問は、MT4のEAがこのデバイスで動作するかどうかです。
 
boris.45:
ブローカーから再度ダウンロードし、別のディレクトリに置くだけです。必要であれば、デモ口座のユーザー名とパスワードを手動で入力しますが、新規に開設する方がよいでしょう。
そして、生まれたばかりの赤ん坊のように、まったく罪のない存在になる。
 
afirius:
こんにちは!問題は、MT4のEAがこのデバイスで動作するかどうかです
さようなら
 
クール)やっと万能薬になった)
T-G:
になります!
 
この専門家のコードで、買いから売りに変更することができます。
ファイル:
ema_wma.mq4  5 kb
 

こんにちは、ここで問題です。

同じExpert Advisorが、デモ口座やテスターでは正常に取引されるが、実際の口座では 動作しないか、正しく動作しない。

どうすれば直るのでしょうか?

extern int ma1 = 7;
extern int ma2 = 100;
extern int ma3 = 200;
extern int ma4 = 300;
extern int shift = 15;
extern double StartLot = 0.5;
extern double LotStep = 0.25;
extern int candleAmount = 25;
extern bool workAlone = true;

double   MA1;
double   MA2;
double   MA3;
double   MA4;
int      Trend;
int      i;
datetime shiftTime;
int      ticket;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   if (Digits == 3 || Digits == 5)
      shift = shift*10;
   MA1 = iMA(NULL,0,ma1,0,MODE_SMA,PRICE_CLOSE,1);
   MA2 = iMA(NULL,0,ma2,0,MODE_SMA,PRICE_CLOSE,1);
   MA3 = iMA(NULL,0,ma3,0,MODE_SMA,PRICE_CLOSE,1);
   MA4 = iMA(NULL,0,ma4,0,MODE_SMA,PRICE_CLOSE,1);
   if (MA1<MA2 && MA1<MA3 && MA1<MA4)        {Trend = 1;}
   else if (MA1>MA2 && MA1>MA3 && MA1>MA4)   {Trend = 4;}
   else                                      {Trend = 2;}
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   MA1 = iMA(NULL,0,ma1,0,MODE_SMA,PRICE_CLOSE,1);
   MA2 = iMA(NULL,0,ma2,0,MODE_SMA,PRICE_CLOSE,1);
   MA3 = iMA(NULL,0,ma3,0,MODE_SMA,PRICE_CLOSE,1);
   MA4 = iMA(NULL,0,ma4,0,MODE_SMA,PRICE_CLOSE,1);

   if (Trend == 2)
   {  if (MA1<MA2 && MA1<MA3 && MA1<MA4)
      {  for (i = OrdersTotal(); i >= 0; i--)
         {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType() == OP_BUY)
               OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),shift,Blue);
         }
         shiftTime = Time[0];
         if (OrdersTotal() == 0 || !workAlone)
         {  ticket = OrderSend(Symbol(),OP_SELL,LotsOptimized(Symbol()),NormalizeDouble(Bid,Digits),shift,0,0,"",777,0,Red);
            if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
               shiftTime = OrderOpenTime();
         }
         Trend = 1;
      }
      else if (MA1>MA2 && MA1>MA3 && MA1>MA4)
      {  for (i = OrdersTotal(); i >= 0; i--)
         {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType() == OP_SELL)
              OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),shift,Red);
         }
         shiftTime = Time[0];
         if (OrdersTotal() == 0 || !workAlone)
         {  ticket = OrderSend(Symbol(),OP_BUY,LotsOptimized(Symbol()),NormalizeDouble(Ask,Digits),shift,0,0,"",777,0,Blue);
            if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
               shiftTime = OrderOpenTime();
         }
         Trend = 4;
      }
   }

   if (Trend == 1)
   {  if (MA1>MA2 || MA1>MA3 || MA1>MA4)
      {  Trend = 2;
         if (iBarShift(NULL,0,shiftTime,false) >= candleAmount)
         {  for (i = OrdersTotal(); i >= 0; i--)
            {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),shift,Red);}}}}}

   if (Trend == 4)
   {  if (MA1<MA2 || MA1<MA3 || MA1<MA4)
      {  Trend = 2;
         if (iBarShift(NULL,0,shiftTime,false) >= candleAmount)
         {  for (i = OrdersTotal(); i >= 0; i--)
            {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),shift,Blue);}}}}}
//----
   return(0);
  }

//+------------------------------------------------------------------+

double LotsOptimized(string symbol)
{  double lot = StartLot;
   int    losses = 0;
   if (LotStep > 0)
   {  for (int c = OrdersHistoryTotal() - 1; c >= 0; c--)
      {  if (OrderSelect(c,SELECT_BY_POS,MODE_HISTORY) == false) break;
         if (OrderSymbol() != symbol) continue;
         //----
         if (OrderProfit() > 0) break;
         if (OrderProfit() < 0) losses++;
      }
      if (losses >= 1) lot = NormalizeDouble(lot + LotStep * losses,2);
   }
   if (lot < MarketInfo(symbol,MODE_MINLOT)) lot = MarketInfo(symbol,MODE_MINLOT);
   return (lot);
}

//+------------------------------------------------------------------+ 
 
deboir:

こんにちは、ここで問題です。

同じExpert Advisorが、デモ口座やテスターでは正常に取引されるが、実際の口座では動作しないか、正しく動作しない。

どうすれば直るのでしょうか?


奇跡は起きない。証券会社はどこですか?証券会社によっては、ストップロスやテイクプロフィットを設定する指示が含まれている場合、成行注文を行うことができない場合があります。ブロッコリーなんかはそうですね。そこで、まず成行注文を出し、その後に修正で逆指値注文を出す必要があります。
 
具体的には、パラメータx=1でテストを実行し、次にパラメータx=2を実行し、xを1から2のステップ1に最適化しました。すべてのチェックボックスはオフで、無駄なカットもスキップします。遺伝的アルゴリズムがオンとオフになっています。結果は異なっています。ヘルプ!

"skip useless cuts" のチェックを外してカットは現れます。ただ、単純なテストとは異なります。例えばパラメータx=1では、シンプルテストの結果が500ディールで、x=2では-700ディールになります。このパラメータを最適化する必要があり、x=1は1つの取引を取得し、x=2も1つの取引を取得します。私のExpert Advisorは仮想グラフィック修正を使用していますが、最適化がグラフィックオブジェクトの作成に 失敗している可能性はありませんか?

何が考えられますか?私はテスターでそれを試してみました。注文は正常に開始と終了します。私はパラメータを選択してテストしましたがすべての結果が拒否され、私はテストでこのパラメータを手動で変更しましたがすべてOKです。 最適化の間に遺伝的アルゴリズムをアクティブにして無効にして設定を変えました。
 

DZHINI, EDD

重複投稿にご注意ください。重複投稿を削除しました。今後、禁止事項があります。