[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 454

 
smart:


どの指標がテンプレートに含まれているかを知るにはどうしたらよいですか?古いテンプレートをインストールしたが、すべてのインジケータが表示されない。テンプレートに含まれる指標の名前を忘れてしまった。ありがとうございました。


\templatesフォルダを開き、テンプレートを見つけ、メモ帳で開き、<windows>タグを探し、どのインジケータにどのパラメータが詰まっているかを確認します。
 
tol64:

デムリン 2011.06.20 22:02

みなさん、こんにちは。

質問があるのですが、プログラムが注文の利益をpipsで決定することができません。誰か助けて

すべての注文をループで試すことができます。

For(i = 0; i < 注文履歴合計(); i++)

OrderSelect()を使って、ある条件で必要なものを選択するのです。そして、OrderProfit()を求めるのです。これがお金に換算した純利益です。ポイント値はおおよそ以下の通りです。

(OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots() となります。

念のため確認)))

ありがとうございます、やってみます
 

注文コメントを書き込んだり、読み込んだりする。OrderComment()

注文を出すときに、残高とStop Lossの レベルをコメントに記録しています。注文が開いたら、ログに目を通す。すべてが正確です。




残高は10000円 です。ストップロス1.67740
そして、文字列関数を用いて、必要な文字を選択し、csv ファイルに書き込む。しかし、そんな問題に直面した。ストップロスが発生した場合、コメントの末尾に[sl] が追加されます。


しかも、15 桁ではなく19 桁です。問題は、現在の残高の桁数と価格の桁数を確認してからコメントすることです。これを変数に設定し、それを使って何桁、どの桁を取得する必要があるのかを決めています。しかし、この[sl] には苦労させられた。価格が7 桁の場合、ファイルには1.67740ではなく 740が 格納されます。 この問題を解決する方法がわかりません)。よろしくお願いします。
 
一番簡単なのは、コメントに正しいことを一気に書き込むことです。つまり、データの間にデリミタを入れるのです。そうすると、文字列の長さは 関係なく、デリミタに挟まれた部分文字列を抜き出すことになります。
 
granit77:
一番簡単な方法は、一度にコメントで正しく書くことです。それは、データの間にデリミタを入れることです。そうすれば、文字列の長さは問題ではなく、デリミタの間に部分文字列を引き込むだけでよい。 。


先ほど、こんなシンプルなバリエーションを提案されました。

string comment = OrderComment(); comment = StringSubstr(comment, 0, 15); // 右に切り出しました。

単純な変形ですが、私も少し苦労しましたが、なんとか解決しました。)

なぜ、一度に全部正しく書くと、[sl]文字が追加されないのでしょうか?もしよろしければ、注文コメントから部分文字列を抽出 する小さな例を教えていただけませんか?

 
tol64:


先ほど、このシンプルな選択肢を提示されました。

オプションはシンプルですが、私も悩みましたが決めました。)

なぜ、一度に全部正しく書くと、[sl]文字が追加されないのでしょうか?もしよろしければ、注文コメントから部分文字列を抽出する小さな例を教えていただけませんか?

追加させる。あなたはデータを取得したいのであって、それが何を追加するか、文字列の長 さは気にしない。

   string _comment="10000.00"+"$"+"1.67740"+"#";//строка комментария. "$","#" - разделители (символы,какие понравятся) 
   int lenstring=StringLen(_comment);           //длина строки _comment
   int delim1,delim2;                           //позиции разделителей в строке _comment
   string balans,stoploss;                      //извлекаемые подстроки
   delim1=StringFind( _comment, "$", 0);        //определяем позиции разделителей в строке _comment
   delim2=StringFind( _comment, "#", 0);        //определяем позиции разделителей в строке _comment 
   balans   =  StringSubstr( _comment,0, delim1);                //извлекли строку баланс
   stoploss =  StringSubstr( _comment,delim1+1, delim2-delim1-1);//извлекли строку стоплосс 
   Comment("|",balans,"|",stoploss,"|");//проверка 
 
皆さん、ごきげんよう。2台の異なるコンピューターが同じ口座に接続し、その口座で同時に取引までできるおかしな状況に遭遇したことがあります。リモートコンピュータを 制御し、例えばextを変更したり、少なくともEAを中断することが可能かどうか、誰が私に言うことができますか?私は自宅で動作する端末の制御を引き継ぐことができないときに奇妙な状況に直面したので、私は、事前に感謝します(例えば、職場で自分)。
 
granit77:
追加させる。あなたはデータを取り出したいのであって、何が追加されているか、文字列がどれだけ長いかは気にしない。


)) ありがとうございます。素晴らしい例です。この一言で全てがわかる。このような例は、時に非常に不足しています。
 
snail09:

うん、確かに沸騰してますね。みんながあなたの...の質問をします。もしかして、そんなに不勉強な ですか?

トレンドラインのクロスを価格(直線)でトレースする方法をどなたか教えていただければ、ヒントだけでも十分なのですが、いかがでしょうか?当分回答は期待できないので、すぐに感謝します。スター君はフラダーです、モデレーターの皆様が許してくれますように・・・。


私は魔法使いではありません、私自身ここに来るのは初めてです。8))))
 
peshihod:

練習不足ですね。プログラムを実行できない、動作しない。使える選択肢がない→技術がない→使える選択肢がない、という悪循環。

考えないと...。:-/


話題の続きです。

学ぶためには、練習が必要です。

取引端末で次の操作を行います。
1.デモ口座の開設が必要です。
取引端末に口座の詳細を入力します:File->Login->...
2.開かれているチャートを使用するか、または新しいチャートを開く:File->New_chart->...
3.Set maximum in: Service->Settings->Charts->Max Bar_History->250000
4.Set one minutetimeframe: Charts->Period->M1_One_minute
5.Make update: Charts->Update
6.Open Strategy Tester.は、ストラテジーテスターを起動します。View->Strategy Tester
他のウィンドウをすべて閉じ(最小化)、チャートのあるウィンドウとテスターのあるウィンドウを1つずつ残します。
------------------
次に、Strategy Tester の設定で、
7. Symbol: チャートを開いているシンボルを選択します。
8.モデル:始値(......)で
<<<OrderSend()まで使用するモデル>>
9.日付を使用:チェックを入れてください。
日付: _from:<昨日(土日を除く)>, _to:<今日>
10.可視化:チェックされている場合はチェックを外す。
11.Period: M1
12.Optimization: ティックがある場合は削除する。
---------------------
さらに MetaEditor を開きます:
13.In trading terminal menu:Service->Editor_MetaQuotes_Language
14.Write program, for example:
//===============================.

int i;
int const=5;
int Celoe, Ostatok;
bool flag_Odin_Raz=true;




int start()
{

if(flag_Odin_Raz==true)
{
//-------------
i=0;
while(i<22)
   {
   Celoe=i/const;
   Ostatok=MathMod(i,const);
   Print("При i=", i, " Celoe=", Celoe, " Ostatok=", Ostatok);
   i=i+1;
   }
//-------------
flag_Odin_Raz=false;
}
return(0);
}

//=============================

15.MetaEditorで、メニュー:File->Save_as:ファイル名を付けて、拡張子.mq4を保存、フォルダは'experts'にしてください。
16.In MetaEditor in menu: File->Compile
---------------------------------------
Then in tester in settings:
17.Advisor: プログラムのファイル名を見つけて選択してください。
18.マウスで「スタート」ボタンをクリックします。
19.テスター->ログで
プログラムの結果をPrint()メッセージで見る
-----------------------------------------
見やすくするために
20.ログ内の任意の行を右クリック->開く
*.logファイルのあるlogsフォルダが開きますので、メモ帳やWordなど、任意のテキストエディタで開いてください。

PS
ファイルが大きすぎて、どのテキストエディタでも開けない場合は、Windowsの手段でこのファイルを削除し、取引端末から「スタート」ボタンを押してプログラムを再起動する必要があります。テスターフォルダ。"...\Installation_folder⇄logs "の間違いではありません。

PPS
プログラミングを学ぶには、必要な動作をテキストで書いたものを「プログラム」(人間が読めるもの)に変換し、コンピュータが理解できる機械語コマンドの言語に変換するプログラミング言語コンパイラが必要です。実践なくして、学ぶことはできない。Mql4は別々のプログラムを作成せず、*.mq4が*.ex4になり、プログラムシェルから実行されます。
*.ex4 は直接実行できないので、上記のアルゴリズムはこの点を迂回します。