初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 170 1...163164165166167168169170171172173174175176177...260 新しいコメント Konstantin Erin 2019.02.10 16:11 #1691 ponochka:こんにちは!機能を使って画面のスクリーンショットを撮っています。WindowScreenShot ("Screenshotname.png",1280,720); しかし、これはFilesフォルダにすべてを保存するので、それを保存する他のフォルダのパスを指定する必要があるのです! シンボリックリンクを使用する Vladimir Starikov 2019.02.10 20:32 #1692 こんにちは。 元々、フリーマージンによる緊急ロックの可能性はExpert Advisorに実装されていましたが、以下はそのコードの一部です。 if(AccountFreeMargin()<= inpMarginLock){gv.isEmergencyLock = true; しかし、そのうちに、それが決して便利なものではないことが分かってきました。 ドローダウンによる緊急ロックを実施したい。 例えば、預金残高が-100ドルになると、ロックがかかる。 もし、AccountFreeMargin() の代わりに、以下のコードを追加して、トリガーすることができるのなら、私の助けを求めたいと思います。 代わりにコードに書くために私を助ける ofFreeMargin() 自由なマージンにないブロッキング場所を取りますが、ときに預金にドローダウン。 よろしくお願いします!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Andrey Sablin 2019.02.11 04:54 #1693 こんにちは、私は問題があります、F9を押したとき、私は注文を開くために通常のメニューを取得しますが、私はシンボルペアを選択する必要があります、以前のように、私は開いたシンボルのためのメニューが消えます、それを修正する方法をアドバイスしてください。 Konstantin Erin 2019.02.11 09:03 #1694 Andrey Sablin:こんにちは、私は問題があります、F9を押したとき、私は注文を開くために通常のメニューを取得しますが、私はシンボルペアを選択する必要があります、以前のように、私は開いたシンボルのためのメニューが消えます、それを修正する方法をアドバイスしてください。サービス」→「設定」→「取引 Natall 2019.02.17 10:48 #1695 こんにちは) 助けてください、私は初心者です...スーパーシグナル-チャネルとZigZag指標の交差でEAを作ろうとすると、テンプレートが見つかりました。インジケータを投入しましたが、まだ注文が開きません。以下はコードの一部ですが、何が間違っているのでしょうか...? void Signal(double& ar[][],bool& op[],bool& cl[]){int trd=-1;double up=0.0,dn=0.0。//---ArrayInitialize(cl,false)です。ArrayInitialize(op,false)です。//ZigZagフィルタインジケータを接続するup=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);// 名前、設定、バッファ、BUY用スタートローソク足dn=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);// 名前、設定、バッファ、SELL用キャンドル開始位置if(dn==EV) trd=0;if(up==EV) trd=0; //Comment(trd)です。//反転表示と終了表示を接続するup=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,0,0);//BUY のためのローソク足の開始。dn=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,1,0,0);//SELL のためのローソク足の開始。if(up>0.0 && up<EV) cl[1]=true;if(dn>0.0 && dn<EV) cl[0]=true;up=0.0;dn=0.// 市場に参入する ための基本的な指標です。スイッチ(表示器){ケース SuperSignalsChannel:up=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,1,0);//BUY のためのローソク足の開始。dn=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,0,0);//SELL のためのスタートローソク足が壊れる。 P.S. フォーラムのどこかに似たようなスレッドがあれば、リンクを貼ってください。 Questions from Beginners MQL4 MQL5を使ったシンプルな多通貨エキスパートアドバイザーの作り方(第7回):オーサムオシレーターシグナルを持つジグザグ Aleksandr SHablevskiy 2019.02.19 05:05 #1696 こんにちは。このEAを持っていて、自分のニーズに合わせて改造しているのですが、今のところイマイチです。高値と安値で注文を出すのですが、高値+5pipsにしたいのです。 これが原因なのは分かっているのですが、コードで適用できないのです。助けてほしいです。ありがとうございました))))//+------------------------------------------------------------------+ //| //+------------------------------------------------------------------+ extern string TimeTrade = "19:00"; // Время открытия позиции extern int DistanceSet = 100; extern int TYPE = 0; extern int TP = 50; extern int SL = 4500; extern double lot = 0.1; extern int Magic_Number = 639713; int init(){ return(0);} int deinit(){ return(0);} int start() { double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point; double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; double pAsk=Ask+(DistanceSet)*Point; double pBid=Bid-DistanceSet*Point; if(Orders_Total( Magic_Number, Symbol()) == 0 ) { //Установка ордеров if(TYPE<=0) { // Здесь установим STOP-ордера if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask) OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid) OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low"); } if(TYPE>=1) { // Здесь установим LIMIT-ордера if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid) OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask) OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low"); } } return(0); } //---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----// int Orders_Total( int mn, string sym) { int num_orders=0; for(int i= OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber() == mn && sym==OrderSymbol()) num_orders++; } return(num_orders); } Martingeil 2019.02.20 14:51 #1697 Aleksandr SHablevskiy: こんにちは。このEAを持っていて、自分のニーズに合わせて改造しているのですが、今のところイマイチです。高値と安値で注文を出すのですが、高値+5pipsにしたいのです。 これが原因なのは分かっているのですが、コードで適用できないのです。助けてほしいです。ありがとうございました))))extern string TimeTrade = "19:00"; // Время открытия позицииextern int DistanceSet = 100;extern int DistanceStopOrder = 5;extern int DistanceLimitOrder = 5;extern int TYPE = 0;extern int TP = 50;extern int SL = 4500;extern double lot = 0.1;extern int Magic_Number = 639713;int init(){ return(0);}int deinit(){ return(0);}int start(){ double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point; double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; double pAsk=Ask+(DistanceSet)*Point; double pBid=Bid-DistanceSet*Point; if(Orders_Total( Magic_Number, Symbol()) == 0 ) { //Установка ордеров if(TYPE<=0) { // Здесь установим STOP-ордера if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask) OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid) OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low"); } if(TYPE>=1) { // Здесь установим LIMIT-ордера if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid) OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask) OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low"); } } return(0);}//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//int Orders_Total( int mn, string sym){ int num_orders=0; for(int i= OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber() == mn && sym==OrderSymbol()) num_orders++; } return(num_orders);//--- }//+------------------------------------------------------------------+ Questions from Beginners MQL4 How to disable expert [WARNING CLOSED!] Any newbie Aleksandr SHablevskiy 2019.02.20 19:39 #1698 Lehfr: extern string TimeTrade = "19:00"; // Время открытия позицииextern int DistanceSet = 100;extern int DistanceStopOrder = 5;extern int DistanceLimitOrder = 5;extern int TYPE = 0;extern int TP = 50;extern int SL = 4500;extern double lot = 0.1;extern int Magic_Number = 639713;int init(){ return(0);}int deinit(){ return(0);}int start(){ double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point; double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; double pAsk=Ask+(DistanceSet)*Point; double pBid=Bid-DistanceSet*Point; if(Orders_Total( Magic_Number, Symbol()) == 0 ) { //Установка ордеров if(TYPE<=0) { // Здесь установим STOP-ордера if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask) OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid) OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low"); } if(TYPE>=1) { // Здесь установим LIMIT-ордера if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid) OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask) OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low"); } } return(0);}//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//int Orders_Total( int mn, string sym){ int num_orders=0; for(int i= OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber() == mn && sym==OrderSymbol()) num_orders++; } return(num_orders);//--- }//+------------------------------------------------------------------+ 親切な方、ありがとうございます。) Jafas 2019.02.24 21:33 #1699 こんにちは、若い熟練者に犬の埋葬場所を教えてください)) Momentumを少し変更しました。あるべきように動作しているように見えますが、Expert Advisorで使用しようとすると、奇妙なおかしなことが起こります。正しいアルゴリズムに従っているようですが、追加の0,0449はどこから来るのかわかりません。 input int InpMomPeriod=1; // モメンタム期間void OnTick(){double High1 = iCustom(Symbol(),PERIOD_CURRENT, "INdekators 1.0",InpMomPeriod,0,0);} ファイル: GBPUSDH11.png 16 kb GBPUSDH1.png 16 kb Ruslan 2019.02.26 00:15 #1700 プログラマーの皆さん、こんにちは。 Kudos to you ! 注文を決済してメッセージを送信するEAがあります。 端末の自動売買を無効にしなければならない(ボタンを押す)。 ユーザーがUPNサーバーから切断された場合は、この処理を行いません。 ユーザーがcpsサーバーに接続し、ターミナルを開いているときは、ウィンドウが開いています。 Expert Advisorが動作している場合、ボタンを押すと正常に動作します。 が、Expert Advisorを実行すると、PPSサーバーとの接続が解除されます。 というメッセージが表示された後、Expert Advisorが動作しました。 UPUに戻るとボタンが押されていない。 Expert Advisor はUPP サーバー Windows Server 16上で 動作しています。 このコードの部分は、この機能を担っています if(AutotradeOFF)PressOrReleaseAutotrade()です。 結論 - この機能は、ユーザーがVPSサーバーから切断された場合、機能しません。 もしかして、問題を解決するための代替案があるのでは? 何が問題なのでしょうか? この問題を解決するためにご協力をお願いします。 そのコードを添付します。 この問題を解決するための手助けをありがとうございました。 ファイル: Expert_Help_Bot.mq4 15 kb 1...163164165166167168169170171172173174175176177...260 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは!機能を使って画面のスクリーンショットを撮っています。
WindowScreenShot ("Screenshotname.png",1280,720); しかし、これはFilesフォルダにすべてを保存するので、それを保存する他のフォルダのパスを指定する必要があるのです!
こんにちは。
元々、フリーマージンによる緊急ロックの可能性はExpert Advisorに実装されていましたが、以下はそのコードの一部です。
if(AccountFreeMargin()<= inpMarginLock)
{
gv.isEmergencyLock = true;
しかし、そのうちに、それが決して便利なものではないことが分かってきました。
ドローダウンによる緊急ロックを実施したい。
例えば、預金残高が-100ドルになると、ロックがかかる。
もし、AccountFreeMargin() の代わりに、以下のコードを追加して、トリガーすることができるのなら、私の助けを求めたいと思います。
代わりにコードに書くために私を助ける ofFreeMargin() 自由なマージンにないブロッキング場所を取りますが、ときに預金にドローダウン。
よろしくお願いします!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
こんにちは、私は問題があります、F9を押したとき、私は注文を開くために通常のメニューを取得しますが、私はシンボルペアを選択する必要があります、以前のように、私は開いたシンボルのためのメニューが消えます、それを修正する方法をアドバイスしてください。
サービス」→「設定」→「取引
こんにちは)
助けてください、私は初心者です...スーパーシグナル-チャネルとZigZag指標の交差でEAを作ろうとすると、テンプレートが見つかりました。インジケータを投入しましたが、まだ注文が開きません。以下はコードの一部ですが、何が間違っているのでしょうか...?
void Signal(double& ar[][],bool& op[],bool& cl[])
{
int trd=-1;
double up=0.0,dn=0.0。
//---
ArrayInitialize(cl,false)です。
ArrayInitialize(op,false)です。
//ZigZagフィルタインジケータを接続する
up=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);// 名前、設定、バッファ、BUY用スタートローソク足
dn=iCustom(_Symbol,tf, "ZigZag",InpDepth,InpDeviation,InpBackstep,0,0);// 名前、設定、バッファ、SELL用キャンドル開始位置
if(dn==EV) trd=0;
if(up==EV) trd=0; //Comment(trd)です。
//反転表示と終了表示を接続する
up=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,0,0);//BUY のためのローソク足の開始。
dn=iCustom(_Symbol,tf, "SuperSignalsChannel_1",SignalGap_1,ShowBars_1,dist_1,1,0,0);//SELL のためのローソク足の開始。
if(up>0.0 && up<EV) cl[1]=true;
if(dn>0.0 && dn<EV) cl[0]=true;
up=0.0;
dn=0.
// 市場に参入する ための基本的な指標です。
スイッチ(表示器)
{
ケース SuperSignalsChannel:
up=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,1,0);//BUY のためのローソク足の開始。
dn=iCustom(_Symbol,tf, "SuperSignalsChannel",SignalGap,ShowBars,dist_0,0,0);//SELL のためのスタートローソク足
が壊れる。
P.S. フォーラムのどこかに似たようなスレッドがあれば、リンクを貼ってください。
こんにちは。このEAを持っていて、自分のニーズに合わせて改造しているのですが、今のところイマイチです。高値と安値で注文を出すのですが、高値+5pipsにしたいのです。 これが原因なのは分かっているのですが、コードで適用できないのです。助けてほしいです。ありがとうございました))))
こんにちは。このEAを持っていて、自分のニーズに合わせて改造しているのですが、今のところイマイチです。高値と安値で注文を出すのですが、高値+5pipsにしたいのです。 これが原因なのは分かっているのですが、コードで適用できないのです。助けてほしいです。ありがとうございました))))
extern string TimeTrade = "19:00"; // Время открытия позиции
extern int DistanceSet = 100;
extern int DistanceStopOrder = 5;
extern int DistanceLimitOrder = 5;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;
int init(){ return(0);}
int deinit(){ return(0);}
int start()
{
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
double pAsk=Ask+(DistanceSet)*Point;
double pBid=Bid-DistanceSet*Point;
if(Orders_Total( Magic_Number, Symbol()) == 0 )
{
//Установка ордеров
if(TYPE<=0)
{
// Здесь установим STOP-ордера
if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
}
if(TYPE>=1)
{
// Здесь установим LIMIT-ордера
if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
}
}
return(0);
}
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
int num_orders=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == mn && sym==OrderSymbol())
num_orders++;
}
return(num_orders);//---
}
//+------------------------------------------------------------------+
extern string TimeTrade = "19:00"; // Время открытия позиции
extern int DistanceSet = 100;
extern int DistanceStopOrder = 5;
extern int DistanceLimitOrder = 5;
extern int TYPE = 0;
extern int TP = 50;
extern int SL = 4500;
extern double lot = 0.1;
extern int Magic_Number = 639713;
int init(){ return(0);}
int deinit(){ return(0);}
int start()
{
double SPREAD = MarketInfo(Symbol(),MODE_SPREAD)*Point;
double STOPLEVEL = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
double pAsk=Ask+(DistanceSet)*Point;
double pBid=Bid-DistanceSet*Point;
if(Orders_Total( Magic_Number, Symbol()) == 0 )
{
//Установка ордеров
if(TYPE<=0)
{
// Здесь установим STOP-ордера
if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD - STOPLEVEL > Ask)
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+DistanceStopOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) - SL*Point,iHigh(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Bid)
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1)-DistanceStopOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iLow(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
}
if(TYPE>=1)
{
// Здесь установим LIMIT-ордера
if(iHigh(Symbol(),PERIOD_D1,1) - STOPLEVEL > Bid)
OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1)-DistanceLimitOrder*Point,3,iHigh(Symbol(),PERIOD_D1,1) + SPREAD + SL*Point,iHigh(Symbol(),PERIOD_D1,1) + SPREAD - TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
if(iLow(Symbol(),PERIOD_D1,1) + STOPLEVEL < Ask)
OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+DistanceLimitOrder*Point,3,iLow(Symbol(),PERIOD_D1,1) - SL*Point,iLow(Symbol(),PERIOD_D1,1) + TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
}
}
return(0);
}
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total( int mn, string sym)
{
int num_orders=0;
for(int i= OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber() == mn && sym==OrderSymbol())
num_orders++;
}
return(num_orders);//---
}
//+------------------------------------------------------------------+
こんにちは、若い熟練者に犬の埋葬場所を教えてください))
Momentumを少し変更しました。あるべきように動作しているように見えますが、Expert Advisorで使用しようとすると、奇妙なおかしなことが起こります。正しいアルゴリズムに従っているようですが、追加の0,0449はどこから来るのかわかりません。
input int InpMomPeriod=1; // モメンタム期間
void OnTick()
{
double High1 = iCustom(Symbol(),PERIOD_CURRENT, "INdekators 1.0",InpMomPeriod,0,0);
}
プログラマーの皆さん、こんにちは。
Kudos to you !
注文を決済してメッセージを送信するEAがあります。
端末の自動売買を無効にしなければならない(ボタンを押す)。
ユーザーがUPNサーバーから切断された場合は、この処理を行いません。
ユーザーがcpsサーバーに接続し、ターミナルを開いているときは、ウィンドウが開いています。
Expert Advisorが動作している場合、ボタンを押すと正常に動作します。
が、Expert Advisorを実行すると、PPSサーバーとの接続が解除されます。
というメッセージが表示された後、Expert Advisorが動作しました。
UPUに戻るとボタンが押されていない。
Expert Advisor はUPP サーバー Windows Server 16上で 動作しています。
このコードの部分は、この機能を担っています
if(AutotradeOFF)PressOrReleaseAutotrade()です。
結論 - この機能は、ユーザーがVPSサーバーから切断された場合、機能しません。
もしかして、問題を解決するための代替案があるのでは?
何が問題なのでしょうか?
この問題を解決するためにご協力をお願いします。
そのコードを添付します。
この問題を解決するための手助けをありがとうございました。