// Для буфера развёртки по вертикали.SetIndexBuffer(0, gl_adBufIndicator1); // Индикаторный буфер для стабилизации и размера изображения графика в дополнительном подокне.SetIndexEmptyValue (0, EMPTY_VALUE); // Устанавливаем значение пустой величины для линии индикатора.SetIndexLabel(0, "VERTICAL SWEEP"); // Установка имени линии индикатора для отображения информации в окне DataWindow и всплывающей подсказке.SetIndexStyle(0, DRAW_NONE, EMPTY, EMPTY, CLR_NONE); // Линию не показываем.
//==== Устанавливаем развёртку.if (st_nWBeginChart <= 0) st_nWBeginChart = 0;
for (i = st_nWFirstVisiblBar; i >= st_nWBeginChart; i--)
{// Очищаем буфер от лишних значков для вызова окна свойств индикатора.if (i > 0) gl_adBufIndicator2[i] = EMPTY_VALUE;
// Закрепление вертикальной развёртки графика с помощью индикаторного буфера.if (i % 2 == 0) gl_adBufIndicator1[i] = gl_dMaxPositionMark; // Для фиксации верхней координаты дополнительного окна.else gl_adBufIndicator1[i] = gl_dMinPositionMark; // Для фиксации нижней координаты дополнительного окна.
}
//==== Расчёт и создание горизонтальных линий разметки.if ((gl_dMaxPositionMark - gl_dMinPositionMark) != tmp_dDifferPosMark) // Создаём один раз и отслеживаем через заданный уровень при увеличениях максимальных уровней.
{// Расчёт и создание горизонтальных линий разметки.
MakingHorizontalSectoring(AutoStep, Color_LNH, Color_LN0, gl_dMaxPositionMark, gl_dMinPositionMark, Step_LNH, 15, Style_LNH, Width_LNH, st_nWindow, gl_sFullNameObject);
}
int CloseOrder(int ticket, double lots)
{
int err,i1;
double price;
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
if (lots<MarketInfo(Symbol(),MODE_MINLOT))lots=MarketInfo(Symbol(),MODE_MINLOT);
while(i1<10)
{
RefreshRates();
if (OrderType()==0)price=Bid;
if (OrderType()==1)price=Ask;
if (OrderType()>1){OrderDelete(ticket);return(0);}
OrderClose(ticket,lots,NormalizeDouble(price,Digits),Slippage,Goldenrod);
err = GetLastError();
if (err == 0) break;
Print(WindowExpertName(),Symbol(),Error(err)," при закрытии ордера");
Sleep(100);
i1++;
}
return(0);
}
もう少し詳しく説明していただけますか?差し支えなければ、それを使ったコードの一部を紹介します :)
これらは、インジケータサブウィンドウの垂直方向の掃引を設定するコードのスニペットです。
横線を 設定する機能です。この機能はインジケーターコードからしか動作しません。図書館からは使えません。
グラフィカルなオブジェクトによる描画は自己責任でお願いします。すべてが個である。
臆することはない。
このEAが注文を一括で決済しないようにするにはどうしたらいいのか」というご質問に対する回答をそのまま書きました。
- もし、このEAで注文を一括で決済しないようにしたい場合は、最初の決済の後に注文決済ループから注文を戻す必要があります。
これは使えるのか?
を見ると、returnはすでにorder closing loopの中にあることがわかります。最初の注文の締め切りはどこで見るのですか?
ここで、returnはすでに注文を閉じるループの中に立っていることがわかります。1次クロージャは具体的にどこを見ればいいのですか?
これはオーダーループではありません。
は、1回の注文で頑なにリトライします。
探し続ける
は、オーダーサイクルではありません。
1つの注文に対して、頑固なまでに試行錯誤を繰り返す。
探し続ける
ということで、ここにリターンを入れました。 そうなんですか?
ということで、ここにリターンを入れました。 そうなんですか?
いかがでしょうか?
このスレッドに、コードベースで出版物を出している人が全く出てこないのは不思議です。
ブレイクイーブン注文を修正するコードを作りたいのですが、どうすればいいですか?
ストップがプラスに1ピップス引きずられ、二度とタッチされないようにする必要があります。
マイウェイ
を選択すると、条件が成立するたびに注文が変更されるようです。
ps.
いかがでしょうか?
codebaseで記事を公開している方がこのスレッドにいらっしゃるのは不思議な気がします。
テストしてみた結果、2回注文を出したが利益で決済されず、それ以上注文を出さなかった。
ですから、このバリエーションは適しません。
私は自分のアイデアをコードベースで公開し、Expert Advisorは経験豊富なプログラマーが私の注文に応じて書いてくれています。
あきらめた。どこにリターンを置けばいいのかわからない、あらゆるところで試した。
これらは、インジケータサブウィンドウの垂直方向の掃引を設定するコードのスニペットです。
横線を設定する機能です。この機能は、インジケータコードからのみ動作します。図書館からは使えません。
グラフィカルなオブジェクトによる描画は自己責任でお願いします。すべてが個である。
テストしてみた結果、2回注文を出したが利益で決済されず、それ以上注文を出さなかった。
そのため、このオプションは適さない。
つまり、最初の投稿の「...不完全なTK」に戻るわけです。