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

 
いいえ、自転車については合いません。2つの異なる端末のタイムゾーンの 違いという時間補正が必要なんです。数時間のことです。自分でも不具合を探してみます。
 
Aleksander:
開始時 - SellStop注文ループに買い注文があるかどうかを確認するための関数を呼び出す...を削除してください - もしオープンオーダーの中に買いオーダーがなければ...
SellStop 注文ループの 中に買い注文が存在 する」という表現が よくわからない
 

見る

セットオーダーのラウンドロビン(開始)

めいれいをとる

- もしそれがSellStop(マジックナンバーを覚えておいてください - それは買い注文チケットでも あります)であれば、 {...

を経て

boolOrderSelect() int index, int select, int pool=MODE_TRADES) です。


注文が存在するかどうかを確認する...- これがあなたの買い注文です...

ない場合は、現在のSellStop注文を削除します。

}

} オーダーループの終了...

 
TheXpert:

InitsializeRealMasterOrders -- ここでフォルトを探します。

そして、こんなものもあります。自転車を作るわけではありませんが、https://docs.mql4.com/ru/convert/timetostr



まだ不具合がある。サブルーチンでは、テキスト文書の行からデータを読み取ります。

4;NZDUSD;98537467;1;0.5;1340809155;0;0.7881;0;0.7939;0;0
4;NZDUSD;98537450;1;0.5;1340809147;0;0.788;0;0.7939;0.787;0

オーダーオープン時間は、行の6番目のパラメータです。コマンドでdatetime型変数に読み込まれた。

Stroka=FileReadString(FileHandle);//オープン時
r_master_OpenTime[i]=StrToTime(Stroka);// 開店時間

その結果、変数r_master_OpenTime[i]にGod knows whatの値が入りました。しかし、その型をdatetimeからintに変更した途端、すべてがOKになりました。mql4でプログラミングを始めて5年以上経ちますが、未だに不思議でなりません...。:)

 
Aleksander:

見る

セットオーダーのラウンドロビン(開始)

めいれいをとる

- もしそれがSellStop(マジックナンバーを覚えておいてください - それは買い注文チケットでもあります)であれば、 {...

を経て

boolOrderSelect() int index, int select, int pool=MODE_TRADES) です。


注文が存在するかどうかを確認する...- これがあなたの買い注文です...

それがない場合、現在のSellStop注文を削除します。

}

オーダーループの終了...

こんなくだらないことを書いてしまいましたが

  int      i, k=OrdersTotal();
  
   for (i=0; i<k; i++)
 if(OrderType()==OP_SELLSTOP)
    if(OrderMagicNumber()==ticket)
 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
  if(OrderType()==OP_BUY)return(-1); 
      else
        OrderDelete(OrderTicket());
Спасибо вроде работает))
 

drknn: Все равно глюк. В подпрограмме код считывает данные из строк текстового документа:

4;NZDUSD;98537467;1;0.5;1340809155;0;0.7881;0;0.7939;0;0
4;NZDUSD;98537450;1;0.5;1340809147;0;0.788;0;0.7939;0.787;0

オーダーオープン時間は、文字列の6番目のパラメータです。コマンドでdatetime型の変数に読み込まれた。

Stroka=FileReadString(FileHandlе);// Время открытия
r_master_OpenTime[i]=StrToTime(Stroka);// Время открытия

その結果、r_master_OpenTime[i]変数に重要でない値が格納されることになります。しかし、その型をdatetimeからintに変更した途端、すべてがOKになりました。mql4でプログラミングを始めて5年以上経ちますが、未だに不思議でなりません...。:)

ここから
datetime StrToTime(文字列 値)
yyyy.mm.dd [hh:mi]" という書式で時刻や日付を含む文字列を、日時の数値(1970年1月1日からの経過秒数)に変換します。
入力データのフォーマットが期待されるフォーマットと一致しない
 

もしもの時のためにアドバイスをお願いします。

テスターでは問題なく、すべて計画通りに動作していますが、realskではトランザクションを開くことができません。

追伸:本当に困っている、生死に関わる質問です。

 
Gek34:

皆さん、ごきげんよう。

インジケーターを書いてみたところ、一応動くようですが、履歴の時だけ予定通りに描画して、新しい相場が来るといつものマスクで描画してしまいます。

そのコードを添付します。

int start()
{
int counted_bars=IndicatorCounted();
int i,n;
double Stark=0;
//----
i=Bars-counted_bars-1;//+50;
// n=Bars-counted_bars-1;
while(i>=0)
{
//----

double Ma=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i);
//double Ma1=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i+1);
if(Stark+Step*Point<Ma)Stark=Ma;
if(Stark-Step*Point>Ma)Stark=Ma;
ABuf[i]=Stark;

//----
i--;
}
return(0);
}


ステップを描き続けることができるように修正するのを手伝ってください。

本当にありがたいことです。

Gek.

インジケーターのコードを全て教えてください
 
What's wrong for (f=1;f<Bars;f++)
{
Price1 =(iClose(Symbol_1,0,0) - iClose(Symbol_1,0,f)) / MarketInfo(Symbol_1, MODE_POINT)
Price2 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,f)) / MarketInfo(Symbol_2, MODE_POINT);
Spread = Price1 - Price2;
Print ("Price1="+Price1, " Price2="+Price2);
if (Spread==0){t=f; break;}; if (Spread==0){t=f; break;}.
}
Price12 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,t)) / MarketInfo(Symbol_1, MODE_POINT);
Price22 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,t)) / MarketInfo(Symbol_2,MODE_POINT);
Spread2 = Price12 - Price22;


if (MathAbs(Spread2) >= razdvizka && Spread2 < 0) { open trade }.


スプレッドが0になったバーを固定し、そこからスプレッドを制御したい

 
DanLett:

もしもの時のためにアドバイスをお願いします。

テスターでは問題なく、すべて計画通りに動作していますが、realskではトランザクションを開くことができません。

追伸:本当に困っています、生きるか死ぬかの問題です。

アドバイザーが取引することは可能ですか?