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

 

改めてポジションインデックスってなんだろうと思いました。履歴の中の位置番号であれば、この関数は何をするのでしょうか?

GetIndexLastPos 最後にオープンしたポジション のインデックスまたは-1 ?.

最後にオープンしたポジションのインデックスは常に1であり、それは最新だからです!

私は明らかにINDEXを誤解しています.

を知る手がかりとなります。

 
lottamer:

どのように比較するべきだと思いますか?

では、はじめましょう。

1.If(Stoch_1>Stoch_2) flag1=1 ; , それに続く条件 (Stoch_1<Stoch_2 && flag1==1) は原理的に成り立たない、なぜなら Stoch_1<Stoch_2 flag1==0 かつ flag1==1なら Stoch_1>Stoch_2 だからである。は、この関数内の後続のすべての条件と同じなので、flag1だけが値を変更することができます。つまり、プログラムは最初の2行を実行し、3行目を スキップし、4行目を 実行し、5行目を スキップし、6行目を実行し、7行目を実行し、その他をスキップします。


	          
 
xant:

TarasBY,

Var1などの名前をつけて、initの中にfGet_MineGV()ブロックを、staftの中にfSave_MineGV()ブロックを挿入しています。

コンパイル時にEAがエラーを連発した。

ひとつひとつ試してみました。まずinitの中に入れてから、コンパイルしました。エラーは0件、remark:は参照されていないのでexp-fileから削除されます。まあ、それは私にとって理にかなっている、それはまだ存在しないので、ファイルを見つけることができません。スタフの内側に書かれている必要があります。

そのため、2つ目のブロックをstaftの中に書こうとすると、エラーが大量に発生するのです。

構造アルゴリズム。

int init()
{
    fGet_MineGV();
}
int start()
{
    fSave_MineGV();
}
double Var1, Var2, Var3, Var4;  // 4-ре переменных для сохранения (у Вас они свои !!!)
void fSave_MineGV (string fs_PrefName = "")     // префикс имени переменной
{
    static datetime ldt_NewBar;
    datetime ldaTBeginBar = iTime (Symbol(), 1, 0);
//----
    //---- Сохраняемся в начале каждой минуты
    if (ldt_NewBar == ldaTBeginBar) return;
    ldt_NewBar = ldaTBeginBar;
    //---- Сохраняем поочереди значения каждой переменной
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
    GlobalVariableSet (ls_Name, Var1);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    GlobalVariableSet (ls_Name, Var2);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    GlobalVariableSet (ls_Name, Var3);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    GlobalVariableSet (ls_Name, Var4);
//----
}
// в init()
void fGet_MineGV (string fs_PrefName = "")     // префикс имени переменной
{
    string ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_1");
//----
    //---- Восстанавливаем значения переменных
    if (GlobalVariableCheck (ls_Name)) Var1 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_2");
    if (GlobalVariableCheck (ls_Name)) Var2 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_3");
    if (GlobalVariableCheck (ls_Name)) Var3 = GlobalVariableGet (ls_Name);
    ls_Name = StringConcatenate (fs_PrefName, Symbol(), "_N_4");
    if (GlobalVariableCheck (ls_Name)) Var4 = GlobalVariableGet (ls_Name);
//----
}

もちろん、あなたはそうしましたか?そして、コンパイルができない?

 
lottamer:

改めてポジションインデックスってなんだろうと思いました。履歴の中の位置番号であれば、この関数は何をするのでしょうか?

GetIndexLastPos 最後にオープンしたポジションのインデックスまたは-1 ?.

最後にオープンしたポジションのインデックスは常に1であり、それは最新だからです!

私は明らかにINDEXを誤解しています.

を知る手がかりとなります。


最後に開いたときのインデックスが常に1であるのは、それが最新であるからです!1ではなく、0であり、履歴に残らない。履歴の0は、最後に決済されたポジション、または最後に削除された注文の インデックスであり、常にそうとは限りません。
 
Profiさん、「スプレッドを考慮した決済注文のパラメータを持つSLレベルの保留注文を 出す」というのをプログラム的にどう書くか、EAのコードのどこにつけるか教えてください。
 
yosuf:
Profiさん、「スプレッドを含む決済注文のパラメータを持つSLレベルの保留注文を出す」というのをプログラム的にどう書くか、EAコードのどこにつけるか教えてください。 。

クローズオーダーのパラメーターでは無理です。始値も パラメータになります。
 

タラスバイ

はい、書いていただいたとおりにしました。しかも、コンパイルできない。

明らかに私が悪いことをしたのだが、具体的に何が悪いのか分からない。ステップバイステップで進められます。

 
rigonich:

閉じるべきもののパラメータで方法がない。始値もパラメータになります。
なぜ?例えば、O=1.2900, TP 1.300, SL 1.2800で注文が出されています。保留中の注文は BAY O= 1.2800、TP 1.2900、SL 1.2700のパラメータが必要です。可能であれば、スプレッドが失われることを考慮してください。
 
yosuf:
なぜ?例えば、O= 1.2900でBAY注文をTPを1.300、SLを1.300 としてオープンしています。保留中の注文はBAY O= 1.2800、TP 1.2900、SL 1.2700のパラメータが必要です。できれば、スプレッドが失われることを考慮してください。 。


最初の注文の建値は 1.2900、 TPは1.300です。2番目の注文の建値は1.2800、TPは1.290 です。これらは別のパラメータです。1 つ目はBAY、2つ目は BAY_STOP です。これらも異なるパラメータです。そして、SLで決済すると、スプレッドではなく、それ以上の損失(スプレッド+SL*ポイント)が発生します。
 
rigonich:

では、はじめましょう。

1.If(Stoch_1>Stoch_2) flag1=1 ; , それに続く条件 (Stoch_1<Stoch_2 && flag1==1) は原理的に成り立たない、なぜなら Stoch_1<Stoch_2 flag1==0 かつ flag1==1なら Stoch_1>Stoch_2 だからである。は、この関数内の後続のすべての条件と同じなので、flag1だけが値を変更することができます。つまり、プログラムは最初の2行を実行し、3行目を スキップし、4行目を 実行し、5行目を スキップし、6行目を実行し、7行目を実行し、その他をすべてスキップする。


論点がわかってないだけだから間違ってる。そして、すべてが完璧に、私が必要とするように動作します。多分、コードは簡素化されるかもしれませんが、今はもう脂肪にはなりません...私はただEA全体を完成させる必要があり、すでにそれが含むトレーディングアイデアのRESTを見ています...。

とか、プログラミングのためのプログラミングはあまり興味がない...。