externint stoploss=20; externint takeprofit=50; // если stoploss и / или takeprofit = 0, то отключены. //if stoploss and/or takeprofit = 0, are disconnected.
externint Magic = 99999999; // уникальный номер, кот. советник метит свои ордера и впоследствии работает только с ними. При постановке на разные графики или т/ф, межики должны быть разными externint Slipp = 1; // величина максимально возможного проскальзывания. // slippage externint sec = 2000; // количество миллисекунд сна советника между повторами отправки торгового поручения в случае неудачи // number of milliseconds sleep of the EA between repetitions of sending a trade assignment in case of failure
//============================= Stochastic inputint InpKPeriod=13; // K Period inputint InpDPeriod=3; // D Period inputint InpSlowing=3; // Slowing
//============================= Stochastic inputint InpKPeriod1=13; // K Period inputint InpDPeriod1=3; // D Period inputint InpSlowing1=3; // Slowing
サイズで検索できないので、価格でソートする必要があります。グリッドが異なる場合があり、最大または最小のいずれかを見つけることができますが、最初と最後ではありません
マリナさんが投稿された機能のことです。
ラストオーダーは、時間によって決まります。
マリナさんが投稿された機能のことです。
ラストオーダーは、時間によって決まります。
私はこう呼びかけるから
プログラマーの皆様へこの問題を解くのを手伝ってください。エキスパートアドバイザーは、M15で取引を開始しますが、H1からも条件を取ります。H1の条件がM15で満たされると、いくつかのエントリーポイントが存在する可能性があります。実は、H1の条件が逆転するまでは、最初のエントリーポイントだけを使いたいんです。
k=0;
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) k++;
} }.
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && k==0 && opp != Time[0]) // 買取
プログラマーの皆様へこの問題を解くのを手伝ってください。エキスパートアドバイザーは、M15で取引を開始しますが、H1からも条件を取ります。H1の条件がM15で満たされると、いくつかのエントリーポイントが存在する可能性があります。実は、最初のエントリーポイントを、H1の条件が反対に変化しない限り、制限したいのです。
k=0;
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates()。
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) k++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && k==0 && opp != Time[0]) // 買付け
しかし、コードがない場合はどうでしょうか?特に、コードが明確でない。
具体的に何をしたいのですか?抽象的な表現ではなく、まさに「手に入れたいもの」。
プログラマーの皆様へこの問題を解くのを手伝ってください。エキスパートアドバイザーは、M15で取引を開始しますが、H1からも条件を取ります。H1の条件がM15で満たされると、いくつかのエントリーポイントが存在する可能性があります。実は問題は、H1では条件が逆に変化しないのに、最初のエントリーポイントに限定したいのです。
k=0;
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates()。
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) k++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && k==0 && opp != Time[0]) // 買付け
近似的なアルゴリズム
bool flagH1 = true;
bool flagM15 = true;
if(!flag && flagH1 && flagM15)
{
flag = true;
}
if(!flagH1 && flag)
flag = false;
コードなしは?コードを理解しない理由は、それだけではありません。
具体的に何をしたいのですか?抽象的な表現ではなく、まさに「手に入れたいもの」。
extern double Lot= 0.1;
extern int stoploss=20;
extern int takeprofit=50;
// если stoploss и / или takeprofit = 0, то отключены.
//if stoploss and/or takeprofit = 0, are disconnected.
extern int Magic = 99999999;
// уникальный номер, кот. советник метит свои ордера и впоследствии работает только с ними. При постановке на разные графики или т/ф, межики должны быть разными
extern int Slipp = 1;
// величина максимально возможного проскальзывания.
// slippage
extern int sec = 2000;
// количество миллисекунд сна советника между повторами отправки торгового поручения в случае неудачи
// number of milliseconds sleep of the EA between repetitions of sending a trade assignment in case of failure
//============================= Stochastic
input int InpKPeriod=13; // K Period
input int InpDPeriod=3; // D Period
input int InpSlowing=3; // Slowing
//============================= Stochastic
input int InpKPeriod1=13; // K Period
input int InpDPeriod1=3; // D Period
input int InpSlowing1=3; // Slowing
int A, a, b, i, ii, o;
double SL, TP, op, stH0, stH1, stM0, stM1;
bool c;
datetime OldTime, Time0, opp;
int init()
{
OldTime = iTime(NULL,Period(),0);
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//====================================================================
stH0 = iStochastic(NULL,60,InpKPeriod,InpDPeriod,InpSlowing,MODE_EMA,1,MODE_MAIN,0);
stH1 = iStochastic(NULL,60,InpKPeriod,InpDPeriod,InpSlowing,MODE_EMA,1,MODE_MAIN,1);
stM0 = iStochastic(NULL,15,InpKPeriod1,InpDPeriod1,InpSlowing1,MODE_EMA,1,MODE_MAIN,0);
stM1 = iStochastic(NULL,15,InpKPeriod1,InpDPeriod1,InpSlowing1,MODE_EMA,1,MODE_MAIN,1);
//====================================================================
b=0;
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
if( stM1 <= 20 && stM0 > 20 && stH0 > 70 && b==0 && opp != Time[0]) // покупка
{
opp = Time[0];
RefreshRates();
op = Ask;
A = OrderSend (Symbol(), OP_BUY, Lot, Ask, Slipp, 0, 0, NULL, Magic, 0, Blue);
o = GetLastError();
while (A < 0 && o != 4109 && o != 132 && o != 133)
{
Print("Error =", o);
Sleep(sec);
RefreshRates();
op = Ask;
A = OrderSend (Symbol(), OP_BUY, Lot, Ask, Slipp, 0, 0, NULL, Magic, 0, Blue);
o = GetLastError();
}
SL = op-stoploss*Point;
if (stoploss == 0) SL = 0;
TP = op+takeprofit*Point;
if (takeprofit == 0 ) TP = 0;
if (SL != 0 || TP != 0)
{
RefreshRates();
if(OrderSelect (A, SELECT_BY_TICKET) == true) a = 0;
c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
o = GetLastError();
while (c == false && o != 4109 && o != 132 && o != 133)
{
Print("Error =", o);
Sleep(sec);
RefreshRates();
if(OrderSelect (A, SELECT_BY_TICKET) == true) a = 0;
c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
o = GetLastError();
} }
}
//---------------------------------------------------------------------------------------------------------+
b=0;
for (i=OrdersTotal()-1;i>=0;i--)
{
RefreshRates();
if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
}
if( stM1 >= 80 && stM0 < 80 && stH0 < 30 && b==0 && opp != Time[0]) // продажа
{
opp = Time[0];
RefreshRates();
op = Bid;
A = OrderSend (Symbol(), OP_SELL, Lot, Bid, Slipp, 0, 0, NULL, Magic, 0, Red);
o = GetLastError();
while (A < 0 && o != 4109 && o != 132 && o != 133)
{
Print("Error =", o);
Sleep(sec);
RefreshRates();
op = Bid;
A = OrderSend (Symbol(), OP_SELL, Lot, Bid, Slipp, 0, 0, NULL, Magic, 0, Red);
o = GetLastError();
}
SL = op+stoploss*Point;
if (stoploss == 0) SL = 0;
TP = op-takeprofit*Point;
if (takeprofit == 0 ) TP = 0;
if (SL != 0 || TP != 0)
{
RefreshRates();
if(OrderSelect (A, SELECT_BY_TICKET) == true) a = 0;
c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
o = GetLastError();
while (c == false && o != 4109 && o != 132 && o != 133)
{
Print("Error =", o);
Sleep(sec);
RefreshRates();
if(OrderSelect (A, SELECT_BY_TICKET) == true) a = 0;
c = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Green);
o = GetLastError();
} }
}
return(0);
}
//+------------------------------------------------------------------+
Artyomさん こんにちは!目標は、H1にシグナルがある限り、M15でのエントリーを1回(最初のシグナル)に限定することです。
フォーラムの皆様、こんにちは。Metatrader4に内蔵されているトレーリングストップの値をEA内から設定する方法はありますか?私はこのことに興味があるのであって、内蔵のトレーリングストップとは独立したトレーリングストップの実行コードをExpert Advisorに追加することに興味があるわけではありません。
回答ありがとうございました。
フォーラムの皆様、こんにちは。Metatrader4に内蔵されているトレーリングストップの値をEA内から設定する方法はありますか?私はこのことに興味があり、内蔵のトレーリングストップとは独立したトレーリングストップを実行するためのコードをEAに追加することには興味がありません。
回答ありがとうございました。