//--------------------------------------------------------------------externdoubleLevel=1.3200; // Заданный уровень stringText[101]; // Объявление массива//--------------------------------------------------------------------intinit()// Спец. ф-ия init(){// Присвоение значенийText[1]="один "; Text[15]="пятнадцать ";
Text[2]="два "; Text[16]="шестнадцать ";
Text[3]="три "; Text[17]="семнадцать ";
Text[4]="четыре "; Text[18]="восемнадцать ";
Text[5]="пять "; Text[19]="девятнадцать ";
Text[6]="шесть "; Text[20]="двадцать ";
Text[7]="семь "; Text[30]="тридцать ";
Text[8]="восемь "; Text[40]="сорок ";
Text[9]="девять "; Text[50]="пятьдесят ";
Text[10]="десять "; Text[60]="шестьдесят";
Text[11]="одиннадцать "; Text[70]="семьдесят ";
Text[12]="двенадцать "; Text[80]="восемьдесят ";
Text[13]="тринадцать "; Text[90]="девяносто";
Text[14]="четырнадцать "; Text[100]= "сто";
// Вычисление значенийfor(inti=20; i<=90; i=i+10)// Цикл по десяткам{for(intj=1; j<=9; j++)// Цикл по единицамText[i+j]=Text[i] + Text[j]; // Вычисление значения }return; // Выход из init()}//--------------------------------------------------------------------intstart()// Спец. ф-ия start(){intDelta=NormalizeDouble((Bid-Level)/Point,0);// Превышение //--------------------------------------------------------------------if(Delta>=0)// Цена не выше уровня{Alert("Цена ниже уровня"); // Сообщениеreturn; // Выход из start()}//--------------------------------------------------------------------if(Delta<100)// Цена более 100{Alert("Более ста пунктов"); // Сообщениеreturn; // Выход из start()}//--------------------------------------------------------------------Alert("Плюс ",Text[Delta],"pt."); // Вывод на экранreturn; // Выход из start()}
//---------------------------------------------------------------------
По-моему в условных операторах неправильно проставлены знаки сравнения. Они должны быть с точностью до наоборот. Скажите прав ли я? И если нет, то почему так?
親愛なる、あなたの助けが必要です。
Expert Advisorをインジケータで最適化しているのですが、インジケータのコードは以下の通りです。
最適化が遅い、新しいバーでインジケータを再計算するコードをEAで作ったが、これはかなり適していない。
インジケーターのコードを見て、再計算を速くするために何ができるかを考えてみてください。
なぜ、インジケーターのせいだと思ったのか?
は、文字数、+フォントサイズ、こんな感じで計算するのでしょうか。
文字の大きさでは必要な知識が得られない。複数のオブジェクトを重ね描きする必要があります。最初のオブジェクトだけがアンカー ポイントを持っています。2個目以降のオブジェクトのアンカーポイントを取得する方法は?
ユーザーがEAをアンロードした場合、EAを強制終了させる。
は、スタート時に直接記録した方が良い。
----------------------------------------------------
deinitの実行時間は10秒に制限されています。
テスターでは正常終了時に停止フラグがセットされていないため、静かにdeinitが終了します。
----------------------------------------------------どの機能の操作にも10秒の制限を設けているのでは?
そして、その解決策を提案します。
なぜ、インジケーターのせいだと思ったのですか?
例えば、AMAを最適化した場合、インジケータは複雑ですが、最適化の 方がはるかに高速です。
インジケーターのせいだと断言するつもりはありません。まだあまり経験がないのですが。
でも、どうすればスピードアップできるのか?私はここですべて正しいことをしたのか、それとも何かを変えることができるのか?
原理的には過去100本のバーで計算するインジケータであれば良いのですが、500本ではなく100本とすると値が消えてしまいます。
このスピードで最適化を行うと、その完了ヒゲが床まで伸びてしまい、稼いだミューレンが役に立たなくなる)まあ、あるいは相場が全く違うということになりますね。こんにちは。OBJ_TEXTオブジェクトのチャート上の幅/高さをプログラムで定義または計算することが可能かどうか教えてください。
テキストはたぶんないですが、ラベルをお願いします
docs.mql4.com/ja/constants/objectconstants/enum_object_property
OBJPROP_XSIZE, OBJPROP_YSIZE プロパティ
しかし、どうすればスピードアップできるのか?私はここですべて正しいことをしたのか、それとも何か変えられることがあるのだろうか?
さてここで、例えばバーが追加された場合、再計算するとすぐに混乱することがわかります。
limit1が2つになる...そして
とにかく、再計算が完全に間違っている...。
ありがとうございました、良い一日を:) >)
ここで、再計算が失敗したことがすぐにわかります。たとえば、バーが追加されました。
limit1が2つになる...そして
とにかく、再計算が完全に間違っている...。
推して知るべしです。
limit1=Bars-counted_bars;こうでなくっちゃ
どうなっているんだろう?
一般的にであれば、直近100本のバーで計算されるインジケーターで十分だと思います。