アドバイザーを無料でお書きします - ページ 156 1...149150151152153154155156157158159160161162163...171 新しいコメント Ivan Butko 2021.09.09 16:35 #1551 Valeriy Yastremskiy #:テスターで見る場合は、実際の時間より遅い時間のテストを外すことができます。これはOnInitにあります。また、4kaではテスターで時刻を要求すると、テスターの時刻が正確に返されるのかどうか覚えていないのです。現在時刻を返すと思うので、テスターでは一度に注文を出すだけで終わりです。また、ローカルタイムをリクエストすると、現在のローカルタイムが表示されます。テスターの5kにある......完全な環境のエミュレーターです。 分かりやすい説明ありがとうございます Ivan Butko 2021.09.09 18:20 #1552 以前のものは、残念ながらサイズが合いませんでした。コードベースをよく見て みると、私が必要としているものとほぼ同じものが見つかりました。 https://www.mql5.com/ru/code/10236 //+------------------------------------------------------------------+//| i`lbeback.mq4 |//| Copyright ? 2011, AM2 && Tiburond |//| http://www.forexsystems.biz |//+------------------------------------------------------------------+#property copyright "Copyright ? 2011, AM2 && Tiburond"#property link "http://www.forexsystems.biz"#define MAGIC 20110406extern int StopLoss = 1300; //???????? ??????extern int StartHour = 21; //??? ?????? ????????(???????????? ?????)extern int Distance = 250; //?????????? ?? ???? ??? ????????? ??????extern int Step = 50; //??? ????????? ???????extern int Count = 4; //?????????? ??????????????? ???????extern int Expiration = 4; //????? ????????? ??????extern double Lots = 1; //???extern bool MM = true; //?????????? ???????????????extern double TSP = 5; //????extern bool BU = true; //?????????? ?????? ??????? ? ????????? ? ??????? ???extern int BUHour = 2; //??? ????? ??????? ??????? ??????? ? ?????????//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init() {//---- //---- return(0); }//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit() {//---- //---- return(0); }//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start() { int b=0,s=0,res; datetime expiration = TimeCurrent()+3600*Expiration; double BuyPrice=fND(Open[0]-Distance*Point); double SellPrice=fND(Open[0]+Distance*Point); for (int i=OrdersTotal()-1;i>=0;i--) { if (OrderSelect(i, SELECT_BY_POS)) { if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue; if (OrderType()==OP_BUYLIMIT) b++; if (OrderType()==OP_SELLLIMIT) s++; } } if (Hour()>BUHour && Hour()<StartHour && AllProfit()>0) ClosePositions(); if (Hour()>BUHour && DayOfWeek() == 5) ClosePositions(); if (Hour()==StartHour && b<1 && DayOfWeek() != 5) for(i=1;i<=Count;i++) { { res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),fND(Ask-(Distance*Point+i*Step*Point)),3,fND(BuyPrice-StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Blue); Sleep(3000); if(res<0) { Print("??????: ",GetLastError()); } else { RefreshRates(); } } } if (Hour()==StartHour && s<1 && DayOfWeek() != 5) for(i=1;i<=Count;i++) { { res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),fND(Bid+(Distance*Point+i*Step*Point)),3,fND(SellPrice+StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Red ); Sleep(3000); if(res<0) { Print("??????: ",GetLastError()); } else { RefreshRates(); } } } //---- return(0); }//+------------------------------------------------------------------+double fND(double d, int n=-1) { if (n<0) return(NormalizeDouble(d, Digits)); return(NormalizeDouble(d, n)); }//+------------------------------------------------------------------+double fLots() { double lot=Lots; double lot_min =MarketInfo( Symbol(), MODE_MINLOT ); double lot_max =MarketInfo( Symbol(), MODE_MAXLOT ); if (MM) { double lot_step =MarketInfo( Symbol(), MODE_LOTSTEP ); double lotcost =MarketInfo( Symbol(), MODE_TICKVALUE ); double dollarsPerPip=0.0; lot = AccountFreeMargin()*TSP/100.0; dollarsPerPip=lot/StopLoss; lot=fND(dollarsPerPip/lotcost, 2); lot=fND(lot/lot_step, 0) * lot_step; } if (lot<lot_min) lot=lot_min; if (lot>lot_max) lot=lot_max; return(lot); }//+------------------------------------------------------------------+void ClosePositions() { if(BU) for (int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC) { if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue); if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red); } Sleep(1000); } } }//+------------------------------------------------------------------+double AllProfit() { double Profit = 0; for (int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue; if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC) if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit(); } return (Profit); }//+------------------------------------------------------------------+ 訂正のご協力をお願いします。このEAは、未決済の注文を強制的に決済することはありません。 最適化するためにTPとtrallが必要です。トロール、すべての制限が小さく閉じられるように、しかし、夜のノイズを収集します。 Советник по стратегии "Возврат". www.mql5.com Ночной скальпер. EURUSD H1. I will write an [アーカイブ!】どんなエキスパートやインジケーターでも無料で書きます。 MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 Иван Макаров 2021.09.10 12:27 #1553 こんにちは。MT4用のEAで助けてくれる人。手動で出した注文に追従するような仕掛けのないEAが欲しい(マジックありでもなしでも)。ストップロスで注文が閉じられた場合、EAは同じ方向で指定したロット、SL、TPで新規注文を出します。テイクプロフィットで注文が閉じられた場合、EAは反対方向で 指定したロット、SL、TPで 新規の注文を出します。 もしかしたら、既成のソリューションがあるかもしれませんが、私は何も見つけることができませんでした。ありがとうございました。 Tarlan684 2021.09.17 06:52 #1554 Anton Yakovlev: 良いストラテジーをお持ちで、それを共有していただけるのであれば、EAを 書くことも可能です。 こんにちは、私はローソクの動き(パターン)に基づいて動作するインジケータが必要です。それを書くことは可能ですか、どのくらい、あなたの要求を渡す方法。 Ivan Bielyi 2021.09.18 09:36 #1555 こんにちは。mt4用のpipsアドバイザーを 作成することはできますか?戦略:2つの異なる指示の買い指値/売り指値注文を、互いにXの距離に設定し、ストップ、テイク、トロールを設定する。例えば、こんな感じです。価格がいずれかの指値にぶつかり、この注文がストップまたはテイクで閉じられた場合、反対側の指値はキャンセルされ、異なる2つの指値が再び設定されます。EAパラメータ。ロット停止取るトロールリミットスペーシングマジックスリッページ Evgeny Belyaev 2021.09.18 15:24 #1556 Ivan Bielyi #:2種類の異なる指示の買い指値/売り指値注文をスプレッド制限で設定することで 指値注文でスプレッドを制限するにはどうすればよいですか? Ivan Bielyi 2021.09.18 15:30 #1557 Evgeny Belyaev #:また、リミッターのスプレッドはどのように制限するのですか? つまり、例えばスプレッドが5pipsより大きい場合は、ペンディングオーダーを行わないようにしますが、あまりにも問題がある場合は、このパラメータをスキップすることができます。 Evgeny Belyaev 2021.09.18 16:58 #1558 Ivan Bielyi #: つまり、スプレッドが5ポイントより大きい場合は、保留注文を出すべきではありませんが、非常に問題がある場合は、このパラメータをスキップすることができます。 何が言いたいの?彼らは今すぐには実行されない(彼らは限界である)。そして、いざ実行に移すとなると、スプレッドがまったく違うものになるのです。 Ivan Bielyi 2021.09.18 17:10 #1559 Evgeny Belyaev #:何が言いたいの?彼らは今すぐには実行されない(彼らは限界である)。そして、いざ実行に移すとなると、スプレッドがまったく違うものになるのです。 Dumb, then exactly without this parameter))) Aleksei Stepanenko 2021.09.18 21:47 #1560 Daniil Osipov #: 何を基準にし、どれだけ複雑なアルゴリズム なのか。 移動平均のトレンドを判断する TrendUp := MAvg[1]>TrendUp[1] ? max(Up,TrendUp[1]) : Up 1...149150151152153154155156157158159160161162163...171 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
テスターで見る場合は、実際の時間より遅い時間のテストを外すことができます。これはOnInitにあります。また、4kaではテスターで時刻を要求すると、テスターの時刻が正確に返されるのかどうか覚えていないのです。現在時刻を返すと思うので、テスターでは一度に注文を出すだけで終わりです。また、ローカルタイムをリクエストすると、現在のローカルタイムが表示されます。
テスターの5kにある......完全な環境のエミュレーターです。
分かりやすい説明ありがとうございます
https://www.mql5.com/ru/code/10236
//+------------------------------------------------------------------+
//| i`lbeback.mq4 |
//| Copyright ? 2011, AM2 && Tiburond |
//| http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2011, AM2 && Tiburond"
#property link "http://www.forexsystems.biz"
#define MAGIC 20110406
extern int StopLoss = 1300; //???????? ??????
extern int StartHour = 21; //??? ?????? ????????(???????????? ?????)
extern int Distance = 250; //?????????? ?? ???? ??? ????????? ??????
extern int Step = 50; //??? ????????? ???????
extern int Count = 4; //?????????? ??????????????? ???????
extern int Expiration = 4; //????? ????????? ??????
extern double Lots = 1; //???
extern bool MM = true; //?????????? ???????????????
extern double TSP = 5; //????
extern bool BU = true; //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern int BUHour = 2; //??? ????? ??????? ??????? ??????? ? ?????????
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
int b=0,s=0,res;
datetime expiration = TimeCurrent()+3600*Expiration;
double BuyPrice=fND(Open[0]-Distance*Point);
double SellPrice=fND(Open[0]+Distance*Point);
for (int i=OrdersTotal()-1;i>=0;i--)
{
if (OrderSelect(i, SELECT_BY_POS))
{
if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
if (OrderType()==OP_BUYLIMIT) b++;
if (OrderType()==OP_SELLLIMIT) s++;
}
}
if (Hour()>BUHour && Hour()<StartHour && AllProfit()>0) ClosePositions();
if (Hour()>BUHour && DayOfWeek() == 5) ClosePositions();
if (Hour()==StartHour && b<1 && DayOfWeek() != 5)
for(i=1;i<=Count;i++)
{
{
res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),fND(Ask-(Distance*Point+i*Step*Point)),3,fND(BuyPrice-StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Blue);
Sleep(3000);
if(res<0)
{
Print("??????: ",GetLastError());
} else {
RefreshRates();
}
}
}
if (Hour()==StartHour && s<1 && DayOfWeek() != 5)
for(i=1;i<=Count;i++)
{
{
res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),fND(Bid+(Distance*Point+i*Step*Point)),3,fND(SellPrice+StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Red );
Sleep(3000);
if(res<0)
{
Print("??????: ",GetLastError());
} else {
RefreshRates();
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
double fND(double d, int n=-1)
{
if (n<0) return(NormalizeDouble(d, Digits));
return(NormalizeDouble(d, n));
}
//+------------------------------------------------------------------+
double fLots()
{
double lot=Lots;
double lot_min =MarketInfo( Symbol(), MODE_MINLOT );
double lot_max =MarketInfo( Symbol(), MODE_MAXLOT );
if (MM)
{
double lot_step =MarketInfo( Symbol(), MODE_LOTSTEP );
double lotcost =MarketInfo( Symbol(), MODE_TICKVALUE );
double dollarsPerPip=0.0;
lot = AccountFreeMargin()*TSP/100.0;
dollarsPerPip=lot/StopLoss;
lot=fND(dollarsPerPip/lotcost, 2);
lot=fND(lot/lot_step, 0) * lot_step;
}
if (lot<lot_min) lot=lot_min;
if (lot>lot_max) lot=lot_max;
return(lot);
}
//+------------------------------------------------------------------+
void ClosePositions()
{
if(BU)
for (int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol())
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
{
if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
}
Sleep(1000);
}
}
}
//+------------------------------------------------------------------+
double AllProfit()
{
double Profit = 0;
for (int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
}
return (Profit);
}
//+------------------------------------------------------------------+
訂正のご協力をお願いします。このEAは、未決済の注文を強制的に決済することはありません。
最適化するためにTPとtrallが必要です。トロール、すべての制限が小さく閉じられるように、しかし、夜のノイズを収集します。
良いストラテジーをお持ちで、それを共有していただけるのであれば、EAを 書くことも可能です。
指値注文でスプレッドを制限するにはどうすればよいですか?
また、リミッターのスプレッドはどのように制限するのですか?
つまり、スプレッドが5ポイントより大きい場合は、保留注文を出すべきではありませんが、非常に問題がある場合は、このパラメータをスキップすることができます。
何が言いたいの?彼らは今すぐには実行されない(彼らは限界である)。そして、いざ実行に移すとなると、スプレッドがまったく違うものになるのです。
何が言いたいの?彼らは今すぐには実行されない(彼らは限界である)。そして、いざ実行に移すとなると、スプレッドがまったく違うものになるのです。
何を基準にし、どれだけ複雑なアルゴリズム なのか。
移動平均のトレンドを判断する