//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 30.04.2009 |//| Описание : Возвращает флаг разрешения торговли по времени. |//+----------------------------------------------------------------------------+//| Параметры: |//| hb - часы времени начала торговли |//| mb - минуты времени начала торговли |//| he - часы времени окончания торговли |//| me - минуты времени окончания торговли |//+----------------------------------------------------------------------------+bool isTradeTimeInt(int hb=0,int mb=0,int he=0,int me=0){datetime db, de;// Время начала и окончания работыint hc;// Часы текущего времени торгового сервера
db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ hb+":"+ mb);
de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+ he+":"+ me);
hc=TimeHour(TimeCurrent());if( db>= de){if( hc>= he) de+=24*60*60;else db-=24*60*60;}if(TimeCurrent()>= db &&TimeCurrent()<= de)return( True);elsereturn( False);}
76ページで...
ありがとうございました。
isTradeTimeInt()関数を使用します。
この関数は、時間指定取引を許可するフラグを返します。返される値は、true または false である。関数 isTradeTimeInt() は、時間間隔認識の原理により、関数isTradeTimeString() と同様、取引開始時刻が大きくても(一日内の時間間隔)、小さくても(異なる日の時間間隔)、どちらでも可能です。関数 isTradeTimeInt()は、以下のオプションパラメータを受け付ける。
isTradeTimeInt()の使用例です。
SZY. isTradeTimeInt()関数をテストするスクリプトを添付しています。
機能一覧を更新し、簡単な説明とリンクを掲載...
isCloseLastPosByStop()関数です。
この関数は、ストップによる最後のポジションのクローズフラグを返します。フラグが立っている - True - StopLossが発動した。フラグを下げた - False - ポジションは別の理由で閉鎖されました。考慮すべき位置をより正確に選択するために、外部パラメータで設定します。
こんにちは
あなたの機能を私自身の目的のために使おうとしています。小さな動作のExpert Advisor。売って閉じるだけ、1ポジション。ストップロスをいくつも連続でキャッチすることもある。Expert Advisorがポジションを開くが、クローズしないので、最初のストップ後に売り条件を変更したい。何が間違っているのか、教えてください。
..........................................................
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 0){
if ( (StochK_0<StochD_1) && (StochD_1 > 80) ) // 1回目 ゆっくり売る。
ticket=OrderSend(Symbol(,OP_SELL,Lots,Bid,3,Bid+SL*Point,0, "My EXP", MagicNamber,0,Green); // 売ります。
OrderSelect(0, SELECT_BY_POS);
if (OrderSelect(0, SELECT_BY_POS)==true )
Print("SELECT_BY_POS")。
さもなくば
Print("failed to select error : ",GetLastError());
RefreshRates()。
if((StochK_0<30)&& (StochD_1 < 30))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet)を実行します。
}
さもなくば
if ( isCloseLastPosByStop(NULL,OP_SELL, MagicNamber) == 1)
{
if ((StochK_0<StochD_1) && (StochK_0 < 60) && (StochD_1 < 60) )
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My EXP", MagicNamber,0,Green);//。
エキスパートがポジションを開くが、クローズ しない。
StochK_0 とStochD_1 の変数を表示します。もしかしたら、あなたの決算条件に当てはまらない値を取っているかもしれません。
to KimIV
こんにちは、あなたはこのクラスタインジケータを 同じ図面と入力パラメータ - ペア名による+ペア変化率値の戻り(右上隅)を持つ関数に変換するために役立つしてくださいすることができます。 あらかじめご了承ください。
追伸......1週間前から苦戦しています
また、どの時間の始まりにも、最初の1秒に2つの異なる指示のポジションをオープンし、時間の最後の1秒に失敗した注文をクローズすることをコードでどのように表現するのでしょうか?
ないとしたら、最初と最後の2番目?