ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

イエスランゲージコミュのトレスタに関する質問・雑談

  • mixiチェック
  • このエントリーをはてなブックマークに追加

コメント(215)

初心者質問ですみません・・・
Conditionと言う形式?で時間制限を付けたいと思いまして

Condition1 = stime >= 093000 and stime >= 110000;
Condition2 = stime >= 130000 and stime >= 143000;

と前場の初めの最初の30分は禁止&後場の最初の30分は禁止!
にしたいのですが・・・全く思うように動きません・・・

すみませんド素人な質問で・・・教えてください・・・
(If。。。の時間制限でも構いません・・・すっきりしたプログラム作りたいです・・・)
はじめまして、
夢太郎と申します。

前記にあったことにも関連するのですが、
前場最後の足で出たシグナルにより
新規で買いたい場合ですが、

........buy("buy");
では新規買いの約定はしませんでした。

........buy("buy",atmarket);
これも約定しませんでした。

前場最後の足のあとに11:00の終値だけののキャンドルがあるため
次の足というのがその足を意味してしまうのでしょうか。

どうしたら前引け 又は 次の足(12:30の寄付き)で 
約定できるでしょうか。
どのようなプログラムにしたらいいのでしょうか?

お手数ですがお教えいただけるとうれしいです。

デリバチョフさん

おはようございます。
早いお返事感激です。
さっそくやってみます
今後も色々教えてください。
ありがとうございます。

こんばんは、サルサで猿さ@トレード中です。


> Condition1 = stime >= 093000 and stime >= 110000;
> Condition2 = stime >= 130000 and stime >= 143000;

 多分、符号が同じ方向になってしまっているので、Condition1は11時以降、Condition2は14時30分以降に発動する条件になってしまっているのでしょう。

トレード中&トレスタの環境が今ココにないので、Verifyレベルしかクリアできていませんが、ご参照あれ〜
(少し間違いがあるかもしれませんが・・・)


//==================================================
//時間による制限
Condition1 = time > 093000 and time <=120000;
Condition2 = time > 130000;

//決済条件
Condition3 = time[1] >= 105000 and time < 105000;
Condition4 = time[1] >= 145000 and time < 145000;

//Entry条件
Condition5 = C[2] < C[1] and C[1] < C;


//前場用Entry
if Condition1 and Condition5 Then
   Buy("Zenba_long");

//後場用Entry
if Condition2 and Condition5 Then
   Buy("Goba_long");

//決済用
if Condition3 and Condition4 Then
   Begin
      ExitLong("");
      ExitShort("");
   end;
//==================================================
サルサで猿ささん!
ありがとうございます!
本当に難しいですねシストレとは・・・
勉強に励みます!

デリバチョフさん!
お気遣いありがとうございます!
こんばんは。

また初歩的な質問ですみませんが、
RCIのコードの書き方お分かりの方いらしたら
是非お教えいただけると嬉しいです。

例えば、
10日のRCIはどのように書いたら良いのでしょうか?

このRCI、結構ポピュラーだと思っていましたが、
トレードスタジアムの戦略には載っていないんですね。

どうぞよろしくお願いいたします。
夢太郎さん、おはようございます。


 コレをそのままパクってくれれば利用が出来るかと。。。

http://system-trading.jp/takahashi/index.php?ID=53


> また初歩的な質問ですみませんが、 RCIのコードの書き方お分かりの方いらしたら
> 是非お教えいただけると嬉しいです。

 初歩じゃないと思いますよ。。。コレが書ければなんでもかけると思います。
スピアマンの順位相関係数を利用しますが、同順位を考慮しないものであれば、そこそこ問題なくかけます。

しかし、同順位を考慮するプログラムをトレステで書く・・・と、一工夫必要なんです。

 私は、飛行機に乗っていた時間(9時間?)程、試行錯誤していた記憶が・・・それでもダメでビーチで寝ながらプログラムを書いていた事を思い出します。。。


今度RCIを関数式にしたものをどこかで掲載しておきましょう。
サルサで猿ささん
ありがとうございます

いただいた情報でコピペしてトレステでトライしたのですが
シミュレーション出来ませんでした。
いろいろとやったのですが、
私の手にはおえそうにありません。


>今度RCIを関数式にしたものをどこかで掲載しておきましょう。
是非お願い致します。
期待しております。

今後ともどうぞよろしくお願いします。
おめでとうございます。
今年もよろしくお願いします。

新年早々また質問させて下さい;

ふたつの条件を満たした時、売り or 買い というのが
よくありますが、
それに時間制限を入れたいのですがどんば文章を作ったらいいのでしょうか。

例えば、
条件1 crossup MA(close,50),MA(close,60)
条件2 crossup MA(close,20),MA(close,30)
を前提として、もし条件1を満たして100分以内に
条件2を満たしたならば、買い 
もし時間内に条件2を満たさないならば無効。

というような構文を作りたいのですがわかりません。
もしお分かりの方いらしたら是非ご教授いただければうれしいです。

毎度すみませんが、
どうぞよろしくお願いいたします。
夢太郎さん、こんにちは。


 厳密に検証していないので、上手く動くかわかりませんが、こんな感じでしょうか・・・
100分というのは、BarIntervalで割ってエントリー後のBarの本数でカウントすれば良いかと。

割り切れない計算に関しては、Round関数などを利用して工夫ができるかと思います。
分足以外を使われると、うまく動かないかもしれませんね。

//--------------------------------------------------------------
// 分足を利用してください。

Var: Con1_num(0), Wait_num(0);

Wait_num = 100 / BarInterval;

if Crossup(MA(Close, 50), MA(Close, 60)) Then
   begin
      Condition1 = true;
      Con1_num = BarIndex;
   end;

if Condition1 == true and BarIndex <= Con1_num + Wait_num then
   buy("minute_100");

if Condition1 == true and BarIndex > Con1_num + Wait_num Then
   Begin
      Condition1 = false;
      Con1_num = 0;
   end;
//--------------------------------------------------------------
サルサで猿ささん

早い!
感謝です。

早速やってみます
私に出来るかな

ありがとうございます
サルサで猿ささん

いただいた式をそっくりそのまま
EL でコピペして検証しました。

宣言されていない名 crossup が使用された
というエラーが出てくるのですが
どう間違っているのでしょうか?

せっかく教えていただいたのに
初心者の質問で申し訳ありません。
サルサで猿ささん

↑のメッセージ無視して下さい。

何度かやり直したらやっと検証OKになりました。

これから本格的にいろいろやってみます。

ありがとうございます。
感激!
> 夢太郎さん

 う〜ん、おかしいですね。

Verifyまでは確認したので動くはず。

多分、ブログでも同じような質問があったのですが、そのままコピーをすると、スペースが文字化けして変な処理になるような気がします。

多分、分かりやすいように段を分けている部分のスペースが原因かと。確かにそのままコピーしたら、同じような障害が再現できました。

if Crossup
   begin
   ↓
if Crossup
begin

みたいに、スペースを潰せば動くはずです。
> 夢太郎さん

 上手く検証が成功してよかったですね。丁度入れ違いのレスでした〜ウインク
>サルサで猿ささん

おっしゃるように スペース部分に文字化けがありました。
それを取り除いたらOKでした。

ありがとうございます。

移動平均線の定数帯プロットについて教えてください


トレスタの指標の中から移動平均を選択してプロットすることが
簡単にできますが、
この移動平均線の上下に任意の幅で上下に定数帯をプロットしたいの
ですがどうしたらよいのでしょうか?

以下は指標からコピーしたものです;

Input : Period(5);

Plot1(ma(C,Period), "移動平均");


これを加工して

plot1(ma(c+100,period),

としてみたのですが、こうすると
プロットされる位置がチャートの下欄になってしまい
チャット上に重なりません。

もしやり方ご存知の方いらしたら
是非教えてください。

いつもありがとうございます。
夢太郎さん、おはようございます。サルサです。


 下欄にPlotされた指標を、ドラック&ドロップして、チャート上に持ってみたら移動しませんか?
注意点として、プロパティ上のY軸の設定を調整しないと、キチンと表示されないとおもいます。


ではでは。
サルサで猿ささん

ありがとうございます。
やってみたら出来ました。

早い返答にいつもながら驚きです。

ありがとう。
サルサで猿ささん

再度同じ件で失礼します

ドラッグドロップでチャート上には持ってくることが出来ました。

ただ不思議なのは定数帯ですので
常に基本の移動平均と同一幅でないとならないわけですが、
これが同一ではなく近づいたり遠ざかったりします。

下記のような私の式に問題があるのでしょうか?

plot1(ma(c+100,period),
"プロパティ上のY軸の設定" これは修正されました?

定数帯というのが、よくわからないのですが、単に移動平均に幅を持たせるようなものをつくるなら、


   plot1(ma(C,Period)+100, "アッパーバンド", red);
   plot2(ma(C,Period)-100, "アッパーバンド", cyan);


みたいに書くんですかね・・・仕様がよくわからないので、とんちんかんな回答であればすいません・・・
サルサで猿ささん

ありがとうございます。

Y軸設定を変えたらちゃんと出ました。

何度もすみませんでした。
感謝!
そのうち、証券会社やベンダーを辞めた人とかが、個人投資家になるもイマイチで、
シストレは古い、これからはアルトレ(アルゴリズムトレード)だ!
なんていい出しそう。

いっしょやんけ!

どこも似たようなもん使ってて、最近ではA社のアルゴリズムに着火させるアルゴリズムとかもいっぱいあるらしい。
だけど発射ボタンはトレーダーが押すものが多いらしい。
中身がいくら聞いても良くわからないんで、ボタンを押すには躊躇する、、なんて話も。

相場が好きでやってんじゃねぇの??
個人的には、裁量やりつつのシステム(アルゴ)だと思うんですがねぇ。

年寄りモードでした。
板ですか、不可解な動きしますからね。。。わざと1枚しか見せない氷山の一角のような板もあるし。人間業ではできませぬ〜

Time & Sales を監視するしかないですね。
単純な片張りと違って注文裁き系や裁定系(主にtopix先と現物)、OPヘッジ
系(225先)が多いんでしょうから、板の厚みは見るんでしょうね。

妄想ですけど。

始めたばかりの初心者です。教えてください。
当日の始値の取得方法を
5分足で作ります。

たとえば、
(1)当日の始値が前日の安値より安く始まり。
(2)当日の場中に、当日の始値より50円上がったっら「買い」
というのは、どうかけばいいのでしょうか?

(1)の部分dayopen>daylow[1]ではdayopenはその日が終わらないと、始値の値をひっぱってこないし、
(2)の部分にいたっては??
分足でも、dayopen,daylowなどday関数も混ぜて使えるのでしょうか?

以前の書き込みのを見て挑戦しましたが、うまくできません。
あまりに単純、初期的なのか、あちこち探しても見つかりません。
どなたか、教えてください。
>> 211

ヨッシーさん、始めまして。

------------------------------------------
if DayOpen(0) < DayLow(1) and  //(1)

C >= DayOpen(0) + 50 then     //(2)
Buy("Long");
------------------------------------------

これでいけるかと。。。Day関数は、呼び出したい過去を()で指定しますね。

DayOpen(0)・・・とすれば、当日の情報を呼び出すので、頻繁に利用できると思います。
主にDay関数は日中足で利用する形になりますよ。


※ こちらでも色々投稿されているので、確認してみてくださいね。

http://225systemtrade.com/
サルサで猿さ#CR-Zさん、デリバ千ョCR-Zさん。
早々なる回答ありがとうございます。
この書き込み(128)にもDAY関数には[]でなく()と記されていました。
しかし、私の頭の中・・1本前は[1]と固まっていましたので、あれと思いつつ通りすぎてしまいました。

また、当日の始値も、すごくシンプルな書き方ですむとは・・
すっきりした気持で、取り組めそうです。

サルサさんのブログ読んでます。
とっても参考になっています。

お二人とも、ありがとうございました。
また、今後もお願いします。
また、また初心者の質問です。
書き込みの65から77に書かれている、
timehigh[1]に関連があるのですが、
二日目のtimehighを求めたいときはどうしたらいいのでしょうか?
下記の通りでは、
var1もvar2も同じ値を拾ってくるのですが??
var2がvar1の値を拾ってきているとおもいますが??

どこが間違っているのか、教えてください。

Var: HighPrice(0);

HighPrice = TimeHigh(090000,103000);

If date<>date[1] Then Begin
Var1 = HighPrice[1];//一日前の900から1030の高値
Var2 = HighPrice[2];//二日前の900から1030の高値
end;

Plot1 (var1,"RRR",RED);
Plot2 (var2,"GGG",GREEN);

ログインすると、残り186件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

イエスランゲージ 更新情報

イエスランゲージのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング