正方形や長方形を描画する本当に助けが必要だ... - ページ 2 12345678 新しいコメント Alex_Profit 2016.09.30 11:13 #11 こんにちは。どうすればいいのかわからず、本当に困っている。手伝ってくれるなら。各月の最初のバーをマークするインジケータが必要です。月末まで高値・安値のラインが引かれており、月数も選べる。 Pr.(3ヶ月。3ヶ月間ライン入り)。見るためのサンプルでもいい。 ありがとうございました。 Alexey Viktorov 2016.09.30 11:23 #12 同様に、月の定義と今月の高値と安値をそれぞれ作成することができます。/********************************************************************\ 20-20.mq4 | Viktorov | v4forex@yandex.ru | \********************************************************************/ #property copyright "Viktorov" #property link "v4forex@yandex.ru" #property version "1.00" MqlDateTime mqlDateTime; MqlRates mqlRates[1]; /********************Script program start function*******************/ void OnStart() { double point = _Digits%2 == 0 ? _Point : _Point*10; datetime dt = ChartTimeOnDropped(); TimeToStruct(ChartTimeOnDropped(), mqlDateTime); if(CopyRates(_Symbol, PERIOD_D1, dt, 1, mqlRates) < 0) Print(""); string objName = TimeToString(mqlRates[0].time, TIME_DATE); ObjectCreate(0, objName, OBJ_TREND, 0, mqlRates[0].time, mqlRates[0].open, mqlRates[0].time+PeriodSeconds(PERIOD_D1), mqlRates[0].open); ObjectSetInteger(0, objName, OBJPROP_RAY_RIGHT, false); ObjectCreate(0, objName+"+20", OBJ_TREND, 0, mqlRates[0].time, mqlRates[0].open+20*point, mqlRates[0].time+PeriodSeconds(PERIOD_D1), mqlRates[0].open+20*point); ObjectSetInteger(0, objName+"+20", OBJPROP_RAY_RIGHT, false); ObjectCreate(0, objName+"-20", OBJ_TREND, 0, mqlRates[0].time, mqlRates[0].open-20*point, mqlRates[0].time+PeriodSeconds(PERIOD_D1), mqlRates[0].open-20*point); ObjectSetInteger(0, objName+"-20", OBJPROP_RAY_RIGHT, false); Comment(mqlRates[0].open, "\n" , objName, "\n" , sizeof(mqlDateTime), "\n" ); }/*******************************************************************/ Alex_Profit 2016.09.30 14:48 #13 AlexeyVik:同様に、月の定義と今月の高値と安値をそれぞれ作成することができます。 ありがとうございました。ちょっと苦労しましたが、うまくいきそうです。 Alex_Profit 2016.09.30 16:02 #14 AlexeyVik: ご感想ありがとうございます。自分のフラッシュを正しく表現できたかどうか。こういうのが欲しいんです。お手数ですが、インジケータに実装する方法を教えて頂ければ幸いです。プログラミングは初めてです。 縦線が正しく描かれている。水平線・円→高値・安値→最初のローソク足」の縛りがよくわからない。ご協力をお願いします。 Alexey Viktorov 2016.09.30 17:47 #15 CopyRates()関数とMqlRates 構造体については、ドキュメントをお読みください。彼らの協力のもと、お客様の希望を実現するために必要なデータをすべて入手することができます。では、何があって、何が実現できないのかを教えてください。そうでないと、「助けてください」という依頼が「やってください」という依頼に読めてしまうのです。ぶっきらぼうで申し訳ありません。 Alex_Profit 2016.10.04 16:25 #16 以下はソースコードです。より洗練されたものにするために、ご協力をお願いします。月の第一週目の高値と安値をそれぞれ求めたいのですが。//+------------------------------------------------------------------+#property copyright ""#property link ""#property indicator_chart_window //--- Внешние Глобальные переменные extern int TF = 43200; //--- Через сколько баров рисуются линии (На каком Т/Ф)extern int barsToProcess = 5; //--- Кол-во отображаемых периодов (линий) extern string TimeFrames = "M1,5,15,30; 60H1; 240H4; 1440D1; 10080W1; 43200MN."; //--- Подсказка кол-во боров в Т/Ф //--- Глобальные переменные string Name_Line; //--- Имя Вертикальных уровней//double Price_H = High[0]; //--- Макс цены //double Price_L = Low[0]; //--- Мин цены//+------------------------------------------------------------------+int init() { //--- return(0); }//+------------------------------------------------------------------+int deinit() { int i; for (i=0; i<Bars; i++) //--- Выбираем все установленные объекты { ObjectDelete(Name_Line + DoubleToStr(i,0)); //--- Удаляем все установленные линии } return(0); }//+------------------------------------------------------------------+int start(){ int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баровint limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барамint i=0; //--- переменная i = 0 обнуление if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан //--- основной цикл limit = Bars - counted_bars; for(i = 0; i < limit; i ++) { //+----- Выбираем количество линий отображаемых на экране if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий) { limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий) Name_Line = "Time_VLine M" + TF + " "+DoubleToStr(i,0); //--- И присваиваем имя с соответствующими параметрами //+------------------------ Рисуем линии -----------------------------------------------------+ while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала. { datetime t_Line = iTime(Symbol(),TF,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара { ObjectCreate (Name_Line + DoubleToStr(i,0),OBJ_VLINE,0,t_Line,0); //--- Создаём обьект вертикальную линию ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_STYLE,2); //--- Со стилем ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_COLOR,DimGray); //--- Со цветом ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_WIDTH,0); //--- С толщиной ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_BACK,0); //--- С типом отображения. Объект на заднем плане //+-----------------------------------------------------------------------------+ } i++; } } } return(0);} 怠慢は、進歩またはグラフィックスとインタラクティブに作業する方法への刺激 インディケータとシグナルの利益性のビジュアルテスト テクニカル指標や取引シグナルの利益表のビジュアル最適化 Alexey Viktorov 2016.10.05 04:57 #17 if(CopyRates(_Symbol, PERIOD_W1, dt, 1, mqlRates) < 0) //--- Если бросили скрипт на выбранную свечку Print("");私のコードでは、それはキャンドルではなく、1日なのです。あなたの場合は1週間です。ここから、線を引くための時間を 割り出す。1ヶ月は必要でしょう。月の初め。しかし、それが週の始まりと重なることはほとんどない。だから、最初の1週間をどうカウントするかは、もう少しマジックが必要なんです。 ObjectCreate(0, objName, OBJ_TREND, 0, mqlRates[0].time + PERIOD_MN1, mqlRates[0].high, mqlRates[0].time + PeriodSeconds(PERIOD_MN1), mqlRates[0].high); つまり、違いを実感してください。mql4ではまだ大きな違いはありませんが、どんな変化が待っているかは誰にもわかりません...。//--- Что здесь не так, при построении линии по лоу. На графике её нет. И Ошибки компиляции тоже нет? //--- НО по отдельности всё работает. トレンドラインの名称に注目。 //----- Для чего нужен этот блок если линия отрисовывается на графике и без него 私は3つのラインを持っているので、3つの関数と3つのライン名を持っているわけです。 MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第19部): ライブラリメッセージのクラス DoEasyライブラリのグラフィックス(第97部): フォームオブジェクトの移動の独立した処理 DoEasy - コントロール(第32部):水平スクロールバー、マウスホイールスクロール Alex_Profit 2016.10.07 05:02 #18 ありがとうございます、でも全部はわからないです。 Alexey Viktorov 2016.10.07 05:09 #19 そうすると、たった一つの疑問に対する答えは//--- Что здесь не так, при построении линии по лоу. На графике её нет. И Ошибки компиляции тоже нет? //--- НО по отдельности всё работает. ここは同じ行名で、違うはずです。なぜ、メッセージを削除して訂正したのですか? Alex_Profit 2016.10.07 07:30 #20 長い間返信がなかったので、くだらない質問には答えないのかと思い、削除しました。 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
こんにちは。どうすればいいのかわからず、本当に困っている。手伝ってくれるなら。
各月の最初のバーをマークするインジケータが必要です。月末まで高値・安値のラインが引かれており、月数も選べる。
Pr.(3ヶ月。3ヶ月間ライン入り)。見るためのサンプルでもいい。
ありがとうございました。
同様に、月の定義と今月の高値と安値をそれぞれ作成することができます。
同様に、月の定義と今月の高値と安値をそれぞれ作成することができます。
AlexeyVik: ご感想ありがとうございます。
自分のフラッシュを正しく表現できたかどうか。こういうのが欲しいんです。
お手数ですが、インジケータに実装する方法を教えて頂ければ幸いです。
プログラミングは初めてです。
縦線が正しく描かれている。
水平線・円→高値・安値→最初のローソク足」の縛りがよくわからない。
ご協力をお願いします。
CopyRates()関数とMqlRates 構造体については、ドキュメントをお読みください。彼らの協力のもと、お客様の希望を実現するために必要なデータをすべて入手することができます。
では、何があって、何が実現できないのかを教えてください。そうでないと、「助けてください」という依頼が「やってください」という依頼に読めてしまうのです。ぶっきらぼうで申し訳ありません。
以下はソースコードです。より洗練されたものにするために、ご協力をお願いします。月の第一週目の高値と安値をそれぞれ求めたいのですが。
//+------------------------------------------------------------------+
#property copyright ""
#property link ""
#property indicator_chart_window
//--- Внешние Глобальные переменные
extern int TF = 43200; //--- Через сколько баров рисуются линии (На каком Т/Ф)
extern int barsToProcess = 5; //--- Кол-во отображаемых периодов (линий)
extern string TimeFrames = "M1,5,15,30; 60H1; 240H4; 1440D1; 10080W1; 43200MN."; //--- Подсказка кол-во боров в Т/Ф
//--- Глобальные переменные
string Name_Line; //--- Имя Вертикальных уровней
//double Price_H = High[0]; //--- Макс цены
//double Price_L = Low[0]; //--- Мин цены
//+------------------------------------------------------------------+
int init()
{
//---
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
int i;
for (i=0; i<Bars; i++) //--- Выбираем все установленные объекты
{
ObjectDelete(Name_Line + DoubleToStr(i,0)); //--- Удаляем все установленные линии
}
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted(); //--- перем counted_bars = функц. Возвращает количество баров
int limit; //--- переменная старт кол-во баров. Линии рисуем о по всем барам
int i=0; //--- переменная i = 0 обнуление
if(counted_bars > 0) counted_bars --; //--- последний посчитанный бар будет пересчитан
//--- основной цикл
limit = Bars - counted_bars;
for(i = 0; i < limit; i ++)
{
//+----- Выбираем количество линий отображаемых на экране
if(limit > barsToProcess) //--- Если кол-во линий > Кол-ву отображаемых периодов (линий)
{
limit = barsToProcess; //--- Тогда устанавливаем Кол-во отображаемых периодов (линий)
Name_Line = "Time_VLine M" + TF + " "+DoubleToStr(i,0); //--- И присваиваем имя с соответствующими параметрами
//+------------------------ Рисуем линии -----------------------------------------------------+
while (i<limit) //--- Пока есть линии в окне терминала. Или пока висит индикатор в окне терминала.
{
datetime t_Line = iTime(Symbol(),TF,i); //--- В ПЕРЕМ t_Line Будет Присваиваться значение времени открытия бара
{
ObjectCreate (Name_Line + DoubleToStr(i,0),OBJ_VLINE,0,t_Line,0); //--- Создаём обьект вертикальную линию
ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_STYLE,2); //--- Со стилем
ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_COLOR,DimGray); //--- Со цветом
ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_WIDTH,0); //--- С толщиной
ObjectSet (Name_Line + DoubleToStr(i,0),OBJPROP_BACK,0); //--- С типом отображения. Объект на заднем плане
//+-----------------------------------------------------------------------------+
}
i++;
}
}
}
return(0);
}
私のコードでは、それはキャンドルではなく、1日なのです。あなたの場合は1週間です。
ここから、線を引くための時間を 割り出す。1ヶ月は必要でしょう。月の初め。しかし、それが週の始まりと重なることはほとんどない。だから、最初の1週間をどうカウントするかは、もう少しマジックが必要なんです。
つまり、違いを実感してください。mql4ではまだ大きな違いはありませんが、どんな変化が待っているかは誰にもわかりません...。
//--- Что здесь не так, при построении линии по лоу. На графике её нет. И Ошибки компиляции тоже нет?
//--- НО по отдельности всё работает.
トレンドラインの名称に注目。
//----- Для чего нужен этот блок если линия отрисовывается на графике и без него
私は3つのラインを持っているので、3つの関数と3つのライン名を持っているわけです。
そうすると、たった一つの疑問に対する答えは
//--- Что здесь не так, при построении линии по лоу. На графике её нет. И Ошибки компиляции тоже нет?
//--- НО по отдельности всё работает.ここは同じ行名で、違うはずです。
なぜ、メッセージを削除して訂正したのですか?
長い間返信がなかったので、くだらない質問には答えないのかと思い、削除しました。