// Мувинг и цена double MA10; double Price; // Есть или нет позиция и ее номер int Pos; int Magic; double Lot=0.1; double SL; double TP; int Slippage=3;
//-------------------------------------------------------------------- // Поиск условий для покупки и продажи //--------------------------------------------------------------------
И вот он, зараза, несмотря на то, что должен торговать только одной позицией (есть - ищем условия на продажу, нет - ищем условия на покупку), открывает большое количество позиций, и потом их не закрывает. Я уже голову поломал. Подскажите, что не так?
CheckBuyにif opener order greater than zero, then outを追加。
Но всё-таки - почему он вообще покупает мого позиций? Ведь вначале ему сразу говорится, что если позиция есть - ты сюда не ходи, ты туда ходи? Он, по задумке, в этот кусок кода даже попадать не должен. Или я что не понимаю?
Я экспортировал CSV-файл (1 мин с 1999 года) из МТ одного брокера. Попытался импортировать в МТ другого брокера - 1 минутки получил
без проблем, с 1999. Но вот что-то не пойму как во 2-м МТ получить 5, 15-мин и т.д. графики? - Т.е. после импортирования 1 минуток переключился на
5 минутный график и похоже МТ пытается докачать их из интернета, вместо конвертирования их из уже имеющихся 1-минуток.
Перегружал МТ - не помогло.
- Есть какое-нибудь нормальное решение для конвертирования 1 МИН в более высокие таймфреймы?
まあ当然ダウンロードはあるだろうから、議事録から変換する必要はないだろう。
元のCSVを取り出し、自作のプログラムを実行して、出力ファイルに含まれる標準的なタイムフレームをすべて取得し、インポートすることができます。
みなさん、こんにちは。
簡単なアルゴリズムを実装できるわけがない。
買い/売りの後、注文は2バー後に終了します。
タイマーより良いものは思いつきませんが、タイマーはタイムフレームにリンクしており、n本のバーの後に必要です。
こんにちは、またまた自分では答えられない質問です。
Expert Advisor を書いていて、ある条件が現れたときに注文を出す練習をしています。課題はシンプルで、1つのポジションだけを取引することです。МА10以上なら買う、以下なら売る。エキスパートアドバイザーが自ら発注した注文を正確にクローズするように、注文のマジックを使う可能性をテストしたいのです。また、買い条件と売り条件の2つのバリエーションがあります(まだ追加していません)。そして、注文がどのような条件に属するかを自ら判断する必要があります。マジックナンバーは、ポジションを開くトリガーとなる関数に設定されています。同じように、条件によって、最初にポジションの有無を判断し、買いか売りのどちらかの条件を探す必要があります。
以下はそのコードです。
// Мувинг и цена
double MA10;
double Price;
// Есть или нет позиция и ее номер
int Pos;
int Magic;
double Lot=0.1;
double SL;
double TP;
int Slippage=3;
//--------------------------------------------------------------------
void start()
{
MA10 = iMA(NULL,0,10,0,0,0,0);
Price = Bid;
CheckPos();
}
//--------------------------------------------------------------------
void CheckPos()
{
if(Pos==0)
CheckBuy();
CheckSell();
}
//--------------------------------------------------------------------
// Поиск условий для покупки и продажи
//--------------------------------------------------------------------
void CheckBuy()
{
if (NormalizeDouble(Price,Digits) > NormalizeDouble(MA10,Digits))
Magic=10;
Buy();
return;
}
//--------------------------------------------------------------------
void CheckSell()
{
if (NormalizeDouble(Price,Digits) < NormalizeDouble(MA10,Digits))
Sell();
return;
}
//--------------------------------------------------------------------
// Выставление ордеров
//--------------------------------------------------------------------
void Buy()
{
string Symb=Symbol();
Pos=1;
OrderSend(Symb, OP_BUY, Lot, Ask, Slippage, SL, TP, NULL, Magic);
return;
}
//--------------------------------------------------------------------
void Sell()
{
Pos=0;
OrderClose(Magic, Lot, Bid, Slippage);
return;
}
そしてこのコードは、たった一つのポジションを取引すべきにもかかわらず(そう、売り条件を探すべき、いや、買い条件を探すべき)、大量のポジションを 開き、そしてそれを閉じないのです。もう頭が壊れそうです。何が問題なのか、教えてください。
Всем привет!
Простой алгоритм никак не могу реализовать:
После покупки/продажи закрытие ордера через 2 бара.
Кроме таймера ничего лучше придумать не могу, но у таймера есть привязка к тайм фрейму, а мне необходимо через n баров.
オープンオーダーを調べ、いつオープンされたかを確認し、現在の時間と比較し、2バーが経過し、クローズします。Ну естественно будет происходить докачка, с чего вдруг она должна происходить конвертация из минуток.
Можно взять исходный CSV и прогнать самописной прогой для получения на выходе в файлах всех стандартных таймфремов и импортировать их.
MT5と混同していたようです。MT4では昔ながらの1分足から上位タイムフレームが生成されるようです。
Скрипт в CodeBase лежит, так и называется период конвертор
ありがとうございました。
ピリオドコンバータはグラフには良いが、テスターに食わせられない。
おっと、仕組みを見てみると、確かに再コード化された 履歴ファイルを書き込んでいますね。https://www.mql5.com/ru/code/8560
И вот он, зараза, несмотря на то, что должен торговать только одной позицией (есть - ищем условия на продажу, нет - ищем условия на покупку), открывает большое количество позиций, и потом их не закрывает. Я уже голову поломал. Подскажите, что не так?
CheckBuyにif opener order greater than zero, then outを追加。
в CheckBuy добавь иф опен ордерс больше нуля, то выходим.
ええ、今すぐ追加します。ありがとうございます(苦笑)。
それにしても、そもそもなぜ彼はポジションをたくさん買っているのだろう。結局、冒頭ですぐに「ポジションがあるなら、ここに行かず、あそこに行け」と言われるのですか?私の考えとしては、彼はこのコード片にすら手を出すべきではない。それとも、私が理解していないのでしょうか?
Ага, щас добавлю. Спасибо.
Но всё-таки - почему он вообще покупает мого позиций? Ведь вначале ему сразу говорится, что если позиция есть - ты сюда не ходи, ты туда ходи? Он, по задумке, в этот кусок кода даже попадать не должен. Или я что не понимаю?
今更ながらコードをよく見てみたものの、半端なリッターでは理解しがたいので、私のメールを送って、そこで何をしたのか説明してみることにします。