//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start()
{
/*
Скрипт
========== Lines_RASST ========
Является дополнением к скрипту Lines_Create. (Скрипт Lines_Create создаёт на графике 2 горизонтальные линии с именами UP_LEVEL и DOWN_LEVEL)
Скрипт Lines_RASST выводит на экран сообщение о том, сколько пунктов расстояние между двумя горизонтальными линиями
у которых миена UP_LEVEL и DOWN_LEVEL.
В силу того, что скрипт Lines_RASST имеет задержку в коде, надо не просто кинуть его на график, или не просто сделать
по скрипту двойной клик, надо ещё сразу сделать дополнительный одинарный клик левой кнопкой мыши по окну графика.
Только в этом случае надпись, говорящая о расстоянии появится и через 5 секунд исчезнет сама.
Если скрипт Lines_RASST вызван, а дополнительный клик по окну не сделан, то по прошествии 5 секунд скрипт выгрузится из оперативной
памяти, и Вы ни чего на экране не увидите, ни какой надписи (почему так сделан терминал я не знаю).
*/bool fm;
// --------------- Значения цены на горизонтальных линиях ---------------------------------double UpLevelPrice=ObjectGet("UP_LEVEL",OBJPROP_PRICE1);
double DownLevelPrice=ObjectGet("DOWN_LEVEL",OBJPROP_PRICE1);
// ---------------------------------------------------------------------------------------- //--------- калькулятор расстояний между этими линиями ---------------int Rasst=(UpLevelPrice-DownLevelPrice)/Point;
fm=ObjectCreate("DIAPAZON",OBJ_LABEL,0,0,0);
if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
fm=ObjectSetText("DIAPAZON","Канал = "+Rasst+" pt.",24,"Verdana",Blue);
if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
fm=ObjectSet("DIAPAZON",OBJPROP_CORNER,0);
if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
fm=ObjectSet("DIAPAZON",OBJPROP_XDISTANCE,350);
if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
fm=ObjectSet("DIAPAZON",OBJPROP_YDISTANCE,315);
if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
// ------------------------------------------------------------------Sleep(5000);
//-------- удаляем надпись с экрана -----------------------------
fm=ObjectDelete("DIAPAZON");
if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
}
複数の水平線があり、その間にさまざまな組み合わせでクォータを定義する必要があります。その仕事をするようなスクリプトやインジケータを探しています。ご感想をお寄せいただきありがとうございました。
私は専門的にプログラミングをしているわけではないので、お手伝いできれば嬉しいのですが......。
横線がいくつかあるので、その間のクォータをいろいろな組み合わせで決める必要があるのですが、原則として、この段階では2本の線の間の決定で十分満足しているので、残りは手動でやることにします。もしかしたら、既成のスクリプトやそのようなインジケータがあるのでは?ご感想をお寄せいただきありがとうございました。
必要であれば、レディコードをお渡しします。複雑なことは何もありません。
文字列double MyKoren(double MyValue=36){ 変数MyValueを値=36で 初期化するので、不正解です。サブルーチンにDlyaKornya変数に値=を渡しているので 、意味がないのです。
これはデフォルトで...double rex=(MyKoren()+1)*100+(MyKoren()+1)*10+MyKoren()+1 のように関数が呼ばれた場合。
は、答えがはっきりしているのでしょうか?
これはデフォルトで...double rex=(MyKoren()+1)*100+(MyKoren()+1)*10+MyKoren()+1 のように関数が呼ばれた場合。
答えが出るのか?
繰り返しになりますが
... その中の変数をvalue = 36で初期化するのは、おそらくパラメータを指定せずに関数を 呼び出したときのみ機能します。
...とにかく、double MyKoren(double MyValue=36){ のような構文は使わず、double MyKoren(double MyValue){ のように、なぜこのサブルーチンが思うように動かないのかと思うような書き方をした方がよいでしょう。
double MyKoren(double MyValue=36){のような構文に、あなたの double rex=(MyKoren()+1) のような呼び出しが続く場合、...とご理解下さい。制御不能になるのは朝飯前だ。特に初心者の方にとっては。
何度でも言う。
... その中の変数をvalue = 36で初期化するのは、おそらくこの関数がパラメータなしで呼び出された場合にのみ機能します。
...とにかく、double MyKoren(double MyValue=36){ 型の構文は使わず、そのまま double MyKoren(double MyValue){ と書くようにしないと、なぜサブルーチンが思うように動かないのか、不思議に思うでしょう。
double MyKoren(double MyValue=36){のような構文に、あなたの double rex=(MyKoren()+1) のような呼び出しが続く場合、...とご理解下さい。制御不能になるのは朝飯前だ。特に初心者の方にとっては。
)))
でも、ページ番号は覚えているはずです。
またはキーが生成されます。
;)
これは別のスレッドです - 私は迷子になりました。
メールがぐるぐる回っている。(c) AS プーシキン
盗品は載せない方がいい。
こんにちは ...Ilan_19さんが投稿されたようなEAを有効にする方法を教えてください...アルパリ5桁の 作品...をインストールしたのですが、うまくいきません...。
こんにちは ...Ilan_19さんが投稿されたようなEAを有効にする方法を教えてください...アルパリ5桁の作品...をインストールしたのですが、うまくいきません...。
働かないというのは、伸縮自在な言葉ですが...。具体的に何がうまくいっていないのか、何が起こっているのか、などなど。
Pilligrim:
は取引しない...