mql4アドバイザーを無料で書かせていただきます。 - ページ 13

 
oleg3791: チャート上で5回マウスをクリックすると、アドバイザーが4本の線を引いていた。

必要なラインは黄色で表示

#property strict

int      Количество;
datetime старый, новый=0;
double   старая, новая=0;

void OnInit()
{
  Количество=0;
  ObjectsDeleteAll(0, "Линия");
}

void OnChartEvent(const int     id,  // идентификатор события   
                  const long &x, const double &yy,
                  const string& s)
{
  if(id!=CHARTEVENT_CLICK) return;
  if(Количество>4){OnInit();return;}
  string name[5]={"","Линия_1","Линия_2","Линия_3","Линия_4"};
  int y=int(yy);
  int O;
  старый=новый; старая=новая;
  ChartXYToTimePrice(0,int(x),y,O,новый,новая); // xy ---> время,цену
  if(Количество>0)
  ObjectCreate(name[Количество],OBJ_TREND,0,старый,старая,новый,новая);
  ObjectSet(name[Количество],OBJPROP_RAY,false);
  ObjectSet(name[Количество],OBJPROP_COLOR,Gold);
  ObjectSet(name[Количество],OBJPROP_WIDTH,2);
  Количество++; 
}

void OnDeinit(const int причина)
{
  OnInit();
}
 
STARIJ:

イエローライン必須

ありがとうございます!!!
 
oleg3791:   ありがとうございます!!!

では、ここで利益を出す方法を教えてください・・・それとも、ゲームを作るためでしょうか?

 

こんにちは、皆さん、EAのコードのエラーを見つけるのを手伝ってくれませんか、全てに目を通したつもりです、コードには全て正しく書かれているようですが、プログラムが何らかの理由で正しく取引できませんアイデアはこれです:アドバイザーは、同じ方向の2つの長いろうそく(ろうそく間の長さは、方向に応じて、2つの最小または最大ろうそく間、すなわち、顧問で調整可能です)を探している反対方向の価格が最後のろうそくの最小または最大を壊した場合、取引が開かれるべきである(ファイルに添付のチャート上の例の画像の状況)。本来であれば、そのような状況になるたびに取引を行うべきですが、なぜか日中の取引時間帯にしか取引を行いません。ここでは、プログラマから難しいことではありません、助けてください、エラーを修正する状況です。EAコードは下記および添付ファイルをご参照ください。

//+-----------------------------------------------------------------------------------------------+
//|                                                                           Spacing_Candles.mq4 |
//|                                                                        Copyright 2017, Vladim |
//|                                                                            vk.com/id229534564 |
//|                                                                  Mail: Vladim120385@yandex.ru |
//+-----------------------------------------------------------------------------------------------+
#property copyright "Copyright 2017, Vladim"
#property link      "vk.com/id229534564"
#property version   "1.00"
#property strict

//--- параметры советника
extern string paramEA    = "";     // Parameters EA
extern double volume     = 0.01;   // Volume
extern double stopLoss   = 5;     // StopLoss
extern double takeProfit = 1.5;    // TakeProfit
extern double maxSpacing = 150;   // MaxSpacing
extern double minSpacing = 30;    // MinSpacing
extern double TrailingStop  = 0;   // TrailingStop
extern int    magic      = 127;    // Magic

//--- глобальные переменные
datetime newCandle;
int tip;

//+-----------------------------------------------------------------------------------------------+
int OnInit()
{
   
   return(INIT_SUCCEEDED);
}
//+-----------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   
}
//+-----------------------------------------------------------------------------------------------+
void OnTick()
{
   if(newCandle != Time[0]) FindPattern();
   newCandle = Time[0];
}
//+-----------------------------------------------------------------------------------------------+
void OpenOrder(int type)   // Откроем рыночный ордер
{
   if(type == OP_BUY)  if(OrderSend(_Symbol, OP_BUY,  volume, Ask, 0, 0, 0, "", magic, 0)) SetSLTP(OP_BUY);
   if(type == OP_SELL) if(OrderSend(_Symbol, OP_SELL, volume, Bid, 0, 0, 0, "", magic, 0)) SetSLTP(OP_SELL);
}
//+-----------------------------------------------------------------------------------------------+
void SetSLTP(int type)   // Установим стоп приказы
{
   double sl = 0;
   double tp = 0;
   
   if(type == OP_BUY)
      for(int i = 0; i < OrdersTotal(); i++)
         if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
            if(OrderSymbol() == _Symbol && OrderMagicNumber() == magic && OrderType() == OP_BUY && OrderStopLoss() == 0)
            {
               sl = NormalizeDouble(Low[1] - stopLoss * _Point, _Digits);
               tp = NormalizeDouble(OrderOpenPrice() + (OrderOpenPrice() - Low[1]) * takeProfit, Digits);
               if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0)) return;
            }
   if(type == OP_SELL)
      for(int i = 0; i < OrdersTotal(); i++)
         if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
            if(OrderSymbol() == _Symbol && OrderMagicNumber() == magic && OrderType() == OP_SELL && OrderStopLoss() == 0)
            {
               sl = NormalizeDouble(High[1] + stopLoss * _Point, _Digits);
               tp = NormalizeDouble(OrderOpenPrice() - (High[1] - OrderOpenPrice()) * takeProfit, Digits);
               if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0)) return;
            }
}
//+-----------------------------------------------------------------------------------------------+
void FindPattern()   // Ищем большое расстояние между свечами
{
   if(High[1] < High[2] && Bid > High[1] && Low[1] < Low[2])
   {
      double spacing = NormalizeDouble((High[2] - High[1]) / _Point, 0);
            
      if(maxSpacing >= spacing && minSpacing <= spacing)
         OpenOrder(OP_BUY);
   }
   if(Low[1] > Low[2] && Bid < Low[1] && High[1] > High[2])
   {
      double spacing = NormalizeDouble((Low[1] - Low[2]) / _Point, 0);
            
      if(maxSpacing >= spacing && minSpacing <= spacing)
         OpenOrder(OP_SELL);
   }   
   {
      if (TrailingStop!=0) TrailingStop();      
   }
}
//+-----------------------------------------------------------------------------------------------+
void TrailingStop()
{
   double StLo,OSL,OOP;
   bool error=true;   
   for (int i=0; i<OrdersTotal(); i++) 
   {
      if (OrderSelect(i, SELECT_BY_POS))
      {
         tip = OrderType();
         if (tip<2 && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
         {
            OSL   = NormalizeDouble(OrderStopLoss(),Digits);
            OOP   = NormalizeDouble(OrderOpenPrice(),Digits);
            if (tip==0)        
            {  
               StLo = NormalizeDouble(Bid - TrailingStop*Point,Digits);
               if (StLo < OOP) continue;
               if (StLo > OSL)
                  error=OrderModify(OrderTicket(),OrderOpenPrice(),StLo,OrderTakeProfit(),0,White);

            }                                         
            if (tip==1)    
            {                                         
               StLo = NormalizeDouble(Ask + TrailingStop*Point,Digits);           
               if (StLo > OOP) continue;
               if (StLo < OSL || OSL==0 )
                  error=OrderModify(OrderTicket(),OrderOpenPrice(),StLo,OrderTakeProfit(),0,White);
            } 
            if (!error) Alert("Error TrailingStop ",GetLastError(),"   ",Symbol(),"   SL ",StLo);
         }
      }
   }
}
//+-----------------------------------------------------------------------------------------------+


EAはどう賭けるべきか」チャート写真

ファイル:
 
Vladim1203:

こんにちは、皆さん、EAのコードのエラーを見つけるのを手伝ってくれませんか、全てに目を通したつもりです、コードには全て正しく書かれているようですが、プログラムが何らかの理由で正しく取引できませんアイデアはこれです:アドバイザーは、同じ方向の2つの長いろうそく(ろうそく間の長さは、方向に応じて、2つの最小または最大ろうそく間、すなわち、顧問で調整可能です)を探している反対方向の価格が最後のろうそくの最小または最大を壊した場合、取引が開かれるべきである(ファイルに添付のチャート上の例の画像の状況)。本来であれば、そのような状況になるたびに取引を行うべきですが、なぜか日中の取引時間帯にしか取引を行いません。ここでは、プログラマから難しいことではありません、助けてください、エラーを修正する状況です。以下のEAコードと添付ファイルをご覧ください。

まず、見つけたローソクをチャート上にマークするEAの部分を書くと、すべてが明確になります。また、以下の行は、あなたの場合、不要です。

extern string paramEA    = "";     // Parameters EA

и

//+-----------------------------------------------------------------------------------------------+
int OnInit()
{
   
   return(INIT_SUCCEEDED);
}
//+-----------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   
}
//+-----------------------------------------------------------------------------------------------+
 
STARIJ:

さて、ここで利益を出す方法を教えてください・・・それとも、ゲームを作るのに必要ですか?


まだ利益が出るわけがない。トレンドに沿った、5つの主要ポイントによる2つの確率の目標株価を算出するアルゴリズムがありますが、有料で専用サーバーで算出しています。自分で目標を計算したい、アルゴリズムの作業はまだ終わっていない。

MQL4ではどのようなプログラムになるのでしょうか?

 
Anton Yakovlev:
もしあなたが良い戦略を持っていて、それを共有する意思があるならば、私はEAを書く ことができます。

Antonさん、助けてください!EAにトレーリングストップ機能を追加し、コンパイルしたところ、2つのエラーが表示されました。- 頭をバキバキにされて、どう直せばいいのかがわからない。しかし、取引は旧来の戦略に従って、価格がチャンネルの上限と下限にそれぞれタッチした後に終了します。ここでも何かを変えなければならないのでしょう。- dnr軍団に呼び戻せ。

#property copyright "Copyright 2017, MetaQuotes Software Corp."

#プロパティリンク "https://www.mql5.com"

#property version "1.00"

#プロパティの厳密さ


//---------------------------------------------------------

extern double Lots = 0.01;

extern int TakeProfit = 600;

extern int StopLoss = 25;

extern int Magic = 0001;

extern int Slippage = 3;

extern int TralType = 0; // 0-SAR、1-ATR、2-HMA。

extern double SAR_Step = 0.02;

extern double SAR_Max = 0.2;

extern int ATR_Period = 14;

extern double ATR_K = 2.0;

extern inttern HMA_Period = 16;

extern intern HMA_Method = 3;

extern inttern HMA_Shift = 0;

datetime LBT。

//---------------------------------------------------------

extern string TMA = "TMAインジケータパラメータ";

extern string TimeFrame = "現在の時間枠";

extern int HalfLength = 56;

extern int Price = "PRICE_CLOSE;

extern double ATRMultiplier = 2.0;

extern inttern ATRPeriod = 100;

extern bool Interpolate = true;

//---------------------------------------------------------

double PriceHigh, PriceLow, SL, TP;

int ticketです。


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

//| 専門家による初期化機能

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

int OnInit()

{

if (Digits == 3 || Digits == 5)

{

TakeProfit *= 10;

StopLoss *= 10;

スリッページ *= 10;

}

return(INIT_SUCCEEDED);

}

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

//| 専門家による初期化関数

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

void OnDeinit(const int reason)

{


}

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

//| エキスパートティック機能

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

void OnTick()

{

PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0)です。

PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0)です。

if(CountSell() == 0 && Bid >= PriceHigh)

{

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red)です。

{

SL = NormalizeDouble(Bid + StopLoss*Point, Digits)です。

TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)です。

if (OrderSelect(ticket, SELECT_BY_TICKET))

if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))

Print(" 注文変更エラー!")

}

}

if (CountBuy() == 0 && Ask <= PriceLow)

{

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue)です。

{

TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)です。

SL = NormalizeDouble(Ask - StopLoss*Point, Digits)です。

if (OrderSelect(ticket, SELECT_BY_TICKET))

if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))

Print("買い注文の修正に失敗しました!")

} else Print("Error opening Buy order");

}

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

//| 専門家による初期化機能

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

int init()

{

//--------


//--------

を返します(0)。

}

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

//| エキスパートティック機能

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

void OnTick()

{

PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0)です。

PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0)です。

if(CountSell() == 0 && Bid >= PriceHigh)

{

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red)です。

{

SL = NormalizeDouble(Bid + StopLoss*Point, Digits)です。

TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)です。

if (OrderSelect(ticket, SELECT_BY_TICKET))

if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))

Print("売り注文の修正に失敗しました!")

} else Print("売り注文の開始でエラー!")

}

if (CountBuy() == 0 && Ask <= PriceLow)

{

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue)です。

{

TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)です。

SL = NormalizeDouble(Ask - StopLoss*Point, Digits)です。

if (OrderSelect(ticket, SELECT_BY_TICKET))

if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))

Print("買い注文の修正に失敗しました!")

} else Print("Error opening Buy order");

}

if (Ask <= PriceLow && CountSell() > 0)

{

for (int i = OrdersTotal() -1; i>0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)

if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black))

Print("売り注文終了エラー!")

}

}

}

if (Bid >= PriceHigh && CountBuy() > 0)

{

for (int i = OrdersTotal() -1; i>0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)

if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black))

Print("OrderClose買いエラー!")

}

}

}

}

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

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)

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)

count++です。

}

}

return(count)です。

}

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

//| 専門家による初期化関数

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

int deinit()

{

//+-------


//+-------

返す

}

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

//| エキスパートスタート機能

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

int Start()

{

//-----

bool error = fals;

if (LBT!=Time[0]) { { { (LBT!

if (OrdersTotal()!=0){。

for (int i=0; i<OrdersTotal(); i++){

if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {。

double SL = OrderStopLoss();

if OrderType()==0) { {.

switch (TralType) {

case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);

が壊れる。

ケース1:SL = High[1] - iATR(NULL,0,ATR,Period,1)*ATR_K;

が壊れる。

case 2: SL = iCustom(NULL,0, "VinI_HMAsound&amp",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,",1,0,0);

が壊れる。

}

if (SL<OrderStopLoss())

SL = OrderStopLoss()です。

}

if (OrderType()==1)の場合{。

switch (TralType) {

case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);

が壊れる。

ケース1:SL = Low[1] + iATR(NULL,0,ATR,Period,1)*ATR_K;

が壊れる。

case 2: SL = iCustom(NULL,0, "VinI_HMAsound&amp",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,",1,0,0);

が壊れる。

}

if (SL>OrderStopLoss())

SL = OrderStopLoss()。

}

if (SL!=OrderStopLoss()の場合){

if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0))

error = true とする。

}

}

}

}

if (!エラー)

LBT = Time[0];

}

を返します(0)。

}

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

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
Выберите подходящую торговую стратегию и оформите подписку на нее в пару кликов. Все Сигналы сопровождаются подробной статистикой и графиками. Станьте Поставщиком торговых сигналов и продавайте подписку тысячам трейдеров по всему миру. Наш сервис позволит вам хорошо зарабатывать на прибыльной стратегии даже при небольшом стартовом капитале...
 
Andrey Luxe:

この分野の経験を積むために、あなたの面白いアイデアや戦略を参考に、25のEAを無料で書きます。

残り19個のEA


EAにトレーリングストップ機能を追加し、コメントしたところ、2つのエラーが 発生しました。- エラーがあるかもしれないが、どう直せばいいのかわからない。しかし、取引は旧戦略に従って、価格がチャンネルの上限と下限にそれぞれタッチした後に終了します。ここでも何かを変えなければならないのでしょう。- dnr軍団に呼び戻せ。

#property copyright "Copyright 2017, MetaQuotes Software Corp."

#プロパティリンク "https://www.mql5.com"

#property version "1.00"

#プロパティの厳密さ


//---------------------------------------------------------

extern double Lots = 0.01;

extern int TakeProfit = 600;

extern int StopLoss = 25;

extern int Magic = 0001;

extern int Slippage = 3;

extern int TralType = 0; // 0-SAR、1-ATR、2-HMA。

extern double SAR_Step = 0.02;

extern double SAR_Max = 0.2;

extern int ATR_Period = 14;

extern double ATR_K = 2.0;

extern inttern HMA_Period = 16;

extern intern HMA_Method = 3;

extern inttern HMA_Shift = 0;

datetime LBT。

//---------------------------------------------------------

extern string TMA = "TMAインジケータパラメータ";

extern string TimeFrame = "現在の時間枠";

extern int HalfLength = 56;

extern int Price = "PRICE_CLOSE;

extern double ATRMultiplier = 2.0;

extern inttern ATRPeriod = 100;

extern bool Interpolate = true;

//---------------------------------------------------------

double PriceHigh, PriceLow, SL, TP;

int ticketです。


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

//| 専門家による初期化機能

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

int OnInit()

{

if (Digits == 3 || Digits == 5)

{

TakeProfit *= 10;

StopLoss *= 10;

スリッページ *= 10;

}

return(INIT_SUCCEEDED);

}

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

//| 専門家による初期化関数

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

void OnDeinit(const int reason)

{


}

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

//| エキスパートティック機能

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

void OnTick()

{

PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0)です。

PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0)です。

if(CountSell() == 0 && Bid >= PriceHigh)

{

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red)です。

{

SL = NormalizeDouble(Bid + StopLoss*Point, Digits)です。

TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)です。

if (OrderSelect(ticket, SELECT_BY_TICKET))

if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))

Print(" 注文変更エラー!")

}

}

if (CountBuy() == 0 && Ask <= PriceLow)

{

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue)です。

{

TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)です。

SL = NormalizeDouble(Ask - StopLoss*Point, Digits)です。

if (OrderSelect(ticket, SELECT_BY_TICKET))

if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))

Print("買い注文の修正に失敗しました!")

} else Print("Error opening Buy order");

}

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

//| 専門家による初期化機能

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

int init()

{

//--------


//--------

を返します(0)。

}

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

//| エキスパートティック機能

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

void OnTick()

{

PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0)です。

PriceLow = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0)です。

if(CountSell() == 0 && Bid >= PriceHigh)

{

ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red)です。

{

SL = NormalizeDouble(Bid + StopLoss*Point, Digits)です。

TP = NormalizeDouble(Bid - TakeProfit*Point, Digits)です。

if (OrderSelect(ticket, SELECT_BY_TICKET))

if (!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))

Print("売り注文の修正に失敗しました!")

} else Print("売り注文の開始でエラー!")

}

if (CountBuy() == 0 && Ask <= PriceLow)

{

ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue)です。

{

TP = NormalizeDouble(Ask + TakeProfit*Point, Digits)です。

SL = NormalizeDouble(Ask - StopLoss*Point, Digits)です。

if (OrderSelect(ticket, SELECT_BY_TICKET))

if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0))

Print("買い注文の修正に失敗しました!")

} else Print("Error opening Buy order");

}

if (Ask <= PriceLow && CountSell() > 0)

{

for (int i = OrdersTotal() -1; i>0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (OrderMagicNumber() == Magic && OrderType() == OP_SELL)

if (!OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Black))

Print("OrderClose売り注文エラー!")

}

}

}

if (Bid >= PriceHigh && CountBuy() > 0)

{

for (int i = OrdersTotal() -1; i>0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (OrderMagicNumber() == Magic && OrderType() == OP_BUY)

if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black))

Print("OrderClose買いエラー!")

}

}

}

}

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

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)

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)

count++です。

}

}

return(count)です。

}

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

//| 専門家による初期化関数

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

int deinit()

{

//+-------


//+-------

返す

}

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

//| エキスパートスタート機能

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

int Start()

{

//-----

bool error = fals;

if (LBT!=Time[0]) { { { (LBT!

if (OrdersTotal()!=0){。

for (int i=0; i<OrdersTotal(); i++){

if (OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {。

double SL = OrderStopLoss();

if OrderType()==0) { {.

switch (TralType) {

case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);

が壊れる。

ケース1:SL = High[1] - iATR(NULL,0,ATR,Period,1)*ATR_K;

が壊れる。

case 2: SL = iCustom(NULL,0, "VinI_HMAsound&amp",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,",1,0,0);

が壊れる。

}

if (SL<OrderStopLoss())

SL = OrderStopLoss()。

}

if (OrderType()==1)の場合{。

switch (TralType) {

case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);

が壊れる。

ケース1:SL = Low[1] + iATR(NULL,0,ATR,Period,1)*ATR_K;

が壊れる。

case 2: SL = iCustom(NULL,0, "VinI_HMAsound&amp",HMA_Period,HMA_Method,3,HMA_Shift, fals,fals,",1,0,0);

が壊れる。

}

if (SL>OrderStopLoss())

SL = OrderStopLoss()。

}

if (SL!=OrderStopLoss()の場合){

if(!OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0))

error = true とする。

}

}

}

}

if (!エラー)

LBT = Time[0];

}

を返します(0)。

}

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

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
Выберите подходящую торговую стратегию и оформите подписку на нее в пару кликов. Все Сигналы сопровождаются подробной статистикой и графиками. Станьте Поставщиком торговых сигналов и продавайте подписку тысячам трейдеров по всему миру. Наш сервис позволит вам хорошо зарабатывать на прибыльной стратегии даже при небольшом стартовом капитале...
 
vkravtzov:

Expert Advisorにトレーリングストップ機能を追加し、コンパイルしたところ、2つのエラーが 発生しました。- 困惑しています。どう直せばフクロウになるのかがわからないのです。しかし、取引は旧来の戦略に従って、価格がチャンネルの上限と下限にそれぞれタッチした後に終了します。ここでも何かを変えなければならないのでしょう。- 朝鮮民主主義人民共和国の軍隊の連中に返すんだ。


スパムは必要ありません。
 
Victor Nikolaev:
スパムはやめたほうがいい。

何か悪いことをしたのなら謝ります。どうやってスパムをしたのか、いまだにわからない...。2人の同志に2つのメッセージを宛てたと思います。それとも、それは許されないのでしょうか?- 私のミスです。

理由: