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

 

Everything was here C:\Users===========================AppData.Local.IntellectualStoreProgram Files

えんけい

 

アドバイスをお願いします。

簡単なスクリプトを書きました(ニュースリリース前にチャートに載せるために市場に近いペンダントを2つセットして、手動でやる必要がないようにする)。 だいぶ楽になったようですが、うまくいきません。注文は出ず、ジャーナルには「スクリプトが正常にロードされました」とだけ書かれて、同じ瞬間にすぐに削除されます!?エラーなくコンパイルされます。テスターで確認するために、initとdeinitを追加したエキスパートフォームに変換したところ、うまくいきました。しかし、お分かりのように、私はExpert Advisorを必要とせず、単なるスクリプトを必要としています。

ここで何が問題なのか?よろしくお願いします。

以下は、そのスクリプトのコードです。

#property copyright"alexey15"
#プロパティリンク ""
#property show_confirm

extern int SL = 15;
extern int TP = 90;
extern int DELTA = 15;
extern double LOT = 0.1;
extern int SLIP = 3;

//+------------------------------------------------------------------+
//| スクリプトプログラム起動機能
//+------------------------------------------------------------------+
int start()
{
//----
double BUYPRICE = Ask + DELTA*Point;
double SELLPRICE = Bid - DELTA*Point;
int OPEN_ORDER。

OPEN_ORDER=OrderSend(Symbol()、OP_BUYSTOP、LOT、BUYPRICE、SLIP、BUYPRICE-SL*ポイント、BUYPRICE+TP*ポイント、NULL、0、0、ブルー);
OPEN_ORDER=OrderSend(Symbol()、OP_SELLSTOP、LOT、SELLPRICE、SLIP、SELLPRICE+SL*ポイント、SELLPRICE-TP*ポイント、NULL、0、0、赤);


//----
return(0)です。
}
//+------------------------------------------------------------------+

 
wiwkin52:

こんにちは。よろしくお願いします。mtと一緒にインジケーターも全部アンインストールしたんだ。今、インストールしても、すべてがそのままです。どうしたらいいのでしょうか?もしかして、インジケーターのコピーとかがどこかに保存されているのでは?

アンインストールだけですか、それともProgram FilesからMTフォルダも削除しましたか?
 
alexey15:

アドバイスをお願いします。

簡単なスクリプトを書きました(ニュースリリース前にチャートに載せるために市場に近いペンダントを2つセットして、手動でやる必要がないようにする)。 だいぶ楽になったようですが、うまくいきません。注文は出ず、ジャーナルには「スクリプトが正常にロードされました」とだけ書かれて、すぐに同じ秒数で削除されます!?エラーなくコンパイルされます。テスターで確認するため、エキスパート形式に変換、つまりininitとdeinitを追加したところ、うまくいきました。しかし、お分かりのように、私はExpert Advisorを必要とせず、単なるスクリプトを必要としています。

ここで何が問題なのか?よろしくお願いします。

以下は、そのスクリプトのコードです。


確認しました。あなたのスクリプトが動作します。

念のため、エラーを印刷してください。

int start()
{
//----
double BUYPRICE = Ask + DELTA*Point;
double SELLPRICE = Bid - DELTA*Point;
int TicketBS,TicketSS;
TicketBS=OrderSend(Symbol(),OP_BUYSTOP,LOT,BUYPRICE,SLIP,BUYPRICE-SL*Point,BUYPRICE+TP*Point,NULL,0,0,Blue);
TicketSS=OrderSend(Symbol(),OP_SELLSTOP,LOT,SELLPRICE,SLIP,SELLPRICE+SL*Point,SELLPRICE-TP*Point,NULL,0,0,Red);
 if(TicketBS<=0 || TicketSS<=0)Print("Error = ",GetLastError());
//----
return(0);
}

 
alexey15:

アドバイスをお願いします。

簡単なスクリプトを書きました(ニュースリリース前にチャートに載せるために市場に近いペンダントを2つセットして、手動でやる必要がないようにする)。 だいぶ楽になったようですが、うまくいきません。注文は出ず、ジャーナルには「スクリプトが正常にロードされました」とだけ書かれて、すぐに同じ秒数で削除されます!?エラーなくコンパイルされます。テスターで確認するために、initとdeinitを追加したエキスパートフォームに変換したところ、うまくいきました。しかし、お分かりのように、私はExpert Advisorを必要とせず、単なるスクリプトを必要としています。

ここで何が問題なのか?よろしくお願いします。

4桁の数字で 動作します。5桁のレベルでは確認していませんが、StopLevelに制約がある場合のチェックを追加しています。

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
extern int SL     = 15;
extern int TP     = 90;
extern int DELTA  = 15;
extern double LOT = 0.1;
extern int SLIP   = 3;

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
int StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
if (DELTA <= StopLevel) DELTA = StopLevel+1;

double BUYPRICE = Ask + DELTA*Point;
double SELLPRICE = Bid - DELTA*Point;
int OPEN_ORDER;

OPEN_ORDER=OrderSend(Symbol(),OP_BUYSTOP,LOT,BUYPRICE,SLIP,BUYPRICE-SL*Point,BUYPRICE+TP*Point,NULL,0,0,Blue);
OPEN_ORDER=OrderSend(Symbol(),OP_SELLSTOP,LOT,SELLPRICE,SLIP,SELLPRICE+SL*Point,SELLPRICE-TP*Point,NULL,0,0,Red);

//----
return(0);
}
//+------------------------------------------------------------------+
原則として、4桁、5桁のPoint調整を行うことで、誤差が生じないようにすることができます。なぜなら、デルタレベルは5桁で10倍、つまり15ではなく150であるべきで、それに応じてストップとテイクを...

そうすると、こんな感じになります。

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
extern int SL     = 15;
extern int TP     = 90;
extern int DELTA  = 15;
extern double LOT = 0.1;
extern int SLIP   = 3;

//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
double PointX;

if(Digits==5 || Digits==3) PointX = Point * 10;    // Корректировка Point под трёх- пятизнак
if(Digits==4 || Digits==2) PointX = Point;

int StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
if (DELTA <= StopLevel) DELTA = StopLevel+1;

double BUYPRICE = Ask + DELTA*PointX;
double SELLPRICE = Bid - DELTA*PointX;
int OPEN_ORDER;

OPEN_ORDER=OrderSend(Symbol(),OP_BUYSTOP,LOT,BUYPRICE,SLIP,BUYPRICE-SL*PointX,BUYPRICE+TP*PointX,NULL,0,0,Blue);
OPEN_ORDER=OrderSend(Symbol(),OP_SELLSTOP,LOT,SELLPRICE,SLIP,SELLPRICE+SL*PointX,SELLPRICE-TP*PointX,NULL,0,0,Red);

//----
return(0);
}
//+------------------------------------------------------------------+
 

おはようございます。

どなたか、指標のヒントがあれば教えてください...。

 
volshebnik:

おはようございます。

どなたか、指標のヒントがあれば教えてください...。

なるほど、インデックスですね。
 
splxgf:
なるほど、インデックスですね。
笑えない )質問はこちらでした -https://www.mql5.com/ru/forum/131277/page87 しかし、フォーラムの管理者は質問を繰り返すことを推奨していないので、私は再びそれを投稿しませんでした。
 
volshebnik:

こんにちは。

何が問題なのか、教えてください。GBPUSDでテスターを使用していますが、当然のように取引を開始します。私はドルインデックスDXH1でそれを使用している - それは多くの取引、エラー "130" - 不正なストップを開くことはありません。しかも、同じような状況で開いたり開かなかったり、それ以上に何が悪いのかがはっきりしないのです。ドルインデックス-100と200のスプレッドとストップレベル。GBPUSD -3 と 4 のスプレッドとストップレベル。ドルインデックスの価格、例:78.150、ペア - 小数点以下4桁である。しかし、それは説明されている。

以下は、そのコードの一部です。


思いつくままに。

1) SLとTPは非正規化されている。

2)OrderSendは正規化時にDigitsを 使用し、Symbで発注している。

この方法で試してみてください。

int opDigits=MarketInfo(Symb,MODE_DIGITS);
SL = NormalizeDouble(SL,opDigits);
TP = NormalizeDouble(TP,opDigits);
ОткрФрвверх = NormalizeDouble(ОткрФрвверх,opDigits);
ticketup=OrderSend(Symb, OP_BUYSTOP, Lot, ОткрФрвверх,0, SL, TP,NULL,A,0,вверх); // Ордер вверх
 
PapaYozh:


当てずっぽうで。

1) SLとTPは正規化されていない。

2) OrderSendはDigitsを使用して正規化するのに対し、Symbでは順序が設定される。

この方法で試してみてください。

ありがとうございました。うまくいったのですが、まれに同じエラーが発生することがあります - 130...... ( ストップの正規化は常に必要なのでしょうか、それともインデックスのときだけなのでしょうか。(通貨ペアのストップは、正常化しなくても常に機能すると私は考えています)。