KimIVの便利な機能 - ページ 63

 
KimIV >> :

は...書いた...。

ClosePosBySortLots()関数です。

ロットサイズ順にポジションをクローズする機能です。つまり、この機能を使えば、ロット数の昇順または降順でポジションを決済することができます。関数 ClosePosBySortLots()は、以下のオプションパラメータを受け付けます。

  • sy - 取引商品の名前。"" - 任意の楽器、NULL - 現在の楽器。初期値は""である。
  • op - 貿易業務の種類。有効な値 -1 - 任意のポジション、OP_BUY - 買い、OP_SELL - 売りを指定します。初期値は-1である。
  • mn - MagicNumber、取引操作の一意な識別子。デフォルト値 -1 - 任意のマジックナンバー。
  • sd - ロットサイズのソート方向.有効な値 MODE_ASCEND - 昇順、MODE_DESCEND - 降順。初期値は MODE_DESCEND である。

SZY. ClosePosBySortLots()関数をテストするスクリプトを添付しています。

イゴール ありがとうございました。お祈りしています:-)

 

プライヴァート

狂言

例を挙げていただき、ありがとうございます

難しくなければ解読してください。

var=Close[0]
何をするものなのか?
 

其のいいかげんにしろ申し訳ありません...削除クリエイティビティはいつでも大歓迎です

で、添付ファイルから機能へのリンクを取る...。

ファイル:
f_kimiv.rar  12 kb
 
WroC писал(а)>>

難しくなければ、これを解読してください :

var=Close[0] です。

何と一緒に食べる?

varという 変数には、現在のバーの終値の価格水準(ゼロの数字)が代入されます。しかし、現在のバーはまだ終了していないので、close[0]Bidと 同じ、つまり現在の価格となります。

 

キムアイビー


そして、私は何とかしてmarketinfoを使おうとし続けました......それはさらに単純であることが判明しています。

 
if ( ExistPositions(NULL, OP_BUY, Magic)) {
 po= PriceOpenLastPos(NULL, OP_BUY, Magic);
 if (! ExistOrders (NULL, OP_SELLSTOP, Magic+1)
 && ! ExistPositions(NULL, OP_SELL , Magic+1)) {
 pp= po- offSet*Point;
 if ( StopLoss>0) sl= pp+ StopLoss*Point; else sl=0;
 if ( TakeProfit>0) tp= pp- TakeProfit*Point; else tp=0;
 SetOrder(NULL, OP_SELLSTOP, ll, pp, sl, tp, Magic+3);

こんにちは。
イゴールさん、ロック戦術を実現する機能はありますか?
45ページで、これに使えそうな例を挙げていましたね。


例を見ると、次のようになります。
LockStep=20 fromopen position
LockStopLoss=10
1500 - open Buy1480 - open sellstop

1470 - open buy1450 - open sellstop

1460 - close sellstop 1450 àopen sellstop 1450
1490 - close sellstop 1480 àopensellstop 1450
the given function will open two orders sellstop 1450

P.S. Many thanks for your work.実際にたくさんの情報があり、とても参考になり、そのほとんどを取り入れました。



 
demsan писал(а)>>
イゴールさん、ロック戦術を実現する機能はありますか?

いいえ、別機能はありません。だから、既存のものを組み合わせ、さらに自分なりのものを加える必要がある。私はあなたが次の接続を整理することをお勧めします:1組のBuy/SellStop - 1マジシャン。次のペア-次のマジシャンというように。

 

StringLower()関数です。

説明: 文字列を小文字に変換する。SIGNIFICANT(大文字)はすべて小文字になります。StringLower() 関数は、1つの必須パラメータである入力文字列のみを受け付けます。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает строку в нижнем регистре                            |
//+----------------------------------------------------------------------------+
string StringLower(string s) {
  int c, i, k=StringLen( s), n;
  for ( i=0; i< k; i++) {
    n=0;
    c=StringGetChar( s, i);
    if ( c>64 && c<91) n= c+32;     // A-Z -> a-z
    if ( c>191 && c<224) n= c+32;   // А-Я -> а-я
    if ( c==168) n=184;            //  Ё  ->  ё
    if ( n>0) s=StringSetChar( s, i, n);
  }
  return( s);
}

SZYさん StringLower()関数のテスト用スクリプトを添付します。

ファイル:
 

StringUpper()関数です。

説明: 文字列を大文字に変換する。小文字はすべて大文字になります。StringUpper() 関数は、必須パラメータである入力文字列のみを受け付けます。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Возвращает строку в ВЕРХНЕМ регистре                           |
//+----------------------------------------------------------------------------+
string StringUpper(string s) {
  int c, i, k=StringLen( s), n;
  for ( i=0; i< k; i++) {
    n=0;
    c=StringGetChar( s, i);
    if ( c>96 && c<123) n= c-32;    // a-z -> A-Z
    if ( c>223 && c<256) n= c-32;   // а-я -> А-Я
    if ( c==184) n=168;            //  ё  ->  Ё
    if ( n>0) s=StringSetChar( s, i, n);
  }
  return( s);
}

ZS. StringUpper()をテストするスクリプトを添付します。

ファイル:
 

StringToArrayDouble()関数を使用します。

この関数は、文字列を実数に分割し、各数値を個別の要素として配列に追加します。文字列中に現れる実数の数だけ、同じ数の要素が配列に追加されます。セミコロンはセパレータとして認識されます。StringToArrayDouble() 関数は、配列の要素数を返す関数であり、以下の必須パラメータをとる。

  • st- セミコロンで区切られた実数の文字列.
  • ad- 実数の配列.
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 10.10.2008                                                     |
//|  Описание : Перенос вещественных чисел из строки в массив                  |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    st - строка вещественных чисел через точку с запятой                    |
//|    ad - массив вещественных чисел                                          |
//+----------------------------------------------------------------------------+
//|  Возврат:                                                                  |
//|    Количество элементов в массиве                                          |
//+----------------------------------------------------------------------------+
int StringToArrayDouble(string st, double& ad[]) {
  int    i=0, np;
  string stp;

  ArrayResize( ad, 0);
  while (StringLen( st)>0) {
    np=StringFind( st, ";");
    if ( np<0) {
      stp= st;
      st="";
    } else {
      stp=StringSubstr( st, 0, np);
      st=StringSubstr( st, np+1);
    }
    i++;
    ArrayResize( ad, i);
    ad[ i-1]=StrToDouble( stp);
  }
  return(ArraySize( ad));
}

ZS. StringToArrayDouble()関数をテストするスクリプトを添付しています。

ファイル: